Шпаргалка по SQL (обновление 2021 г.)

Содержание

Из этой шпаргалки по SQL-запросам вы узнаете

Создать базу данных и команды таблицы

Командование Описание
СОЗДАТЬ БАЗУ ДАННЫХ; Создать базу данных
СОЗДАТЬ БАЗУ ДАННЫХ НЕ СУЩЕСТВУЕТ database1; ЕСЛИ НЕ СУЩЕСТВУЕТ, позволяет указать серверу MySQL проверить существование базы данных с аналогичным именем перед созданием базы данных.
СОЗДАТЬ БАЗУ ДАННЫХ, ЕСЛИ НЕ СУЩЕСТВУЕТ database1 CHARACTER SET latin1 COLLATE latin1_swedish_ci набор символов Latin1 использует сопоставление latin1_swedish_ci, которое является шведским порядком без учета регистра.
ПОКАЗАТЬ БАЗЫ ДАННЫХ Вы можете увидеть список существующих баз данных, выполнив следующую команду SQL.
СОЗДАТЬ ТАБЛИЦУ [ЕСЛИ НЕ СУЩЕСТВУЕТ] TableName (fieldname dataType [необязательные параметры]) ENGINE = Storage Engine; Создать синтаксис таблицы

ТИПЫ ДАННЫХ

Числовые типы данных

Командование Описание
ТИНИИНТ () -128 до 127 нормальный 0 до 255 НЕ ПОДПИСАНО.
МАЛЕНЬКИЙ () -32768 до 32767 нормальный 0 до 65535 НЕ ПОДПИСАНО.
СРЕДНИЙ () -8388608 до 8388607 нормальный 0 до 16777215 НЕ ПОДПИСАНО.
INT () -2147483648 до 2147483647 нормальный 0 до 4294967295 НЕ ПОДПИСАНО.
BIGINT () -9223372036854775808 до 9223372036854775807 нормальный 0 до 18446744073709551615 НЕ ПОДПИСАНО.
ПЛАВАТЬ Небольшое приблизительное число с плавающей десятичной запятой.
ДВОЙНОЙ( , ) Большое число с плавающей запятой.
ДЕСЯТИЧНЫЙ( , ) DOUBLE хранится в виде строки с фиксированной десятичной точкой. Выбор для хранения валютных ценностей.

Типы текстовых данных

Командование Описание
СИМВОЛ () Фиксированный раздел длиной от 0 до 255 символов.
VARCHAR () Раздел переменной длиной от 0 до 255 символов.
TINYTEXT Строка длиной не более 255 символов.
ТЕКСТ Строка максимальной длиной 65535 символов.
BLOB Строка максимальной длиной 65535 символов.
СРЕДНИЙ ТЕКСТ Строка максимальной длиной 16777215 символов.
СРЕДНИЙ БЛОК Строка максимальной длиной 16777215 символов.
LONGTEXT Строка максимальной длиной 4294967295 символов.
LONGBLOB Строка максимальной длиной 4294967295 символов.

Типы данных даты и времени

Командование Описание
ДАТА ГГГГ-ММ-ДД
ДАТА ВРЕМЯ ГГГГ-ММ-ДД ЧЧ: ММ: СС
TIMESTAMP ГГГГММДДЧЧММСС
ВРЕМЯ ЧЧ: ММ: СС

Другие типы данных

Командование Описание
ENUM Для хранения текстового значения, выбранного из списка предопределенных текстовых значений.
НАБОР Это также используется для хранения текстовых значений, выбранных из списка предопределенных текстовых значений. Может иметь несколько значений.
BOOL Синоним TINYINT (1), используется для хранения логических значений
БИНАРНЫЙ Подобно CHAR, разница в том, что тексты хранятся в двоичном формате.
ВАРБИНАРНЫЙ Подобно VARCHAR, разница в том, что тексты хранятся в двоичном формате.

Команда оператора MySQL SELECT

Командование Описание
ВЫБРАТЬ [ОТЛИЧИТЕЛЬНЫЙ | ВСЕ] {* | [fieldExpression [AS newName]} FROM tableName [псевдоним] [WHERE condition] [GROUP BY fieldName (s)] [HAVING condition] ORDER BY fieldName (s) Синтаксис оператора SQL SELECT
ВЫБРАТЬ * ИЗ таблицы1; выберите стол
ВЫБЕРИТЕ t1, t2, t3, t4 ИЗ таблицы1; нас интересуют только поля t1, t2, t3 и t4.
ВЫБРАТЬ Concat (t1, (, t3,)), t4 ИЗ таблицы2; Получение списка table2
ВЫБЕРИТЕ имя_столбца | значение | выражение [AS] псевдоним; Синтаксис имен полей псевдонимов

Предложение MySQL WHERE с командами AND, OR, IN, NOT IN

Командование Описание
ВЫБЕРИТЕ * ИЗ tableName WHERE условие; Синтаксис предложения WHERE
ВЫБЕРИТЕ * ИЗ таблицы1, ГДЕ t1 = 2 И t2 = 2008; Предложение WHERE в сочетании с оператором - AND LOGICAL
ВЫБРАТЬ * ИЗ таблицы1 ГДЕ t1 = 1 ИЛИ t1 = 2; Предложение WHERE в сочетании с оператором - OR LOGICAL
ВЫБЕРИТЕ * ИЗ таблицы2 ГДЕ t1 В (1,2,3); Предложение WHERE в сочетании с ключевым словом - IN
ВЫБРАТЬ * ИЗ таблицы2, ГДЕ t1 НЕ В (1,2,3); Предложение WHERE в сочетании с - NOT IN Keyword
ВЫБРАТЬ * ИЗ table2 ГДЕ t3 = Женский; Предложение WHERE в сочетании с Equal (=) to COMPARISON OPERATORS
ВЫБЕРИТЕ * ИЗ таблицы3 ГДЕ t3> 2000; Предложение WHERE в сочетании с более чем (>) для COMPARISON OPERATORS
ВЫБРАТЬ * ИЗ таблицы1 ГДЕ t1 <> 1; Предложение WHERE в сочетании с оператором сравнения не равно (<>)

Команда MySQL INSERT INTO Table

Командование Описание
INSERT INTO имя_таблицы (столбец_1, столбец_2,…) ЗНАЧЕНИЯ (значение_1, значение_2,…); базовый синтаксис команды SQL INSERT
ВСТАВИТЬ В таблицу1 (t1, t2, t3, t4) ЗНАЧЕНИЯ (X1, X2, X3, X4); ВСТАВИТЬ данные в таблицу
ВСТАВИТЬ В таблицу_1 ВЫБРАТЬ * ИЗ таблицы_2; Вставка в таблицу из другой таблицы

Команда MySQL DELETE

Командование Описание
УДАЛИТЬ ИЗ имя_таблицы [условие ГДЕ]; Удалить строку в MySQL

Пример: - УДАЛИТЬ ИЗ table1 WHERE table1_id = 18;

(удалить запись из 18 номеров id из таблицы 1.) УДАЛИТЬ ИЗ table1 WHERE table1_id IN (20,21); (удалить запись из 20 и 21 номера id из таблицы1)

Команда обновления MySQL

Командование Описание
ОБНОВЛЕНИЕ имя_таблицы УСТАНОВИТЬ имя_столбца = новое_значение [ГДЕ условие]; синтаксис команды обновления

Пример: - SELECT * FROM table1 WHERE t1 = 1;

(получить запись для t1 = 1) ОБНОВИТЬ table1 SET t4 = X1 WHERE t1 = 1; (обновить значение t4 в таблице)

ORDER BY в MySQL: команда DESC & ASC

Командование Описание
Оператор SELECT… [условие WHERE | ГРУППА ПО именам полей ИМЕЮЩИЕ условие] ORDER BY имена полей [ASC | DESC]; Основной синтаксис упорядочить по предложениям
ВЫБЕРИТЕ {fieldName (s) | *} FROM tableName (s) [WHERE condition] ORDER BY fieldname (s) ASC / DESC [LIMIT N] Синтаксис DESC и ASC

Пример: - Для DESC (по убыванию)

ВЫБРАТЬ * ИЗ table1 ORDER BY t3 DESC; Для ASC (по возрастанию) SELECT * FROM table1 ORDER BY t3 ASC;

MySQL GROUP BY и команда HAVING Clause

Группа по

Командование Описание
Операторы SELECT… GROUP BY имя_столбца1 [, имя_столбца2,…] [условие HAVING]; GROUP BY синтаксис

Пример группировки одного столбца: - ВЫБРАТЬ t4 ИЗ таблицы1;

SELECT t4 FROM table1 GROUP BY t4; (предположим, мы хотим получить уникальные значения для t4.)

Пример группировки нескольких столбцов: - ВЫБЕРИТЕ t1_id, t4 FROM table2;

ВЫБЕРИТЕ t1_id, t4 FROM table2 GROUP BY t1_id, t4; (используя группировку по методу)

Группирующие и агрегатные функции

Командование Описание
ВЫБРАТЬ t2, COUNT (t1) FROM table1 GROUP BY t2; Предположим, нам нужно общее количество значений столбца t2 в нашей базе данных.

Пункт HAVING

Командование Описание
ВЫБРАТЬ * ИЗ table2 ГРУППА ПО t1_id, t4 ИМЕЕТ t1_id = x1; все t4 для table2 t1 id x1. Мы бы использовали следующий сценарий для достижения наших результатов.

Команды подстановочных знаков MySQL для Like, NOT Like, Escape, (%), (_)

% процентная команда подстановочных знаков в MySQL

Командование Описание
Операторы SELECT… WHERE fieldname LIKE xxx%; основной синтаксис для подстановочного знака% процента

Пример: - мы могли бы использовать подстановочный знак процента для выполнения сопоставления с образцом с обеих сторон слова «X1» как части t2 таблицы1 SELECT * FROM table1 WHERE t2 LIKE% X1%;

ВЫБЕРИТЕ * ИЗ таблицы1 ГДЕ t2 КАК% X1; (подстановочный знак процента только в начале критерия поиска) SELECT * FROM table1 WHERE t2 LIKE X1%; (процентный подстановочный знак до конца указанного шаблона, который необходимо сопоставить.)

_ команда подстановочного знака подчеркивания

Командование Описание
ВЫБРАТЬ * ИЗ table1 WHERE t3 LIKE x2_; все table1, которые были t3 в году "x2"

НЕ как команда с подстановочными знаками

Командование Описание
ВЫБРАТЬ * ИЗ таблицы1, ГДЕ t3 НЕ НРАВИТСЯ X2_; Предположим, мы хотим получить table1, которых не было t3 в году X2_

Команда Escape с подстановочными знаками ключевого слова

Командование Описание
НРАВИТСЯ 67 # %% ESCAPE #; мы хотим проверить строку "67%"

Регулярные выражения MYSQL (REGEXP)

Командование Описание
Операторы SELECT… WHERE fieldname REGEXP pattern; базовый синтаксис регулярного выражения

Пример: - все table1 t1, в которых есть слово X1. Не имеет значения, находится ли «X1» в начале, середине или конце заголовка. ВЫБРАТЬ * ИЗ table1 WHERE t1 REGEXP X1;

Метасимволы регулярного выражения

Командование Описание
* Метасимвол звездочка (*) используется для сопоставления нуля (0) или более экземпляров предшествующих ему строк.
+ Метасимвол плюс (+) используется для сопоставления одного или нескольких экземпляров предшествующих ему строк.
? Метасимвол вопроса (?) Используется для сопоставления нуля (0) или одного экземпляра строк, предшествующих ему.
. Метасимвол точка (.) Используется для соответствия любому одиночному символу, за исключением новой строки.
[abc] Список символов [abc] используется для сопоставления любого из заключенных символов.
[^abc] Список символов [abc] используется для сопоставления любых символов, кроме заключенных.
[A-Z] [AZ] используется для соответствия любой заглавной букве.
[a-z] [Az] используется для соответствия любой строчной букве
[0-9] [0-9] используется для сопоставления любой цифры от 0 до 9.
^ Каретка (^) используется для начала совпадения.
| Вертикальная черта (|) используется для выделения альтернатив.
[[:<:]] [[: <:]] Соответствует началу слова.
[[:>:]] [[:>:]] Соответствует концу слова.
[:class:] [: Class:] соответствует классу символов, то есть [: alpha:] соответствует буквам, [: space:] соответствует пробелу, [: punct:] соответствует знакам препинания и [: upper:] соответствует буквам высшего класса.

Команды функций SQL

Строковые функции

Командование Описание
ВЫБРАТЬ t1_id, t2, UCASE (t2) ИЗ таблицы1; функция "UCASE" для этого. Он принимает строку в качестве параметра и преобразует все буквы в верхний регистр.

Числовые функции

Командование Описание Пример
DIV Целочисленное деление ВЫБРАТЬ 23 РАЗД 6;
/ Разделение ВЫБРАТЬ 23/6;
- Вычитание ВЫБРАТЬ 23 - 6;
+ Добавление ВЫБРАТЬ 23 + 6;
* Умножение ВЫБРАТЬ 23 * 6 КАК multiplication_result;
% or MOD Модуль ВЫБРАТЬ 23% 6; или ВЫБРАТЬ 23 MOD 6;
Floor эта функция удаляет десятичные разряды из числа и округляет его до ближайшего наименьшего числа. ВЫБРАТЬ ЭТАЖ (23/6) КАК floor_result;
Round эта функция округляет число с десятичными знаками до ближайшего целого числа. ВЫБРАТЬ КРУГЛЫЙ (23/6) КАК round_result;

Сохраненные функции

Командование Описание
СОЗДАТЬ ФУНКЦИЮ sf_name ([параметр (ы)]) ВОЗВРАЩАЕТ тип данных ДЕТЕРМИНИСТИЧЕСКИЕ ЗАЯВЛЕНИЯ базовый синтаксис для создания сохраненной функции
СОЗДАТЬ ФУНКЦИЮ sf_name ([параметры]) Обязательный и указывает серверу MySQL создать функцию с именем sf_name с необязательными параметрами, указанными в скобках.
RETURNS тип данных Обязательный и указывает тип данных, который должна возвращать функция.
ДЕТЕРМИНИСТИЧЕСКИЙ Функция вернет те же значения, если ей переданы те же аргументы.
ЗАЯВЛЕНИЯ Процедурный код, который выполняет функция.

Команды функции MySQL Aggregate

Командование Описание
ВЫБРАТЬ СЧЕТЧИК (t1_id) ИЗ table1 ГДЕ t1_id = 2; Функция COUNT
ВЫБРАТЬ МИН (t3) ИЗ таблицы2; Функция МИН
ВЫБРАТЬ МАКС (t3) ИЗ таблицы2; Функция МАКС
ВЫБРАТЬ СУММ (t4) ИЗ таблицы3; СУММ (функция СУММ)
ВЫБРАТЬ СРЕДНЕЕ (t4) ИЗ table3; Функция AVG

MySQL IS NULL & IS NOT NULL команды

Командование Описание
ВЫБРАТЬ СЧЕТЧИК (t3) ИЗ таблицы1; (если t3 имеет нулевое значение, которое не учитывается) Нулевое значение как значение
СОЗДАТЬ ТАБЛИЦУ table2 (t1_number int NOT NULL, t2_names varchar (255), t3 varchar (6)); НЕ NULL значения
comlumn_name IS NULL comlumn_name NOT NULL NULL Ключевые слова Базовый синтаксис
ВЫБРАТЬ * ИЗ таблицы1, ГДЕ t2_number IS NULL; Пример IS NULL
ВЫБРАТЬ * ИЗ таблицы1, ГДЕ t2_number НЕ ПУСТО; Пример IS NOT NULL

Команды MySQL AUTO_INCREMENT

Командование Описание
СОЗДАТЬ ТАБЛИЦУ table1 (t1_id int (11) AUTO_INCREMENT, t2_name varchar (150) DEFAULT NULL, t3 varchar (500) DEFAULT NULL, PRIMARY KEY (t1_id)); Синтаксис автоматического увеличения

MYSQL - АЛЬТЕР, УДАЛЕНИЕ, ПЕРЕИМЕНОВАНИЕ, ИЗМЕНЕНИЕ

Командование Описание
ALTER TABLE имя_таблицы ADD COLUMN имя_столбца тип_данных; Альтернативный синтаксис
DROP TABLE sample_table; DROP TABLE синтаксис
ПЕРЕИМЕНОВАТЬ ТАБЛИЦУ current_table_name TO new_table_name; ПЕРЕИМЕНОВАТЬ синтаксис КОМАНДЫ
ALTER TABLE table1 ИЗМЕНИТЬ COLUMN t1_names t1name char (250) NOT NULL; ИЗМЕНИТЬ КЛЮЧЕВОЕ СЛОВО
ALTER TABLE table1MODIFY t1name char (50) NOT NULL; ИЗМЕНИТЬ КЛЮЧЕВОЕ СЛОВО
ALTER TABLE table1 ADD t4 date NULL AFTER t3; ПОСЛЕ КЛЮЧЕВОГО СЛОВА

MySQL LIMIT и OFFSET

Командование Описание
ВЫБЕРИТЕ {имя (а) поля | *} FROM tableName (s) [WHERE condition] LIMIT N; LIMIT синтаксис ключевого слова
ВЫБРАТЬ * ИЗ table1 LIMIT 1, 2; OFF SET в запросе LIMIT

Команды MySQL SubQuery:

Командование Описание
ВЫБЕРИТЕ t1_name ИЗ таблицы1 ГДЕ category_id = (ВЫБЕРИТЕ MIN (t1_id) из таблицы2); подзапросы

Команды MySQL JOINS

Командование Описание
ВЫБРАТЬ * ИЗ table1 CROSS JOIN table2 Кросс JOIN
ВЫБРАТЬ table1.t1, table1.t2, table2.t1 ИЗ table1, table2 ГДЕ table2.id = table1.table2_id ВНУТРЕННЕЕ СОЕДИНЕНИЕ
ВЫБЕРИТЕ A.t1, B.t2, B.t3 ИЗ таблицы2 КАК ЛЕВЫЙ СОЕДИНЕНИЕ table1 КАК B ON B.table2_id = A.id LEFT JOIN
ВЫБЕРИТЕ A.t1, A.t2, B.t3 ИЗ таблицы1 КАК ПРАВИЛЬНОЕ СОЕДИНЕНИЕ с таблицей2 КАК B ON B.id = A.table2_id ПРАВО ПРИСОЕДИНИТЬСЯ
ВЫБЕРИТЕ A.t1, B.t2, B.t3 ИЗ таблицы2 КАК ЛЕВЫЙ СОЕДИНЕНИЕ table1 КАК B ИСПОЛЬЗОВАНИЕ (table2_id) Предложения "ON" и "USING"

Команды MySQL UNION

Командование Описание
ВЫБРАТЬ столбец1, столбец2 ИЗ таблицы1 Синтаксис UNION
ВЫБРАТЬ столбец1, столбец2 ИЗ таблицы2; UNION DISTINCT

MySQL в командах представлений

Командование Описание
CREATE VIEW имя_представления как оператор SELECT; Синтаксис представлений
ОТКАЗАТЬ ПРОСМОТР general_v_movie_rentals; Отбрасывание просмотров

Команды индексации MySQL

Командование Описание
СОЗДАТЬ ИНДЕКС id_index ON имя_таблицы (имя_столбца); Добавить базовый синтаксис индекса
DROP INDEX index_id ON имя_таблицы; Базовый синтаксис удаления индекса

Интересные статьи...