copy
This commit is contained in:
67
images/databases/mongodb-cheatsheet.md
Normal file
67
images/databases/mongodb-cheatsheet.md
Normal file
@@ -0,0 +1,67 @@
|
||||
# Шпаргалка по MongoDB
|
||||
|
||||
<div align="right"><a href="https://github.com/cheatsnake/backend-cheats#mongodb">Вернуться на главную страницу ⬆️</a></div>
|
||||
|
||||
- Подготовка БД
|
||||
|
||||
```js
|
||||
show dbs // показать список всех БД
|
||||
use db_name // подключиться/создать БД с именем db_name
|
||||
db // вывести имя текущей базы данных
|
||||
db.createCollection("users") // создать коллекцию "notes"
|
||||
show collections // показать список коллекций в текущей БД
|
||||
db.dropDatabase() // удалить текущую БД
|
||||
```
|
||||
|
||||
- Добавление элементов
|
||||
|
||||
```js
|
||||
// Добавить один элемент
|
||||
db.users.insertOne({
|
||||
name: "Alex",
|
||||
age: 27,
|
||||
isMarried: false,
|
||||
city: "NewYork"
|
||||
})
|
||||
|
||||
// Добавить несколько элементов
|
||||
db.users.insertMany([{...}, {...}])
|
||||
```
|
||||
|
||||
- Получение элементов
|
||||
|
||||
```js
|
||||
// Получить все элементы из коллекции
|
||||
db.users.find();
|
||||
// Получить элементы по указанному критерию
|
||||
db.user.find({ age: 27 });
|
||||
// Получить один элемент
|
||||
db.users.findOne({ name: "Alex" });
|
||||
// Получить отсортированный список элементов
|
||||
// 1 - по возрастанию; -1 - по убыванию
|
||||
db.users.find().sort({ age: 1 });
|
||||
// Получить количество элементов
|
||||
db.users.find().count();
|
||||
// Лимит количества получаемых элементов
|
||||
db.users.find().limit(10);
|
||||
// Выборка с помощью операторов сравнения
|
||||
db.users.find({ age: { $gt: 20 } }); // > 20
|
||||
db.users.find({ age: { $gte: 20 } }); // >= 20
|
||||
db.users.find({ age: { $lt: 50 } }); // < 50
|
||||
db.users.find({ age: { $lte: 50 } }); // <= 50
|
||||
db.users.find({ age: { $ne: 35 } }); // != 35
|
||||
```
|
||||
|
||||
- Изменение элементов
|
||||
|
||||
```js
|
||||
// Полное изменение элемента (первый аргумент - критерий поиска)
|
||||
db.users.updateOne({name: "Alex"}, {новые_данные})
|
||||
// Изменение определенных полей элемента
|
||||
db.users.updateOne({name: "Alex"}, {$set: {age: 28, isMarried: true}})
|
||||
// Переименовать поле у нескольких элементов
|
||||
db.users.updateMany({name: "Alex"}, {&rename: {city: "town"}})
|
||||
// Удаление элемента/элементов
|
||||
db.users.deleteOne({name: "Alex"})
|
||||
db.users.deleteMany({name: "Alex"})
|
||||
```
|
||||
146
images/databases/sql-cheatsheet.md
Normal file
146
images/databases/sql-cheatsheet.md
Normal file
@@ -0,0 +1,146 @@
|
||||
# Шпаргалка по SQL
|
||||
|
||||
<div align="right"><a href="https://github.com/cheatsnake/backend-cheats#%D1%80%D0%B5%D0%BB%D1%8F%D1%86%D0%B8%D0%BE%D0%BD%D0%BD%D0%B0%D1%8F-%D0%B1%D0%B0%D0%B7%D0%B0-%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85">Вернуться на главную страницу ⬆️</a></div>
|
||||
|
||||
- Создание новой БД
|
||||
```sql
|
||||
CREATE DATABASE db_name;
|
||||
```
|
||||
- Создание новой таблицы
|
||||
```sql
|
||||
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 (перечисления - списки допустимых значений)
|
||||
> - [И другие](https://sql-language.ru/osnova-sql/tipy-dannykh-sql.html)
|
||||
- Добавление данных в таблицу
|
||||
```sql
|
||||
INSERT INTO users(
|
||||
firstName, lastName, age, gender, isMarried
|
||||
) VALUES (
|
||||
'Alex', 'Manson' 25, 'male', false
|
||||
);
|
||||
```
|
||||
- Выборка данных из таблицы
|
||||
```sql
|
||||
# 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;
|
||||
```
|
||||
- Поиск данных по шаблону
|
||||
```sql
|
||||
# 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%';
|
||||
```
|
||||
- Сортировка и фильтрация данных таблиц
|
||||
```sql
|
||||
# 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
|
||||
## Фильтрация результатов группировки
|
||||
```
|
||||
- Использование псевдонимов
|
||||
```sql
|
||||
# AS
|
||||
SELECT firstName AS name FROM users WHERE name = "Alex";
|
||||
```
|
||||
- Изменение таблиц
|
||||
```sql
|
||||
# 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;
|
||||
```
|
||||
- Изменение данных в таблице
|
||||
```sql
|
||||
# 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';
|
||||
```
|
||||
- Удаление данных из таблицы
|
||||
```sql
|
||||
# DELETE
|
||||
# Удалить запись в таблице users, где id = 2
|
||||
DELETE FROM users WHERE id = 2;
|
||||
# Удалить все записи в таблице users, где gender = 'male'
|
||||
DELETE FROM users WHERE gender = 'male';
|
||||
```
|
||||
- [Агрегатные функции](https://codetown.ru/sql/agregatnye-funkcii/)
|
||||
> Используются для обобщения/подсчёта данных.
|
||||
```sql
|
||||
# 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;
|
||||
```
|
||||
Reference in New Issue
Block a user