Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

metoda / Ml_ITIn_2013

.pdf
Скачиваний:
29
Добавлен:
16.03.2016
Размер:
6.66 Mб
Скачать

211

Рис. 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).

212

Рис. 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) становится доступен через любой редактор.

213

Рис. 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

214

(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.

215

Состав файла приведен ниже (рис. 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 окно.

216

Посмотреть результат проделанной работы пакетного файла можно либо средствами 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).

217

Рис. 3.221. Вызов командного процессора.

Окно командного процессора представлено на рис. 3.222.

Рис. 3.222. Окно командного процессора с приглашением для ввода информации.

Если в приглашении ввести имя командного файла с параметром имени исполняемого SQL сценария:

,

то ошибка, обнаруженная Mysql, останется на экране (рис. 3.223).

Рис. 3.223. Окно командного процессора с ошибкой ввода информации.

Следующий прием показывает применение текстового файла для контроля вводимой информации. Для удобства вычистим все таблицы базы данных, воспользовавшись средствами PhpMyadmin.(рис. 3.224).

218

Рис. 3.224. Окно PhpMyadmin с таблицей books базы данных books.

Используя кнопку (рис. 3.224) последовательно удалим все записи из четырех таблиц базы данных.

Далее воспользовавшись командным процессором (см. рис. 3.221), введем в полученное приглашение следующую информацию:

insxsql.bat lab13_03ins.sql >1.txt

Рис. 3.225. Использование перенаправления в командной строке.

Содержимое файла 1.txt (имя может быть любое) (рис. 3.226) можно посмотреть через любой текстовый редактор.

219

Рис. 3.226. Результат работы командного файла в текстовом файле.

Как видно из рис. 3.226 содержимое файла 1.txt соответствует информации приведенной на рис. 3.215.

220

Тема № 13. Извлечение данных из базы данных Цель. Практическое использование конструкций SQL.

Задание 1. Оператор выборки данных SELECT

Оператор SELECT языка SQL извлекает данные из базы данных, выбирая из таблицы строки, которые отвечают заданному критерию поиска.

Основная форма оператора SELECT следующая (полное описание и использование языка SQL приведено в [7], в этой теме будут рассматриваться наиболее употребимые):

SELECT items FROM tables

[ WHERE condition ]

[ GROUP BY group_type ]

[ HAVING wnere_definition ] [ ORDER BY order_type ]

[ LIMIT Iimit_criteria ] ;

Рассмотрим каждую конструкцию, используя схему базы данных представленную на рис. 3.214. Выполнение данной темы предполагает, что

MySQL запущен .

Простейшим вариантом выборки данных Вы уже неоднократно пользовались, используя конструкцию SELECT * FROM tables (см. например рис. 3.220). Символ ―*‖ использовался для вывода всех столбцов искомой таблицы tables.

Если взамен символа ―*‖ использовать (через запятую) имена столбцов, то в результате подобного запроса Вы получите информацию только по тем столбцам, которые указаны в качестве элементов items.

Например, запрос (поиск):

SELECT name, city FROM customers ;

запрашивает данные столбцов name (имя) и city (город) таблицы Customers: Если воспользоваться монитором MySQL (вызов через пакетный файл

CmySql.bat - рис. 3.188), то ввод необходимых команд даст следующий результат, показанный на рис. 3.227.

Если воспользоваться средствами PhpMyAdmin для реализации этого запроса, то результат будет такой же, но изображение естественно будет другим (рис. 3.229).

Можно указывать столько столбцов таблицы, сколько необходимо, главное — вписать их по порядку после ключевого слова select. Кроме того, можно указывать и другие элементы, уточняющие выборку данных.

Соседние файлы в папке metoda