Какие основные группы команд (языков) существуют в SQL? Приведите примеры.

Ответ

В SQL принято выделять несколько групп команд, которые образуют его подмножества (языки):

  1. DML (Data Manipulation Language) — язык для манипуляции данными. Эти команды работают с содержимым таблиц.

    • SELECT: выборка данных.
      SELECT name, email FROM users WHERE age > 30;
    • INSERT: добавление новых записей.
      INSERT INTO users (name, age) VALUES ('Bob', 42);
    • UPDATE: обновление существующих данных.
      UPDATE users SET age = 43 WHERE name = 'Bob';
    • DELETE: удаление записей.
      DELETE FROM users WHERE name = 'Bob';
  2. DDL (Data Definition Language) — язык для определения данных. Эти команды управляют структурой базы данных и её объектами.

    • CREATE: создание объектов (таблиц, индексов).
      CREATE TABLE products (id SERIAL PRIMARY KEY, name VARCHAR(100), price INT);
    • ALTER: изменение структуры объекта.
      ALTER TABLE products ADD COLUMN description TEXT;
    • DROP: удаление объекта.
      DROP TABLE products;
  3. DCL (Data Control Language) — язык для управления доступом к данным.

    • GRANT: предоставление прав пользователям.
    • REVOKE: отзыв прав.
  4. TCL (Transaction Control Language) — язык для управления транзакциями.

    • COMMIT: сохранение изменений, сделанных в транзакции.
    • ROLLBACK: откат изменений.
    • SAVEPOINT: установка промежуточной точки для отката.

Также важной частью DML являются JOIN-операторы (INNER JOIN, LEFT JOIN и т.д.) для объединения данных из нескольких таблиц и агрегатные функции (COUNT, SUM, AVG, MAX, MIN) для вычислений по набору строк.