81 lines
2.5 KiB
Markdown
81 lines
2.5 KiB
Markdown
#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 |