- •Технология организации баз данных и знаний
- •Методические указания к выполнению лабораторных работ
- •Методические указания к выполнению лабораторных работ
- •Предисловие
- •Библиографический список
- •Лабораторная работа № 1 Тема №1. ИнсталляцияMySqLи создание локального сервера
- •1. Цель работы
- •2. Основные технические возможности
- •3. Описание установки
- •4. Порядок выполнения работы
- •5. Содержание отчета
- •Лабораторная работа № 1
- •6. Содержание отчета
- •Лабораторная работа № 2 Тема №1. Создание баз и таблиц данных
- •1. Цель работы
- •2. Основные сведения
- •3. Программа работы
- •4. Указания к выполнению работы
- •3. Программа работы
- •00 Проверка моего домена с именем Moy.Loc
- •4. Указания к выполнению работы
- •5. Содержание отчета
- •3. Указания к выполнению работы
- •Задание 2: Разработать html-форму с методом Post
- •Тема №2. Передача значений переменным в сценариях php. Использование возможностей метода get без html-формы для передачи значений переменных в сценариях php
- •Тема №3. Создание формы и рнр-сценария в одном файле
- •Задание 1: Получение данных из текстового поля
- •I курсив
- •Тема №4. Использование чисел. Управляющие структуры
- •Тема №5. Использование управляющей структурыswitch
- •Тема № 6. Использование регулярных выражений в сценариях рнр
- •Проверка ошибок
- •Задание 1. Вывод информации о ошибочно заполненных полях формы
- •Задание 2. Использование функций пользователя для контроля полей формы
- •Задание 3. Проверка ограничений в текстовом поле.Lab6_0_2.Php
- •Задание 4. Специфика имени пользователя. Lab6_0_3.Php
- •Задание 5. Специфика имени пользователя с помощью JavaScript. Lab6_0_4.Php
- •Тема №7. Работа с массивами
- •Задание 1. Означивание массива и вывод на экран. Lab7_0.Php.
- •Задание 4. Сортировка массива.Lab7_3.Php.
- •Тема №8. Функции в сценариях рнр
- •Задание 1. Вложенные функции.Lab8_0_0.Php
- •Задание 2. Объявление функций внутри других функций.Lab8_0.Php
- •Задание 3. Возврат значений функцией.Lab8_1.Php
- •Задание 4. Возврат нескольких значений функцией.Lab8_2.Php
- •Задание 5. Возвращение функцией нескольких величин.Lab8_3.Php
- •Задание 6. Рекурсивные функции .Lab8_4.Php
- •Задание 7. Функции-переменные.Lab8_5.Php
- •Задание 8. Построение библиотек функций.Lab8_6_0.Php.
- •Задание 9. Построение шаблона сайта.Lab8_7_0.Php.
- •Тема №9. Использование файлов для хранения данных в сценариях рнр
- •Создание сценария загрузки.
- •Задание 3. Сохранение пользовательских данных в текстовом файлеLab9_5.Php
- •Задание 4. Сохранение пользовательских данных в текстовом файлеLab9_6_0.Php
- •Тема № 10. Работа с каталогами в сценариях рнр
- •Тема №11. Создание панели управления файлами
- •Задание 1. Разработать форму и сопутствующее ей приложение для панели управления файлами.
- •Тема № 12.Работа с базой через монтторMySql и PhpMyAdmin
- •Задание 1. Создать базу данных через командную строку
- •Задание 3. Вставка данных в базу данных
- •Задание 4. Создание командных файлов и файлов сценариев для вставки данных в базу данных.
- •Тема № 13. Извлечение данных из базы данных
- •Задание 1. Оператор выборки данныхSelect
- •Задание 2. Извлечение данных по определенному критерию
- •Задание 3. Извлечение данных из нескольких таблиц
- •Задание 4. Поиск несоответствующих строк
- •Задание 5. Использование псевдонимов имен таблиц (as)
- •Задание 6. Извлечение данных в определенном порядке
- •Задание 7. Группировка и агрегирование данных
- •Задание 8. Обновление записей в базе данных (update)
- •Задание 10. Удаление записей, таблиц и базы данных (delete)
- •Тема № 14.Php и MySql. Доступ к базе данных MySql из Web с помощью рнр
- •Задание 1. Изучение работы архитектуры Web-баз данных
- •Задание 2. Проверка и фильтрация данных, исходящих от пользователя. Использование объектно-ориентированного синтаксисаPhp
- •Задание 3. Внесение новой информации в базу данных. Проверка и фильтрация данных, исходящих от администратора
- •Задание 4. Создание и удаление баз данных
- •Содержание
Задание 4. Создание командных файлов и файлов сценариев для вставки данных в базу данных.
Прямой ввод информации через монитор достаточно трудоемкая работа, поэтому на практике используются сценарии ввода информации.
Ниже приводится листинг сценария lab13_02.sql (рис. 3.204), выполняющий действия по автоматизации вставки информации в базу данных.
Листинг сценария ввода данных.
Рис. 3.204. Листинг lab13_02.sql ввода данных в таблицу customers базы данных books.
Сценарий, показанный на рис. 3.204, можно запустить через MySQL следующим образом (если путь к системе указан в Pach Вашей машины):
> mysql -h localhost -u root –p < lab13_02.sql
Однако, при выполнении лабораторных работ в дисплейных классах университета, чаще всего, доступ к системным ресурсам ЭВМ закрыт паролем.
Поэтому приходится исполнять ряд вспомогательных действий:
Перейти в командный процессор Cmd.exe.
Запустить консоль: Пуск -> Выполнить -> "cmd".
Указать путь, где находится исполняемый модуль MySQL.exe.
Перейти в каталог c:\webservers\usr\local\Mysql5\bin\ , используя команду OC смены директория: cd.
Указать параметры входа в Mysql и путь к сценарию Lab13_02Ins.sql.
Запустить клиент: mysql -u root –p набрав на клавиатуре строку:
c:\Webservers\usr\local\mysql5\bin\mysql -h localhost -u root -D books -p --character-sets-dir="c:\Webservers\usr\local\mysql5\share\charsets" < C:\WebServers\home\localhost\www\php\Lab13_02Ins.sql
Введенная информация в Dos окне имеет плохо читаемый вид:
После ввода указанной строки в шаге 3 и нажатия Enter, подтвердить пароль.
Правильный ввод пароля выведет следующую информацию на экран в виде как показано на рис. 3.205.
Рис. 3.205. Таблица customers базы данных BOOKS.
Обратите внимание, что вывод содержимого таблицы на рис. 3.205 осуществляется за счет команды , вставленной вLab13_02Ins.SQL сценарий, представленный на рис. 3.204. Кроме того, использование команды , позволяет согласовать кодировку сPhpMyadmin.
На рис. 3.206 показано состояние таблицы customers базы данных books средствами PhpMyAdmin.
Рис. 3.206. Таблица customers базы данных books в PhpMyAdmin.
Сценарий показанный на рис. 3.204 можно поместить в пакетный файл Insmysql.bat, как показано на рис. 3.207. В этом же файле указываются все необходимые данные, которые ранее вводились в окне Cmd.exe. Набрать содержимое файла Insmysql.bat можно в любом текстовом редакторе.
Рис. 3.207. Состав пакетного файла Insmysql.bat.
Заметьте, что содержимое файла, например в Блокноте, будет представлено в виде одной строки (конец строки на рис. 3.208 не виден).
Рис. 3.208. Изображение пакетного файла Insmysql.bat в Блокноте.
Использовать командный файл Insmysql.bat можно, указав его в командной строке менеджера файлов (например, Total Commander рис. 3.209).
Рис. 3.209. Вызов пакетного файла Insmysql.bat.
Вызов пакетного файла Insmysql.bat приведет к окну (рис. 3.210), указав в котором пароль, получим сообщение о составе таблицы customers (рис. 3.211).
Рис. 3.210. Этап работы пакетного файла Insmysql.bat.
В файле Insmysql.bat (рис. 3.207) использована команда перенаправления , приказывающая вызвать на обработку файл сценарий
Обратите внимание на путь к файлу сценарию, он может у Вас отличаться от использованного в примере.
В файле сценария (рис. 3.204) использована команда
,
которая осуществляет выборку (и вывод на экран в данном случае) всей информации из таблицы customers (рис. 3.211).
Заметьте, что строка с номером 6 (рис. 3.211) соответствует строке с номером 5 на этом же рисунке.
Рис. 3.211. Результат работы пакетного файла Insmysql.bat.
Проанализировать информацию, показанную на рис. 3.211, достаточно трудно, т.к. она только промелькнет на экране и окно с ней закроется автоматически. Чтобы увидеть и проанализировать информацию можно воспользоваться средствами PhpMyAdmin или прочитать ее через монитор MySQL.
Однако, если модифицировать файл Insmysql.bat (рис. 3.207) и вставить в нем команду вывода результатов во внешний файл(рис. 3.212), то результат работы (рис. 3.211) становится доступен через любой редактор.
Рис. 3.212. Модификация пакетного файла Insmysql.bat.
Далее (рис. 3.218) будет показано, как следует модифицировать пакетный файл (рис. 3.212), чтобы имя файла являлось в нем формальным параметром.
Ниже приводится листинг сценария lab13_03.sql (рис. 3.215), выполняющий действия по вставке информации в базу данных, схема которой представлена на рис. 3.212 и для удобства продублирована ниже (рис. 3.214).
Для продолжения работы очистите таблицу Customers. Для этого перейдите в монитор MySQL (CmySql.bat) и выполните команды USE BOOKS и DELETE FROM customers (рис. 3.213).
Рис. 3.213. Использование команды Delete - чистки таблицы базы.
Customers (CustomerId, Name, Address, City) - Клиент
Оrders (ОrderId, CustomerId, Аmount, Date) - Заказ
Books (ISBN, Author, Title, Price) - Книга
Оrder_items (ОrderId, ISBN, Quantity ) - Покупка
Рис. 3.214. Схема тестовой базы.
Листинг (lab13_03.sql) ввода данных в таблицы базы данных для схемы рис. 3.214.
use books;
SET NAMES cp1251;
insert into customers values
(1, "Петр Петров", "пр. Мира д.7", "Москва"),
(2, "Юлия Вонг", "ул. Шевченко д.1, кв 5", "Киев"),
(3, "Ян Дрибас", "пр. Зорь д.5, кв. 12 ", "Минск");
insert into orders values
(NULL, 3, 69.98, "2009-12-02"),
(NULL, 1, 49.00, "2009-12-15"),
(NULL, 2, 74.98, "2009-12-19"),
(NULL, 3, 24.99, "2010-02-01");
insert into books values
("0-672", "Люк Морган", "Java 2 для профессионалов", 34.99),
("0-673", "Дж. Даун", "Инсталляция GNU/Linux", 24.99),
("0-674", "В. Дрибас", "Основы баз данных", 24.99),
("0-675", "М. Цаленко", "Алгебра баз данных", 49.99);
insert into order_items values
(1, "0-672", 2),
(2, "0-675", 1),
(3, "0-675", 1),
(3, "0-674", 1),
(4, "0-673", 3);
SET NAMES cp866;
select * from customers;
select * from orders;
select * from books;
select * from order_items;
Рис. 3.215. Исходные данные для вставки в базу данных books.
Для ввода данных, представленных на рис. 3.215, создадим пакетный файл с именем . Местоположение файла показано на рис. 3.216.
Рис. 3.216. Местоположение командного файла INSxSQL.bat.
Состав файла приведен ниже (рис. 3.217 или рис. 3.218)
Рис. 3.217. Отображение файла INSxSQL.bat в редакторе Scite.
Рис. 3.218. Состав файла INSxSQL.bat.
Обратите внимание, что состав файла INSxSQL.bat и файла соответствует файлу Insmysql.bat, за исключением элемента , который подменяет имя вызываемогоSQL-сценария.
Использование подобного механизма подмены, позволяет вызывать сценарий Lab13_03.sql в работу с командной строки менеджера файлов следующим образом (рис. 3.219).
Рис. 3.219. Вызов INSxSQL.bat с параметром исполняемого файла.
Исполнение занесет информацию в таблицы базы данныхBooks, но на экране промелькнет только Dos окно.
Посмотреть результат проделанной работы пакетного файла можно либо средствами PhpMyAdmin, либо через монитор MySql.
Например, щелкнув мышкой на имени пакетного файла в окне менеджера файлов (см. рис. 3.219) мы получим приглашение вMysql, после которого укажем команду открытия базы данных (use books;), установки кодировки CP866 (set names cp866) и команду показа содержимого таблицы (например, SELECT * FROM customers;) (рис. 3.220).
Рис. 3.220. Вызов монитора MySQL и открытие базы.
Естественно, что в команде SELECT может быть указана любая необходимая нам таблица базы данных.
Для выполнения следующих тестов выйдите из Mysql, используя команду Exit.
Следующий пример показывает реакцию MySQL, если оператор ошибочно повторит ввод в командной строке информации , показанной на рис. 3.219.
По определению схемы (рис. 3.214) атрибут CustomerId в таблице Customers является ключевым (т.е. не допускает дубликатов хранимых значений атрибута), поэтому СУБД MySQL выдаст следующее сообщение:
Приведенное сообщение промелькнет в окне и прочитать его очень трудно. Чтобы увидеть и проанализировать данное сообщение необходимо вызвать командный процессор Cmd.exe (рис. 3.221).
Рис. 3.221. Вызов командного процессора.
Окно командного процессора представлено на рис. 3.222.
Рис. 3.222. Окно командного процессора с приглашением для ввода информации.
Если в приглашении ввести имя командного файла с параметром имени исполняемогоSQL сценария:
,
то ошибка, обнаруженная Mysql, останется на экране (рис. 3.223).
Рис. 3.223. Окно командного процессора с ошибкой ввода информации.
Следующий прием показывает применение текстового файла для контроля вводимой информации. Для удобства вычистим все таблицы базы данных, воспользовавшись средствами PhpMyadmin.(рис. 3.224).
Рис. 3.224. Окно PhpMyadmin с таблицей books базы данных books.
Используя кнопку (рис. 3.224) последовательно удалим все записи из четырех таблиц базы данных.
Далее воспользовавшись командным процессором (см. рис. 3.221), введем в полученное приглашение следующую информацию:
insxsql.bat lab13_03ins.sql >1.txt
Рис. 3.225. Использование перенаправления в командной строке.
Содержимое файла 1.txt (имя может быть любое) (рис. 3.226) можно посмотреть через любой текстовый редактор.
Рис. 3.226. Результат работы командного файла в текстовом файле.
Как видно из рис. 3.226 содержимое файла 1.txt соответствует информации приведенной на рис. 3.215.