Что такое СУБД, реляционная модель, установка PostgreSQL, первая база данных
Добро пожаловать в мир PostgreSQL! Эта тема даст вам фундамент для понимания баз данных и начала работы с PostgreSQL.
СУБД (Система Управления Базами Данных) — программное обеспечение для создания, управления и доступа к базам данных.
Популярные СУБД:
Реляционная база данных организует данные в таблицы:
Таблица: users
+----+----------+-------------------+-----+
| id | name | email | age |
+----+----------+-------------------+-----+
| 1 | Alice | alice@mail.com | 25 |
| 2 | Bob | bob@mail.com | 30 |
| 3 | Charlie | charlie@mail.com | 35 |
+----+----------+-------------------+-----+
brew install postgresql@15
brew services start postgresql@15sudo apt update
sudo apt install postgresql postgresql-contrib
sudo systemctl start postgresqldocker run --name postgres -e POSTGRES_PASSWORD=mysecretpassword -p 5432:5432 -d postgres:15# Подключение к локальной базе
psql -U postgres -d postgres
# Подключение к удалённому серверу
psql -U username -d dbname -h hostname -p 5432
# С указанием пароля через переменную окружения
PGPASSWORD=mypassword psql -U username -d dbname| Команда | Описание |
|---|---|
\l | Список всех баз данных |
\c dbname | Переключиться на базу данных |
\dt | Список таблиц в текущей схеме |
\dt *.* | Список таблиц во всех схемах |
\d tablename | Описание таблицы (столбцы, индексы) |
\du | Список пользователей и ролей |
\df | Список функций |
\dv | Список представлений |
\dn | Список схем |
\q | Выход из psql |
\? | Справка по командам |
-- Создать базу данных
CREATE DATABASE myapp;
-- Подключиться к базе
\c myapp
-- Создать таблицу
CREATE TABLE users (
id SERIAL PRIMARY KEY,
name VARCHAR(100) NOT NULL,
email VARCHAR(255) UNIQUE NOT NULL,
age INTEGER,
created_at TIMESTAMP DEFAULT NOW()
);
-- Вставить данные
INSERT INTO users (name, email, age) VALUES
('Alice', 'alice@example.com', 25),
('Bob', 'bob@example.com', 30);
-- Выбрать данные
SELECT * FROM users;┌─────────────────────────────────────────┐
│ Клиентские приложения │
│ (Python, Java, Node.js, etc.) │
└─────────────────┬───────────────────────┘
│
▼
┌─────────────────────────────────────────┐
│ PostgreSQL Server │
│ ┌─────────────────────────────────┐ │
│ │ Shared Buffers (кэш) │ │
│ ├─────────────────────────────────┤ │
│ │ Background Processes │ │
│ │ - autovacuum │ │
│ │ - wal writer │ │
│ │ - checkpointer │ │
│ └─────────────────────────────────┘ │
│ │
│ ┌──────────────┐ ┌─────────────────┐ │
│ │ Database │ │ Database │ │
│ │ myapp │ │ postgres │ │
│ │ ┌────────┐ │ │ ┌───────────┐ │ │
│ │ │Schema │ │ │ │ Schema │ │ │
│ │ │public │ │ │ │ public │ │ │
│ │ │ ┌────┐ │ │ │ │ ┌─────┐ │ │ │
│ │ │ │Tabl│ │ │ │ │ │Table│ │ │ │
│ │ │ └────┘ │ │ │ │ └─────┘ │ │ │
│ │ └────────┘ │ │ └───────────┘ │ │
│ └──────────────┘ └─────────────────┘ │
└─────────────────────────────────────────┘
Вы изучили основы. В следующих темах:
Готовы продолжить? Переходите к следующей теме!
Вопросы ещё не добавлены
Вопросы для этой подтемы ещё не добавлены.