Запросы к базе данных
На языке баз данных команды, адресованные базе, называются инструкциями либо запросами. Результаты выполнения запроса обычно выводятся на экран.
В запросах часто используется команда select, которая позволяет извлечь нужную информацию из одной или нескольких таблиц.
Для диалога с сервером баз данных запустим клиентскую программу MySQL Command Line Client, а затем подадим команду выбора базы данных:
mysql>USE taxi
Теперь запрашиваем данные о модели и цвете автомобилей автопарка:
mysql>SELECT model, color FROM cars;
Результат запроса представлен ниже:
SELECT — ключевое слово, которое сообщает серверу баз данных о запросе, на извлечение данных;
model, color — список столбцов, которые выбираются из таблицы и помещаются в результирующую выборку в памяти;
FROM - ключевое слово, за которым следует список таблиц, где находится извлекаемая информация.
Если данных в таблице немного, то можно запросить их все:
mysql>SELECT * FROM table_name;
Здесь символ звездочки означает, что следует выбрать значения из всех столбцов. Но чаще запрашивают значения отдельных полей, поскольку обработка такого запроса требует меньших ресурсов.
Например, запросим все данные из таблицы cars:
Выясним, какие водители работали за то время, пока ведется учет с помощью базы. Нам нужен только список водителей из таблицы timetable, без повторов.
distinct — параметр в запросе select, дающий возможность исключить повторяющиеся данные из результатов запроса.
mysql>SELECT DISTINCT driver_number FROM timetable;
Результат запроса будет таким:
Результат получился действительно без повторений, но ненаглядный — указаны номера, а не фамилии водителей. Но фамилии находятся в другой таблице. Как выбрать данные из двух и более таблиц, мы узнаем, рассмотрев способы объединения таблиц.
Утилиты MySQL
Интерфейс MySQL Command line client, с которым мы работали в предыдущем разделе, удобен, но не позволяет использовать функциональность утилиты mysql полностью. Кроме того, в состав MySQL входит еще ряд полезных утилит, с одной из которых, mysqldump, необходимо познакомиться даже начинающим.
4.1. Утилита командной строки mysql
Утилита mysql может работать в двух режимах: интерактивном и пакетном. Клиентская утилита mysql запускается в интерактивном режиме в DOS-окне, когда в меню выбирается пункт Command line client. До MySQL 5 в комплекте поставки сервера не было такой возможности запуска mysql, и приходилось заходить следующим способом: щелкаем по кнопке Пуск, выбираем пункт меню Выполнить и в появившемся окне Запуск программы набираем cmd. Появляется DOS-окно со строкой, содержащей имя текущего каталога, — это приглашение ввести команду.
Утилиты предназначены для работы с сервером и при запуске потребуют указать имя пользователя, под которым мы хотим подключиться к серверу, и пароль. При конфигурировании сервера MySQL мы указали пароль для суперпользователя root, теперь следует им снова пора воспользоваться. Обычно для получения доступа к серверу MySQL необходимо сообщить клиентской программе имя хоста, с которым вы хотите соединиться. Например, утилиту mysql можно запустить следующим образом:
> mysql –h host_name –u user_name –pyour_pas
Здесь ключ –h указывает на то, что дальше последует имя хоста, к которому мы хотим подключиться. По умолчанию подключение осуществляется к серверу localhost. Ключ –u означает, что за ним следует имя пользователя, осуществляющего соединение, а после ключа –p указывается пароль. Обратите внимание на то, что пробела перед паролем нет.
Формат вызова утилиты mysql в нашем случае будет таким:
> mysql –u root -p
После ключа –p не указан пароль. Мы знаем, что он нужен, но не хотим вводить его сразу, а дождемся приглашения (нажмем Enter) и введем так, чтобы информация осталась конфиденциальной (набираемый пароль отображается на экране звездочками. После ввода пароля мы должны увидеть приветствие и приглашение командной строки уже самой утилиты mysql:
Завершение сеанса работы происходит по команде mysql>quit
Существует возможность повтора ранее поданных команд: щелчками по кнопкам со стрелками вверх и вниз.
Для работы с утилитой в пакетном режиме следует написать сценарий, состоящий из последовательности команд SQL, которые предстоит исполнить для создания базы и таблиц, входящих в базу. Сценарии принято хранить в файлах с расширением «sql». При исправлении ошибок в сценарии вы запускаете его несколько раз, но уже при повторном запуске получаете сообщение о том, что нельзя создать уже существующую таблицу. Значит, следует предварять создание таблицы командой:
mysql> DROP TABLE IF EXISTS table_name;
Тогда сценарий создания и заполнения таблицы cars будет выглядеть так:
use taxi;
DROP TABLE IF EXISTS cars;
CREATE TABLE cars (
model CHAR(50) NON NULL,
madein YEAR(4) NOT NULL,
reg_number CHAR(12) NOT NULL,
color CHAR(15) NOT NULL,
id SMALLINT AUTO_INCREMENT,
PRIMARY KEY(id)
);
INSERT INTO cars VALUES
('Volga', '2003', 'A786YC78', 'white', '1' ) ,
('Volga', '2002 ', 'A788YC78', 'yellow', ‘2’ ) ,
(Volkswagen', '2003', 'A789YC78', 'red', ’3’ );
Скрипт создается в любом текстовом редакторе.После завершения написания скрипта, его можно воспроизвести в сервере MySQL следующим образом:
>mysql –u root –p < c:\temp\taxi.sql
Не забудьте указать путь к вашему скрипт-файлу, как показано в примере.
Здесь taxi.sql – это созданный скрипт-файл.
4.2. Утилита mysqldump
Утилита mysqldump позволяет получить дамп ("моментальный снимок") содержимого базы данных или совокупности баз для создания резервной копии или пересылки данных на другой SQL-сервер баз данных. Дамп будет содержать набор команд SQL для создания и заполнения таблиц. Для создания дампа подается команда
mysqldump –u root –p taxi > c:\temp\script.sql
script.sql – название файла, в котором содержатся все SQL-инструкции созданной базы данных. В данном примере файл сохранен в папке temp на диске C.
Дамп базы данных taxi:
Дата добавления: 2020-10-25; просмотров: 319;