Files
obsidian/Prog/Шпаргалка по PostgreSQL. Редактирование таблиц..md
2026-09-24 13:22:58 +05:00

81 lines
2.5 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#PostgreSQL #PostgreSQL #SQL
-- ***********************************
-- Редактирование таблиц, расширенные возможности SELECT, функции
-- ***********************************
-- Добавление поля в таблицу
```sql
ALTER TABLE table_name ADD COLUMN new_field
BOOLEAN NOT NULL DEFAULT TRUE;
```
-- добавление поля с автоинкрементом и primary key в таблицу
```sql
ALTER TABLE test1 ADD COLUMN id SERIAL PRIMARY KEY;
```
-- Удаление поля из таблицы
```sql
ALTER TABLE table_name DROP COLUMN new_field;
```
-- переименовать поле
```sql
ALTER TABLE table_name RENAME old_field TO new_field;
```
-- сменить тип данных
```sql
ALTER TABLE table_name ALTER COLUMN any_field SET
DATA TYPE VARCHAR(255);
```
-- изменить значение по умолчанию
```sql
ALTER TABLE table_name ALTER COLUMN any_field SET
DEFAULT 'new value';
```
-- добавить/удалить constraint NOT NULL
```sql
ALTER TABLE table_name ALTER COLUMN any_field
SET|DROP NOT NULL;
```
-- переименовать таблицу
```sql
ALTER TABLE table_name RENAME TO new_table_name;
```
-- Расширенные возможности SELECT
```sql
SELECT * FROM table WHERE field1 LIKE 'value'; -- field1 = 'value'
SELECT * FROM table WHERE field1 LIKE 'val%'; -- field1 начинается с 'val'
SELECT * FROM table WHERE field1 LIKE '%lue'; -- field1 заканчивается на 'lue'
SELECT * FROM table WHERE field1 LIKE '%e%'; -- field1 содержит 'e'
```
несколько условий
```sql
SELECT * FROM table WHERE field1 = 'value' AND field2 > 'value2';
SELECT * FROM table WHERE field1 = 'value' OR field2 > 'value2';
```
-- вывод уникальных записей
```sql
SELECT DISTINCT field1 FROM table;
```
-- группирование записей
```sql
SELECT field1, COUNT(field1) FROM table GROUP BY field1;
```
-- сгруппирует записи таблицы table по полю field и выведет уникальные значения field и количество повторений
```sql
```
SELECT field1, COUNT(field1) FROM table GROUP BY field1
HAVING COUNT(field) > 3;
-- сгруппирует записи таблицы table по полю field и выведет уникальные значения field и количество повторений, где количество повторений больше 3