🔥 Шпаргалка по SQL с основными командами и примерами 1.
1. Основные команды SQL
SELECT column1, column2 FROM table_name; -- Выборка данных
SELECT * FROM table_name; -- Выборка всех данных
INSERT INTO table_name (column1, column2) VALUES ('value1', 'value2'); -- Добавление данных
UPDATE table_name SET column1 = 'value' WHERE condition; -- Обновление данных
DELETE FROM table_name WHERE condition; -- Удаление данных
2. Фильтрация данных (WHERE, AND, OR, LIKE, IN, BETWEEN)
SELECT * FROM users WHERE age > 18; -- Возраст больше 18
SELECT * FROM users WHERE city = 'Москва' AND age > 18; -- Два условия
SELECT * FROM users WHERE name LIKE 'A%'; -- Начинается с 'A'
SELECT * FROM users WHERE age BETWEEN 18 AND 30; -- Возраст от 18 до 30
SELECT * FROM users WHERE city IN ('Москва', 'Санкт-Петербург'); -- Город Москва или Питер
3. Группировка и агрегатные функции (GROUP BY, HAVING, COUNT, SUM, AVG, MAX, MIN)
SELECT city, COUNT(*) FROM users GROUP BY city; -- Количество пользователей в каждом городе
SELECT city, AVG(age) FROM users GROUP BY city HAVING AVG(age) > 25; -- Средний возраст > 25
SELECT MAX(salary) FROM employees; -- Максимальная зарплата
SELECT SUM(sales) FROM orders WHERE date >= '2024-01-01'; -- Сумма продаж с 2024 года
4. Сортировка (ORDER BY)
SELECT * FROM users ORDER BY age ASC; -- Сортировка по возрасту (по возрастанию)
SELECT * FROM users ORDER BY age DESC; -- Сортировка по убыванию
5. Соединение таблиц (JOIN)
SELECT users. name, orders.amount
FROM users
JOIN orders ON users.id = orders.user_id; -- Внутреннее соединение
SELECT users. name, orders.amount
FROM users
LEFT JOIN orders ON users.id = orders.user_id; -- Левый JOIN (все из users)
SELECT users. name, orders.amount
FROM users
RIGHT JOIN orders ON users.id = orders.user_id; -- Правый JOIN (все из orders)
6. Создание и изменение таблиц (CREATE, ALTER, DROP)
CREATE TABLE users (
id SERIAL PRIMARY KEY,
name VARCHAR(100),
age INT
); -- Создание таблицы
ALTER TABLE users ADD COLUMN email VARCHAR(100); -- Добавление колонки
ALTER TABLE users DROP COLUMN email; -- Удаление колонки
DROP TABLE users; -- Удаление таблицы
7. Работа с индексами (INDEX)
CREATE INDEX idx_users_name ON users(name); -- Создание индекса
DROP INDEX idx_users_name; -- Удаление индекса
8. Ограничения (PRIMARY KEY, FOREIGN KEY, UNIQUE, CHECK, DEFAULT)
CREATE TABLE orders (
id SERIAL PRIMARY KEY,
user_id INT REFERENCES users(id), -- Внешний ключ
amount DECIMAL(10,2) CHECK (amount > 0), -- Ограничение CHECK
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP -- Значение по умолчанию
);
9. Подзапросы (SUBQUERY)
SELECT * FROM users WHERE id IN (SELECT user_id FROM orders WHERE amount > 1000);
10. Транзакции (BEGIN, COMMIT, ROLLBACK)
BEGIN;
UPDATE accounts SET balance = balance - 100 WHERE id = 1;
UPDATE accounts SET balance = balance + 100 WHERE id = 2;
COMMIT; -- Завершение транзакции
ROLLBACK; -- Откат изменений
#db
👉 @database_info