SQL Cheat Sheet Intro Image


В этом руководстве вы найдете полезную шпаргалку, которая документирует некоторые из наиболее часто используемых элементов SQL, и даже некоторые из менее распространенных. Надеемся, что это поможет разработчикам – как начинающим, так и опытным – стать более опытными в понимании языка SQL..

Используйте это в качестве краткого справочного пособия во время разработки, учебного пособия или даже распечатайте его и свяжите, если хотите (что работает!).

Но прежде чем мы перейдем к самой шпаргалке, для разработчиков, которые могут быть не знакомы с SQL, давайте начнем с…

Что такое SQL

SQL расшифровывается как язык структурированных запросов. Это язык, который предпочитают сегодня в Интернете для хранения, обработки и извлечения данных в реляционных базах данных. Большинство, если нет все из сайтов, которые вы посещаете, будет использовать его каким-либо образом, в том числе это один.

Вот как выглядит базовая реляционная база данных. В этом примере, в частности, хранится информация об электронной торговле, в частности о продаваемых продуктах, пользователях, которые их покупают, и записях этих заказов, которые связывают эти 2 объекта..

Основная реляционная база данных

Используя SQL, вы можете взаимодействовать с базой данных путем написания запросов, которые при выполнении возвращают любые результаты, соответствующие его критериям..

Вот пример запроса:-

SELECT * FROM пользователей;

Используя эту инструкцию SELECT, запрос выбирает все данные из всех столбцов пользовательской таблицы. Затем он будет возвращать данные, подобные приведенным ниже, которые обычно называются набором результатов:-

Пример таблицы пользователей

Если бы мы заменили подстановочный знак звездочки (*) вместо конкретных имен столбцов, только данные из этих столбцов будут возвращены из запроса.

ВЫБЕРИТЕ first_name, last_name ОТ пользователей;

Пример таблицы пользователей с уменьшенными столбцами

Мы можем немного усложнить стандартную инструкцию SELECT, добавив предложение WHERE, которое позволяет фильтровать возвращаемое значение..

ВЫБЕРИТЕ * ИЗ ПРОДУКТОВ, ГДЕ stock_count <= 10 ORDER BY stock_count ASC;

Этот запрос вернет все данные из таблицы продуктов со значением stock_count меньше 10 в наборе результатов.

Использование ключевого слова ORDER BY означает, что результаты будут упорядочены по столбцу stock_count, от самых низких значений до самых высоких..

Пример таблицы продуктов

Используя оператор INSERT INTO, мы можем добавить новые данные в таблицу. Вот базовый пример добавления нового пользователя в таблицу users:-

INSERT INTO пользователи (имя, фамилия, адрес, адрес электронной почты)
ЦЕННОСТИ («Тестер», «Шут», «123 Fake Street, Шеффилд, Великобритания», «[электронная почта защищена]»);

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

Пример таблицы с новой строкой

Конечно, эти примеры демонстрируют лишь очень небольшой выбор того, на что способен язык SQL.

SQL против MySQL

Возможно, вы слышали о MySQL раньше. Важно, чтобы вы не путали это с самим SQL, поскольку есть явное различие.

SQL против MySQLSQL это язык. Он описывает синтаксис, который позволяет вам писать запросы, которые управляют реляционными базами данных. Ничего больше.

MySQL Между тем это база данных система который работает на сервере. Это инвентарь язык SQL, позволяющий вам писать запросы, используя его синтаксис для управления базами данных MySQL.

Помимо MySQL, существуют и другие системы, которые реализуют SQL. Вот некоторые из наиболее популярных:

  • PostgreSQL
  • SQLite
  • База данных Oracle
  • Microsoft SQL Server

Установка MySQL

Windows

Рекомендуемый способ установки MySQL в Windows - использовать установщик, который можно загрузить с Веб-сайт MySQL.

Установите MySQL Windows

MacOS

В macOS рекомендуемый способ установки MySQL - использовать нативные пакеты, что звучит намного сложнее, чем на самом деле. По сути, это также включает в себя просто загрузку монтажник.

Установите MySQL Mac

В качестве альтернативы, если вы предпочитаете использовать менеджеры пакетов, такие как Homebrew, Вы можете установить MySQL так:

заварить установить MySQL

Хотя если вам нужно установить более старую версию MySQL 5.7, которая до сих пор широко используется в Интернете, вы можете:

brew install [электронная почта защищена]

Использование MySQL

Теперь, когда MySQL установлен в вашей системе, чтобы как можно быстрее приступить к написанию SQL-запросов, рекомендуется использовать приложение управления SQL, чтобы сделать управление базами данных намного проще и проще..

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

  • MySQL Workbench разработан Oracle, владелец MySQL.
  • HeidiSQL (Рекомендуется Windows) это бесплатное приложение с открытым исходным кодом для Windows. Для пользователей MacOS и Linux, Вино сначала требуется в качестве предварительного условия.
  • PhpMyAdmin это очень популярная альтернатива, которая работает в веб-браузере.
  • Сиквел Про (Рекомендуется macOS) является единственной альтернативой macOS, и мы любим ее благодаря понятному и простому в использовании интерфейсу.

Если вы готовы начать писать собственные запросы SQL, а не тратить время на создание собственной базы данных, рассмотрите возможность импорта фиктивных данных..

Веб-сайт MySQL предоставляет ряд фиктивные базы данных что вы можете скачать бесплатно, а затем импортировать в приложение SQL.

Макетная база данных MySQL

Наш любимый из них это Мир база данных, которая предоставляет некоторые интересные данные для практики написания запросов SQL. Вот скриншот таблицы стран в Sequel Pro.

Пример Sequel Pro

Этот пример запроса возвращает все страны с королевой Елизаветой II в качестве главы государства..

Пример Sequel Pro

В то время как этот возвращает все европейские страны с населением более 50 миллионов вместе со своей столицей и населением.

Пример Sequel Pro

И этот последний возвращает средний процент говорящих на французском языке в странах, где общее количество говорящих на французском языке превышает 10%.

Пример Sequel Pro

Шпаргалка

Ключевые слова

Коллекция ключевых слов, используемых в операторах SQL, описание и, где это уместно, пример. Некоторые из более продвинутых ключевых слов имеют свои собственные специальные разделы позже в шпаргалке..

Где MySQL упоминается рядом с примером, это означает, что этот пример применим только к базам данных MySQL (в отличие от любой другой системы баз данных).

Ключевые слова SQL
Ключевое словоОписание
ДОБАВИТЬДобавляет новый столбец в существующую таблицу.

Пример: Добавляет новый столбец с именем «адрес электронной почты» в таблицу с именем «пользователи».

Пользователи ALTER TABLE
ДОБАВИТЬ email_адрес varchar (255);
ДОБАВИТЬ ОГРАНИЧЕНИЕОн создает новое ограничение для существующей таблицы, которое используется для указания правил для любых данных в таблице..

Пример: Добавляет новое ограничение PRIMARY KEY с именем «user» для столбцов ID и SURNAME.

Пользователи ALTER TABLE
ADD CONSTRAINT user PRIMARY KEY (идентификатор, фамилия);
ALTER TABLEДобавляет, удаляет или редактирует столбцы в таблице. Он также может быть использован для добавления и удаления ограничений в таблице, как указано выше.

Пример: Добавляет новый логический столбец с именем «утвержден» в таблицу с именем «сделок».

ALTER TABLE предложения
ДОБАВИТЬ утвержденный логический;

Пример 2: Удаляет столбец «утвержден» из таблицы «сделок».

ALTER TABLE предложения
DROP COLUMN утвержден;
ALTER COLUMNИзменяет тип данных столбца таблицы.

Пример: В таблице «users» сделайте столбец «incept_date» в виде «datetime».

Пользователи ALTER TABLE
ALTER COLUMN incept_date datetime;
ВСЕВозвращает true, если все значения подзапроса соответствуют условию.

Пример: Возвращает пользователей с большим количеством задач, чем пользователь с наибольшим количеством задач в отделе кадров (id 2)

ВЫБЕРИТЕ имя, фамилию, tasks_no
ОТ пользователей
WHERE tasks_no> ALL (ВЫБЕРИТЕ задачи от пользователя WHERE Department_id = 2);
А ТАКЖЕИспользуется для объединения отдельных условий в предложении WHERE.

Пример: Возвращает события, расположенные в Лондоне, Великобритания

SELECT * FROM events
ГДЕ host_country = 'Великобритания' И host_city = 'Лондон';
ЛЮБЫЕВозвращает true, если любое из значений подзапроса удовлетворяет заданному условию.

Пример: Возвращает продукты из таблицы продуктов, которые получили заказы - хранятся в таблице заказов - в количестве более 5.

ВЫБЕРИТЕ имя
ИЗ продуктов
ГДЕ productId = ЛЮБОЙ (ВЫБЕРИТЕ productId ИЗ ЗАКАЗОВ, ГДЕ КОЛИЧЕСТВО> 5);
В ВИДЕПереименовывает таблицу или столбец со значением псевдонима, которое существует только на время запроса.

Пример: Столбец alises north_east_user_subscription

ВЫБЕРИТЕ north_east_user_subscription AS ne_subs
ОТ пользователей
ГДЕ ne_subs> 5;
ASCИспользуется с ORDER BY для возврата данных в порядке возрастания.

Пример: Яблоки, бананы, персики, редька

МЕЖДУВыбирает значения в заданном диапазоне.

Пример 1: Выбирает запас с количеством от 100 до 150.

ВЫБРАТЬ * ИЗ ПРОДАЖ
ГДЕ КОЛИЧЕСТВО МЕЖДУ 100 И 150;

Пример 2: Выбирает запас с количеством NOT между 100 и 150. В качестве альтернативы, использование ключевого слова NOT здесь меняет логику и выбирает значения вне заданного диапазона..

ВЫБРАТЬ * ИЗ ПРОДАЖ
ГДЕ КОЛИЧЕСТВО НЕ МЕЖДУ 100 И 150;
ДЕЛОИзменить вывод запроса в зависимости от условий.

Пример: Возвращает пользователей и их подписки, а также новый столбец с именем Activity_levels, который определяет количество подписок..

ВЫБЕРИТЕ имя, фамилию, подписку
СЛУЧАЙ, КОГДА подписка> 10 ТОГДА «Очень активно»
КОГДА КОЛИЧЕСТВО ОТ 3 И 10 ПОСЛЕ «Активных»
ELSE 'Неактивный'
END AS
ОТ пользователей;
ЧЕК ОБ ОПЛАТЕДобавляет ограничение, ограничивающее значение, которое можно добавить в столбец.

Пример 1 (MySQL): Убедитесь, что все пользователи, добавленные в таблицу пользователей, старше 18 лет.

CREATE TABLE пользователей (
имя_арчар (255),
возраст int,
ПРОВЕРЬТЕ (возраст> = 18)
);

Пример 2 (MySQL): Добавляет проверку после того, как таблица уже была создана.

Пользователи ALTER TABLE
ДОБАВИТЬ ПРОВЕРКУ (возраст> = 18);
СОЗДАТЬ БАЗУ ДАННЫХСоздает новую базу данных.

Пример: Создает новую базу данных с именем «websitesetup».

Создание базы данных сайта;
СОЗДАТЬ СТОЛСоздает новую таблицу .

Пример: Создает новую таблицу с именем «users» в базе данных «websitesetup»..

CREATE TABLE пользователей (
id int,
имя_арчар (255),
фамилия варчар (255),
адрес varchar (255),
contact_number int
);
ДЕФОЛТУстанавливает значение по умолчанию для столбца;

Пример 1 (MySQL): Создает новую таблицу с именем Products, которая имеет столбец имени со значением по умолчанию «Placeholder Name» и столбец available_from со значением по умолчанию на сегодняшнюю дату.

CREATE TABLE продукты (
id int,
name varchar (255) ПО УМОЛЧАНИЮ 'Имя заполнителя',
доступно_ от даты ПО УМОЛЧАНИЮ ПО УМОЛЧАНИЮ ()
);

Пример 2 (MySQL): То же, что и выше, но редактирование существующей таблицы.

Продукты ALTER TABLE
ALTER name SET DEFAULT «Заполнитель имени»,
ALTER available_from SET DEFAULT GETDATE ();
УДАЛЯТЬУдалить данные из таблицы.

Пример: Удаляет пользователя с user_id 674.

УДАЛИТЬ ОТ пользователей, ГДЕ user_id = 674;
DESCИспользуется с ORDER BY для возврата данных в порядке убывания.

Пример: Редька, персики, бананы, яблоки

КАПЕЛЬНАЯ КОЛОННАУдаляет столбец из таблицы.

Пример: Удаляет столбец first_name из таблицы users.

Пользователи ALTER TABLE
DROP COLUMN first_name
DROP DATABASEУдаляет всю базу данных.

Пример: Удаляет базу данных с именем «websitesetup».

Настройка сайта DROP DATABASE;
DROP DEFAULTУдаляет значение по умолчанию для столбца.

Пример (MySQL): Удаляет значение по умолчанию из столбца «имя» в таблице «продукты»..

Продукты ALTER TABLE
ALTER COLUMN name DROP DEFAULT;
DROP TABLEУдаляет таблицу из базы данных.

Пример: Удаляет таблицу пользователей.

Пользователи DROP TABLE;
СУЩЕСТВУЕТПроверяет наличие любой записи в подзапросе, возвращая значение true, если возвращается одна или несколько записей.

Пример: Перечисляет любые дилерские центры с процентом финансирования сделки менее 10.

ВЫБЕРИТЕ имя дилера
ОТ дилерских центров
ГДЕ СУЩЕСТВУЕТ (ВЫБЕРИТЕ deal_name FROM предложения, ГДЕ дилерский_д = deal.dealership_id И finance_percentage < 10);
ОТУказывает, из какой таблицы выбрать или удалить данные.

Пример: Выбирает данные из таблицы пользователей.

SELECT area_manager
FROM area_managers
ГДЕ СУЩЕСТВУЕТ (ВЫБЕРИТЕ ProductName ИЗ ПРОДУКТОВ, ГДЕ area_manager_id = deals.area_manager_id И Цена < 20);
ВИспользуется вместе с предложением WHERE как сокращение для нескольких условий ИЛИ.

Так что вместо:-

ВЫБРАТЬ * ОТ пользователей
ГДЕ страна = 'США' ИЛИ ​​страна = 'Великобритания' ИЛИ ​​страна = 'Россия' ИЛИ ​​страна = 'Австралия';

Ты можешь использовать:-

ВЫБРАТЬ * ОТ пользователей
ГДЕ страна В («США», «Великобритания», «Россия», «Австралия»);
ВСТАВИТЬ ВДобавить новые строки в таблицу.

Пример: Добавляет новый автомобиль.

INSERT INTO автомобили (марка, модель, пробег, год)
ЦЕННОСТИ («Ауди», «А3», 30000, 2016);
НУЛЕВОЙТесты на пустые (NULL) значения.

Пример: Возвращает пользователей, которые не дали контактный номер.

ВЫБРАТЬ * ОТ пользователей
ГДЕ contact_number IS NULL;
НЕ НУЛЬРеверс NULL. Тесты для значений, которые не являются пустыми / NULL.
ПОДОБНОВозвращает true, если значение операнда соответствует шаблону.

Пример: Возвращает true, если имя пользователя в начале заканчивается на «сын».

ВЫБРАТЬ * ОТ пользователей
ГДЕ first_name НРАВИТСЯ '% son';
НЕВозвращает true, если запись НЕ соответствует условию.

Пример: Возвращает true, если имя пользователя не заканчивается на «сын».

ВЫБРАТЬ * ОТ пользователей
ГДЕ first_name НЕ НРАВИТСЯ '% son';
ИЛИИспользуется вместе с WHERE для включения данных, когда выполняется любое условие.

Пример: Возвращает пользователей, которые живут в Шеффилде или Манчестере.

ВЫБРАТЬ * ОТ пользователей
ГДЕ город = «Шеффилд» ИЛИ «Манчестер»;
СОРТИРОВАТЬ ПОИспользуется для сортировки данных результатов по возрастанию (по умолчанию) или по убыванию с использованием ключевых слов ASC или DESC..

Пример: Возвращает страны в алфавитном порядке.

ВЫБРАТЬ * ИЗ СТРАН
ЗАКАЗАТЬ по имени;
ROWNUMВозвращает результаты, в которых номер строки соответствует пройденному условию..

Пример: Возвращает топ 10 стран из таблицы стран.

ВЫБРАТЬ * ИЗ СТРАН
ГДЕ ROWNUM <= 10;
ВЫБРАТЬИспользуется для выбора данных из базы данных, которые затем возвращаются в набор результатов.

Пример 1: Выбирает все столбцы из всех пользователей.

SELECT * FROM пользователей;

Пример 2: Выбирает столбцы имя и фамилия из всех пользователей.

ВЫБЕРИТЕ имя, фамилию ОТ пользователей;
ВЫБЕРИТЕ DISTINCTТо же, что и SELECT, но исключены повторяющиеся значения.

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

ВЫБЕРИТЕ * INTO пользователейBackup2020
ОТ пользователей;
ВЫБРАТЬ ВКопирует данные из одной таблицы и вставляет их в другую.

Пример: Возвращает все страны из таблицы пользователей, удаляя дубликаты значений (что весьма вероятно)

ВЫБЕРИТЕ РАЗЛИЧНУЮ страну от пользователей;
ВЫБЕРИТЕ ТОППозволяет вернуть заданное количество записей для возврата из таблицы..

Пример: Возвращает топ-3 машины из таблицы автомобилей.

ВЫБЕРИТЕ ТОП 3 * ОТ АВТОМОБИЛЕЙ;
НАБОРИспользуется вместе с UPDATE для обновления существующих данных в таблице.

Пример: Обновляет значения стоимости и количества для заказа с идентификатором 642 в таблице заказов..

ОБНОВЛЕНИЕ заказов
SET значение = 19,49, количество = 2
ГДЕ id = 642;
НЕСКОЛЬКОИдентичен ЛЮБОМУ.
ВВЕРХИспользуется вместе с SELECT для возврата заданного количества записей из таблицы.

Пример: Возвращает 5 лучших пользователей из таблицы пользователей.

ВЫБЕРИТЕ ТОП 5 * ОТ пользователей;
TRUNCATE TABLEАналогично DROP, но вместо удаления таблицы и ее данных удаляются только данные.

Пример: Пустая таблица сеансов, но сама таблица остается нетронутой.

Сеансы TRUNCATE TABLE;
UNIONОбъединяет результаты двух или более операторов SELECT и возвращает только различные значения.

Пример: Возвращает города из таблиц событий и подписчиков..

ВЫБЕРИ город из событий
UNION
ВЫБЕРИТЕ город от абонентов;
СОЮЗ ВСЕХТо же, что и UNION, но содержит повторяющиеся значения.
УНИКАЛЬНАЯЭто ограничение гарантирует, что все значения в столбце являются уникальными.

Пример 1 (MySQL): Добавляет уникальное ограничение для столбца id при создании новой таблицы пользователей.

CREATE TABLE пользователей (
id int NOT NULL,
имя varchar (255) НЕ NULL,
Уникальный идентификатор)
);

Пример 2 (MySQL): Изменяет существующий столбец для добавления ограничения UNIQUE.

Пользователи ALTER TABLE
ДОБАВИТЬ УНИКАЛЬНЫЙ (id);
ОБНОВИТЬОбновляет существующие данные в таблице.

Пример: Обновляет значения пробега и serviceDue для автомобиля с идентификатором 45 в таблице автомобилей.

ОБНОВЛЕНИЕ авто
SET пробег = 23500, serviceDue = 0
ГДЕ id = 45;
ЦЕННОСТИИспользуется вместе с ключевым словом INSERT INTO для добавления новых значений в таблицу.

Пример: Добавляет новую машину в таблицу автомобилей.

INSERT INTO автомобили (название, модель, год)
ЦЕННОСТИ («Форд», «Фиеста», 2010);
ГДЕФильтрует результаты, чтобы включить только те данные, которые соответствуют заданному условию.

Пример: Возвращает заказы с количеством более 1 товара.

ВЫБРАТЬ * ИЗ ЗАКАЗОВ
ГДЕ количество> 1;

Комментарии

Комментарии позволяют вам объяснять разделы ваших операторов SQL или комментировать код и предотвращать его выполнение..

В SQL есть два типа комментариев: однострочный и многострочный..

Однострочные комментарии

Однострочные комментарии начинаются с -. Любой текст после этих 2 символов до конца строки будет игнорироваться.

-- Мой запрос на выбор
SELECT * FROM пользователей;

Многострочные комментарии

Многострочные комментарии начинаются с / * и заканчиваются * /. Они растягиваются на несколько строк, пока не будут найдены закрывающие символы.

/ *
Это мой выборочный запрос.
Он захватывает все строки данных из таблицы пользователей
* /
SELECT * FROM пользователей;

/ *
Это еще один запрос на выбор, который я пока не хочу выполнять

ВЫБРАТЬ * ИЗ задач;
* /

Типы данных MySQL

При создании новой таблицы или редактировании существующей необходимо указать тип данных, который принимает каждый столбец.

В приведенном ниже примере данные, передаваемые в столбец id, должны быть целыми числами, в то время как столбец first_name имеет тип данных VARCHAR, содержащий не более 255 символов..

CREATE TABLE пользователей (
id int,
имя_арчар (255)
);

Типы данных String

Типы данных String
Тип данныхОписание
СИМ (размер)Строка фиксированной длины, которая может содержать буквы, цифры и специальные символы. Параметр size устанавливает максимальную длину строки от 0 до 255, по умолчанию 1.
УАКСНАК (размер)Строка переменной длины, аналогичная CHAR (), но с максимальным диапазоном длины строки от 0 до 65535.
БИНАРНЫЙ (размер)Аналогичен CHAR (), но хранит двоичные байтовые строки.
VARBINARY (размер)Подобно VARCHAR (), но для двоичных байтовых строк.
TINYBLOBСодержит большие двоичные объекты (BLOB) с максимальной длиной 255 байт..
TINYTEXTСодержит строку длиной не более 255 символов. Вместо этого используйте VARCHAR (), так как он загружается намного быстрее.
Размер текста)Содержит строку с максимальной длиной 65535 байт. Опять же, лучше использовать VARCHAR ().
Двоичные объекты (размер)Содержит большие двоичные объекты (BLOB) с максимальной длиной 65535 байт..
MEDIUMTEXTСодержит строку длиной не более 16 777 215 символов.
MEDIUMBLOBСодержит большие двоичные объекты (BLOB) с максимальной длиной 16 777 215 байт..
LONGTEXTСодержит строку длиной не более 4 294 967 295 символов.
LONGBLOBСодержит большие двоичные объекты (BLOB) с максимальной длиной 4 294 967 295 байт..
ENUM (a, b, c и т. Д.)Строковый объект, который имеет только одно значение, которое выбирается из списка значений, которые вы определяете, максимум до 65535 значений. Если добавляется значение, которого нет в этом списке, оно заменяется пустым значением. Представьте, что ENUM в этом отношении похож на HTML-радио.

Футболки CREATE TABLE (цвет ENUM («красный», «зеленый», «синий», «желтый», «фиолетовый»));
SET (a, b, c и т. Д.)Строковый объект, который может иметь 0 или более значений, которые выбираются из списка значений, которые вы определяете, максимум до 64 значений. Представьте, что в этом отношении SET похож на флажки HTML.

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

Типы данных String
Тип данныхОписание
БИТ (размер)Тип битового значения со значением по умолчанию 1. Допустимое количество битов в значении задается параметром size, который может содержать значения от 1 до 64..
TINYINT (размер)Очень маленькое целое число с диапазоном со знаком от -128 до 127 и беззнаковым диапазоном от 0 до 255. Здесь параметр size указывает максимально допустимую ширину отображения, которая составляет 255.
BOOLПо сути, быстрый способ установки столбца в TINYINT с размером 1. 0 считается ложным, в то время как 1 считается истинным.
БУЛЕВЫТакой же как BOOL.
SMALLINT (размер)Небольшое целое число с диапазоном со знаком от -32768 до 32767 и диапазоном без знака от 0 до 65535. Здесь параметр size указывает максимально допустимую ширину экрана, которая составляет 255.
MEDIUMINT (размер)Среднее целое с диапазоном со знаком от -8388608 до 8388607 и диапазоном без знака от 0 до 16777215. Здесь параметр size указывает максимально допустимую ширину экрана, которая составляет 255.
INT (размер)Среднее целое с диапазоном со знаком от -2147483648 до 2147483647 и беззнаковым диапазоном от 0 до 4294967295. Здесь параметр size указывает максимально допустимую ширину экрана, которая составляет 255.
Integer (размер)То же, что INT.
BIGINT (размер)Среднее целое число с диапазоном со знаком от -9223372036854775808 до 9223372036854775807 и диапазоном без знака от 0 до 18446744073709551615. Здесь параметр size указывает максимально допустимую ширину экрана, которая составляет 255.
ПОПЛАВКОВЫЕ (р)Числовое значение с плавающей запятой. Если параметр точности (p) находится в диапазоне от 0 до 24, то тип данных устанавливается в FLOAT (), а в случае от 25 до 53 тип данных устанавливается в DOUBLE (). Такое поведение должно сделать хранение значений более эффективным.
ДВОЙНОЙ (размер, д)Значение числа с плавающей запятой, где общее количество цифр задается параметром размера, а число цифр после десятичной точки задается параметром d.
ДЕЦИМАЛЬНО (размер, д)Точное число с фиксированной точкой, где общее количество цифр задается параметрами размера, а общее число цифр после десятичной точки задается параметром d.

Для размера максимальное число составляет 65, а по умолчанию - 10, а для d - максимальное число - 30, а по умолчанию - 10..

DEC (размер, д)То же, что DECIMAL.

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

Типы данных даты / времени
Тип данныхОписание
СВИДАНИЕПростая дата в формате ГГГГ-ММ – ДД с поддерживаемым диапазоном от «1000-01-01» до «9999-12-31».
DATETIME (ППБ)Дата и время в формате ГГГГ-ММ-ДД чч: мм: сс с поддерживаемым диапазоном от «1000-01-01 00:00:00» до «9999-12-31 23:59:59».

Добавляя DEFAULT и ON UPDATE к определению столбца, он автоматически устанавливает текущую дату / время.

ТШЕЗТАМР (ППБ)Метка времени Unix, которая представляет собой значение относительно количества секунд, прошедших с начала эпохи Unix (1970-01-01 00:00:00 ’UTC). Диапазон поддерживаемых значений: от 1970-01-01 00:00:01 UTC до 2038-01-09 03:14:07 UTC.

Добавляя DEFAULT CURRENT_TIMESTAMP и ON UPDATE CURRENT TIMESTAMP к определению столбца, он автоматически устанавливает текущую дату / время.

TIME (ППБ)Время в формате чч: мм: сс с поддерживаемым диапазоном от -838: 59: 59 до -838: 59: 59.
ГОДГод с поддерживаемым диапазоном от «1901» до «2155».

операторы

Арифметические Операторы

Арифметические Операторы
операторОписание
+Добавить
-вычитать
*Умножение
/Делить
%Модульное

Побитовый оператор

Битовые операторы
операторОписание
&Побитовое И
|Побитовое ИЛИ
^Побитовое исключающее ИЛИ

Операторы сравнения

Операторы сравнения
операторОписание
знак равноРавно
>Лучше чем
<Меньше, чем
> =Больше или равно
<=Меньше или равно
<>Не равно

Составные операторы

Составные операторы
операторОписание
+знак равноДобавить равно
-знак равноВычесть равных
знак равноУмножить равно
знак равноРазделить на равных
знак равноПо модулю
знак равноПобитовое И равно
^ - =Побитовый эксклюзив равно
| * =Побитовое ИЛИ равно

функции

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

Строковые функции
имяОписание
ASCIIВозвращает эквивалентное значение ASCII для определенного символа.
CHAR_LENGTHВозвращает длину символа строки.
CHARACTER_LENGTHТакой же как CHAR_LENGTH.
CONCATДобавляет выражения вместе, как минимум 2.
CONCAT_WSДобавляет выражения вместе, но с разделителем между каждым значением.
ОбластьВозвращает значение индекса относительно позиции значения в списке значений.
НАЙТИ В КОМПЛЕКТЕВозвращает позицию строки в списке строк.
ФОРМАТКогда передано число, возвращает это число, отформатированное, чтобы включить запятые (например, 3 400 000).
ВСТАВИТЬПозволяет вставить одну строку в другую в определенном месте на определенное количество символов.
INSTRВозвращает позицию в первый раз, когда одна строка появляется внутри другой.
LCASEПреобразовать строку в нижний регистр.
ОСТАВИЛНачиная слева, извлеките указанное количество символов из строки и верните их как другое.
ДЛИНАВозвращает длину строки, но в байтах.
LOCATEВозвращает первое вхождение одной строки в другую,
НИЖНИЙТакой же как LCASE.
LPADЛевые прокладки одна строка с другой, до определенной длины.
LTRIMУдалить все начальные пробелы из данной строки.
MIDИзвлекает одну строку из другой, начиная с любой позиции.
ДОЛЖНОСТЬВозвращает позицию первого появления подстроки в другой.
ПОВТОРЕНИЕПозволяет повторить строку
ЗАМЕНАПозволяет заменить любые экземпляры подстроки в строке новой подстрокой.
ОБЕСПЕЧИТЬ РЕГРЕССПереворачивает строку.
ПРАВИЛЬНОНачиная справа, извлеките указанное количество символов из строки и верните их как другое.
RPADПраво прокладывает одну строку с другой, до определенной длины.
RTRIMУдаляет все завершающие пробелы из заданной строки.
ПРОСТРАНСТВОВозвращает строку, полную пробелов, равную сумме, которую вы ей передали.
STRCMPСравнивает 2 строки для различий
SUBSTRИзвлекает одну подстроку из другой, начиная с любой позиции.
SUBSTRINGТо же, что SUBSTR
SUBSTRING_INDEXВозвращает подстроку из строки до того, как переданная подстрока будет найдена столько раз, сколько передано.
ОТДЕЛКАУдаляет завершающие и начальные пробелы из заданной строки. То же самое, как если бы вы запускали LTRIM и RTRIM вместе.
UCASEПреобразовать строку в верхний регистр.
ВЕРХНИЙТакой же как UCASE.

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

Числовые функции
имяОписание
ABSВозвращает абсолютное значение заданного числа.
ACOSВозвращает арккосинус заданного числа.
КАК ВВозвращает арксинус заданного числа.
ЗАГАРВозвращает арктангенс одного или двух заданных чисел.
ATAN2Вернуть арктангенс двух заданных чисел.
AVGВозвращает среднее значение данного выражения.
CEILВозвращает ближайшее целое число (целое число) вверх от заданного десятичного числа.
ПОТОЛОКТакой же как CEIL.
COSВозвращает косинус заданного числа.
СОТВозвращает котангенс заданного числа.
COUNTВозвращает количество записей, возвращаемых запросом SELECT..
ГРАДУСОВПреобразует радианы в градусы.
DIVПозволяет разделить целые числа.
EXPВозвращает е к степени данного числа.
ЭТАЖВозвращает ближайшее целое число (целое число) вниз от заданного десятичного числа.
БОЛЬШОЕВозвращает самое высокое значение в списке аргументов.
НАИМЕНЕЕВозвращает наименьшее значение в списке аргументов.
Л.Н.Возвращает натуральный логарифм заданного числа
ЖУРНАЛВозвращает натуральный логарифм заданного числа или логарифм заданного числа к заданному основанию
LOG10Делает так же, как LOG, но на базу 10.
LOG2Делает так же, как LOG, но для базы 2.
МАКСИМУМВозвращает наибольшее значение из набора значений.
MINВозвращает самое низкое значение из набора значений.
MODВозвращает остаток от данного числа, деленный на другой номер.
ПИВозвращает PI.
POWВозвращает значение данного числа, возведенное в степень другого данного числа.
СИЛАТо же, что военнопленный.
RADIANSПреобразует градусы в радианы.
RANDВозвращает случайное число.
КРУГЛЫЙОкруглить указанное число до указанного количества знаков после запятой.
ПОДПИСАТЬВозвращает знак заданного числа.
SINВозвращает синус заданного числа.
SQRTВозвращает квадратный корень из указанного числа.
SUMВозвращает значение заданного набора значений вместе.
TANВозвращает тангенс заданного числа.
TRUNCATEВозвращает число, усеченное до заданного числа десятичных знаков.

Функции даты

Функции даты
имяОписание
ADDDATEДобавьте интервал дат (например, 10 дней) к дате (например, 20/01/20) и верните результат (например, 20/01/30).
AddTimeДобавьте временной интервал (например, 02:00) к времени или дате (05:00) и верните результат (07:00)..
CURDATEПолучить текущую дату.
ТЕКУЩАЯ ДАТАТо же, что и КУРДАТА.
ТЕКУЩЕЕ ВРЕМЯПолучить текущее время.
CURRENT_TIMESTAMPПолучить текущую дату и время.
CURTIMEТо же, что CURRENT_TIME.
СВИДАНИЕИзвлекает дату из выражения datetime.
DATEDIFFВозвращает количество дней между 2 указанными датами..
DATE_ADDТо же, что ДОБАВИТЬ.
ФОРМАТ ДАТЫФорматы даты для данного шаблона.
DATE_SUBВычтите интервал дат (например, 10 дней) к дате (например, 20/01/20) и верните результат (например, 20/01/10).
ДЕНЬВозвращает день для указанной даты.
DAYNAMEВозвращает название дня недели для указанной даты..
ДЕНЬ НЕДЕЛИВозвращает индекс дня недели для указанной даты..
DAYOFYEARВозвращает день года для данной даты.
ВЫПИСКАВыписка из даты данной части (например, МЕСЯЦ на 20/01/20 = 01).
ОТ ДНЕЙВозврат даты из заданного числового значения даты.
ЧАСВернуть час с указанной даты.
ПОСЛЕДНИЙ ДЕНЬПолучить последний день месяца для данной даты.
МЕСТНОЕ ВРЕМЯПолучает текущую местную дату и время.
LOCALTIMESTAMPТо же, что МЕСТНОЕ ВРЕМЯ.
MAKEDATEСоздает дату и возвращает ее в зависимости от заданного года и количества дней..
MAKETIMEСоздает время и возвращает его, основываясь на заданных часах, минутах и ​​секундах.
микросекундаВозвращает микросекунду заданного времени или даты.
МИНУТЫВозвращает минуту указанного времени или даты.
МЕСЯЦВозвращает месяц указанной даты.
MONTHNAMEВозвращает название месяца с указанной датой..
СЕЙЧАС ЖЕТо же, что МЕСТНОЕ ВРЕМЯ.
PERIOD_ADDДобавляет указанное количество месяцев к указанному периоду.
PERIOD_DIFFВозвращает разницу между 2 заданными периодами.
КВАРТАЛВозвращает квартал года для указанной даты.
ВТОРОЙВозвращает секунду заданного времени или даты.
SEC_TO_TIMEВозвращает время на основе заданных секунд.
STR_TO_DATEСоздает дату и возвращает ее на основе заданной строки и формата.
SUBDATEТо же, что DATE_SUB.
SUBTIMEВычитает временной интервал (например, 02:00) из времени или даты (05:00) и возвращает результат (03:00)..
SYSDATEТо же, что МЕСТНОЕ ВРЕМЯ.
ВРЕМЯВозвращает время из заданного времени или даты.
TIME_FORMATВозвращает указанное время в указанном формате.
TIME_TO_SECПреобразует и возвращает время в секундах.
TimeDiffВозвращает разницу между двумя заданными выражениями время / дата / время.
TIMESTAMPВозвращает значение datetime для указанной даты или datetime.
TO_DAYSВозвращает общее количество дней, прошедших с ‘00 -00-0000 ’до указанной даты..
НЕДЕЛЯВозвращает номер недели для указанной даты.
WEEKDAYВозвращает номер дня недели для указанной даты..
WEEKOFYEARВозвращает номер недели для указанной даты.
ГОДВозвращает год с указанной даты.
YEARWEEKВозвращает номер года и недели для указанной даты.

Разные Функции

Разные Функции
имяОписание
BINВозвращает данное число в двоичном виде.
BINARYВозвращает данное значение в виде двоичной строки.
БРОСАТЬКонвертировать один тип в другой.
COALESCEИз списка значений верните первое ненулевое значение.
cONNECTION_IDДля текущего соединения верните уникальный идентификатор соединения.
CONVКонвертировать данное число из одной числовой базовой системы в другую.
КОНВЕРТИРОВАТЬПреобразовать указанное значение в заданный тип данных или набор символов.
ТЕКУЩИЙ ПОЛЬЗОВАТЕЛЬВернуть пользователя и имя хоста, которые использовались для аутентификации на сервере.
БАЗА ДАННЫХПолучить имя текущей базы данных.
ГРУППА ПОИспользуется вместе с агрегатными функциями (COUNT, MAX, MIN, SUM, AVG) для группировки результатов.

Пример: Перечисляет количество пользователей с активными заказами.

SELECT COUNT (user_id), active_orders
ОТ пользователей
GROUP BY active_orders;
HAVINGОн используется вместо ГДЕ с агрегатными функциями.

Пример: Отображает количество пользователей с активными заказами, но включает только пользователей с более чем 3 активными заказами..

SELECT COUNT (user_id), active_orders
ОТ пользователей
GROUP BY active_orders
СЧЕТЧИК (user_id)> 3;
ЕСЛИЕсли условие истинно, вернуть значение, в противном случае вернуть другое значение.
IFNULLЕсли данное выражение равно нулю, вернуть заданное значение.
НУЛЕВОЙЕсли выражение равно нулю, верните 1, в противном случае верните 0.
LAST_INSERT_IDДля последней строки, которая была добавлена ​​или обновлена ​​в таблице, вернуть идентификатор автоинкремента.
NULLIFСравнивает 2 приведенных выражения. Если они равны, возвращается NULL, в противном случае возвращается первое выражение.
SESSION_USERВернуть текущего пользователя и имена хостов.
SYSTEM_USERТо же, что SESSION_USER.
USERТо же, что SESSION_USER.
ВЕРСИЯВозвращает текущую версию MySQL, питающую базу данных.

Подстановочные знаки

В SQL подстановочные знаки являются специальными символами, используемыми с ключевыми словами LIKE и NOT LIKE, которые позволяют гораздо эффективнее осуществлять поиск данных с использованием сложных шаблонов.

Wildcards
имяОписание
%Приравнивается к нулю или более символов.

Пример 1: Найти всех пользователей с фамилиями, заканчивающимися на "сын".

ВЫБРАТЬ * ОТ пользователей
ГДЕ фамилия НРАВИТСЯ '% сын';

Пример 2: Найти всех пользователей, живущих в городах, содержащих шаблон "che"

ВЫБРАТЬ * ОТ пользователей
ГДЕ город НРАВИТСЯ '% che%';
_Приравнивается к любому отдельному символу.

Пример: Найти всех пользователей, живущих в городах, начиная с любых 3 символов, за которыми следует «chester».

ВЫБРАТЬ * ОТ пользователей
ГДЕ город НРАВИТСЯ '___chester';
[Charlist]Приравнивается к любому одному символу в списке.

Пример 1: Найти всех пользователей с именами, начинающимися с J, H или M.

ВЫБРАТЬ * ОТ пользователей
ГДЕ first_name LIKE '[jhm]%';

Пример 2: Найти всех пользователей с именами, начинающимися с букв A - L.

ВЫБРАТЬ * ОТ пользователей
ГДЕ first_name LIKE '[a-l]%';

Пример 3: Найти всех пользователей с именами, не заканчивающимися буквами между n - s.

ВЫБРАТЬ * ОТ пользователей
ГДЕ first_name LIKE "% [! N-s] ';

Ключи

В реляционных базах данных существует понятие первичного и внешнего ключей. В таблицах SQL они включены как ограничения, где таблица может иметь первичный ключ, внешний ключ или оба.

Основной ключ

Первичный ключ позволяет уникально идентифицировать каждую запись в таблице. В таблице может быть только один первичный ключ, и вы можете назначить это ограничение для любого отдельного или комбинации столбцов. Однако это означает, что каждое значение в этом столбце (столбцах) должно быть уникальным.

Как правило, в таблице первичный ключ является столбцом идентификатора и обычно связан с ключевым словом AUTO_INCREMENT. Это означает, что значение увеличивается автоматически при создании новых записей.

Пример 1 (MySQL)

Создайте новую таблицу и установите первичный ключ для столбца ID.

CREATE TABLE пользователей (
id int NOT NULL AUTO_INCREMENT,
имя_арчар (255),
last_name varchar (255) НЕ ПУСТО,
адрес varchar (255),
электронная почта varchar (255),
ПЕРВИЧНЫЙ КЛЮЧ (id)
);

Пример 2 (MySQL)

Измените существующую таблицу и установите первичный ключ в столбце first_name.

Пользователи ALTER TABLE
ДОБАВИТЬ ПЕРВИЧНЫЙ КЛЮЧ (first_name);

Внешний ключ

Внешний ключ может быть применен к одному или нескольким столбцам и используется для связывания двух таблиц в реляционной базе данных..

Как видно из диаграммы ниже, таблица, содержащая внешний ключ, называется дочерним ключом, а таблица, содержащая ссылочный ключ или ключ-кандидат, называется родительской таблицей..

MySQL Keys

По сути, это означает, что данные столбца совместно используются двумя таблицами, поскольку внешний ключ также предотвращает вставку недопустимых данных, которые также отсутствуют в родительской таблице..

Пример 1 (MySQL)

Создайте новую таблицу и превратите все столбцы, которые ссылаются на идентификаторы в других таблицах, во внешние ключи..

CREATE TABLE заказов (
id int NOT NULL,
user_id int,
product_id int,
ПЕРВИЧНЫЙ КЛЮЧ (id),
FOREIGN KEY (user_id) ССЫЛКИ на пользователей (id),
КЛЮЧЕВОЙ КЛЮЧ (product_id) ССЫЛКИ на продукцию (id)
);

Пример 2 (MySQL)

Изменить существующую таблицу и создать внешний ключ.

ALTER TABLE заказы
ADD FOREIGN KEY (user_id) Ссылки пользователей (id);

Индексы

Индексы - это атрибуты, которые можно назначать столбцам, по которым часто производится поиск, чтобы сделать поиск данных более быстрым и более эффективным процессом..

Это не означает, что каждый столбец должен быть преобразован в индекс, поскольку для обновления столбца с индексом требуется больше времени, чем для столбца без него. Это связано с тем, что при обновлении индексированных столбцов сам индекс также должен быть обновлен..

Индексы
имяОписание
СОЗДАТЬ ИНДЕКССоздает индекс с именем «idx_test» для столбцов имя и фамилия таблицы пользователей. В этом случае допускаются повторяющиеся значения.

CREATE INDEX idx_test
ПО пользователям (имя, фамилия);
СОЗДАТЬ УНИКАЛЬНЫЙ ИНДЕКСТо же, что и выше, но без повторяющихся значений.

СОЗДАЙТЕ УНИКАЛЬНЫЙ ИНДЕКС idx_test
ПО пользователям (имя, фамилия);
Индекс каплиУдаляет индекс.

Пользователи ALTER TABLE
DROP INDEX idx_test;

присоединяется

В SQL предложение JOIN используется для возврата набора результатов, который объединяет данные из нескольких таблиц на основе общего столбца, который представлен в обеих из них.

Вам доступно несколько различных объединений:-

  • Внутреннее соединение (по умолчанию): Возвращает любые записи, которые имеют совпадающие значения в обеих таблицах.
  • Осталось присоединиться: Возвращает все записи из первой таблицы вместе с любыми соответствующими записями из второй таблицы.
  • Право Присоединиться: Возвращает все записи из второй таблицы вместе с любыми соответствующими записями из первой.
  • Полное присоединение: Возвращает все записи из обеих таблиц при совпадении.

Обычный способ визуализации работы соединений выглядит следующим образом:

MySQL Joins

В следующем примере внутреннее объединение будет использоваться для создания нового объединяющего представления, объединяющего таблицу заказов и затем 3 разных таблицы

Мы заменим user_id и product_id столбцами first_name и фамилии пользователя, который разместил заказ, вместе с названием приобретенного товара.

MySQL Пример таблицы

ВЫБЕРИТЬ orders.id, users.first_name, users.surname, products.name как «название продукта»
ОТ заказов
ВНУТРЕННИЕ ПРИСОЕДИНЯЙТЕСЬ к пользователям на orders.user_id = users.id
ВНУТРЕННИЕ РЕЙТИНГ продукты на orders.product_id = products.id;

Вернет набор результатов, который выглядит следующим образом:

MySQL Пример таблицы

Посмотреть

Представление - это, по сути, набор результатов SQL, который хранится в базе данных под меткой, поэтому вы можете вернуться к нему позже, без необходимости повторного запуска запроса. Это особенно полезно, когда у вас есть дорогостоящий SQL-запрос, который может понадобиться несколько раз, поэтому вместо того, чтобы запускать его снова и снова для создания одного и того же набора результатов, вы можете просто сделать это один раз и сохранить его как представление..

Создание видов

Чтобы создать представление, вы можете сделать это так:

CREATE VIEW priority_users AS
ВЫБРАТЬ * ОТ пользователей
ГДЕ страна = 'Великобритания';

Затем в будущем, если вам понадобится доступ к сохраненному набору результатов, вы можете сделать это следующим образом:

SELECT * FROM [priority_users];

Замена просмотров

С помощью команды CREATE OR REPLACE представление можно обновить.

СОЗДАТЬ ИЛИ ЗАМЕНИТЬ VIEW [priority_users] AS
ВЫБРАТЬ * ОТ пользователей
ГДЕ страна = 'Великобритания' ИЛИ ​​страна = 'США';

Удаление просмотров

Чтобы удалить вид, просто используйте команду DROP VIEW.

DROP VIEW priority_users;

Вывод

Большинство современных веб-сайтов каким-то образом используют реляционные базы данных. Это делает SQL ценным языком для изучения, поскольку позволяет создавать более сложные, функциональные веб-сайты и системы..

Обязательно добавьте эту страницу в закладки, так что в будущем, если вы работаете с SQL и не можете вспомнить конкретный оператор, как написать определенный запрос или просто не понимаете, как работают объединения, тогда у вас будет шпаргалка под рукой, которая готова, хочет и может помочь.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me