В этом руководстве вы найдете полезную шпаргалку, которая документирует некоторые из наиболее часто используемых элементов 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 это язык. Он описывает синтаксис, который позволяет вам писать запросы, которые управляют реляционными базами данных. Ничего больше.
MySQL Между тем это база данных система который работает на сервере. Это инвентарь язык SQL, позволяющий вам писать запросы, используя его синтаксис для управления базами данных MySQL.
Помимо MySQL, существуют и другие системы, которые реализуют SQL. Вот некоторые из наиболее популярных:
PostgreSQL
SQLite
База данных Oracle
Microsoft SQL Server
Установка MySQL
Windows
Рекомендуемый способ установки MySQL в Windows - использовать установщик, который можно загрузить с Веб-сайт MySQL.
MacOS
В macOS рекомендуемый способ установки MySQL - использовать нативные пакеты, что звучит намного сложнее, чем на самом деле. По сути, это также включает в себя просто загрузку монтажник.
В качестве альтернативы, если вы предпочитаете использовать менеджеры пакетов, такие как Homebrew, Вы можете установить MySQL так:
заварить установить MySQL
Хотя если вам нужно установить более старую версию MySQL 5.7, которая до сих пор широко используется в Интернете, вы можете:
brew install [электронная почта защищена]
Использование MySQL
Теперь, когда MySQL установлен в вашей системе, чтобы как можно быстрее приступить к написанию SQL-запросов, рекомендуется использовать приложение управления SQL, чтобы сделать управление базами данных намного проще и проще..
Есть множество приложений на выбор, которые в основном выполняют одну и ту же работу, так что выбор зависит от ваших личных предпочтений:
HeidiSQL(Рекомендуется Windows) это бесплатное приложение с открытым исходным кодом для Windows. Для пользователей MacOS и Linux, Вино сначала требуется в качестве предварительного условия.
PhpMyAdmin это очень популярная альтернатива, которая работает в веб-браузере.
Сиквел Про(Рекомендуется macOS) является единственной альтернативой macOS, и мы любим ее благодаря понятному и простому в использовании интерфейсу.
Если вы готовы начать писать собственные запросы SQL, а не тратить время на создание собственной базы данных, рассмотрите возможность импорта фиктивных данных..
Веб-сайт MySQL предоставляет ряд фиктивные базы данных что вы можете скачать бесплатно, а затем импортировать в приложение SQL.
Наш любимый из них это Мир база данных, которая предоставляет некоторые интересные данные для практики написания запросов SQL. Вот скриншот таблицы стран в Sequel Pro.
Этот пример запроса возвращает все страны с королевой Елизаветой II в качестве главы государства..
В то время как этот возвращает все европейские страны с населением более 50 миллионов вместе со своей столицей и населением.
И этот последний возвращает средний процент говорящих на французском языке в странах, где общее количество говорящих на французском языке превышает 10%.
Шпаргалка
Ключевые слова
Коллекция ключевых слов, используемых в операторах 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);
В ВИДЕ
Переименовывает таблицу или столбец со значением псевдонима, которое существует только на время запроса.
ВЫБЕРИТЕ 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 лет.
Пример 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-радио.
Строковый объект, который может иметь 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);
Внешний ключ
Внешний ключ может быть применен к одному или нескольким столбцам и используется для связывания двух таблиц в реляционной базе данных..
Как видно из диаграммы ниже, таблица, содержащая внешний ключ, называется дочерним ключом, а таблица, содержащая ссылочный ключ или ключ-кандидат, называется родительской таблицей..
По сути, это означает, что данные столбца совместно используются двумя таблицами, поскольку внешний ключ также предотвращает вставку недопустимых данных, которые также отсутствуют в родительской таблице..
Пример 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 используется для возврата набора результатов, который объединяет данные из нескольких таблиц на основе общего столбца, который представлен в обеих из них.
Вам доступно несколько различных объединений:-
Внутреннее соединение (по умолчанию): Возвращает любые записи, которые имеют совпадающие значения в обеих таблицах.
Осталось присоединиться: Возвращает все записи из первой таблицы вместе с любыми соответствующими записями из второй таблицы.
Право Присоединиться: Возвращает все записи из второй таблицы вместе с любыми соответствующими записями из первой.
Полное присоединение: Возвращает все записи из обеих таблиц при совпадении.
Обычный способ визуализации работы соединений выглядит следующим образом:
В следующем примере внутреннее объединение будет использоваться для создания нового объединяющего представления, объединяющего таблицу заказов и затем 3 разных таблицы
Мы заменим user_id и product_id столбцами first_name и фамилии пользователя, который разместил заказ, вместе с названием приобретенного товара.
ВЫБЕРИТЬ orders.id, users.first_name, users.surname, products.name как «название продукта»
ОТ заказов
ВНУТРЕННИЕ ПРИСОЕДИНЯЙТЕСЬ к пользователям на orders.user_id = users.id
ВНУТРЕННИЕ РЕЙТИНГ продукты на orders.product_id = products.id;
Вернет набор результатов, который выглядит следующим образом:
Посмотреть
Представление - это, по сути, набор результатов 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 и не можете вспомнить конкретный оператор, как написать определенный запрос или просто не понимаете, как работают объединения, тогда у вас будет шпаргалка под рукой, которая готова, хочет и может помочь.
07.06.2020
Шпаргалка по SQL
Jeffrey Wilson Нет категории
В этом руководстве вы найдете полезную шпаргалку, которая документирует некоторые из наиболее часто используемых элементов SQL, и даже некоторые из менее распространенных. Надеемся, что это поможет разработчикам – как начинающим, так и опытным – стать более опытными в понимании языка SQL..
Используйте это в качестве краткого справочного пособия во время разработки, учебного пособия или даже распечатайте его и свяжите, если хотите (что работает!).
Но прежде чем мы перейдем к самой шпаргалке, для разработчиков, которые могут быть не знакомы с SQL, давайте начнем с…
Contents
Что такое SQL
SQL расшифровывается как язык структурированных запросов. Это язык, который предпочитают сегодня в Интернете для хранения, обработки и извлечения данных в реляционных базах данных. Большинство, если нет все из сайтов, которые вы посещаете, будет использовать его каким-либо образом, в том числе это один.
Вот как выглядит базовая реляционная база данных. В этом примере, в частности, хранится информация об электронной торговле, в частности о продаваемых продуктах, пользователях, которые их покупают, и записях этих заказов, которые связывают эти 2 объекта..
Используя SQL, вы можете взаимодействовать с базой данных путем написания запросов, которые при выполнении возвращают любые результаты, соответствующие его критериям..
Вот пример запроса:-
Используя эту инструкцию SELECT, запрос выбирает все данные из всех столбцов пользовательской таблицы. Затем он будет возвращать данные, подобные приведенным ниже, которые обычно называются набором результатов:-
Если бы мы заменили подстановочный знак звездочки (*) вместо конкретных имен столбцов, только данные из этих столбцов будут возвращены из запроса.
Мы можем немного усложнить стандартную инструкцию SELECT, добавив предложение WHERE, которое позволяет фильтровать возвращаемое значение..
Этот запрос вернет все данные из таблицы продуктов со значением stock_count меньше 10 в наборе результатов.
Использование ключевого слова ORDER BY означает, что результаты будут упорядочены по столбцу stock_count, от самых низких значений до самых высоких..
Используя оператор INSERT INTO, мы можем добавить новые данные в таблицу. Вот базовый пример добавления нового пользователя в таблицу users:-
Затем, если бы вам пришлось повторно выполнить запрос, чтобы вернуть все данные из пользовательской таблицы, набор результатов будет выглядеть следующим образом:
Конечно, эти примеры демонстрируют лишь очень небольшой выбор того, на что способен язык SQL.
SQL против MySQL
Возможно, вы слышали о MySQL раньше. Важно, чтобы вы не путали это с самим SQL, поскольку есть явное различие.
MySQL Между тем это база данных система который работает на сервере. Это инвентарь язык SQL, позволяющий вам писать запросы, используя его синтаксис для управления базами данных MySQL.
Помимо MySQL, существуют и другие системы, которые реализуют SQL. Вот некоторые из наиболее популярных:
Установка MySQL
Windows
Рекомендуемый способ установки MySQL в Windows - использовать установщик, который можно загрузить с Веб-сайт MySQL.
MacOS
В macOS рекомендуемый способ установки MySQL - использовать нативные пакеты, что звучит намного сложнее, чем на самом деле. По сути, это также включает в себя просто загрузку монтажник.
В качестве альтернативы, если вы предпочитаете использовать менеджеры пакетов, такие как Homebrew, Вы можете установить MySQL так:
Хотя если вам нужно установить более старую версию MySQL 5.7, которая до сих пор широко используется в Интернете, вы можете:
Использование MySQL
Теперь, когда MySQL установлен в вашей системе, чтобы как можно быстрее приступить к написанию SQL-запросов, рекомендуется использовать приложение управления SQL, чтобы сделать управление базами данных намного проще и проще..
Есть множество приложений на выбор, которые в основном выполняют одну и ту же работу, так что выбор зависит от ваших личных предпочтений:
Если вы готовы начать писать собственные запросы SQL, а не тратить время на создание собственной базы данных, рассмотрите возможность импорта фиктивных данных..
Веб-сайт MySQL предоставляет ряд фиктивные базы данных что вы можете скачать бесплатно, а затем импортировать в приложение SQL.
Наш любимый из них это Мир база данных, которая предоставляет некоторые интересные данные для практики написания запросов SQL. Вот скриншот таблицы стран в Sequel Pro.
Этот пример запроса возвращает все страны с королевой Елизаветой II в качестве главы государства..
В то время как этот возвращает все европейские страны с населением более 50 миллионов вместе со своей столицей и населением.
И этот последний возвращает средний процент говорящих на французском языке в странах, где общее количество говорящих на французском языке превышает 10%.
Шпаргалка
Ключевые слова
Коллекция ключевых слов, используемых в операторах SQL, описание и, где это уместно, пример. Некоторые из более продвинутых ключевых слов имеют свои собственные специальные разделы позже в шпаргалке..
Где MySQL упоминается рядом с примером, это означает, что этот пример применим только к базам данных MySQL (в отличие от любой другой системы баз данных).
Пример: Добавляет новый столбец с именем «адрес электронной почты» в таблицу с именем «пользователи».
Пример: Добавляет новое ограничение PRIMARY KEY с именем «user» для столбцов ID и SURNAME.
Пример: Добавляет новый логический столбец с именем «утвержден» в таблицу с именем «сделок».
Пример 2: Удаляет столбец «утвержден» из таблицы «сделок».
Пример: В таблице «users» сделайте столбец «incept_date» в виде «datetime».
Пример: Возвращает пользователей с большим количеством задач, чем пользователь с наибольшим количеством задач в отделе кадров (id 2)
Пример: Возвращает события, расположенные в Лондоне, Великобритания
Пример: Возвращает продукты из таблицы продуктов, которые получили заказы - хранятся в таблице заказов - в количестве более 5.
Пример: Столбец alises north_east_user_subscription
Пример: Яблоки, бананы, персики, редька
Пример 1: Выбирает запас с количеством от 100 до 150.
Пример 2: Выбирает запас с количеством NOT между 100 и 150. В качестве альтернативы, использование ключевого слова NOT здесь меняет логику и выбирает значения вне заданного диапазона..
Пример: Возвращает пользователей и их подписки, а также новый столбец с именем Activity_levels, который определяет количество подписок..
Пример 1 (MySQL): Убедитесь, что все пользователи, добавленные в таблицу пользователей, старше 18 лет.
Пример 2 (MySQL): Добавляет проверку после того, как таблица уже была создана.
Пример: Создает новую базу данных с именем «websitesetup».
Пример: Создает новую таблицу с именем «users» в базе данных «websitesetup»..
Пример 1 (MySQL): Создает новую таблицу с именем Products, которая имеет столбец имени со значением по умолчанию «Placeholder Name» и столбец available_from со значением по умолчанию на сегодняшнюю дату.
Пример 2 (MySQL): То же, что и выше, но редактирование существующей таблицы.
Пример: Удаляет пользователя с user_id 674.
Пример: Редька, персики, бананы, яблоки
Пример: Удаляет столбец first_name из таблицы users.
Пример: Удаляет базу данных с именем «websitesetup».
Пример (MySQL): Удаляет значение по умолчанию из столбца «имя» в таблице «продукты»..
Пример: Удаляет таблицу пользователей.
Пример: Перечисляет любые дилерские центры с процентом финансирования сделки менее 10.
Пример: Выбирает данные из таблицы пользователей.
Так что вместо:-
Ты можешь использовать:-
Пример: Добавляет новый автомобиль.
Пример: Возвращает пользователей, которые не дали контактный номер.
Пример: Возвращает true, если имя пользователя в начале заканчивается на «сын».
Пример: Возвращает true, если имя пользователя не заканчивается на «сын».
Пример: Возвращает пользователей, которые живут в Шеффилде или Манчестере.
Пример: Возвращает страны в алфавитном порядке.
Пример: Возвращает топ 10 стран из таблицы стран.
Пример 1: Выбирает все столбцы из всех пользователей.
Пример 2: Выбирает столбцы имя и фамилия из всех пользователей.
Пример: Создает резервную копию таблицы, используя данные из таблицы пользователей.
Пример: Возвращает все страны из таблицы пользователей, удаляя дубликаты значений (что весьма вероятно)
Пример: Возвращает топ-3 машины из таблицы автомобилей.
Пример: Обновляет значения стоимости и количества для заказа с идентификатором 642 в таблице заказов..
Пример: Возвращает 5 лучших пользователей из таблицы пользователей.
Пример: Пустая таблица сеансов, но сама таблица остается нетронутой.
Пример: Возвращает города из таблиц событий и подписчиков..
Пример 1 (MySQL): Добавляет уникальное ограничение для столбца id при создании новой таблицы пользователей.
Пример 2 (MySQL): Изменяет существующий столбец для добавления ограничения UNIQUE.
Пример: Обновляет значения пробега и serviceDue для автомобиля с идентификатором 45 в таблице автомобилей.
Пример: Добавляет новую машину в таблицу автомобилей.
Пример: Возвращает заказы с количеством более 1 товара.
Комментарии
Комментарии позволяют вам объяснять разделы ваших операторов SQL или комментировать код и предотвращать его выполнение..
В SQL есть два типа комментариев: однострочный и многострочный..
Однострочные комментарии
Однострочные комментарии начинаются с -. Любой текст после этих 2 символов до конца строки будет игнорироваться.
Многострочные комментарии
Многострочные комментарии начинаются с / * и заканчиваются * /. Они растягиваются на несколько строк, пока не будут найдены закрывающие символы.
Типы данных MySQL
При создании новой таблицы или редактировании существующей необходимо указать тип данных, который принимает каждый столбец.
В приведенном ниже примере данные, передаваемые в столбец id, должны быть целыми числами, в то время как столбец first_name имеет тип данных VARCHAR, содержащий не более 255 символов..
Типы данных String
Числовые типы данных
Для размера максимальное число составляет 65, а по умолчанию - 10, а для d - максимальное число - 30, а по умолчанию - 10..
Типы данных даты / времени
Добавляя DEFAULT и ON UPDATE к определению столбца, он автоматически устанавливает текущую дату / время.
Добавляя DEFAULT CURRENT_TIMESTAMP и ON UPDATE CURRENT TIMESTAMP к определению столбца, он автоматически устанавливает текущую дату / время.
операторы
Арифметические Операторы
Побитовый оператор
Операторы сравнения
Составные операторы
функции
Строковые функции
Числовые функции
Функции даты
Разные Функции
Пример: Перечисляет количество пользователей с активными заказами.
Пример: Отображает количество пользователей с активными заказами, но включает только пользователей с более чем 3 активными заказами..
Подстановочные знаки
В SQL подстановочные знаки являются специальными символами, используемыми с ключевыми словами LIKE и NOT LIKE, которые позволяют гораздо эффективнее осуществлять поиск данных с использованием сложных шаблонов.
Пример 1: Найти всех пользователей с фамилиями, заканчивающимися на "сын".
Пример 2: Найти всех пользователей, живущих в городах, содержащих шаблон "che"
Пример: Найти всех пользователей, живущих в городах, начиная с любых 3 символов, за которыми следует «chester».
Пример 1: Найти всех пользователей с именами, начинающимися с J, H или M.
Пример 2: Найти всех пользователей с именами, начинающимися с букв A - L.
Пример 3: Найти всех пользователей с именами, не заканчивающимися буквами между n - s.
Ключи
В реляционных базах данных существует понятие первичного и внешнего ключей. В таблицах SQL они включены как ограничения, где таблица может иметь первичный ключ, внешний ключ или оба.
Основной ключ
Первичный ключ позволяет уникально идентифицировать каждую запись в таблице. В таблице может быть только один первичный ключ, и вы можете назначить это ограничение для любого отдельного или комбинации столбцов. Однако это означает, что каждое значение в этом столбце (столбцах) должно быть уникальным.
Как правило, в таблице первичный ключ является столбцом идентификатора и обычно связан с ключевым словом AUTO_INCREMENT. Это означает, что значение увеличивается автоматически при создании новых записей.
Пример 1 (MySQL)
Создайте новую таблицу и установите первичный ключ для столбца ID.
Пример 2 (MySQL)
Измените существующую таблицу и установите первичный ключ в столбце first_name.
Внешний ключ
Внешний ключ может быть применен к одному или нескольким столбцам и используется для связывания двух таблиц в реляционной базе данных..
Как видно из диаграммы ниже, таблица, содержащая внешний ключ, называется дочерним ключом, а таблица, содержащая ссылочный ключ или ключ-кандидат, называется родительской таблицей..
По сути, это означает, что данные столбца совместно используются двумя таблицами, поскольку внешний ключ также предотвращает вставку недопустимых данных, которые также отсутствуют в родительской таблице..
Пример 1 (MySQL)
Создайте новую таблицу и превратите все столбцы, которые ссылаются на идентификаторы в других таблицах, во внешние ключи..
Пример 2 (MySQL)
Изменить существующую таблицу и создать внешний ключ.
Индексы
Индексы - это атрибуты, которые можно назначать столбцам, по которым часто производится поиск, чтобы сделать поиск данных более быстрым и более эффективным процессом..
Это не означает, что каждый столбец должен быть преобразован в индекс, поскольку для обновления столбца с индексом требуется больше времени, чем для столбца без него. Это связано с тем, что при обновлении индексированных столбцов сам индекс также должен быть обновлен..
присоединяется
В SQL предложение JOIN используется для возврата набора результатов, который объединяет данные из нескольких таблиц на основе общего столбца, который представлен в обеих из них.
Вам доступно несколько различных объединений:-
Обычный способ визуализации работы соединений выглядит следующим образом:
В следующем примере внутреннее объединение будет использоваться для создания нового объединяющего представления, объединяющего таблицу заказов и затем 3 разных таблицы
Мы заменим user_id и product_id столбцами first_name и фамилии пользователя, который разместил заказ, вместе с названием приобретенного товара.
Вернет набор результатов, который выглядит следующим образом:
Посмотреть
Представление - это, по сути, набор результатов SQL, который хранится в базе данных под меткой, поэтому вы можете вернуться к нему позже, без необходимости повторного запуска запроса. Это особенно полезно, когда у вас есть дорогостоящий SQL-запрос, который может понадобиться несколько раз, поэтому вместо того, чтобы запускать его снова и снова для создания одного и того же набора результатов, вы можете просто сделать это один раз и сохранить его как представление..
Создание видов
Чтобы создать представление, вы можете сделать это так:
Затем в будущем, если вам понадобится доступ к сохраненному набору результатов, вы можете сделать это следующим образом:
Замена просмотров
С помощью команды CREATE OR REPLACE представление можно обновить.
Удаление просмотров
Чтобы удалить вид, просто используйте команду DROP VIEW.
Вывод
Большинство современных веб-сайтов каким-то образом используют реляционные базы данных. Это делает SQL ценным языком для изучения, поскольку позволяет создавать более сложные, функциональные веб-сайты и системы..
Обязательно добавьте эту страницу в закладки, так что в будущем, если вы работаете с SQL и не можете вспомнить конкретный оператор, как написать определенный запрос или просто не понимаете, как работают объединения, тогда у вас будет шпаргалка под рукой, которая готова, хочет и может помочь.