SQL - основы (SELECT, INSERT, UPDATE, DELETE)

Введение

SQL (Structured Query Language) — это декларативный язык программирования, который используется для создания, модификации и управления данными в реляционных базах данных. Проще говоря, это язык, на котором мы «общаемся» с базами данных. Если представить базу данных как огромную картотеку, то SQL — это тот инструмент, который позволяет нам находить нужные карточки, добавлять новые, изменять существующие и удалять ненужные.

SQL является стандартом для большинства современных систем управления базами данных (СУБД), таких как MySQL, PostgreSQL, Microsoft SQL Server, Oracle и многих других. Знание основ SQL является обязательным навыком для любого специалиста, работающего с данными: от аналитиков и разработчиков до системных администраторов и data-сайентистов.

Основные концепции

В основе SQL лежат четыре основные операции, которые часто объединяют в акроним CRUD: Create (создание), Read (чтение), Update (обновление) и Delete (удаление). В SQL этим операциям соответствуют команды INSERT, SELECT, UPDATE и DELETE.

SELECT: Чтение данных

Оператор SELECT используется для извлечения данных из одной или нескольких таблиц. Это самая часто используемая команда в SQL. С её помощью можно получать как все данные из таблицы, так и делать сложные выборки по определённым условиям.

Синтаксис:

SELECT column1, column2, ..
FROM table_name
WHERE condition;
  • SELECT указывает, какие столбцы мы хотим получить. * означает все столбцы.
  • FROM указывает таблицу, из которой мы извлекаем данные.
  • WHERE (необязательный) фильтрует записи по заданному условию.

INSERT: Добавление данных

Оператор INSERT INTO используется для добавления новых записей (строк) в таблицу.

Синтаксис:

INSERT INTO table_name (column1, column2, ...)
VALUES (value1, value2, ...);
  • INSERT INTO указывает таблицу и столбцы, в которые мы добавляем данные.
  • VALUES содержит значения для этих столбцов.

UPDATE: Обновление данных

Оператор UPDATE используется для изменения существующих записей в таблице.

Синтаксис:

UPDATE table_name
SET column1 = value1, column2 = value2, ..
WHERE condition;
  • UPDATE указывает таблицу, которую мы хотим обновить.
  • SET указывает, какие столбцы и на какие значения нужно изменить.
  • WHERE определяет, какие именно записи будут обновлены. Это очень важная часть, без неё будут обновлены все записи в таблице!

DELETE: Удаление данных

Оператор DELETE используется для удаления существующих записей из таблицы.

Синтаксис:

DELETE FROM table_name
WHERE condition;
  • DELETE FROM указывает таблицу, из которой нужно удалить данные.
  • WHERE определяет, какие записи будут удалены. Как и в случае с UPDATE, если пропустить WHERE, будут удалены все записи из таблицы!

Практические примеры

Давайте рассмотрим работу этих команд на примере гипотетической таблицы Employees (Сотрудники), которая хранит информацию о сотрудниках компании.

Структура таблицы Employees:

EmployeeIDFirstNameLastNameDepartmentSalary
1ИванИвановIT100000
2ПетрПетровSales80000
3АннаСидороваHR75000

Пример 1: Добавление нового сотрудника

Давайте добавим нового сотрудника в отдел продаж.

INSERT INTO Employees (FirstName, LastName, Department, Salary)
VALUES ('Мария', 'Кузнецова', 'Sales', 85000);

После выполнения этого запроса таблица будет выглядеть так:

EmployeeIDFirstNameLastNameDepartmentSalary
1ИванИвановIT100000
2ПетрПетровSales80000
3АннаСидороваHR75000
4МарияКузнецоваSales85000

Пример 2: Обновление зарплаты

Предположим, Ивану Иванову повысили зарплату до 120000.

UPDATE Employees
SET Salary = 120000
WHERE EmployeeID = 1;

Теперь у Ивана новая зарплата:

EmployeeIDFirstNameLastNameDepartmentSalary
1ИванИвановIT120000
2ПетрПетровSales80000
3АннаСидороваHR75000
4МарияКузнецоваSales85000

Пример 3: Выборка сотрудников из отдела продаж

Нам нужно получить список всех сотрудников из отдела продаж (Sales).

SELECT FirstName, LastName, Salary
FROM Employees
WHERE Department = 'Sales';

Результат запроса:

FirstNameLastNameSalary
ПетрПетров80000
МарияКузнецова85000

Пример 4: Удаление сотрудника

Анна Сидорова уволилась, и нам нужно удалить её запись из таблицы.

DELETE FROM Employees
WHERE EmployeeID = 3;

Итоговая таблица:

EmployeeIDFirstNameLastNameDepartmentSalary
1ИванИвановIT120000
2ПетрПетровSales80000
4МарияКузнецоваSales85000

Типичные ошибки и как их избежать

  1. Отсутствие WHERE в UPDATE и DELETE. Это самая опасная ошибка. Всегда дважды проверяйте наличие и правильность условия в WHERE перед выполнением этих операций. Некоторые СУБД имеют настройки безопасности, которые предотвращают выполнение таких запросов, но лучше на это не полагаться.

  2. Неправильные типы данных. При вставке (INSERT) или обновлении (UPDATE) данных убедитесь, что типы значений соответствуют типам столбцов. Например, не пытайтесь вставить текстовую строку в числовой столбец.

  3. Опечатки в именах таблиц и столбцов. SQL не простит вам опечаток. Если вы получили ошибку “table not found” или “column not found”, в первую очередь проверьте правильность написания имён.

  4. Использование одинарных и двойных кавычек. В стандарте SQL для строковых литералов используются одинарные кавычки ('text'). Двойные кавычки обычно используются для идентификаторов (имён таблиц и столбцов), хотя это зависит от конкретной СУБД.БД.

Связь с другими темами

Освоив основы CRUD, вы заложили фундамент для изучения более сложных концепций SQL:

  • JOIN: объединение данных из нескольких таблиц.
  • GROUP BY: группировка данных для агрегатных функций (например, подсчёт среднего или суммы).
  • *- Подзапросы: вложенные запросы SELECT внутри других запросов.- - Транзакции: группы операций, которые должны быть выполнены все вместе или не выполнены вовсе, обеспечивая целостность данных.
  • Индексы: специальные структуры, которые ускоряют поиск данных в таблицах.

Заключение

Операторы SELECT, INSERT, UPDATE и DELETE являются краеугольным камнем языка SQL. Они предоставляют базовый, но мощный набор инструментов для взаимодействия с реляционными базами данных. Понимание их работы и синтаксиса — это первый и самый важный шаг на пути к мастерству в работе с данными. Регулярная практика и решение реальных задач помогут вам закрепить эти знания и научиться применять их эффективно и безопасно.