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