До появления компьютеров библиотека хранила ящик вот такого типа. Одна карточка на каждую книгу, каждая содержит одни и те же несколько фактов, все упорядочены так, чтобы библиотекарь мог найти любую книгу…
English narration · English + 中文 subtitles burned in · Английское озвучивание · Английский + китайские субтитры (встроенные)
Syllabus · Программа
English
Candidates should be able to:
Notes and guidance
1 Define a single-table database from given data storage requirements
• Including: – fields – records – validation
2 Suggest suitable basic data types
• Including: – text/alphanumeric – character – Boolean – integer – real – date/time
3 Understand the purpose of a primary key and identify a suitable primary key for a given database table
4 Read, understand and complete structured query language (SQL) scripts to query data stored in a single database table
• Limited to: – SELECT – FROM – WHERE – ORDER BY DESCENDING – ORDER BY ASCENDING – SUM – COUNT – AND – OR • Identifying the output given by an SQL statement that will query the given contents of a database table
Русский
Кандидаты должны уметь:
Примечания и рекомендации
1 Определение базы данных с одной таблицей на основе заданных требований к хранению данных
3 Понимание назначения первичного ключа и определение подходящего первичного ключа для заданной таблицы базы данных
4 Чтение, понимание и заполнение скриптов языка структурированных запросов (SQL) для запроса данных, хранящихся в одной таблице базы данных
• Ограничено: – SELECT – FROM – WHERE – ORDER BY DESCENDING – ORDER BY ASCENDING – SUM – COUNT – AND – OR • Идентификация вывода, который даст SQL-запрос на основе заданного содержимого таблицы базы данных
Source: Cambridge International syllabus · Источник: Программа Cambridge International
9.1
What is a database? · Что такое база данных?
English
A database 数据库 is an organised store of data, kept so that it is easy to search, sort and update. At IGCSE you work with a single-table database 单表数据库 — all the data is held in one table.
Русский
База данных — это организованное хранилище данных, предназначенное для удобного поиска, сортировки и обновления. На IGCSE вы работаете с одностраничной базой данных — все данные хранятся в одной таблице.
Карточный каталог библиотеки — это база данных на бумаге — записи, которые можно искать и сортировать по индексуБольшие современные базы данных хранятся на серверах в дата-центрах
9.2
Records and fields · Записи и поля
English
A database table is made of records and fields.
A record 记录 is one row in the table — all the data about one thing (for example one student).
A field 字段 is one column in the table — one piece of data that every record has (for example "First name").
StudentID
FirstName
DateOfBirth
FormClass
FeesPaid
1
Amy
14/03/2009
10A
TRUE
2
Ben
02/11/2008
10B
FALSE
Here each row is a record, and each column is a field.
Русский
Таблица базы данных состоит из записей и полей.
Запись — это одна строка в таблице — все данные об одном объекте (например, об одном ученике).
Поле — это один столбец в таблице — один элемент данных, который есть у каждой записи (например, "Имя").
ID_Ученика
Имя
Дата_Рождения
Класс
Оплачено
1
Эми
14/03/2009
10A
TRUE
2
Бен
02/11/2008
10B
FALSE
Здесь каждая строка является записью, а каждый столбец — полем.
Каждая строка — это запись, а каждый столбец — поле; первичный ключ (ID_Ученика) уникален для каждой записи
9.3
Data types for fields · Типы данных для полей
English
Each field stores one data type 数据类型. You choose the type that best fits the data.
Data type
Used for
Example
text/alphanumeric 文本
letters, digits and symbols
"10A", "Amy"
character 字符
a single character
'M'
Boolean 布尔值
one of two values
TRUE / FALSE
integer 整数
a whole number
42
real 实数
a number with a decimal point
3.5
date/time 日期时间
a date or a time
14/03/2009
Русский
Каждое поле хранит один тип данных. Выберите тип, который лучше всего подходит для данных.
A primary key 主键 is a field that holds a unique 唯一的 value for every record. No two records can have the same primary key, so it lets you pick out exactly one record.
In the table above, StudentID is a good primary key because every student has a different number. A field like FormClass would be a bad primary key, because many students share the same class.
Русский
Первичный ключ — это поле, которое содержит уникальное значение для каждой записи. Никакие две записи не могут иметь одинаковый первичный ключ, что позволяет выделить ровно одну запись.
В таблице выше StudentID является хорошим первичным ключом, потому что у каждого ученика свой номер. Поле вроде FormClass было бы плохим первичным ключом, так как многие ученики учатся в одном классе.
9.5
Validation in a database · Валидация в базе данных
English
When data is put into a database, validation 验证 checks make sure it is sensible — for example a range check on an age field, or a presence check so a field is not left empty. (You saw these checks in topic 7.)
Русский
При вводе данных в базу данных валидация проверяет, что они разумны — например, проверка диапазона для поля возраста или проверка наличия, чтобы поле не оставалось пустым. (Вы видели эти проверки в теме 7.)
Проверка диапазона принимает разумные значения и отклоняет остальные
Structured Query Language (SQL) · Структурированный язык запросов (SQL)
English
Structured Query Language 结构化查询语言 (SQL) is a language used to query 查询 a database — to pick out the records you want. You must understand and complete SQL scripts.
SELECT, FROM and WHERE
SELECT says which fields to show.
FROM says which table to use.
WHERE gives a condition 条件, so only matching records are shown.
This shows the first name and class of every student who has paid the fees.
Use * to select all fields:
ORDER BY
ORDER BY sorts the results. Use ASC for ascending 升序 (smallest first, A→Z) or DESC for descending 降序 (largest first, Z→A).
AND and OR
Join conditions with AND (both must be true) or OR (at least one must be true).
SUM and COUNT
SUM adds up the values in a number field.
COUNT counts how many records match.
This counts how many students have not paid. SUM works the same way but adds a number field instead of counting rows.
Working out the output
To find the output of an SQL script, read it in this order:
FROM — which table;
WHERE — keep only the records that match the condition;
SELECT — show only the chosen fields;
ORDER BY — put the results in order.
Following these steps, you can write down exactly which rows and columns the query returns.
Worked example. A Book table has the fields Title, Author, Price and InStock. Write a query showing the title and price of every book by Orwell that is in stock, cheapest first.
Build it in the reading order: FROM names the table; WHERE keeps only the matching records, and because there are two conditions they need AND; SELECT shows only the two fields asked for; ORDER BY … ASC sorts them. Text values go in quotes, and only the fields the question asks for belong in SELECT - adding Author just because you filtered on it is the commonest way to lose a mark here.
Русский
Структурированный язык запросов (SQL) — это язык, используемый для запроса базы данных — для выбора нужных вам записей. Вы должны понимать и выполнять SQL-скрипты.
SELECT, FROM и WHERE
SELECT указывает, какие поля показывать.
FROM указывает, какую таблицу использовать.
WHERE задает условие, поэтому показываются только совпадающие записи.
SELECT выбирает поля, FROM называет таблицу, WHERE задает условие
SELECT FirstName, FormClass
FROM Student
WHERE FeesPaid = TRUE;
Это показывает имя и класс каждого ученика, который оплатил сборы.
Используйте * для выбора всех полей:
SELECT *
FROM Student
WHERE FormClass = '10A';
ORDER BY
ORDER BY сортирует результаты. Используйте ASC для возрастающего порядка (сначала наименьшее, A→Z) или DESC для убывающего (сначала наибольшее, Z→A).
SELECT FirstName, DateOfBirth
FROM Student
ORDER BY DateOfBirth ASC;
AND и OR
Объединяйте условия через AND (оба должны быть верны) или OR (должен быть верен хотя бы один).
SELECT FirstName
FROM Student
WHERE FormClass = '10A' AND FeesPaid = FALSE;
SUM и COUNT
SUM суммирует значения в числовом поле.
COUNT подсчитывает количество подходящих записей.
SELECT COUNT(StudentID)
FROM Student
WHERE FeesPaid = FALSE;
Это подсчитывает, сколько учеников не оплатили. SUM работает аналогично, но складывает числовое поле вместо подсчета строк.
Определение вывода
Чтобы найти вывод SQL-скрипта, читайте его в следующем порядке:
FROM — какая таблица;
WHERE — оставить только записи, соответствующие условию;
SELECT — показать только выбранные поля;
ORDER BY — расположить результаты в порядке.
Читайте SQL-запрос в таком порядке: FROM (какая таблица), WHERE (какие строки), SELECT (какие поля), ORDER BY (сортировка)
Следуя этим шагам, вы можете точно записать, какие строки и столбцы вернет запрос.
Разобранный пример. В таблице Book есть поля Title, Author, Price и InStock. Напишите запрос, показывающий название и цену каждой книги Оруэлла, имеющейся в наличии, отсортированную от самой дешевой.
SELECT Title, Price
FROM Book
WHERE Author = 'Orwell' AND InStock = TRUE
ORDER BY Price ASC;
Строите запрос в порядке чтения: FROM задает имя таблицы; WHERE оставляет только соответствующие записи, и поскольку условий два, они требуют ⟨AND⟩; SELECT показывает только запрошенные два поля; ORDER BY … ASC сортирует их. Текстовые значения пишутся в кавычки, и в SELECT должны быть только те поля, которые требует вопрос — добавление Author лишь потому, что вы фильтровали по нему, является наиболее частой причиной потери балла здесь.
Explore · Исследовать
SELECT … WHERE
Step through a query: WHERE filters rows, SELECT picks columns. · Пройдите по запросу: WHERE фильтрует строки, SELECT выбирает столбцы.
Pick one and the site follows you — notes, papers, videos and practice all open on it. · Выберите один, и сайт будет вести вас — конспекты, работы, видео и практика откроются там.
Type to search notes, lessons, code, vocabulary and past-paper questions across every subject. · Введите запрос для поиска заметок, уроков, кода, словаря и вопросов с реальных экзаменов по всем предметам.