PostgreSQL - Создание таблиц: Пособие для начинающих
Здравствуйте, будущие маги баз данных! Сегодня мы отправимся в увлекательное путешествие в мир PostgreSQL, конкретно focusing на том, как создавать таблицы. Не волнуйтесь, если вы никогда не писали ни строчки кода – я буду вашим доброжелательным проводником, и мы будем двигаться шаг за шагом. К концу этого руководства вы будете создавать таблицы, как профи!
Что такое таблица в PostgreSQL?
Прежде чем мы углубимся в детали создания таблиц, давайте поймем, что такое таблица. Представьте себе таблицу Excel – вы знаете, те сетки с строками и столбцами? Таблица в базе данных очень похожа. Это набор связанных данных, организованных в строки (также называемые записями) и столбцы (также называемые полями).
Например, если вы ведете小型 библиотеку, у вас может быть таблица под названием "Книги" с колонками "Название", "Автор", "ISBN" и "Дата публикации". Каждая строка в этой таблице будет представлять одну книгу вашей библиотеки.
Синтаксис CREATE TABLE
Теперь давайте посмотрим на базовый синтаксис для создания таблицы в PostgreSQL:
CREATE TABLE table_name (
column1 datatype constraints,
column2 datatype constraints,
column3 datatype constraints,
....
);
Не пугайтесь! Это проще, чем кажется. Давайте разберем это:
-
CREATE TABLE
: Эта команда говорит PostgreSQL, что вы хотите создать новую таблицу. -
table_name
: Здесь вы указываете, как вы хотите назвать свою таблицу. - Внутри скобок вы перечисляете все колонки, которые вы хотите в своей таблице.
- Для каждой колонки вы указываете:
- Имя колонки
- Тип данных (например, INTEGER для целых чисел, TEXT для строк и т.д.)
- Любые ограничения (например, NOT NULL, если колонка всегда должна иметь значение)
Примеры: Давайте создадим несколько таблиц!
Пример 1: Простая таблица Книги
Давайте начнем с простого примера. Мы создадим таблицу для нашей вымышленной библиотеки:
CREATE TABLE books (
book_id SERIAL PRIMARY KEY,
title VARCHAR(100) NOT NULL,
author VARCHAR(50) NOT NULL,
publication_date DATE,
isbn VARCHAR(13) UNIQUE
);
Давайте разберем это:
-
book_id
: Это уникальный идентификатор для каждой книги. SERIAL означает, что он будет автоматически увеличиваться для каждой новой добавленной книги. -
title
: Может содержать до 100 символов и не может быть пустым (NOT NULL). -
author
: До 50 символов, также не может быть пустым. -
publication_date
: Это可选но (мы не указали NOT NULL). -
isbn
: Уникален для каждой книги.
Пример 2: Более сложная таблица Клиенты
Теперь давайте создадим slightly более сложную таблицу для клиентов:
CREATE TABLE customers (
customer_id SERIAL PRIMARY KEY,
first_name VARCHAR(50) NOT NULL,
last_name VARCHAR(50) NOT NULL,
email VARCHAR(100) UNIQUE NOT NULL,
phone VARCHAR(20),
registration_date DATE DEFAULT CURRENT_DATE,
loyalty_points INTEGER DEFAULT 0 CHECK (loyalty_points >= 0)
);
Эта таблица introduces новые concepts:
-
DEFAULT
: Мы используем это дляregistration_date
, чтобы автоматически устанавливать текущую дату при добавлении нового клиента. -
CHECK
: Это ensures, чтоloyalty_points
nunca puede ser negativo.
Типы данных в PostgreSQL
PostgreSQL предлагает широкий выбор типов данных. Вот некоторые из них:
Тип данных | Описание | Пример |
---|---|---|
INTEGER | Целое число | 42 |
SERIAL | Автоматически увеличивающееся целое число | Автоматически присвоено |
VARCHAR(n) | Строка переменной длины до n символов | 'Hello, World!' |
TEXT | Строка переменной длины任意长度 | 'Очень длинный текст...' |
DATE | Дата (без времени) | '2023-06-15' |
TIMESTAMP | Дата и время | '2023-06-15 14:30:00' |
BOOLEAN | Значение True/False | TRUE или FALSE |
NUMERIC(p,s) | Точное числовое значение с p знаками (s после десятичной точки) | 123.45 |
Ограничения в PostgreSQL
Ограничения – это правила, которые мы устанавливаем для наших колонок. Вот некоторые из них:
Ограничение | Описание |
---|---|
NOT NULL | Колонка не может содержать NULL значения |
UNIQUE | Все значения в колонке должны быть разными |
PRIMARY KEY | Уникально идентифицирует каждую строку в таблице |
FOREIGN KEY | Обеспечивает целостность ссылок между двумя таблицами |
CHECK | Обеспечивает, что все значения в колонке удовлетворяют определенному условию |
DEFAULT | Устанавливает значение по умолчанию для колонки |
Ещё несколько примеров
Пример 3: Таблица с внешним ключом
Давайте создадим таблицу 'orders', которая ссылается на нашу таблицу 'customers':
CREATE TABLE orders (
order_id SERIAL PRIMARY KEY,
customer_id INTEGER REFERENCES customers(customer_id),
order_date DATE DEFAULT CURRENT_DATE,
total_amount NUMERIC(10,2) CHECK (total_amount > 0)
);
Эта таблица имеет foreign key (customer_id
), который ссылается на таблицу customers
, обеспечивая, что каждая запись связана с valid customer.
Пример 4: Таблица с составным primary key
Иногда вам может понадобиться primary key, состоящий из нескольких колонок:
CREATE TABLE book_authors (
book_id INTEGER REFERENCES books(book_id),
author_id INTEGER REFERENCES authors(author_id),
PRIMARY KEY (book_id, author_id)
);
Эта таблица может использоваться для обработки книг с несколькими авторами или авторов, написавших несколько книг.
Заключение
Поздравляю! Вы только что сделали свои первые шаги в мир создания таблиц в PostgreSQL. Помните, что практика makes perfect. Попробуйте создавать таблицы для разных сценариев – может быть, для музыкальной библиотеки, кулинарной книги или даже для базы данных ваших любимых видеоигр.
Не бойтесь experиментировать и犯 ошибки – это как мы учимся! И всегда помните: в мире баз данных у вас есть сила создавать, изменять и даже удалять целые миры данных. Используйте эту силу мудро, молодой жук!
Счастливого кодирования, и пусть PostgreSQL будет с вами!
Credits: Image by storyset