Статьи

Основные команды в SQL

Как и#nbsp;обещали, выкладываем пост с#nbsp;основными командами в#nbsp;SQL, которыми вы#nbsp;будете пользоваться 90% времени. Также в#nbsp;конце поста Вас ждет бонус, пример неправильного SQL запроса, о#nbsp;котором любят спрашивать на#nbsp;интервью!

Итак, поехали:

  • SELECT: Выборка данных из#nbsp;таблицы.

SELECT имя, фамилия FROM сотрудники;

  • INSERT: Вставка новых записей в#nbsp;таблицу.

INSERT INTO сотрудники (имя, фамилия, возраст) VALUES ('Иван', 'Иванов', 30);

  • UPDATE: Обновление данных в#nbsp;таблице.

UPDATE сотрудники SET возраст = 31 WHERE имя = 'Иван' AND фамилия = 'Иванов';

  • DELETE: Удаления записей из#nbsp;таблицы.

DELETE FROM сотрудники WHERE имя = 'Иван' AND фамилия = 'Иванов';

  • CREATE TABLE: Создание новой таблицы в#nbsp;базе данных.

CREATE TABLE новые_сотрудники (

id#nbsp;INT PRIMARY KEY,

имя VARCHAR (100),

фамилия VARCHAR (100),

возраст INT

);

  • DROP TABLE: Удаления таблицы.

DROP TABLE старые_сотрудники;

  • ALTER TABLE: Изменение структуры существующей таблицы.

ALTER TABLE сотрудники ADD email VARCHAR (100);

  • JOIN: Объединение выборки записей из#nbsp;двух или более таблиц, основываясь на#nbsp;связанном поле между ними. Существуют различные типы JOIN: INNER, LEFT, RIGHT, FULL.

SELECT сотрудники. имя, сотрудники. фамилия, отделы. название FROM сотрудники

INNER JOIN отделы#nbsp;ON сотрудники. отделID = отделы. id;

  • WHERE: Фильтрация результатов запроса на#nbsp;основе заданных условий.

SELECT * FROM сотрудники WHERE возраст > 30;

  • GROUP#nbsp;BY: Агрегирование данных с#nbsp;помощью функций (COUNT, MAX, MIN, SUM, AVG) для группировки результатов запроса по#nbsp;одному или нескольким столбцам.

SELECT отдел_id, COUNT (*) FROM сотрудники GROUP#nbsp;BY отдел_id;

Бонус:

Работая с#nbsp;SQL важно помнить, что не#nbsp;все его команды и#nbsp;функции будут работать одинаково корректно при различных задачах. Лучше углубиться в#nbsp;теоретическую часть и#nbsp;процессы работы SQL изнутри, если Вы#nbsp;собираетесь тесно работать с#nbsp;базами данных. Так, например, одна из#nbsp;любимых задачек многих собеседующих ставит новичков в#nbsp;тупик:

Как можно оптимизировать данный запрос и#nbsp;почему?

SELECT * FROM A#nbsp;WHERE A. id#nbsp;NOT#nbsp;IN (SELECT id#nbsp;FROM B);

Данный запрос не#nbsp;является оптимальным поскольку он#nbsp;использует подзапрос с#nbsp;оператором NOT IN, что очень замедляет работу, особенно при больших объемах данных. Ваш SQL-сервер будет выполнять подзапрос для каждой строки таблицы A, что замедлит общее выполнение запроса.

Вместо этого вы#nbsp;можете использовать оператор LEFT JOIN для выполнения той#nbsp;же операции, но#nbsp;более эффективно:

SELECT A.*

FROM A

LEFT JOIN B#nbsp;ON A. id = B. id

WHERE B. id#nbsp;IS NULL;

Здесь мы#nbsp;присоединяем таблицу B#nbsp;к#nbsp;таблице A, используя LEFT JOIN, который включает все строки из#nbsp;таблицы A#nbsp;и#nbsp;соответствующие строки из#nbsp;таблицы B (если они существуют). Если нет соответствия, результат равен NULL. Затем мы#nbsp;фильтруем строки, используя условие WHERE B. id#nbsp;IS NULL, что оставляет только те#nbsp;строки из A, для которых нет соответствия в B. Это решение обычно более эффективно, поскольку SQL-серверам обычно легче оптимизировать запросы с#nbsp;JOIN, нежели с#nbsp;подзапросами, особенно когда индексы установлены правильно на#nbsp;соответствующих столбцах.

Имея прямое и#nbsp;простое решение в#nbsp;SQL потратьте 15 минут на#nbsp;поиск альтернативы, возможно, Вам удастся найти более оптимальный вариант. Вот мы#nbsp;и#nbsp;перечислили список основных команд и#nbsp;рассмотрели один из#nbsp;примеров правильного применения, пользуйтесь!
2024-01-10 12:26 Старт в IT и фишки