Кратко об SQL
Хранить информацию в базах данных (БД) – обычная практика для среднего и крупного бизнеса. Такой подход позволяет при необходимости легко получить доступ к нужным сведениям. Чтобы работать с такими базами, необходимо изучить SQL — структурированный язык запросов, используемый для извлечения и обработки хранящейся информации.
Запросы языка и непосредственно сам SQL можно разделить на несколько категорий.
1. Язык определения данных
Язык определения данных или DDL позволяет создавать БД, описывать их структуру, а также устанавливать правила размещения в них данных.
Команды DDL:
ALTER
— добавить, изменить или удалить столбцы.COLLATE
— оператор сопоставления.CREATE
— создать таблицы.DROP
— оператор удаления объектов из базы данных.DISABLE TRIGGER
— отключить триггер.ENABLE TRIGGER
— включить триггер.RENAME
— переименовать.UPDATE STATISTICS
— обновить статистику.
2. Язык обработки данных DML
Язык обработки данных DML позволяет манипулировать данными в БД, изменять уже внесенную информацию, сохранять, обновлять и удалять хранимую информацию. Под данную категорию подпадает основная часть всех SQL команд.
Запросы DML:
BULK INSERT
— для загрузки данных из файла в таблицу.SELECT
— оператор запроса, возвращающий нам необходимые сведения.DELETE
— удаляет строки из таблиц.UPDATE
— изменяет табличные данные.INSERT
— вставляет новые записи.UPDATETEXT
— обновляет текст.MERGE
— смесь операторовUPDATE
иINSERT
.WRITETEXT
— запись текста.READTEXT
— чтение текста.
3. Язык управления данными или DCL
Язык управления данными или DCL позволяет настроить работу с базой данных путем установки необходимых разрешений и прав СУБД.
DCL -запросы:
GRANT
— управление доступом к базе данных.REVOKE
— отмена выданных привилегий.DENY
— отнимает у пользователя возможность выполнять действия.
4. Язык управления транзакциями TCL
Язык управления транзакциями TCL служит для управления изменениями, происходящими в результате DML-запросов, и объединяет эти DML-запросы в наборы транзакций.
TCL команды:
BEGIN
— определяем начало транзакции.COMMIT
— фиксируем изменения.ROLLBACK
— откатывает все изменения.
5. Основные команды SQL: Select
Будет сложно охватить в одной маленькой статье все особенности работы с SQL. Поэтому давайте рассмотрим виды SQL-запросов с использованием ключевого слова SELECT
. Пожалуй, это наиболее часто используемая команда, необходимая для извлечения (чтения) нужной нам информации из базы данных.
Давайте разберем по пунктам практические примеры применения таких запросов на примере созданной нами в БД таблицы Clients
с информацией о покупателях условного магазина.
Cousomer_id | First_name | Last_name | Age | Country |
1 | Абрам | Рабинович | 31 | Россия |
2 | Денис | Петров | 22 | Россия |
3 | Иван | Сидоров | 22 | Латвия |
4 | Денис | Кузнецов | 25 | Латвия |
5 | Сара | Рабинович | 28 | Беларусь |
Итак, что же можно делать с загруженными в базу сведениями при помощи рассматриваемой команды?
1. Запрашивать фамилии и имена всех клиентов. Оператор FROM
в этой конструкции указывает, из какой именно таблицы вы хотите ее (эту информацию) взять.
Например:
2. Для выбора всех столбцов из таблицы используем символ *
.
3. Команда SELECT
может иметь необязательный оператор WHERE
, позволяющий извлекать записи, соответствующие определенным условиям. Здесь мы выбираем из таблицы всех клиентов по фамилии Рабинович
:
4. Здесь с помощью Select
мы хотим получить всех клиентов из России
:
5. Также для поиска достаточно часто используются условные операторы. В следующем примере мы извлекаем из таблицы всех клиентов, возраст которых превышает 25 лет:
6. А тут мы выбираем всех клиентов, по фамилии Рабинович
проживающих в России
.
7. Здесь SELECT
выведет результат, если все условия, разделенные оператором AND
, будут истинны. В данном случае команда выберет имена всех клиентов по фамилии Петров
из России
:
По такому же принципу работает оператор OR
(или), c той лишь разницей, что в этом случае система будет искать элементы таблицы, совпадающие хотя бы с одной частью условия.
8. Оператор SQL NOT
выбирает строку, если заданное условие равно FALSE
. Здесь мы выбираем имена и фамилии клиентов, проживающих во всех странах, кроме Латвии
.
9. Также можно комбинировать несколько операторов AND
, OR
и NOT
в одном запросе. В этом примере мы хотим выбрать клиентов из России
или Беларуси
, возраст которых меньше 26
.
10. Оператор SQL SELECT DISTINCT
выбирает уникальные, отличные от других, строки из таблицы. Здесь мы выводим неодинаковые страны проживания клиентов.
11. А здесь мы выбираем неодинаковые комбинации параметров страна
+ имя
.
12. Если нам нужно подсчитать количество уникальных строк, мы можем использовать функцию COUNT()
в совокупности с оператором DISTINCT
. Здесь команда SELECT
возвращает количество уникальных стран:
13. Ключевое слово AS
используется для присвоения столбцам или всей таблице временного имени, которое позже можно использовать для его или ее идентификации соответственно. Здесь переименовываем столбец first_name
на name
.
14. Оператор TOP
используется для выбора фиксированного количества строк из базы данных. В примере ниже мы выбираем первые 2 строки из таблицы.
15. Ключевое слово LIMIT
используется со следующими системами баз данных: MySQL, PostgreSQL, SQLite. Здесь мы ограничиваем вывод имени и возраста клиента двумя первыми строками таблицы.
16. Оператор IN
используется с предложением WHERE
для сопоставления значений в списке. Здесь мы выбираем имена клиентов, проживающих либо в России
, либо в Латвии
.
17. Оператор IN
также можно использовать для выбора строк с определенным значением. Здесь выбираются строки со значением Россия
в поле country
.
18. Ключевое выражение ORDER BY
используется для сортировки результирующего набора выводимых данных в порядке возрастания или убывания. В этом примере мы выбираем всех клиентов, а затем сортируем их в порядке возрастания по имени (т. е. по алфавиту).
19. Чтобы явно отсортировать выбранные записи в порядке возрастания, используем ключевое слово ASC
. В примере мы выбираем всех клиентов, а затем сортируем их в порядке возрастания по возрасту.
Ключевое слово DESC
применяется для аналогичной сортировки, только в порядке убывания.
20. Также мы можем использовать ORDER BY
при работе с несколькими столбцами. В конструкции ниже мы выбираем все записи, а затем сортируем их по имени. Если имя повторяется более одного раза, SQL сортирует данные по возрасту.
21. Можем использовать ORDER BY
вместе с ключевым словом WHERE
. В примере мы сначала выбираем данные о фамилии и возрасте клиентов не из России
. Затем выбранные записи сортируем в порядке убывания по фамилии:
22. Здесь мы группируем строки по параметру country
и подсчитываем количество повторяющихся стран с помощью функции COUNT()
.
Это далеко не полный список вариантов использования команды SELECT
при работе с базами данных. Комбинаций довольно много. Однако, важно понять базовый принцип написания таких запросов. По большому счету, язык запросов не так сложен и основные команды при должной усидчивости можно освоить за неделю. Ну а дальше – практика, а практический опыт накапливается долго. Удачи в обучении.
Материалы по теме
- 🐘 Руководство по SQL для начинающих. Часть 1: создание базы данных, таблиц и установка связей между таблицами
- 🐘 Руководство по SQL для начинающих. Часть 2: фильтрация данных, запрос внутри запроса, работа с массивами
- 🐘 Руководство по SQL для начинающих. Часть 3: усложняем запросы, именуем вложенные запросы, анализируем скорость запроса
- SQL за 20 минут
Комментарии