воскресенье, 5 ноября 2017 г.

Уроки MySQL. Знакомство с сервером MySQL. Реляционные БД

SQL - структурированный язык запросов для общения с сервером БД.
Самый распространенный сервер - это MySQL.


Работать с БД удобно через phpMyAdmin.
Самые распространенные типы таблиц - InnoDB и MyISAM. Denwer по умолчанию использует MyISAM.
Во вкладке Учетные записи пользователей можно создать нового пользователя.
Вкладки экспорт и импорт позволяют делать бэкап БД.

Web-сервер не связан с сервером MySQL. Взаимодействовать мы можем, например, через PHP.

Работа с сервером из консоли.
Можно вызов сервера прописать, как службу Windows, чтобы постоянно не указывать доступ к exe файлу.
Идем в панель управления - Система и безопасность - Администрирование — Службы.

Как прописать запуск сервера MySQL в качестве службы Windows?
Для этого нам нужно знать адрес нашего сервера. Например, C:\OSPanel\modules\database\MySQL-5.7-x64\bin

Инсталируем службу
Для Денвера.
"C:\WebServers\usr\local\mysql-5.5\bin\mysqld" --install "mysqld" --defaults-file="C:\WebServers\usr\local\mysql-5.5\my.ini"

Здесь "mysqld" — имя службы, которое мы придумываем сами.
"C:\OSPanel\modules\database\MySQL-5.7-x64\my.ini" — это файл настроек. Это файл my.cnf. Расширение этого файла зависит от системы.

Теперь мы можем обновить службы и увидеть наш файл. Выберем нашу службу. Правой кнопкой мыши отобразим свойства, выберем тип запуска Вручную.

Для запуска службы в консоле набираем: net start mysqld
Для остановки службы: net stop mysqld

Удаление службы через консоль: sc delete имя_службы. Например: sc delete mysqld

При запуске службы возникает ошибка 1067.
Для того, чтобы ее избежать нужно открыть файл my.ini и закомментировать строки:
#tmpdir = /tmp
#socket = /tmp/mysql.sock

Для входа в Mysql-монитор напишем команду:
C:\WebServers\usr\local\mysql-5.5\bin\mysql -u root

Выйдем из монитора: exit

Пропишем путь для быстрого исполнения команд:
Свойства компьютера - Дополнительные параметры системы - Переменные среды — Системные переменные — Path – Изменить.
Добавляем наш новый путь к файлу mysql: C:\WebServers\usr\local\mysql-5.5\bin\
Обязательно перезапускаем консоль!

Теперь войти в монитор Mysql-монитор можно быстрее. Напишем команду: mysql -u root
Выход: exit
Для справки ввести: \h


Набор признаков реляционной БД
1.Данные хранятся в двумерных таблицах, состоящих из столбцов (поля) и строк (ряды).
2.На пересечении ряда и поля содержится только 1 значение.
3.Поля имеют имя, и значения в поле должны быть одного типа.
4.Поля в таблицах расположены в порядке, определенном при создании и должно быть как минимум 1 поле.
5.Сервер возвращает результат запроса в виде таблиц.

В БД должна быть целостность.
Первичный ключ - это ограничитель.
Первичный ключ - параметр, который уникальным образом идентифицирует запись.
У него 2 свойства: уникальность (неповторяемость) и вечность (при удалении записи пропадает и первичный ключ).
Обычно это целые числа.
Сервер не позволит добавить записи с одним и тем же ключом.

Создадим в phpMyAdmin новую БД.
Адрес phpMyAdmin: http://localhost/Tools/phpMyAdmin/

Базы данных - Создать базу данных.
Вводим имя: sql

Сравнения.
Чем отличаются bin от ci?
Эти окончания - способ сравнения строк.
utf8_bin - бинарный, регистр берется в расчет. user !== User Выбирают для поля, где храниться логин и пароль.
utf8_genral_ci - регисторонезависимый. user == User

Создадим таблицу в БД.
Таблица продавцов salers с 4 полями.

snum - идентификатор продавца.
sname - имя продавца
city - город, в котором расположен продавец
comm - комисионные продавца.

snum: int primary ai
sname: varchar(50)
city: varchar(50)
comm: decimal(3,2)
Тип таблиц: MyISAM

DECIMAL, например, 0.2
Для INT указывать длину не обязательно. Здесь всегда храниться 11 символов.
Напрмер, длина decimal.
decimal(5.2), где 5 - кол-во знаков, которое будет храниться в поле, 2 - кол-во знаков после запятой. Например число 999.99
decimal(точность.масштаб)
Масштаб не может быть больше точности.

По умолчанию - что будет храниться в поле.
Сравнение - можно сделать разное для каждой записи.
Null - отсутствие значения. Это значит, что поле незаполнено.
Index - ключи.
AI - сервер будет увеличивать значение поля на единицу.
MIME-тип - для разных типов хранимых данных. Допустим, фотографий.

Создаем таблицу заказчиков customers с 5 полями.
cnum
cname
city
rating
snum - внешний ключ для связывания таблицы клиентов с таблицей продавцов

cnum int primary
cname varchar(50)
city varchar(50)
rating int
snum int

Создадим таблицу заказов из консоли.
net start mysqld
mysql -u root

Посмотрим на БД:
SHOW DATABASES;

Выберем БД: use sql

Посмотрим созданные таблицы: show tables;

Создадим таблицу:
CREATE TABLE orders (
onum INT(11) NOT NULL,
amt DECIMAL(6,2) NOT NULL,
odate DATE NOT NULL,
cnum INT(11) NOT NULL,
snum INT(11) NOT NULL,
PRIMARY KEY(onum)
) ENGINE=MyISAM;

Выходим из службы:
exit

net stop mysqld

Комментариев нет:

Отправить комментарий

Materialize-css. Футер

Сделаем футер и прижмем к низу страницы. Документация: https://materializecss.com/footer.html