Базы данных

SQL JOIN, PostgreSQL, MySQL, Redis, MongoDB, Kafka

SQL JOIN

Справочный блок 1

INNER JOIN

Только совпадающие строки

Код
SELECT * FROM users u
INNER JOIN orders o ON u.id = o.user_id;

LEFT JOIN

Все строки из левой таблицы

Код
SELECT * FROM users u
LEFT JOIN orders o ON u.id = o.user_id;

RIGHT JOIN

Все строки из правой таблицы

Код
SELECT * FROM users u
RIGHT JOIN orders o ON u.id = o.user_id;

FULL OUTER JOIN

Все строки из обеих таблиц

Код
SELECT * FROM users u
FULL OUTER JOIN orders o ON u.id = o.user_id;

PostgreSQL

Справочный блок 2

Подключение

Код
psql -U username -d database

Список БД

Код
\l

Список таблиц

Код
\dt

Структура таблицы

Код
\d table_name

Создать БД

Код
CREATE DATABASE dbname;

Создать таблицу

Код
CREATE TABLE users (
  id SERIAL PRIMARY KEY,
  name VARCHAR(100)
);

MySQL

Справочный блок 3

Подключение

Код
mysql -u username -p database

Список БД

Код
SHOW DATABASES;

Список таблиц

Код
SHOW TABLES;

Структура таблицы

Код
DESCRIBE table_name;

Создать БД

Код
CREATE DATABASE dbname;

Redis

Справочный блок 4

Подключение

Код
redis-cli

SET/GET

Код
SET key "value"
GET key

EXPIRE

Код
EXPIRE key 3600  # секунды

Список ключей

Код
KEYS pattern

Удалить

Код
DEL key

Hash

Код
HSET user:1 name "John"
HGET user:1 name

List

Код
LPUSH list "item"
LRANGE list 0 -1

MongoDB

Справочный блок 5

Подключение

Код
mongosh

Список БД

Код
show dbs

Использовать БД

Код
use dbname

Список коллекций

Код
show collections

Вставить документ

Код
db.users.insertOne({name: "John", age: 30})

Найти

Код
db.users.find({age: {$gt: 25}})

Обновить

Код
db.users.updateOne({name: "John"}, {$set: {age: 31}})

Kafka

Справочный блок 6

Создать топик

Код
kafka-topics --create --topic my-topic --bootstrap-server localhost:9092

Список топиков

Код
kafka-topics --list --bootstrap-server localhost:9092

Отправить сообщение

Код
kafka-console-producer --topic my-topic --bootstrap-server localhost:9092

Читать сообщения

Код
kafka-console-consumer --topic my-topic --bootstrap-server localhost:9092 --from-beginning