🐬 ТОП-10 самых часто используемых запросов MySQL
Из этой статьи вы узнаете о 10 наиболее часто используемых запросах в MySQL, которыми пользуются новички и эксперты в области управления базами данных.
Обычно запросы в MySQL пишутся один раз в теле функции класса, чтобы свести к минимуму повторение кода. Запрос позволяет получить информацию из таблицы базы данных или комбинации таблиц.
Существует множество языков запросов, которые можно написать для выполнения ряда простых и сложных запросов. Запросы обеспечивают фильтрацию данных на основе определенных критериев, автоматизацию процессов управления данными, а также занимаются расчетами. В этой статье мы рассмотрим 10 наиболее распространенных запросов MySQL.
На примере демонстрационных баз данных рассмотрим, как работает каждый запрос.
| EmployeeID | Name | Title |
| 1002 | Webster W. | Executive |
| 1003 | Lizzy S. | Manager |
| 1004 | Oliver T. | Software Engineer |
| EmployeeID | Department | Age |
| 1002 | HR | 36 |
| 1003 | Sales | 21 |
| 1004 | IT | 39 |
1. SELECT All
Простой запрос SELECT используется для получения и отправки всех данных из базы данных. Его синтаксис:
SELECT * FROM Employees;
Результат:
1002 Webster W. Executive 1003 Lizzy S. Manager 1004 Oliver T. Software Engineer
Чтобы выбрать все столбцы, имеющиеся в таблице, вы должны использовать *. Так вы покажите, что вам нужна вся возможная возвращаемая информация. Также укажите ключевое слово FROM, чтобы получить данные из таблицы базы данных. Никогда не забывайте заканчивать выражение точкой с запятой ; для правильного оформления запроса.
2. SELECT
Чтобы получить данные из определенных столбцов, а не из всех, вы должны просто указать имя поля вместо использования звездочки *.
Код:
SELECT Title FROM Employees;
Результат:
Title Executive Manager Software Engineer
При выборе нескольких столбцов из базы данных, они должны быть разделены запятой. Вот так:
SELECT Title, Name FROM Employees;
3. WHERE
При использовании WHERE в запросе SELECT записи данных будут фильтроваться, а в качестве результата извлекаться записи, соответствующие условию (условиям).
Код:
SELECT * FROM Employees WHERE EmployeeID = 1004 ;
Результаты:
1004 Oliver T. Software Engineer
В предложении WHERE может быть несколько условий, которые можно разделить с помощью ключевого слова AND.
4. CREATE
Этот запрос можно использовать для создания новой таблицы с определенным набором столбцов. При добавлении имен столбцов обязательно укажите тип данных.
Код:
CREATE TABLE EmployeeInfo ( EmployeeId INT, Department VARCHAR(25), Age NUMBER );
Ожидаемые результаты таблицы:
| EmployeeID | Department | Department |
| NULL | NULL | NULL |
После того как вы выполните команду CREATE TABLE и заполните ее заголовками столбцов, приведенный выше запрос создаст в базе данных таблицу EmployeeInfo. Каждый столбец вернет NULL, потому что мы не вставили какое-либо конкретное значение. Это приводит нас к следующему запросу INSERT INTO.
5. INSERT INTO
Это наиболее распространенный запрос для вставки значений в одну или несколько строк новых записей в таблице. Мы можем заполнить таблицу EmployeeInfo некоторыми примерами данных:
Код:
INSERT INTO EmployeeInfo (EmployeeID,Department,Age) VALUES (1002, HR , 46), (1003, Finance , 28), (1004, IT , 39);
Результаты таблицы:
EmployeeInfo
| EmployeeID | Department | Age |
| 1002 | HR | 46 |
| 1003 | Finance | 28 |
| 1004 | IT | 39 |
В запросе INSERT INTO команда VALUES должна быть частью полного оператора.
6. UPDATE
Это ключевое слово используется для изменения одного или нескольких существующих столбцов в таблице. Использование этого запроса обновит записи таблицы новыми данными, опираясь на некоторое условие.
EmployeeInfo
| EmployeeID | Department | Age |
| 1002 | HR | 36 |
| 1003 | Sales | 21 |
| 1004 | IT | 39 |
Код:
UPDATE EmployeeInfo SET Age = 22 WHERE EmployeeID = 1003;
Результаты таблицы:
EmployeeInfo
| EmployeeID | Department | Age |
| 1002 | HR | 36 |
| 1003 | Sales | 22 |
| 1004 | IT | 39 |
После команды UPDATE используйте ключевое слово SET, чтобы указать, какие столбцы вы хотите изменить, и ГДЕ вам нужно применить обновленные данные.
7. DELETE FROM
Чтобы удалить записи из таблицы на основе одного или нескольких условий, вам потребуется использовать оператор DELETE FROM. При использовании условий он ограничивает количество строк, на которые влияет запрос.
Код:
DELETE FROM Employees WHERE Name = ‘Lizzy’;
Результаты таблицы:
Employees
| EmployeeID | Name | Title |
| 1002 | Webster W. | Executive |
| 1004 | Oliver T. | Software Engineer |
Как уже говорилось в статье, использование условия WHERE определяет, где именно вы запрашиваете данные для фильтрации и выполнения. Этот запрос должен удалить каждую запись из таблицы сотрудников, которая соответствует имени Lizzy.
8. Использование GROUP BY, HAVING
GROUP BY в основном всегда используется с агрегатными функциями. Использование данного ключевого слова сгруппирует набор результатов по одному или нескольким столбцам.
Ключевое слово HAVING используется для фильтрации этого набора результатов. В идеале вы могли бы подумать, что вместо этого следует использовать предложение WHERE, однако предложение HAVING вводит условие для агрегации.
EmployeeInfo
| EmployeeID | Department | Age |
| 1002 | HR | 36 |
| 1003 | Sales | 21 |
| 1004 | IT | 39 |
Код:
SELECT COUNT(Age), EmployeeID FROM EmployeeInfo GROUP BY EmployeeID HAVING COUNT(Age) > 21;
Результаты:
COUNT(Age) EmployeeID 39 1004 36 1002
9. Агрегатные функции (SUM, AVG и COUNT)
Существуют три распространенные агрегатные функции, которые позволяют интерпретировать данные из таблицы или выполнять вычисления.
COUNT: возвращает количество строк, соответствующих указанному столбцу.AVG: возвращает среднее значение столбца.SUM: возвращает сумму всех значений в выбранном столбце.
EmployeeInfo
| EmployeeID | Department | Age |
| 1002 | HR | 36 |
| 1003 | Sales | 21 |
| 1004 | IT | 39 |
Код для COUNT:
SELECT COUNT(Department) FROM EmployeeInfo;
Результаты:
COUNT(Department): 3
Код для AVG:
SELECT AVG(Age) FROM EmployeeInfo;
Результаты:
AVG(Age): 32
Код для SUM:
SELECT SUM(Age) FROM EmployeeInfo;
Результаты:
SUM(Age): 96
10. JOIN
JOIN используется для объединения строк как минимум из двух таблиц на основе связанного столбца между таблицами. Наиболее распространенными соединениями являются INNER, FULL и LEFT.
INNER Join– объединяет строки из разных таблиц, если условие соединения истинно.FULL Join— возвращает все строки, если есть совпадение в левой или правой записях таблицы.LEFT Join— извлекает все строки из левой таблицы и соответствующие записи из правой таблицы.
Employees — Таблица №1 (слева)
| EmployeeID | Name | Title |
| 1002 | Webster W. | Executive |
| 1003 | Lizzy S. | Manager |
| 1004 | Oliver T. | Software Engineer |
EmployeeInfo — таблица № 2 (справа)
| EmployeeID | Department | Age |
| 1002 | HR | 36 |
| 1003 | Sales | 21 |
| 1004 | IT | 39 |
INNER JOIN код:
SELECT Employees.Title, EmployeeInfo.Department FROM Employees INNER JOIN EmployeeInfo ON Employees.EmployeeID = Employees.EmployeeID;
Результаты:
Title Department Executive HR Manager Sales Software Engineer IT
FULL JOIN код:
SELECT * FROM Employees FULL JOIN EmployeeInfo ON Employees.EmployeeID = Employees.EmployeeID;
Результаты:
Будет захватывать все строки и столбцы из обеих таблиц, включая дубликаты, и объединять их в одну целую таблицу.
LEFT JOIN код:
SELECT Employees.Name, EmployeeInfo.Age FROM Employees LEFT JOIN EmployeeInfo ON Employees.EmployeeID = Employees.EmployeeID;
Результаты:
Name Age Webster W. 36 Lizzy S. 21 Oliver T. 39
Столбец EmployeeID в таблице Employee ссылается на EmployeeID в таблице EmployeeInfo. По сути, столбец EmployeeID является связью между обеими таблицами. Джойны могут оказаться сложными, но в то же время чрезвычайно полезными при работе с большой базой данных.
Материалы по теме
- 📜 Основные SQL-команды и запросы с примерами, которые должен знать каждый разработчик
- 🗄️ ✔️ 10 лучших практик написания SQL-запросов
- 🐘 Руководство по SQL для начинающих. Часть 1: создание базы данных, таблиц и установка связей между таблицами