Модуль 14. База данных MySQL, язык SQL Flashcards
Виды баз данных
Есть разные виды БД, самые основные это SQL и NoSQL
SQL - это реляционная база данных. Такие БД хранят информацию в строго структурированном виде.
NoSQL - это не реляционная база данных. В ней строгой типизации, данные хранятся в формате документов,
каждый документ - это набор множества взаимосвязанных моделей.
Структура SQL Базы данных
Информация в БД хранится в виде таблиц, в одной БД может быть очень много таблиц.
● Таблица - набор упорядоченных данных по строкам (записям) и столбцам (полям). По своей сути
каждая таблица является отдельным файлом. Можно провести прямую аналогию с Excel таблицей.
● Поля (столбцы) в таблице определяют тип данных для колонки таблицы.
● Запись в таблице - это строка таблице. Каждая запись в одной таблице содержит одинаковый список
полей
Виды таблиц MySQL
InnoDB разрабатывался специально для больших таблиц. Основным отличием от других типов является
поддержка транзакций и внешних ключей.
2
MyISAM одна из основных систем хранения данных наряду с InnoDB, подходит для небольших баз данных
где требуется полнотекстовый поиск и преобладают запросы на чтение.
Установка и настройка MySQL
Чтобы установить базу данных, необходимо установить два пакета. Сервер, установит собственно сам веб-сервер mysql, а клиент, установит необходимые библиотеки, чтобы мы
могли взаимодействовать с базой данных.
sudo apt install mysql-server mysql-client
Запуск сервера БД в консоли
Сервер запускается атоматически, если этого не произошло то используется команда sudo service mysql start
Как настроить работу с БД через php скрипт
Для того, чтобы у нас появилась возможность работать с БД из PHP скрипта, для PHP необходимо установить
расширение для работы с MySQL
sudo apt install php-mysql
Как подключиться к БД в консоли
Для подключения используется команда sudo mysql
если для БД был установлен пароль то сам пароль указывается после опции -p
sudo mysql -pPASSWORD
Как происходит создание БД
Внутри одного сервера SQL может быть множество баз данных. Для создания базы данных используется команда CREATE DATABASE:
CREATE DATABASE IF NOT EXISTS example_db
CHARACTER SET utf8mb4 COLLATE
utf8mb4_general_ci;
IF NOT EXISTS - необязательный параметр, указывает, что база данных будет создана, только в том случае
если не существует базы данных с таким же названием. В случае если база данных существует и данный параметр
не указан, возникнет ошибка выполнения запроса.
CHARACTER SET - Используется для установки кодировки таблиц базы данных.
COLLATE - указывает порядок сортировки. Указанный порядок сортировки должен поддерживаться текущей
кодировкой.
Как получить список всех баз данных SQL сервера
Для отображения списка всех существующих баз данных используется команда SHOW DATABASES.
Как выбрать нужную БД
Выбрать БД можно командоый USE
USE test_db
Удаление БД
Для удаления БД используется команда DROP DATABASE test_db
Можно указать второй не обязательный параметр IF EXISTS чтобы небыло при удалении не существующей БД
Как создать учетную запись в БД
Для создания учетной записи на сервере MySQL используется команда CREATE USER:
CREATE USER ‘php_user’@’%’ IDENTIFIED BY ‘pass’;
● php_user - логин нашего пользователя
● % - это адреса из каких этот пользователь может подключаться, % означает из любых
● pass - его пароль
Выдача прав пользователю
Для этого используется команда GRANT.
GRANT ALL PRIVILEGES ON php_project_db
.* TO ‘php_user’@’%’;
После имени базы данных, указываются таблицы. Можно указать звездочку, это значит, что права выдаются
на все таблицы в этой базе данных. А можно указать и конкретную таблицу.
ALL PRIVILEGES - означает, что пользователю выдаются привилегии на все операции, кроме возможности
выдавать доступ другим пользователям.
Закрепление прав пользователя
После того как были установлены необходимые права для пользователя, необходимо применить изменения,
для этого используется команда:
FLUSH PRIVILEGES;
Подключение к БД от другого пользователя
Чтобы подключиться к mysql под другим пользователем, то необходимо указать опции для команды mysql
mysql -uphp_user -ppass -hlocalhost php_project_db
● После опции -u указывается логин пользователя
● После опции -p указывается пароль пользователя
● После опции -h указывается хост для подключения к бд, в моем случае БД установлена локально,
поэтому можно указать localhost
● А в конце указано название БД, к которой осуществлено подключение