Команды MySQL
Для работы с базами данных используется специальный язык SQL. В нем есть команды для самых разных задач.
Создание баз данных
Для создания новой базы данных с именем my_db и кодировкой utf8 следует использовать команду:
CREATE DATABASE my_db CHARACTER SET utf8 COLLATE utf8_general_ci;
При успешном выполнении команды будет выведено сообщение:
Чтобы теперь работать с этой базой нужно выполнить:
USE my_db;
Если вы работаете в панели phpMyAdmin, то достаточно просто выбрать базу my_db в списке слева, а затем перейти во вкладку SQL. Теперь запросы будут выполняться непосредственно для этой базы данных.
Теперь поработаем с самой базой.
Создание таблиц
Чтобы в базе создать таблицу используется команда CREATE TABLE. При этом нужно описать столбцы, которые будут у этой таблицы. Давайте создадим табличку, в которой будут храниться пользователи. У каждого пользователя будет идентификатор, email и имя:
CREATE TABLE `users` (
`id` INT NOT NULL AUTO_INCREMENT ,
`email` VARCHAR(255) NOT NULL ,
`name` VARCHAR(255) NOT NULL ,
PRIMARY KEY (`id`),
UNIQUE (`email`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
В нашем примере id, name, email - это имена столбцов.
INT, VARCHAR(255) - типы данных (после этого абзаца идет табличка со всеми типами данных, доступных в MySQL)).
NOT NULL означает, что поле не может иметь значение NULL (или другими словами, оно всегда должно иметь какое-то значение).
Помимо этого для таблицы можно задать PRIMARY KEY (первичный ключ) - это столбец, значения в котором будут всегда уникальными (к примеру - ID записи).
AUTO_INCREMENT можно указать для первичного ключа, тогда при добавлении новых записей это поле будет заполняться автоматически. При добавлении первой записи он будет равен 1, потом 2 и т.д.
UNIQUE(имя столбца) - создание уникального индекса (об индексах мы поговорим позже). Уникальный индекс накладывает ограничения на уникальность значений в рамках столбца email. Это мы делаем для того, чтобы у двух разных пользователей нельзя было задать одинаковый email.
Типы данных
Обозначение | Занимаемый объем (байт) | Область применения |
---|---|---|
TINYINT, BOOL | 1 | При использовании в формате представления без знака позволяет хранить значения от 0 до 255; в противном случае — от -128 до 127. В будущем должен быть предусмотрен новый логический тип, но до сих пор для представления логических значений использовался тип данных TINYINT, т.е. BOOL синоним TINYINT(1) |
SMALLINT | 2 | Целое число в диапазоне от -32768 до 32767 |
MEDIUMINT | 3 | Целое число в диапазоне от -8388608 до 8388607 |
INT, INTEGER | 4 | Целое число в диапазоне от -2e32 до 2e32 - 1 |
BIGINT | 8 | Целое число в диапазоне от -2e64 до 2e64 - 1 |
FLOAT | 4 | Число с плавающей точкой одинарной точности |
DOUBLE | 8 | Число с плавающей точкой двойной точности |
DECIMAL | Произвольное, в зависимости от точности | Распакованное число с плавающей точкой, которое хранится в таком же формате, как CHAR. Используется для представления небольших десятичных значений, таких как денежные суммы |
DATE | 3 | Отображается в формате YYYY-MM-DD |
DATETIME, TIMESTAMP | 8 | Отображается в формате YYYY-MM-DD HH:MM:SS |
TIME | 3 | Отображается в формате HHH:MM:SS, где HHH — значение от -838 до 838. Это позволяет применять значения типа time для представления продолжительности времени между двумя событиями |
YEAR | 1 | Отображается в формате YYYY, который представляет значения от 1901 до 2155 |
CHAR | N байт | Строка постоянной длины. Строка, имеющая длину меньше объявленной, дополняется справа пробелами. Значение N должно быть меньше или равно 255 |
VARCHAR | N байт | Строка переменной длины. |
BINARY | N байт | Сохраняет байтовые строки |
TINYBLOB, TINYTEXT | до 255 | Сохраняет строки, операции сортировки и сравнения данных типа blob выполняются с учетом регистра; операции с данными типа text — без учета регистра |
BLOB, TEXT | до 64 Кбайт | Длинные строки |
MEDIUMBLOB, MEDIUMTEXT | до 16 Мбайт | Длинные строки |
LONGBLOB, LONGTEXT | до 4 Гбайт | Длинные строки |
ENUM(value1, ..., valueN) | 1 или 2 | Коллекция значений (65536 возможных значений) |
SET(value1, ..., valueN) | до 8 | Коллекция значений (64 возможных значений) |
Описание структуры таблицы
Чтобы посмотреть структуру новой таблицы введите:
DESCRIBE users;
После создания таблиц их можно изменять, вот несколько полезных команд для изменения их структуры:
Переименование таблицы
ALTER TABLE имя_таблицы RENAME новое_имя_таблицы
Добавление столбца
ALTER TABLE имя_таблицы ADD имя_столбца тип_данных
Переименование столбца
ALTER TABLE имя_таблицы RENAME COLUMN старое_имя_столбца TO новое_имя_столбца;
Удаление столбца
ALTER TABLE имя_таблицы DROP имя_столбца
Удаление всей таблицы
DROP TABLE имя таблицы;
Это основные и самые частоиспользуемые команды. Если нужно что-то еще - гуглится без проблем.
В этом уроке мы разобрали команды для работы со структурой таблиц. В следующем уроке мы научимся работать с данными этих таблиц.
Комментарии