Jump to content

Шпаргалка по MySQL


timbios
 Share

Recommended Posts

Для создания таблиц в MySQL используется следующий формат:

CREATE DATABASE db_name CHARACTER SET utf8 COLLATE utf8_general_ci;

При успешном выполнении команды будет выведено сообщение:

202004110b1963536440e382e8c26b0bc8b035ec

Чтобы в базе создать таблицу используется команда 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) - типы данных

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 имя таблицы;

 

Добавление данных в таблицу

Для добавления данных используется запрос INSERT. Синтаксис:

INSERT INTO имя_таблицы ([столбцы]) VALUES ([значения]);

 

Запрос данных из таблицы

Данные из таблиц получают с помощью запроса SELECT.
Самый простой запрос, позволяющий просмотреть записи таблицы, выглядит так:

SELECT * FROM users;

Звездочка означает взять все столбцы таблицы

 

Если нам не нужен в результате id, можно написать так:

SELECT name, email FROM users;

 

Для ограничения выдачи используется ключевое слово LIMIT. Выведем только первые 2 записи.

SELECT * FROM users LIMIT 2;

Для того, чтобы выполнить смещение на 2 записи, нужно использовать ключевое слово OFFSET.

SELECT * FROM users LIMIT 2 OFFSET 2;

Таким образом мы пропустили 2 первые записи и ограничили выборку двумя следующими записями.

Чтобы вывести следующие 2 нужно увеличить смещение еще на 2, изменив значение OFFSET:

SELECT * FROM users LIMIT 2 OFFSET 4;

С помощью OFFSET и LIMIT реализуется пагинация записей.

 

DISTINCT (переводится с английского как "индивидуальный", "отдельный"). Используется, чтобы оставить не повторяющиеся записи.

SELECT DISTINCT name FROM users;

 

Если нужно отфильтровать значения по какому-то условию, используется WHERE. Например:

SELECT * FROM users WHERE name = "Иван";

Используя операторы AND и OR можно задать несколько условий.

SELECT * FROM users WHERE name = "Иван" OR name = "Ольга";

С помощью ключевого слова NOT можно инвертировать условие:

SELECT * FROM users WHERE NOT name = "Ольга";

 

Сортировка

Для сортировки значений используется ключевое слово ORDER BY. По умолчанию ORDER BY делает сортировку в порядке возрастания (ASC).

SELECT * FROM users ORDER by name;

Если нужно отсортировать в обратном порядке нужно добавить ключевое слово DESC:

SELECT * FROM users ORDER by name DESC;

 

 

Это основные и самые часто используемые команды. Если нужно что-то еще - гуглится без проблем.

Автор статьи: Артём Ивашкевич

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

×
×
  • Create New...