Tables, keys and relationships · Таблицы, ключи и связи
More than one table
Real databases split data across several tables. This lesson uses a small shop with two of them:
customer— one row per customer (id,name,city)orders— one row per order (id,customer_id,order_date,total)
Storing the customer's name on every order would repeat it again and again. Keeping customers in their own table stores each one once.
Более одной таблицы
Реальные базы данных разделяют данные между несколькими таблицами. Этот урок использует небольшой магазин с двумя из них:
customer— одна строка на каждого клиента (id,name,city)orders— одна строка на каждый заказ (id,customer_id,order_date,total)
Хранение имени клиента в каждом заказе дублировало бы его снова и снова. Хранение клиентов в отдельной таблице сохраняет каждого один раз.
Primary keys
A primary key is the column that uniquely identifies each row. It is never blank and never repeated.
customer.idis the primary key ofcustomer.orders.idis the primary key oforders.
Given a primary key value, you can always find exactly one row.
Первичные ключи
Первичный ключ — это столбец, который уникально идентифицирует каждую строку. Он никогда не бывает пустым и никогда не повторяется.
customer.idявляется первичным ключом дляcustomer.orders.idявляется первичным ключом дляorders.
Зная значение первичного ключа, можно всегда найти ровно одну строку.
Foreign keys
A foreign key is a column that holds the primary key of another table, linking the two.
orders.customer_id holds a value from customer.id — it says which customer each order belongs to.
Referential integrity means every foreign-key value must match a real primary key: an order can't belong to a customer who doesn't exist.
Внешние ключи
Внешний ключ — это столбец, содержащий первичный ключ другой таблицы, связывающий две таблицы.
orders.customer_id содержит значение из customer.id — оно указывает, какому клиенту принадлежит каждый заказ.
Ссылочная целостность означает, что каждое значение внешнего ключа должно соответствовать реальному первичному ключу: заказ не может принадлежать несуществующему клиенту.
Common mistakes
- A PRIMARY KEY is unique and cannot be NULL.
- A foreign key points to another table's primary key.
Частые ошибки
- PRIMARY KEY уникален и не может быть NULL.
- Внешний ключ ссылается на первичный ключ другой таблицы.
Keys link two tables · Ключи связывают две таблицы
A shared key lets a row in one table point to a row in another. · Общий ключ позволяет строке одной таблицы ссылаться на строку другой.
Show the whole customer table so you can see the rows and their primary key id. · Вывести всю таблицу customer, чтобы увидеть строки и их первичный ключ id.
Click Run to see the output here. · Нажмите Запустить, чтобы увидеть результат здесь.
Show each order's id, its customer_id (the foreign key), and its total, ordered by id. · Вывести для каждого заказа его id, его customer_id (внешний ключ) и его total, отсортировано по id.
Click Run to see the output here. · Нажмите Запустить, чтобы увидеть результат здесь.