Лабораторная работа № 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? Что представляет собой база данных? Из чего она состоит? Какой командой создается база данных? Какой командой создается таблица базы данных?