Основные команды SQL, которые должен знать каждый программист
Рассмотрим основные команды SQL, включая агрегатные функции и вложенные подзапросы, на примере работы с MySQL.
1М открытий2М показов
Основные команды SQL не ограничиваются стандартными CREATE
, UPDATE
и DELETE
. Данная статья будет полезна тем, кто хочет освежить свои знания по SQL перед собеседованием на работу.
Обратите внимание, что в примерах используется MySQL, поэтому в конце каждого оператора ставится точка с запятой.
Примечание Вы читаете улучшенную версию некогда выпущенной нами статьи.
Настройка базы данных
Перед началом создайте БД с тестовыми данными. Для работы вам понадобится скачать два файла: DLL.sql и InsertStatements.sql. После установите MySQL, откройте терминал и войдите в консоль MySQL с помощью команды:
Затем введите пароль и выполните следующую команду. Назовём базу данных «university»:
SHOW DATABASES
SQL-команда, которая отвечает за просмотр доступных баз данных.
CREATE DATABASE
Команда для создания новой базы данных.
USE
С помощью этой SQL-команды USE <database_name>
выбирается база данных, необходимая для дальнейшей работы с ней.
SOURCE
А SOURCE <file.sql>
позволит выполнить сразу несколько SQL-команд, содержащихся в файле с расширением .sql.
DROP DATABASE
Стандартная SQL-команда для удаления целой базы данных.
SHOW TABLES
С помощью этой несложной команды можно увидеть все таблицы, которые доступны в базе данных.
CREATE TABLE
SQL-команда для создания новой таблицы:
Ограничения целостности при использовании CREATE TABLE
Может понадобиться создать ограничения для определённых столбцов в таблице. При создании таблицы можно задать следующие ограничения:
- ячейка таблицы не может иметь значение
NULL
; - первичный ключ —
PRIMARY KEY(col_name1, col_name2, …)
; - внешний ключ —
FOREIGN KEY(col_namex1, …, col_namexn) REFERENCES table_name(col_namex1, …, col_namexn)
.
Можно задать больше одного первичного ключа. В этом случае получится составной первичный ключ.
Пример
Создайте таблицу «instructor»:
DESCRIBE
С помощью DESCRIBE <table_name>
можно просмотреть различные сведения (тип значений, является ключом или нет) о столбцах таблицы.
INSERT
Команда INSERT INTO <table_name>
в SQL отвечает за добавление данных в таблицу:
При добавлении данных в каждый столбец таблицы не требуется указывать названия столбцов.
UPDATE
SQL-команда для обновления данных таблицы:
DELETE
SQL-команда DELETE FROM <table_name>
используется для удаления данных из таблицы.
DROP TABLE
А так можно удалить всю таблицу целиком.
SELECT
Далее мы рассмотрим основные команды SQL, которые позволяют работать непосредственно с данными. К одной из таких SQL-команд относится SELECT
для получения данных из выбранной таблицы:
Следующей командой можно вывести все данные из таблицы:
SELECT DISTINCT
В столбцах таблицы могут содержаться повторяющиеся данные. Используйте SELECT DISTINCT
для получения только неповторяющихся данных.
WHERE
Можно использовать ключевое слово WHERE
в SELECT
для указания условий в запросе:
В запросе можно задавать следующие условия:
- сравнение текста;
- сравнение численных значений;
- логические операции
AND
(и),OR
(или) иNOT
(отрицание).
Пример
Попробуйте выполнить следующие команды. Обратите внимание на условия, заданные в WHERE
:
GROUP BY
Оператор GROUP BY
часто используется с агрегатными функциями, такими как COUNT
, MAX
, MIN
, SUM
и AVG
, для группировки выходных значений.
Пример
Выведем количество курсов для каждого факультета:
HAVING
Ключевое слово HAVING
было добавлено в SQL по той причине, что WHERE
не может использоваться для работы с агрегатными функциями.
Пример
Выведем список факультетов, у которых более одного курса:
ORDER BY
ORDER BY
используется для сортировки результатов запроса по убыванию или возрастанию. ORDER BY
отсортирует по возрастанию, если не будет указан способ сортировки ASC
или DESC
.
Пример
Выведем список курсов по возрастанию и убыванию количества кредитов:
BETWEEN
BETWEEN
используется для выбора значений данных из определённого промежутка. Могут быть использованы числовые и текстовые значения, а также даты.
Пример
Выведем список инструкторов, чья зарплата больше 50 000, но меньше 100 000:
LIKE
Оператор LIKE
используется в WHERE
, чтобы задать шаблон поиска похожего значения.
Есть два свободных оператора, которые используются в LIKE
:
%
(ни одного, один или несколько символов);_
(один символ).
Пример
Выведем список курсов, в имени которых содержится «to»
, и список курсов, название которых начинается с «CS-»
:
IN
С помощью IN
можно указать несколько значений для оператора WHERE
:
Пример
Выведем список студентов с направлений Comp. Sci., Physics и Elec. Eng.:
JOIN
JOIN
используется для связи двух или более таблиц с помощью общих атрибутов внутри них. На изображении ниже показаны различные способы объединения в SQL. Обратите внимание на разницу между левым внешним объединением и правым внешним объединением:
Пример
Выведем список всех обязательных курсов и детали о них:
VIEW
VIEW
— это виртуальная таблица SQL, созданная в результате выполнения выражения. Она содержит строки и столбцы и очень похожа на обычную SQL-таблицу. VIEW
всегда показывает самую свежую информацию из базы данных.
Создание
Удаление
Агрегатные функции
Это не совсем основные команды SQL, однако знать их тоже желательно. Агрегатные функции используются для получения совокупного результата, относящегося к рассматриваемым данным:
COUNT(col_name)
— возвращает количество строк;SUM(col_name)
— возвращает сумму значений в данном столбце;AVG(col_name)
— возвращает среднее значение данного столбца;MIN(col_name)
— возвращает наименьшее значение данного столбца;MAX(col_name)
— возвращает наибольшее значение данного столбца.
Вложенные подзапросы
Вложенные подзапросы — это SQL-запросы, которые включают выражения SELECT
, FROM
и WHERE
, вложенные в другой запрос.
Пример
Найдём курсы, которые преподавались осенью 2009 и весной 2010 годов:
1М открытий2М показов