Типы данных postgresql и SQL
Тема СУБД очень широкая.. и достаточно объемно описать ее очень сложно. В этой статье я напишу какие-то примерчики, шпаргалки, а для тех, кому тема интересна посоветую следующий курс:
SQL - декларативный язык программирования, применяемый для создания, модификации и управления данными в реляционной базе данных, управляемой соответствующей системой управления базами данных.
Изначально SQL
был основным способом работы пользователя с базой данных и позволял выполнять следующий набор операций:
- создание в базе данных новой таблицы.
- добавление в таблицу новых записей.
- изменение записей.
- удаление записей.
- выборка записей из одной или нескольких таблиц (в соответствии с заданным условием).
- изменение структур таблиц.
Типы данных Postgresql
Опишу только некоторые типы которые нам понадобятся:
Числовые типы
type | length | description |
---|---|---|
smalint | 2 bytes | Позволяет хранить числа длиной в 2 байта |
integet | 4 bytes | 4-байтовое число |
biging | 8 bytes | 8-байтовое число |
decimal | * | Специальный тип позволяющий хранить числа с некоторой точностью(кол-во знаков после запятой) |
real | 4 bytes | Тип для хранения вещественных чисел с некоторой точностью |
serial | 4 bytes | Почти тот же самый integer (int ) но значение в этом поле будет автоматически инкрементироваться для каждой записи |
Некоторые примеры:
Cимвольные типы
type | length | description |
---|---|---|
varchar(n) | * | Строки произвольной длины с максимумом n |
char(n) | * | Cтроки длины n , пустые символы дозаполняются пробелами |
text | * | Строки произвольной длины |
Некоторые примеры:
Типы даты и времени
type | length | description |
---|---|---|
timestamp | 8 bytes | Дата с временем |
date | 4 bytes | Дата без времени |
time | 8 bytes | Время без даты |
interval | 16 bytes | Временной интервал |
Некоторые примеры
В типах timestamp и time можно указывать с часовым поясом или нет. По умолчанию идет без часового пояса. Что бы время или дату и время с часовым поясом нужно использовать timestamp with time zone(time with time zone) или же использовать специальное расширение timestamptz (timetz).
Бинарные данные
TODO: Продолжить
SQL комманды
Создание базы данных
Под управлением одной СУБД
у нас может находиться несколько баз данных. Для создания базы данные в PostgreSQL
используется следующая команда:
PSQL
Если вы находитесь в REPL-клиенте
psql
для подключения к базе данных следует набрать команду:\c <database_name>
Создание таблицы
Таблицы создаются с помощью команды CREATE TABLE
. В примере ниже показано как выглядит полная команда, в круглых скобочках перечисляются колонки(columns
) в таблице или ограничения(constraints
)