Шпаргалка по SQL с основными командами и примерами

GuDron

dumpz.ws
Admin
Регистрация
28 Янв 2020
Сообщения
9,259
Реакции
1,542
Credits
32,263
1. Основные команды SQL
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)
SQL:
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)
SQL:
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)
SQL:
SELECT * FROM users ORDER BY age ASC;  -- Сортировка по возрасту (по возрастанию)
SELECT * FROM users ORDER BY age DESC;  -- Сортировка по убыванию

5. Соединение таблиц (JOIN)
SQL:
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)
 

GuDron

dumpz.ws
Admin
Регистрация
28 Янв 2020
Сообщения
9,259
Реакции
1,542
Credits
32,263
6. Создание и изменение таблиц (CREATE, ALTER, DROP)
SQL:
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)
SQL:
CREATE INDEX idx_users_name ON users(name);  -- Создание индекса
DROP INDEX idx_users_name;  -- Удаление индекса

8. Ограничения (PRIMARY KEY, FOREIGN KEY, UNIQUE, CHECK, DEFAULT)
SQL:
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)
SQL:
SELECT * FROM users WHERE id IN (SELECT user_id FROM orders WHERE amount > 1000);

10. Транзакции (BEGIN, COMMIT, ROLLBACK)
SQL:
BEGIN;
UPDATE accounts SET balance = balance - 100 WHERE id = 1;
UPDATE accounts SET balance = balance + 100 WHERE id = 2;
COMMIT;  -- Завершение транзакции
ROLLBACK;  -- Откат изменений