14 апреля 2022

📜 Основные SQL-команды и запросы с примерами, которые должен знать каждый разработчик

Веб-разработчик, фрилансер... Пишу об ИТ и смежных технологиях.
В небольшом обзоре разберем наиболее важные команды языка запросов SQL и сделаем шаг в сторону грамотного изучения работы с базами данных.
📜 Основные SQL-команды и запросы с примерами, которые должен знать каждый разработчик

Кратко об SQL

Хранить информацию в базах данных (БД) – обычная практика для среднего и крупного бизнеса. Такой подход позволяет при необходимости легко получить доступ к нужным сведениям. Чтобы работать с такими базами, необходимо изучить SQL — структурированный язык запросов, используемый для извлечения и обработки хранящейся информации.

Запросы языка и непосредственно сам SQL можно разделить на несколько категорий.

1. Язык определения данных

Язык определения данных или DDL позволяет создавать БД, описывать их структуру, а также устанавливать правила размещения в них данных.

Команды DDL:

  1. ALTER — добавить, изменить или удалить столбцы.
  2. COLLATE — оператор сопоставления.
  3. CREATE — создать таблицы.
  4. DROP — оператор удаления объектов из базы данных.
  5. DISABLE TRIGGER — отключить триггер.
  6. ENABLE TRIGGER — включить триггер.
  7. RENAME — переименовать.
  8. UPDATE STATISTICS — обновить статистику.

2. Язык обработки данных DML

Язык обработки данных DML позволяет манипулировать данными в БД, изменять уже внесенную информацию, сохранять, обновлять и удалять хранимую информацию. Под данную категорию подпадает основная часть всех SQL команд.

Запросы DML:

  1. BULK INSERT — для загрузки данных из файла в таблицу.
  2. SELECT — оператор запроса, возвращающий нам необходимые сведения.
  3. DELETE — удаляет строки из таблиц.
  4. UPDATE — изменяет табличные данные.
  5. INSERT — вставляет новые записи.
  6. UPDATETEXT — обновляет текст.
  7. MERGE — смесь операторов UPDATE и INSERT.
  8. WRITETEXT — запись текста.
  9. READTEXT — чтение текста.

3. Язык управления данными или DCL

Язык управления данными или DCL позволяет настроить работу с базой данных путем установки необходимых разрешений и прав СУБД.

DCL -запросы:

  1. GRANT — управление доступом к базе данных.
  2. REVOKE — отмена выданных привилегий.
  3. DENY — отнимает у пользователя возможность выполнять действия.

4. Язык управления транзакциями TCL

Язык управления транзакциями TCL служит для управления изменениями, происходящими в результате DML-запросов, и объединяет эти DML-запросы в наборы транзакций.

TCL команды:

  1. BEGIN — определяем начало транзакции.
  2. COMMIT — фиксируем изменения.
  3. 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 в этой конструкции указывает, из какой именно таблицы вы хотите ее (эту информацию) взять.

Например:

        SELECT first_name, last_name
FROM Clients;
    

2. Для выбора всех столбцов из таблицы используем символ *.

        SELECT *
FROM Clients;

    

3. Команда SELECT может иметь необязательный оператор WHERE, позволяющий извлекать записи, соответствующие определенным условиям. Здесь мы выбираем из таблицы всех клиентов по фамилии Рабинович:

        SELECT *
FROM Clients;
WHERE last_name = 'Рабинович';

    

4. Здесь с помощью Select мы хотим получить всех клиентов из России:

        SELECT age
FROM Clients;
WHERE country = 'Россия';

    
Примечание
В SQL мы должны заключать текстовые данные в одинарные или двойные кавычки.

5. Также для поиска достаточно часто используются условные операторы. В следующем примере мы извлекаем из таблицы всех клиентов, возраст которых превышает 25 лет:

        SELECT *
FROM Clients;
WHERE age > 25;

    

6. А тут мы выбираем всех клиентов, по фамилии Рабинович проживающих в России.

        SELECT *
FROM Clients;
WHERE last_name = 'Рабинович' AND country = 'Россия';

    

7. Здесь SELECT выведет результат, если все условия, разделенные оператором AND, будут истинны. В данном случае команда выберет имена всех клиентов по фамилии Петров из России:

        SELECT first_name
FROM Clients;
WHERE country = 'Россия' AND last_name = 'Петров';

    

По такому же принципу работает оператор OR (или), c той лишь разницей, что в этом случае система будет искать элементы таблицы, совпадающие хотя бы с одной частью условия.

8. Оператор SQL NOT выбирает строку, если заданное условие равно FALSE. Здесь мы выбираем имена и фамилии клиентов, проживающих во всех странах, кроме Латвии.

        SELECT first_name, last_name
FROM Clients;
WHERE NOT country = 'Латвия

    

9. Также можно комбинировать несколько операторов AND, OR и NOT в одном запросе. В этом примере мы хотим выбрать клиентов из России или Беларуси, возраст которых меньше 26 .

        SELECT *
FROM Clients;
WHERE (country = 'Россия' OR country = 'Беларусь') AND age < 26;

    

10. Оператор SQL SELECT DISTINCT выбирает уникальные, отличные от других, строки из таблицы. Здесь мы выводим неодинаковые страны проживания клиентов.

        SELECT DISTINCT country
FROM Clients;

    

11. А здесь мы выбираем неодинаковые комбинации параметров страна + имя.

        SELECT DISTINCT country, first_name
FROM Clients;

    

12. Если нам нужно подсчитать количество уникальных строк, мы можем использовать функцию COUNT() в совокупности с оператором DISTINCT. Здесь команда SELECT возвращает количество уникальных стран:

        SELECT COUNT(DISTINCT country)
FROM Clients;

    

13. Ключевое слово AS используется для присвоения столбцам или всей таблице временного имени, которое позже можно использовать для его или ее идентификации соответственно. Здесь переименовываем столбец first_name на name.

        SELECT first_name AS name
FROM Clients;

    

14. Оператор TOP используется для выбора фиксированного количества строк из базы данных. В примере ниже мы выбираем первые 2 строки из таблицы.

        SELECT TOP 2 *
FROM Clients;

    

15. Ключевое слово LIMIT используется со следующими системами баз данных: MySQL, PostgreSQL, SQLite. Здесь мы ограничиваем вывод имени и возраста клиента двумя первыми строками таблицы.

        SELECT first_name, age
FROM Clients;
LIMIT 2;

    

16. Оператор IN используется с предложением WHERE для сопоставления значений в списке. Здесь мы выбираем имена клиентов, проживающих либо в России, либо в Латвии.

        SELECT first_name, country
FROM Clients;
WHERE country IN ('Россия', 'Латвия');

    

17. Оператор IN также можно использовать для выбора строк с определенным значением. Здесь выбираются строки со значением Россия в поле country.

        SELECT first_name, country
FROM Clients;
WHERE 'Россия' in (country);

    

18. Ключевое выражение ORDER BY используется для сортировки результирующего набора выводимых данных в порядке возрастания или убывания. В этом примере мы выбираем всех клиентов, а затем сортируем их в порядке возрастания по имени (т. е. по алфавиту).

        SELECT *
FROM Clients;
ORDER BY first_name;

    

19. Чтобы явно отсортировать выбранные записи в порядке возрастания, используем ключевое слово ASC. В примере мы выбираем всех клиентов, а затем сортируем их в порядке возрастания по возрасту.

        SELECT *
FROM Clients;
ORDER BY age ASC;

    

Ключевое слово DESC применяется для аналогичной сортировки, только в порядке убывания.

20. Также мы можем использовать ORDER BY при работе с несколькими столбцами. В конструкции ниже мы выбираем все записи, а затем сортируем их по имени. Если имя повторяется более одного раза, SQL сортирует данные по возрасту.

        SELECT *
FROM Clients;
ORDER BY first_name, age;

    

21. Можем использовать ORDER BY вместе с ключевым словом WHERE. В примере мы сначала выбираем данные о фамилии и возрасте клиентов не из России. Затем выбранные записи сортируем в порядке убывания по фамилии:

        SELECT last_name, age
FROM Clients;
WHERE NOT country = 'UK'
ORDER BY last_name DESC;

    

22. Здесь мы группируем строки по параметру country и подсчитываем количество повторяющихся стран с помощью функции COUNT().

        SELECT country, COUNT(*) AS number
FROM Clients;
GROUP BY country;

    
***

Это далеко не полный список вариантов использования команды SELECT при работе с базами данных. Комбинаций довольно много. Однако, важно понять базовый принцип написания таких запросов. По большому счету, язык запросов не так сложен и основные команды при должной усидчивости можно освоить за неделю. Ну а дальше – практика, а практический опыт накапливается долго. Удачи в обучении.

Материалы по теме

Комментарии

ВАКАНСИИ

Добавить вакансию
Разработчик C++
Москва, по итогам собеседования

ЛУЧШИЕ СТАТЬИ ПО ТЕМЕ