SQL Flashcards
Вывод всех данных из таблицы
SELECT * FROM FamilyMembers
Вывод данных из определенных колонок таблицы
SELECT member_id, member_name FROM FamilyMembers
Вывод столбцов таблицы так чтобы их названия в итоговой выборке были другими
SELECT member_id, member_name AS Name FROM FamilyMembers
(ИЛИ)
SELECT member_id, member_name Name FROM FamilyMembers
Встроенная функция
реализованный в СУБД кусок кода, с помощью которого можно выполнять преобразования строковых, числовых и других данных в запросах.
Как исключить дубликаты из выборки
Использовать оператор DISTINCT:
SELECT [DISTINCT] поля_таблиц FROM наименование_таблицы;
(ИЛИ)
SELECT DISTINCT first_name, last_name FROM User; - для нескольких полей
Как сделать выборку по условию?
Использовать условный оператор WHERE:
SELECT [DISTINCT] * FROM Student
WHERE first_name = “Grigorij” AND YEAR(birthday) > 2000;
Что если сравнить какое-либо значение с NULL?
Результатом сравнения любого значения с NULL является NULL. Исключением является оператор эквивалентности.
Зачем нужен оператор LIKE?
Оператор LIKE используется при условных запросах, когда мы хотим узнать соответствует ли строка определённому шаблону:
SELECT name, email FROM Users
WHERE email [NOT] LIKE ‘%@hotmail.%’,
где % - последовательность любых символов (число символов в последовательности может быть от 0 и более),
а _ - любой единичный символ
Как отсортировать данные из выборки?
Использовать оператор ORDER BY:
SELECT DISTINCT town_from, town_to FROM Trip
ORDER BY town_from, town_to DESC;
Как сортируются строковые данные при использовании ORDER BY?
Сортировка строковых данных подразумевает сортировку в лексикографическом (алфавитном) порядке и по умолчанию происходит по возрастанию.
Общая структура запроса GROUP BY?
SELECT [литералы, агрегатные_функции, поля_группировки]
FROM имя_таблицы
GROUP BY поля_группировки;
Как GROUP BY работает с NULL?
Для GROUP BY все значения NULL трактуются как равные, т.е. при группировке по полю, содержащему NULL-значения, все такие строки попадут в одну группу
Что такое агрегатная функция?
Агрегатная функция – это функция, которая выполняет вычисление на наборе значений и возвращает одиночное значение.
Пример:
SELECT home_type, AVG(price) as avg_price FROM Rooms
GROUP BY home_type
Самые популярные агрегатные функции
SUM(поле_таблицы) - Возвращает сумму значений
AVG(поле_таблицы) - Возвращает среднее значение
COUNT(поле_таблицы) - Возвращает количество записей
MIN(поле_таблицы) - Возвращает минимальное значение
MAX(поле_таблицы) - Возвращает максимальное значение
Для каких значений применяются агрегатные функции?
Агрегатные функции применяются для значений, не равных NULL. Исключением является функция COUNT(*)
Группировка запроса с поиском количества по группе и дальнейшей сортировкой
SELECT home_type, COUNT(*) as amount FROM Rooms
GROUP BY home_type
ORDER BY amount DESC
Как фильтровать группы?
Для фильтрации групп мы должны использовать оператор HAVING:
SELECT home_type, AVG(price) as avg_price FROM Rooms
GROUP BY home_type
HAVING avg_price > 50
Как происходит порядок выполнения запроса?
- FROM - получение всех записей из таблицы
- WHERE - фильтрация записей по определенным условиям
- GROUP BY - формирование групп на основе записей после фильтрации
- HAVING - фильтрация групп по определенным условиям
- ORDER BY - сортировка полученных результатов
Общая структура запроса с оператором HAVING
SELECT [константы, агрегатные_функции, поля_группировки]
FROM имя_таблицы
WHERE условия_на_ограничения_строк
GROUP BY поля_группировки
HAVING условие_на_ограничение_строк_после_группировки
ORDER BY условие_сортировки