Ответ
SQL (Structured Query Language) — это декларативный язык программирования, предназначенный для управления данными в реляционных системах управления базами данных (РСУБД).
Основное назначение: Создание, модификация, управление схемой и извлечение данных из реляционных баз.
Пример базового запроса на выборку:
SELECT id, name, email FROM users WHERE active = TRUE ORDER BY created_at DESC;
Ключевые категории команд SQL:
| Категория | Команды | Назначение |
|---|---|---|
| DDL (Data Definition Language) | CREATE, ALTER, DROP, TRUNCATE |
Определение и изменение структуры БД (таблицы, индексы). |
| DML (Data Manipulation Language) | SELECT, INSERT, UPDATE, DELETE |
Манипуляция данными (чтение, добавление, изменение). |
| DCL (Data Control Language) | GRANT, REVOKE |
Управление правами доступа. |
| TCL (Transaction Control Language) | COMMIT, ROLLBACK, SAVEPOINT |
Управление транзакциями. |
SQL является стандартом (ANSI/ISO), но многие РСУБД (PostgreSQL, MySQL, Oracle) имеют свои диалекты и расширения.
Ответ 18+ 🔞
Давайте разложим по полочкам эту всю SQL-хуйню, чтобы даже у мартышлюшки с бананом в руке всё встало на свои места.
SQL — это, по сути, такой язык, на котором ты вежливо просишь базу данных: «Слушай, дружок-пирожок, выдай-ка мне вот это, вот отсюда, и чтобы вот так было отсортировано». А она тебе, такая: «Оки-доки, держи». Или, наоборот, ты ей командуешь: «Запиши вот эту поебень вон туда». И она покорно записывает. Декларативный, блядь, язык — ты говоришь ЧТО тебе надо, а не КАК это делать. База сама соображает, как тебе это выебать.
Основная его работа — возиться с данными в этих ваших реляционных хранилищах. Создавать таблицы, тыкать в них новые записи, выковыривать старые, менять что не так и вообще вертеть этой всей песочницей как хочешь.
Вот, смотри, простейший запрос, чтобы понять суть:
SELECT id, name, email FROM users WHERE active = TRUE ORDER BY created_at DESC;
Перевод на человеческий: «Дай мне, сука, айдишники, имена и мыла всех юзеров, которые активны, и отсортируй их по дате создания — свежих сверху, старых долбоёбов вниз».
А теперь главные банды команд, которые тут рулят:
| Категория | Главные запевалы | За что отвечают |
|---|---|---|
| DDL (Язык определения данных) | CREATE, ALTER, DROP, TRUNCATE |
Это архитекторы, ёпта. Они лепят новые таблицы (CREATE), перестраивают их (ALTER), или берут и хуяк — сносят к хуям (DROP). TRUNCATE — это особый ублюдок, который не стирает таблицу, а просто выгребает из неё ВСЕ данные одним махом. Жестоко, но быстро. |
| DML (Язык манипуляции данными) | SELECT, INSERT, UPDATE, DELETE |
А это уже рабочие лошадки. SELECT — достаёт данные, INSERT — пихает новые, UPDATE — поправляет старые, а DELETE — отправляет нахуй ненужное. Основа всей движухи. |
| DCL (Язык управления доступом) | GRANT, REVOKE |
Охранники, блядь. GRANT говорит: «Этому пидору разреши доступ к этой таблице». А REVOKE приходит следом и орет: «А этому пидору — всё, отжаловали, иди нахуй!». |
| TCL (Язык управления транзакциями) | COMMIT, ROLLBACK, SAVEPOINT |
Бухгалтеры, ебать. COMMIT — «Всё, что натворил, сохраняем, точка». ROLLBACK — «Ой, бля, всё наебнул, откатываем всё как было!». SAVEPOINT — это типа «сохраниться в игре», чтобы потом, если всё пиздец, откатиться не к началу, а вот к этой вот точке. |
И да, стандарт-то один, ANSI/ISO там всякий, но каждая уважающая себя СУБД — PostgreSQL, MySQL, Oracle — считает своим долгом наговнять сверху своих собственных фич и синтаксических прибамбасов. Так что «чистый» SQL — это как единый язык, а диалекты у каждой деревни свои, ебанашка.