SQL Flashcards
SQL
язык запросов для работы с базами данных, структурированных особым образом.
SELECT
SELECT название столбцов, FROM название таблицы;
Оператор запроса, возвращающий набор данных (выборку).
общая структура запроса
SELECT - столбцы или * для выбора всех столбцов; обязательно
FROM - таблица; обязательно
WHERE - условие, например, city = ‘Moscow’; необязательно ( AND,OR, IN)
GROUP BY - столбец, по которому хотим сгруппировать данные; необязательно
HAVING - условие/фильтрация на уровне сгруппированных данных; необязательно
ORDER BY - столбец, по которому хотим отсортировать вывод; необязательно
WHERE
Необязательный опреатор запроса, для фильтрации данных по нужному условию. Внутри WHERE используются IN / NOT IN для фильтрации столбца по нескольким значениям, AND / OR для фильтрации таблицы по нескольким столбцам.
WHERE Country = ‘Germany’ AND City NOT IN (‘Berlin’, ‘Aachen’) AND CustomerID > 15
GROUP BY
Необязательный элемент запроса, задает агрегацию по нужному столбцу (например, если нужно узнать какое количество клиентов живет в каждом из городов).
1. перечень столбцов, по которым делается разрез, был одинаковым внутри SELECT и внутри GROUP BY,
2. агрегатные функции (SUM, AVG, COUNT, MAX, MIN) должны быть также указаны внутри SELECT с указанием столбца, к которому такая функция применяется.
SELECT City, COUNT(CustomerID) FROM Customers
GROUP BY City
AS
дает таблице или колонке в таблице временное имя. Часто используется чтобы сделать имя колонке более читабельным. Алиас существует только на время запроса. Если Алиас содержит пробелы то его заключают в “” или [].
Может помочь если:
- Более чем одна таблица присутствует в запросе;
- Функции используются в запросе
- Имена колонок большие и не читаемые
- Две или более колонки нужно объединить в одну.
SELECT_column_name_AS_alias_name_
FROM_table_name;_
или SELECT_column_name(s)_
FROM_table_name_AS_alias_name;_
HAVING
Необязательный элемент запроса, который отвечает за фильтрацию на уровне сгруппированных данных (по сути, WHERE, но только на уровень выше).
Фильтрация агрегированной таблицы с количеством клиентов по городам, в данном случае оставляем в выгрузке только те города, в которых не менее 5 клиентов.
select City, count(CustomerID) from Customers
group by City
HAVING count(CustomerID) >= 5
ORDER BY
Необязательный элемент запроса, который отвечает за сортировку таблицы. Осуществлять сортировку можно и по нескольким столбцам, в этом случае сортировка происходит по порядку указанных столбцов.
SELECT * FROM Customers
ORDER BY Country, City
DESC
По умолчанию сортировка происходит по возрастанию для чисел и в алфавитном порядке для текстовых значений. Если нужна обратная сортировка, то в конструкции ORDER BY после названия столбца надо добавить DESC.
SELECT * FROM Customers
ORDER BY Country DESC, City
JOIN
Необязательный элемент, используется для объединения таблиц по ключу, который присутствует в обеих таблицах. Перед ключом ставится оператор ON. Запрос, в котором соединяем таблицы Order и Customer по ключу CustomerID, при этом перед названиям столбца ключа добавляется название таблицы через точку: select * from Orders
JOIN Customers ON Orders.CustomerID = Customers.CustomerID
SELECT DISTINCT
возвращает данные с отличным значением.(не повторяющиеся)
NOT
используется в комбинации с другими операторами для противоположного результата.
NOT …. =(<,>) …, NOT LIKE, NOT BETWEEN, NOT IN
SELECT_column1,column2, …
FROM_table_name
WHERENOTcondition;
INSERT INTO
вставить строку с данными в таблицу.
INSERTINTO_table_name (column1,column2,column3, …)
VALUES(value1,value2,value3, …);
UPDATE
используется для модификации существующей записи.
UPDATE_table_name_
SET_column1=value1,column2=value2, …
WHERE_condition;
Если не использовать условие то изменятся все данные в таблице!
NULL
это поле, оставленное пустым при создании записи.
проверка не него осуществляется с помощью IS NULL или IS NOT NULL
DELETE
удаляет записи в таблице.
DELETEFROM_table_name_WHERE_condition_;
без условия удаляются все записи без удаления самой таблицы.
SELECT TOP
LIMIT
выводит указанное количество записей.
SELECT TOP SQL Server
LIMIT MySQL
MIN MAX
агрегатная функция. Возвращает минимальное или максимальное значение в выборке.
SELECTMIN(Price) аналогично MAX
FROMProducts;
COUNT
агрегатная функция. Возвращает количество рядов для указанной колонки. Возможно применение условия.
SELECT SUM(column_name)
FROM table_name
WHERE condition;
COUNT(DISTINCT ) возвращает количество рядов без дубликатов.
SUM
агрегатная функция, которая возвращает сумму по столбцу с числами. Возможно применение условия. Сумма может быть от выражения.
SELECTSUM(column_name)
FROM_table_name_
WHERE_condition_;
AVG
агрегатная функция, которая возвращает среднее значение по колонке с числами.
SELECTAVG(column_name)
FROM_table_name_
WHERE_condition_;