mirror of
https://github.com/cheatsnake/backend-cheats.git
synced 2024-08-16 23:30:29 +03:00
5.6 KiB
5.6 KiB
Шпаргалка по SQL
- Создание новой БД
CREATE DATABASE db_name;
- Создание новой таблицы
CREATE TABLE users ( id SERIAL PRIMARY KEY, # Уникальный id firstName VARCHAR(100), # Строка lastName VARCHAR(100), # Строка age INT, # Число gender VARCHAR(10), # Строка isMarried BOOLEAN # true/false );
- Основные типы данных
- INT (целые числа от -2^32 до +2^32)
- FLOAT / DOUBLE / DECIMAL (дробные числа)
- CHAR / VARCHAR / TEXT (строки)
- DATA / DATETIME / TIME (дата и время)
- ENUM (перечисления - списки допустимых значений)
- И другие
- Добавление данных в таблицу
INSERT INTO users( firstName, lastName, age, gender, isMarried ) VALUES ( 'Alex', 'Manson' 25, 'male', false );
- Выборка данных из таблицы
# SELECT ## Получить всю таблицу users SELECT * FROM users; ## Получить только столбцы firstName и age из таблицы users SELECT firstName, age FROM users; # LIMIT ## Получить первых 20 записей таблицы users SELECT * FROM users LIMIT 20; # DISTINCT ## Получить только уникальные значения из столбца firstName SELECT DISTINCT(firstName) FROM users; # WHERE ## Записи, где столбец gender = 'male' SELECT * FROM users WHERE gender = 'male'; ## AND, OR SELECT * FROM users WHERE age = 25 AND isMarried = falsel SELECT * FROM users WHERE age = 20 OR age = 50; # BETWEEN ## Записи, где значения столбца age находятся в промежутке от 20 до 30 SELECT * FROM users WHERE age BETWEEN 20 AND 30; #NULL ## Записи, где столбец lastName не пуст SELECT * FROM users WHERE lastName IS NOT NULL;
- Поиск данных по шаблону
# IN, LIKE, NOT LIKE ## % - подстановочный знак, который указывает на любое кол-во символов ## _ - подстановочный знак, который указывает на один символ ## Записи, где firsName равен 'John', 'Mike' или 'Kane' SELECT * FROM users WHERE firstName IN ('John', 'Mike', 'Kane'); ## Записи, где firsName начинается c буквы 'A' SELECT * FROM users WHERE firstName LIKE 'A%'; ## Записи, где первая буква в firstName равна 'A', 'B' или 'C' SELECT * FROM users WHERE firstName LIKE '[ABC]%'; ## Записи, где вторая буква в firsName не равна 'o' SELECT * FROM users WHERE firstName NOT LIKE '_o%';
- Сортировка и фильтрация данных таблиц
# ORDER BY ## ASC - по возрастанию (по умолчанию) ## DESC - по убыванию SELECT * FROM users ORDER BY firstName ASC; SELECT * FROM users ORDER BY age DESC; SELECT * FROM users ORDER BY lastName DESC, isMarried ASC; # HAVING ## Фильтрация результатов группировки
- Использование псевдонимов
# AS SELECT firstName AS name FROM users WHERE name = "Alex";
- Изменение таблиц
# ALTER TABLE ## Добавить новую колонку city к таблицe users ALTER TABLE users ADD COLUMN city VARCHAR(50); ## Удалить колонку isMarried из таблицы users ALTER TABLE users DROP COLUMN isMarried; ## Переименовать колонку firstName в fName в таблицe users ALTER TABLE users RENAME COLUMN firstName TO fName; ## Переименовать таблицу users в consumers ALTER TABLE users RENAME TO consumers;
- Изменение данных в таблице
# UPDATE ## Изменить в таблицe users записать с id = 1 UPDATE users SET firstName = 'Kale', age = 33 WHERE id = 1; ## Изменить записи, где gender = 'female' UPDATE users SET city = 'Paris' WHERE gender = 'famale';
- Удаление данных из таблицы
# DELETE # Удалить запись в таблице users, где id = 2 DELETE FROM users WHERE id = 2; # Удалить все записи в таблице users, где gender = 'male' DELETE FROM users WHERE gender = 'male';
- Агрегатные функции
Используются для обобщения/подсчёта данных.
# COUNT ## Возвращает количество элементов в таблице users SELECT COUNT(*) FROM users; ## Возвращает количество не повторяющихся значений столбца firstName SELECT COUNT(DISTINCT(firstName)) FROM users; # MAX, MIN SELECT MAX(age) FROM users; SELECT MIN(age) FROM users; # SUM # Сумма всех значений столбца age SELECT SUM(age) FROM users; # AVG ## Среднее значение столбца age SELECT AVG(age) FROM users;