14 Июн 2022
7 мин
36494

SQL-запросы: базовые команды и примеры

Чтобы создать таблицу, используют команду CREATE TABLE, новую запись — INSERT.

Содержание

SQL — язык структурированных запросов. Его создали в 1974 году, чтобы хранить и обрабатывать данные. Все реляционные СУБД — системы управления базами данных — используют его в качестве препроцессора для обработки команд. Сами же базы данных представляют наборы таблиц, где запись — это строка.

SQL в работе используют разработчики и тестировщики, чтобы улучшать сайт или приложение через грамотную работу с базами данных. Тестировщики таким образом помогают бизнесу принимать эффективные решения на основе данных. Маркетологи — глубже анализировать поведение пользователей.

Виды SQL-запросов

Ключевые слова этого языка делят на четыре логические группы.

1️⃣ DDL

Data Definition Language — язык определения данных. В него входят ключевые слова CREATE, DROP, RENAME и другие, которые относят к определению и манипулированию структурой базы данных. Их используют, чтобы создавать базы данных и описывать структуру, устанавливать, как размещать данные.

2️⃣ DML

Data Manipulation Language — язык манипулирования данными. В этой группе — запросы SELECT, INSERT, UPDATE, DELETE и другие. Их используют, чтобы изменять, получать, обновлять и удалять данные из базы.

3️⃣ DCL

Data Control Language  — язык управления данными. К этой группе относят запросы разрешений, прав и различных ограничивающих доступ настроек. Например, GRANT или DENY.

4️⃣ TCL

Transaction Control Language — язык управления транзакциями. В эту группу входят все запросы, которые относят к управлению транзакциями и их жизненными циклами. Например, BEGIN TRANSACTION, ROLLBACK TRANSACTION, COMMIT TRANSACTION.

Особенности языка изучите на курсе «Аналитик данных». Под руководством наставников научитесь делать таблицы и составлять запросы для анализа. Сможете соединять и обрабатывать несколько таблиц, использовать оконные функции.

Виды SQL-запросов

Структура SQL-запросов

Запросы на языке SQL последовательны: логика их составления почти не отличается от обычного предложения. Например, вы хотите отфильтровать записи, чтобы получить только те, где в первом столбце значение равно единице. А после получить значения второго и третьего столбцов в выборке. Предложение на такую команду будет следующее:

Выбрать Столбец2, Столбец3 из Таблица1, где Столбец1 равен одному

На SQL это выглядит похоже:

SELECT (Column2, Column3) FROM Table1 WHERE Column1 = 1

Простые запросы SQL

Ключевые слова

Их используют, чтобы составить запросы:

✔️ WHERE

Это ключевое слово отфильтровывает записи. Мы использовали его в абстрактном примере:

SELECT (Column2, Column3) FROM Table1 WHERE Column1 = 1

✔️ GROUP BY

Группирует записи выборки по значениям указанных столбцов. Это ключевое слово должно следовать после WHERE.

✔️ AND, OR и BETWEEN

AND или OR расширяют выборку, создаваемую с помощью WHERE. Либо сужают ее, если указать дополнительные значения. Ключевое слово BETWEEN позволяет указать диапазон значений, чтобы создать выборку.

✔️  LIMIT

Лимитирует количество значений выборки. Например, по указанным фильтрам получено 100 значений, а нужны только первые 10. Тогда применяют синтаксис LIMIT 10.

На курсе «Анализ данных» несколько уроков посвящены тому, чтобы делать простые запросы на выборку, фильтрацию и сортировку данных, очищать и подготавливать их для анализа. На практике научитесь составлять разные комбинации, чтобы решать реальные задачи. Создадите проекты для портфолио, а если успешно окончите курс, получите диплом установленного образца.

Команды

С них начинаются запросы.

Предположим, нам необходимо создать базу данных, чтобы хранить информацию о прочитанных книгах, извлекать и изменять данные. В примерах мы будем использовать самую простую СУБД — sqlite3 в среде Linux. Создайте базу данных командой sqlite3 demo.db — и сразу попадете в командную строку программы:

sqlite3 demo.db

SQLite version 3.27.2 2019-02-25 16:06:06
Enter ".help" for usage hints.
sqlite>

🚀 CREATE TABLE

Чтобы создать таблицу, используют команду CREATE TABLE. Если создаете таблицу с прочитанными книгами, вероятно, понадобятся три столбца: id, название и автор.

sqlite> CREATE TABLE Books (id INTEGER PRIMARY KEY, title CHAR(255), author CHAR(255));
sqlite> .tables
Books

Команда .tables отображает список таблиц.

🚀 INSERT

Команда создает новые записи. Добавим три книги в нашу таблицу:

sqlite> INSERT INTO Books(title, author) VALUES
   ...> ("Язык SQL", "Неизвестный автор"),
   ...> ("SQL. Сборник рецептов", "Энтони Молинаро"),
   ...> ("Книга №3", "Без автора");

Указываем, в какие столбцы нужно вставить данные, игнорируя столбец id: он помечен как первичный ключ. Будет автоматически инкрементироваться, генерируя уникальные значения. В примере вставляем несколько записей за один запрос.

🚀 SELECT

Извлекает записи из таблицы:

sqlite> SELECT * FROM Books;
1|Язык SQL|Неизвестный автор
2|SQL. Сборник рецептов|Энтони Молинаро
3|Книга №3|Без автора

Каждая запись будет на новой строке, а значения столбцов — разделены вертикальной линией. Если, например, нужны не все, а определенные столбцы, то звездочку замените на названия столбцов через запятую:

sqlite> SELECT title, author FROM Books;
Язык SQL|Неизвестный автор
SQL. Сборник рецептов|Энтони Молинаро
Книга №3|Без автора

🚀 UPDATE

Изменяет существующие записи. Чтобы использовать эту команду, укажите уникальный идентификатор изменяемой записи. Либо характеристику, по которой можно получить одну запись или группу из нескольких записей. Обновим авторов у первой и последней записи:

sqlite> UPDATE Books
   ...> SET author = "Unknown"
   ...> WHERE id = 1 OR id = 3;

sqlite> 
sqlite> SELECT title, author FROM Books;
Язык SQL|Unknown
SQL. Сборник рецептов|Энтони Молинаро
Книга №3|Unknown

🚀 DELETE

Удаляет записи из таблицы по поисковому запросу. Удалим книгу с id, равным двум:

sqlite> DELETE FROM Books WHERE id = 2;
sqlite> 
sqlite> SELECT * FROM Books;
1|Язык SQL|Unknown
3|Книга №3|Unknown

🚀 DROP TABLE

Удаляет таблицы из базы данных. Создадим и удалим демонстрационную таблицу:

sqlite> CREATE TABLE Demo (id INTEGER PRIMARY KEY, text TEXT);
sqlite> 
sqlite> .tables
Books  Demo 
sqlite> 
sqlite> DROP TABLE Demo;
sqlite> 
sqlite> .tables
Books

🚀 ALTER TABLE

Команда в сочетании с другими ключевыми словами изменяет названия таблиц или добавляет новые столбцы. Изменим название нашей таблицы Books:

sqlite> ALTER TABLE Books RENAME TO MyBooks;
sqlite> 
sqlite> .tables
MyBooks

Добавим в нее новый столбец is_finished с булевым значением:

sqlite> ALTER TABLE MyBooks ADD COLUMN is_finished BOOLEAN;
sqlite> UPDATE MyBooks
   ...> SET is_finished = True;
sqlite> 
sqlite> SELECT * FROM MyBooks;
1|Язык SQL|Unknown|1
3|Книга №3|Unknown|1

Агрегатные функции

Их используют, чтобы проводить дополнительные вычисления внутри полученной выборки:

✔️ COUNT(название_столбца) — возвращает количество строк выборки, где значение столбца не NULL.

✔️ SUM(название_столбца) — вычисляет и возвращает сумму значений в указанном столбце.

✔️ AVG(название_столбца) — вычисляет и возвращает среднее значение по столбцу.

✔️ MIN(название_столбца) — возвращает наименьшее значение для указанного столбца.

✔️ MAX(название_столбца) — возвращает наибольшее значение указанного столбца.

Научиться работе со всеми видами агрегатных функций можно на курсе «Анализ данных». Сможете взаимодействовать с синтаксисом и операторами для создания, модификации и удаления таблиц в SQL. В конце обучения у вас будет резюме, портфолио и диплом о профессиональной переподготовке. Это поможет устроиться на хорошую работу.

Вложенные подзапросы

Это SQL-запрос внутри другого SQL-запроса. Подзапросы помогают, если выборку фильтруют по значениям, которые тоже можно отфильтровать. Например, получим названия футбольных команд — участников соревнований с 2010 по 2020 годы:

SELECT DISTINCT club_name
FROM clubs
WHERE game_year = 2010 AND club_id IN
(SELECT club_id
FROM clubs
WHERE game_year = 2020
);

Ключевое слово DISTINCT убирает из выборки дублирующиеся результаты.

Главное

  • SQL используют в реляционных СУБД, где хранят данные в виде таблиц.
  • Основные команды SQL делят на четыре логические группы: DDL, DML, DCL, TCL.
  • С SQL можно создавать, читать, изменять и удалять данные. Например, чтобы создать таблицу, используют команду CREATE TABLE, извлечь записи — SELECT, удалить таблицу баз данных — DROP TABLE.
  • Для дополнительных вычислений нужны агрегатные функции: вычислять и возвращать сумму, наименьшее и наибольшее значение для указанного столбца.

Узнайте, как решать бизнес-задачи с помощью SQL, на курсе Skypro «Аналитик данных». За 5-9 месяцев научитесь фильтровать, группировать и объединять данные из разных таблиц, проводить аналитические исследования, вычислять показатели из большого объема информации. Студенты участвуют в вебинарах и выполняют задания, разбирают реальные задачи на командных мастер-классах под руководством эксперта.

Содержание

Добавить комментарий

Определи профессию по рисунку