img
img
14 июня 2022
14 июня 2022
6 мин
198

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

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

img

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-запроса. Подзапросы помогают, если выборку фильтруют по значениям, которые тоже можно отфильтровать. Например, получим названия футбольных команд — участников соревнований с 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, на курсе «Основы SQL для анализа данных» Skypro. За два месяца научитесь фильтровать, группировать и объединять данные из разных таблиц, проводить аналитические исследования, вычислять показатели из большого объема информации. 

На один час теории — пять часов практики. Участвуйте в вебинарах, живых 60-минутных видеоуроках и после каждого занятия выполняйте задание. Разбирайте реальные задачи на командных мастер-классах под руководством эксперта.

img
Подпишитесь на рассылку, чтобы Не упустить что-нибудь новое
Просто и понятно о том, как получить новую профессию


    Дадим нужные знания и поможем получить работу!
    Регистрируйтесь на курс и учитесь у экспертов-практиков.
    Профессия
    за 10 месяцев
    Python-разработчик
    • Программа соответствует требованиям к вакансиям работодателей
    • Много практики в среде коммерческой разработки
    • Под силу даже если у вас нет опыта в IT
    • Всего 11 часов в неделю
    2973 ₽/мес.
    Ещё по теме
    Что такое join в SQL и как с ним работать

    Join — оператор для объединения данных из нескольких таблиц с общим ключом.

    09 июня 2022
    8 мин
    Словарь аналитика данных, или Как выбрать чайник

    Разбираем, что такое пул, фича, дашборд и другие термины.

    09 июня 2022
    3 мин
    Обзор лучших сервисов для анализа маркетплейсов

    Анализируем SellerFox, MPStats, Shopstat, PI-Data и еще шесть сервисов.

    17 мая 2022
    8 мин
    Юнит-экономика: что это такое и как ее рассчитать

    С помощью unit-экономики прогнозируют доход, находят точки роста.

    16 апреля 2022
    9 мин
    Как работать с формулами в Excel

    Формулы в Excel делятся на простые, сложные и комбинированные.

    13 апреля 2022
    7 мин
    Кто такой менеджер по продукту, чем он занимается и как им стать

    Product manager отвечает за все стадии работы над продуктом.

    03 марта 2022
    9 мин
    Что такое когортный анализ: для чего и где применять, как проводить исследование

    В когорту входят пользователи, совершившие одинаковое действие в одно время.

    02 марта 2022
    7 мин
    Что такое дашборд и как его создать

    Дашборд экономит время и помогает увидеть ситуацию с разных сторон.

    24 февраля 2022
    11 мин
    Кто такой аналитик и как им стать

    Аналитик нужен в любой сфере, где систематизируют и исследуют большие данные.

    24 февраля 2022
    12 мин
    kralbetbetturkeyikimislibahis1xbetm.infohipas.infohttps://www.wiibet.com/restbetcdn.com
    Вставить формулу как
    Блок
    Строка
    Дополнительные настройки
    Цвет формулы
    Цвет текста
    #333333
    Используйте LaTeX для набора формулы
    Предпросмотр
    \({}\)
    Формула не набрана
    Вставить