#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