Какие основные SQL-команды для работы с данными в БД?

Ответ

Основные команды SQL делятся на категории по их назначению (CRUD — Create, Read, Update, Delete).

1. Чтение данных (SELECT):

-- Выбор всех полей с условием
SELECT * FROM users WHERE age > 18;
-- Выбор конкретных полей с сортировкой
SELECT name, email FROM users ORDER BY created_at DESC;

2. Добавление данных (INSERT):

-- Вставка одной записи
INSERT INTO users (name, age) VALUES ('Alex', 25);
-- Вставка нескольких записей
INSERT INTO users (name, age) VALUES ('Alex', 25), ('Maria', 30);

3. Обновление данных (UPDATE):

-- Обновление записей по условию
UPDATE users SET age = 26, status = 'active' WHERE name = 'Alex';

4. Удаление данных (DELETE):

-- Удаление записей по условию (ВСЕГДА используйте WHERE!)
DELETE FROM users WHERE id = 5;

5. Объединение таблиц (JOIN):

-- INNER JOIN (только совпадающие записи)
SELECT u.name, o.order_date 
FROM users u 
JOIN orders o ON u.id = o.user_id;
-- LEFT JOIN (все записи из левой таблицы)
SELECT u.name, o.order_date 
FROM users u 
LEFT JOIN orders o ON u.id = o.user_id;

Ключевые моменты:

  • Всегда используйте WHERE в UPDATE и DELETE, чтобы избежать массового изменения/удаления.
  • Для агрегации данных используйте GROUP BY с функциями COUNT(), SUM(), AVG(), MIN(), MAX().
  • Для ограничения результатов — LIMIT (или FETCH FIRST / TOP в других СУБД).
  • Для управления транзакциями — BEGIN TRANSACTION, COMMIT, ROLLBACK.

Ответ 18+ 🔞

А, ну это ж SQL, блядь! Вот эта самая, сука, база данных, где всё лежит, как в помойке, только структурированно, блядь. Слушай сюда, разберём по полочкам, а то народ без WHERE в DELETE пишет — и потом охуевает, куда всё делось, пиздец.

1. Чтение, оно же SELECT (просто посмотреть, не трогая)

-- Вытащи всё-всё про пользователей, кто старше 18, ну, совершеннолетние, бля
SELECT * FROM users WHERE age > 18;
-- А тут дай мне только имена и мыло, и чтоб свежие сверху были, ящетаю
SELECT name, email FROM users ORDER BY created_at DESC;

Вот, смотри: SELECT — это как глазками поводить по таблице. Ничего не ломается, можно тыкать.

2. Добавление, оно же INSERT (сунуть новое)

-- Подкинем одного нового Алекса, 25 лет, пусть живёт
INSERT INTO users (name, age) VALUES ('Alex', 25);
-- А можно и пачкой, чтоб два раза не бегать, блядь
INSERT INTO users (name, age) VALUES ('Alex', 25), ('Maria', 30);

Тут главное — в правильные столбцы (name, age) правильные значения ('Alex', 25) запихнуть, а то получится ебушки-воробушки, данные кривые.

3. Обновление, оно же UPDATE (поправить старое)

-- Найдём всех Алексов и сделаем им 26 лет и статус 'active'
UPDATE users SET age = 26, status = 'active' WHERE name = 'Alex';

Вот тут, ёпта, ВСЕГДА смотри на WHERE! А то без него всем подряд 26 лет наставишь и активными сделаешь, включая 80-летнюю бабушку Глашу. Она тебе потом спасибо не скажет, блядь.

4. Удаление, оно же DELETE (выкинуть нахуй)

-- Удалим запись с id = 5. ТОЧНО ЭТУ, А НЕ ВСЕ!
DELETE FROM users WHERE id = 5;

Повторяю, как мантру, блядь: WHERE В DELETE — СВЯТОЕ ДЕЛО. Иначе таблица users станет таблицей нихуя, чих-пых тебя в сраку.

5. Объединение, оно же JOIN (связать разную хрень из разных таблиц)

-- INNER JOIN: дай только тех, у кого есть заказы. Кто без заказов — пошёл нахуй, не интересен
SELECT u.name, o.order_date
FROM users u
JOIN orders o ON u.id = o.user_id;

-- LEFT JOIN: дай ВСЕХ пользователей, даже если заказов нет. У кого нет — там NULL будет, пустота, пизда
SELECT u.name, o.order_date
FROM users u
LEFT JOIN orders o ON u.id = o.user_id;

JOIN — это мощно, но если хуйню связать, получишь кашу из данных, манда с ушами.

Ключевые моменты, блядь, чтобы не обосраться:

  • WHERE в UPDATE/DELETE — это как предохранитель, блядь. Без него — самоубийство.
  • Нужно посчитать, просуммировать? Это GROUP BY с COUNT(), SUM(). Без GROUP BY будет одна большая арифметическая пизда.
  • Выбрал много строк? Ограничь LIMIT, не грузи сервак, он тоже устаёт, сука.
  • Делаешь несколько операций, которые должны быть как одно целое? Оберни в транзакцию: BEGIN TRANSACTION -> делаешь дела -> если всё ок, COMMIT, если пиздец — ROLLBACK, и всё откатится, как будто ничего и не было. Волшебно, ёпта!