Перейти к содержанию
CMSTOOLS.org - форум поддержки и развития CMS

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


timbios

Рекомендуемые сообщения

Для создания таблиц в 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;

 

 

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

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

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...