## Подкатегории команд в SQL - DDL (Data Definition Language) — `create`, `alert`, `drop` - DML (Data Manipulation Language) — `select`, `insert`, `update`, `delete` - TCL (Transaction Control Language) — `commit`, `rollback`, `savepoint` - DCL (Data Control Language) — `grant`, `revoke`, `deny` ## Основные типы данных в SQL | Название типа данных | Занимает байтов | Описание | | ------------------------------------- | --------------- | ------------------------------------------------------------------------------------------------ | | `smallint` | 2 | | | `integer` | 4 | может записываться как `int`. | | `bigint` | 8 | | | `decimal`, `numeric` | variable | денежные расчёты обычно объявляются им. очень точен | | `real`, `float4` | 4 | | | `double precision`, `float8`, `float` | 8 | | | `smallsireal` | 2 | | | `sireal` | 4 | автоматически увеличивается на новой строке | | `bigsireal` | 8 | | | `char(n)` | variable | устанавливается точная длинна `n` при объявлении | | `varchar(n)` | variable | в отличии от `char`, при добавлении строки меньшей длинны, чем `n`, строка не будет расширяться. | | `text` | variable | поддерживает строки любой длинны | | `Boolean`, `bool` | 1 | True или False | | `date` | 4 | только дата | | `time` | 8 | только время | | `timestamp` | 8 | дата и время (вместе) | | `interval` | 16 | разница между двумя `timestamp` | | `timestamptz` | 8 | `timestamp` + часовой пояс | | arrays | | | | json | | | | xml | | | | геометрические и другие специальные | | | | custom–типы | | | | `null` | | ничего | Первичный ключ задается следующим образом: ```sql *название_столбца* *тип_данных_столбца* GENERATED ALWAYS AS IDENTITY PRIMARY KEY ```