SQL
Операции с таблицами
-- создать
CREATE TABLE table_name(name_1 type_1, name_2 type_2);
-- удалить
DROP TABLE table_name;
-- переименовать
ALTER TABLE old_name RENAME TO new_name;
Операции над колонками
-- добавить
ALTER TABLE table_name ADD COLUMN column_name column_type;
-- удалить
ALTER TABLE table_name DROP COLUMN column_name;
-- переименовать
ALTER TABLE table_name RENAME COLUMN old_name TO new_name;
-- добавить/заменить значение по умолчанию
ALTER TABLE table_name ALTER COLUMN column_name SET DEFAULT expression;
-- удалить значение по умолчанию
ALTER TABLE table_name ALTER COLUMN column_name DROP DEFAULT;
-- добавить ограничение на NULL
ALTER TABLE table_name ALTER COLUMN column_name SET NOT NULL;
-- снять ограничение на NULL
ALTER TABLE table_name ALTER COLUMN column_name DROP NOT NULL;
-- добавить ограничение уникальности
ALTER TABLE table_name ADD CONSTRAINT name UNIQUE (column_name);
-- изменить тип столбца
ALTER TABLE table_name ALTER COLUMN column_name TYPE datatype;
Операции с данными
-- добавить записи
INSERT INTO table_name (col_1, col_2) VALUES (value_1, value_2), (...);
-- удалить записи
DELETE FROM table_name WHERE expression;
-- изменить записи
UPDATE table_name SET col_1 = value_1, col_2 = value_2 WHERE expression;
-- очистить таблицу:
TRUNCATE TABLE tablename;
PostgreSQL
psql <dbname> <username>
psql -h <hostname> -p <port> -U <username> -d <database>
psql "postgresql://<username>:<password>@<hostname>:<port>/<database>"
Быстрые команды psql
\l
— список БД на сервере
\c db_name
— подключиться к другой БД
\password user_name
— изменить пароль
\dt
— список таблиц
\du
— список ролей
\d table_name
— структура таблицы
\q
— выйти из psql
\! clear
(Unix) или \! cls
(Windows) — очистить экран
Некоторые системные таблицы
pg_database
: информация о доступных базах данныхpg_attribute
: информация о столбцах таблицыpg_constraint
: ограничения (pkey, unique, check, etc.)pg_index
: информация об индексах
Другое
-- размер базы данных
SELECT pg_size_pretty(pg_database_size('db_name'));
-- размер таблицы
SELECT pg_size_pretty(pg_relation_size('table_name'));
Рестарт сервера для Windows:
pg_ctl -D "C:/Program Files/PostgreSQL/17/data" restart
Типы колонок:
SELECT * FROM information_schema.columns WHERE table_name = 'table_name';