Лабораторная работа № 2
Знакомство с СУБД MySQL
Целью лабораторной работы является первоначальное знакомство с СУБД MySQL.
В ходе выполнения предыдущей лабораторной работы мы установили и настроили для совместной работы веб-сервер Apache, скриптовый язык программирования PHP и СУБД MySQL.
Заметим, что каждый из установленных компонентов может работать самостоятельно.
Рассмотрим принципы работы с СУБД MySQL в режиме командной строки.
Внимание! Проверьте, запущен ли сервер баз данных MySQL
(Панель управления>Администрирование>Службы).
Если служба сервера не запущена, запустите ее.
После запуска службы сервер работает и готов отвечать на запросы к базам данных.
Запросы к базам данных можно отправлять с использованием различных интерфейсов. В нашем курсе мы будем использовать для отправки запросов к базам данных язык PHP. С помощью PHP, html, css, JavaScript научимся разрабатывать простой интерфейс пользователя для работы с базами данных.
В данной лабораторной работе научимся работать с базами данных MySQL, используя интерфейс командной строки, предоставляемый встроенной утилитой mysql. exe.
1. Запуск утилиты mysql. exe
Утилита mysql. exe находится в папке Вin папки, в которую установлен сервер MySQL.
(Например, C:\Program Files\MySQL\MySQL Server 5.7\bin).
1.1. Прописать путь к утилите mysql. exe в системной переменной Path.
Для того, чтобы иметь возможность запуска этой утилиты из любой папки, необходимо прописать путь к ней в системной переменной Path, которая содержит пути к различным программам (Пуск>Панель управления>Система>Дополнительные параметры>Переменные среды)

Нажать кнопку Изменить, и в открывшемся окне в поле ввода, в конце добавить путь к папке, содержащей утилиту mysql. exe (т. е. C:\Program Files\MySQL\MySQL Server 5.7\bin).
Внимание! Различные пути в переменной Path отделяются друг от друга точкой с запятой (";").
После сохранения переменной окружения Path с внесенными изменениями, утилита mysql. exe доступна для запуска из любой папки.
Запустите Командную строку (Окно команд) Windows (cmd. exe).
При этом откроется Окно командной строки с именем пользователя (например, User1), приглашением “>” и текстовым курсором:
C:\users\User1>_
1.3. Для доступа к интерфейсу командной строки MySQL, необходимо из командной строки Windows запустить утилиту mysql. exe с параметрами (ключами). Подробный список всех параметров запуска утилиты можно получить командой:
C:\users\User1>mysql. exe --help
Рассмотрим два параметра запуска, без которых доступ к интерфейсу командной строки, а, следовательно, и к СУБД MySQL, невозможен:
-u <имя пользователя> – этот параметр позволяет указать пользователя, с привилегиями которого мы хотим получить доступ к СУБД MySQL.
-p <пароль> – пароль для аутентификации пользователя.
Запустите утилиту mysql. exe следующим образом
mysql - u root - p
Внимание! Для обеспечения безопасности, непосредственно после ключа «-p» пароль не указывается, в этом случае утилита запросит пароль после запуска, отдельно, но при этом вводимые символы пароля на экран выводиться не будут.
В случае правильного ввода имени пользователя и пароля запустится интерфейс командной строки MySQL, который при запуске имеет примерно следующий вид:

В приведенном выше приветствии MySQL сообщает нам, что каждая команда должна завершаться “;” или “\g”, а также: идентификатор нашего соединения с СУБД (16), версию сервера БД (5.5.31), подсказку для запуска помощи. При этом приглашение командной строки Windows изменилось на приглашение командной строки MySQL (mysql>). Это значит, что мы больше не в интерпретаторе команд операционной системы, а в интерфейсе командной строки СУБД MySQL.
2. Работа с СУБД MySQL в режиме командной строки
После успешного запуска утилиты mysql. exe можно задавать команды СУБД MySQL в режиме командной строки.
Замечание. Надо понимать, что командная строка СУБД MySQL не является частью сервера, а является клиентским приложением по отношению к серверу. Поэтому, прежде всего, необходимо указать серверу, в какой кодировке (наборе символов) работает клиентская программа. Это необходимо для того, чтобы сервер при отправке данных клиентскому приложению (или при получении данных от клиентского приложения) преобразовывал их в нужную кодировку.
Утилита mysql. exe работает в кодировке ASCII, поэтому первая команда, которую мы даем – это команда указания кодировки:
mysql> set names cp866;
Следующей командой запросим список баз данных на сервере
mysql> show databases;
Система выдаст список баз данных имеющихся на сервере.
Замечание. На самом деле, система выдает список только тех баз данных, к которым у нас (у пользователя, под чьим именем мы подключились) есть доступ.
C точки зрения СУБД MySQL база данных - это множество (хранилище) таблиц. В терминологии ОС - папка, в которой хранятся таблицы - файлы (кстати, на жестком диске это так и выглядит) Все базы данных хранятся в папке C:\ProgramData\MySQL\MySQL Server x. x\data
Задание сверьте список баз данных, выданный командой show databases со списком папок-баз в папке C:\ProgramData\MySQL\MySQL Server x. x\data.
По аналогии с папками, одна из баз данных может быть текущей (активной).
При соединении с СУБД MySQL ни одна из баз не является активной и для того чтобы обратиться к таблице необходимо перед именем таблицы указывать базу данных, разделив имена точкой (my_database. my_table).
Чтобы сделать какую-либо базу данных активной необходимо дать команду use <имя БД>, например:
mysql> use my_database;
После выполнения этой команды база данных "my_database" становится активной, т. е. мы как-бы находимся внутри нее (как внутри папки). И теперь к таблицам этой базы данных можно обращаться без указания базы данных.
Создадим новую базу данных с именем "proba". Для этого используется оператор SQL
create database <имя БД>
После создания базы данных сделайте ее активной
Теперь создадим простенькую таблицу содержащую список дисциплин с именем disc. Таблица будет содержать два поля: идентификатор дисциплины (целое число) и наименование дисциплины (строка длиной 100 символов). Подробнее создание таблиц рассмотрим в следующей лабораторной работе, а сейчас просто создадим таблицу из двух полей (столбцов), используя оператор SQL create table, в режиме командной строки:
create table disc (id int unsigned primary key auto_increment, name char(100), unique key(name));
Для выхода из утилиты mysql. exe необходимо ввести команду quit или exit:
mysql> exit;
Задания
1. Создайте в режиме командной строки таблицы похожей структуры (имеющие такие же поля), но с разными именами: список групп, список специальностей.
2. Создайте таблицу, содержащую список студентов (придумайте имя таблицы и подумайте, какие в ней могут быть поля).
3. Посмотрите список таблиц в базе данных командой show tables.
4. Посмотрите список полей в таблице студентов (например, таблица stud) командой: show columns from stud;
Вопросы
Что такое аутентификация? Что такое кодировка? Чем отличается кодировка cp866 от кодировки utf-8? Что представляет собой база данных? Из чего она состоит? Какой командой создается база данных? Какой командой создается таблица базы данных?

