Kodokon kodokon.com

Реляционная модель: таблицы, строки, столбцы

Узнай, как база данных организует информацию в таблицы, и создай свою первую таблицу в SQLite.

8 мин · 3 вопросов

Открыть этот урок в Kodokon

База данных - это программа, которая хранит информацию упорядоченно и надолго, даже когда компьютер выключен. Самая распространённая модель - реляционная: данные размещаются в таблицах. Таблица похожа на электронную таблицу: каждый столбец описывает свойство (название, цену...), а каждая строка представляет целый объект (например, одну конкретную книгу). SQL (Structured Query Language) - это язык, на котором создают таблицы и запрашивают их содержимое. Каждую команду, которую ты отправляешь базе данных, называют запросом.

SQL
CREATE TABLE books (
  id INTEGER PRIMARY KEY,
  title TEXT,
  author TEXT,
  genre TEXT,
  year INTEGER,
  price REAL
);
Наша учебная таблица: небольшая библиотека

Разберём этот запрос. CREATE TABLE books создаёт таблицу с именем books. Внутри скобок каждая строка объявляет столбец: его имя, затем его тип, то есть род данных, который он принимает. В SQLite основные типы такие: INTEGER (целое число), REAL (десятичное число), TEXT (текст) и BLOB (двоичные данные, например изображение). Отсутствие значения записывается как NULL. Наконец, PRIMARY KEY обозначает первичный ключ: столбец, значение которого однозначно определяет каждую строку, словно номер дела.

SQL
INSERT INTO books (id, title, author, genre, year, price)
VALUES
(1, 'Dune', 'Herbert', 'sf', 1965, 9.9),
(2, 'Fondation', 'Asimov', 'sf', 1951, 8.5),
(3, '1984', 'Orwell', 'sf', 1949, 7.2),
(4, 'Croc-Blanc', 'London', 'aventure', 1906, 5.5),
(5, 'Les Robots', 'Asimov', 'sf', 1950, 7.9),
(6, 'Deux ans de vacances', 'Verne', 'aventure', 1888, 6.9),
(7, 'Le Petit Prince', 'Saint-Exupery', 'conte', 1943, 6.5);
Скопируй и вставь этот блок сразу после CREATE TABLE

Запрос INSERT INTO добавляет строки в таблицу: подробно мы разберём его в последнем уроке. Обрати внимание, что текстовые значения заключаются в одинарные кавычки ('Dune'), никогда в двойные. Теперь проверим, что всё на месте, с помощью запроса на чтение: SELECT.

SQL
SELECT * FROM books;
Звёздочка * означает «все столбцы»

Ты должен увидеть 7 строк и 6 столбцов: твоя первая база данных работает. Сохрани скрипт CREATE TABLE + INSERT из этого урока: все следующие уроки опираются на эту же таблицу books. Если ты закроешь браузер или терминал, просто выполни его снова, чтобы вернуться в ту же точку.

Проверка знаний

Убедись, что запомнил ключевые моменты этого урока.

  1. Что представляет собой строка в таблице?
    • Свойство, например название или цену
    • Целый объект, например одну конкретную книгу
    • Тип данных столбца
  2. Какой тип SQLite подходит для хранения цены вроде 6.5?
    • INTEGER
    • TEXT
    • REAL
    • BLOB
  3. Для чего нужна конструкция PRIMARY KEY у столбца id?
    • Чтобы автоматически сортировать строки по алфавиту
    • Чтобы однозначно определять каждую строку
    • Чтобы запретить отрицательные числа