Ответ
Основные команды 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, и всё откатится, как будто ничего и не было. Волшебно, ёпта!