Первая база данных: таблица, строки и первичный ключ
Содержание курса
CREATE TABLE: задаём форму первой таблицы
Прежде чем добавить хоть одну строку, нужно описать структуру таблицы — какие в ней будут столбцы и какие типы для них объявлены. Это делает команда CREATE TABLE:
CREATE TABLE products (
product_id INTEGER PRIMARY KEY,
title TEXT,
price INTEGER
);
После выполнения этой команды таблица products существует, но пуста — в ней ноль строк. CREATE TABLE задаёт имена столбцов и их объявленные типы. В обычной SQLite-таблице тип влияет на то, как база обрабатывает значение, но не всегда служит жёстким запретом на значения другого вида; особенности типизации разберём отдельно. Данные появятся позже.
Каждый столбец описывает один атрибут будущих записей. title будет хранить название товара, price — цену. Каждая строка таблицы — это один товар, и у него будет ровно три атрибута в соответствии со схемой.
product_id INTEGER PRIMARY KEY — особый столбец. PRIMARY KEY означает, что значение в нём однозначно идентифицирует строку: не может быть двух товаров с одинаковым product_id. SQLite контролирует это автоматически: если попытаться вставить строку с уже существующим идентификатором, база отклонит вставку и сообщит о нарушении уникальности.
Почему не стоит использовать title как первичный ключ? Названия товаров могут совпадать и со временем меняться. Поэтому вводят отдельный числовой идентификатор: product_id, customer_id, order_id. Его значение назначает программа или сама база, а ограничение PRIMARY KEY заставляет SQLite контролировать уникальность этого значения в таблице.
