Реляционная модель данных
Создание таблиц БД с помощью языка SQL
Download 372 Kb.
|
Conn&Begg
Создание таблиц БД с помощью языка SQL. Язык SQL включает в себя набор различных операторов (инструкций, команд), при выполнении которых СУБД производит определенные действия: создает новые таблицы в составе БД или изменяет их структуру, добавляет новые данные в существующие таблицы, осуществляет выборку данных и т.п.
Каждая инструкция SQL начинается со стандартных ключевых слов, которые описывают характер выполняемых действий: CREATE (создать), INSERT (добавить), SELECT (выбрать), DELETE (удалить) и т.п. Затем указывается одно или несколько предложений, которые конкретизируют требуемые действия. Эти предложения могут содержать имена таблиц и их столбцов, константы, выражения и дополнительные ключевые слова. В дальнейшем для описания формата операторов языка SQL применяются следующие обозначения расширенной формы BNF (Backus Naur Form — форма Бэкуса–Наура): прописные буквы будут использоваться для записи зарезервированных слов; строчными буквами записываются слова, определяемые пользователем; вертикальная черта () указывает на необходимость выбора одного из нескольких приведенных вариантов; фигурные скобки определяют обязательный элемент; квадратные скобки определяют необязательный элемент; многоточие (…) используется для указания необязательной возможности повторения конструкции от нуля до нескольких раз. Описание типов данных. Современные СУБД позволяют обрабатывать данные разнообразных типов, среди которых основными являются следующие: INT, SMALLINT — целые числа; NUMERIC, DECIMAL — числа с фиксированной точкой; REAL, FLOAT — числа с плавающей точкой; CHAR, VARCHAR — строки символов постоянной и переменной длины; MONEY, SMALLMONEY — денежные величины; DATETIME, SMALLDATETIME — дата и время; BIT — логические величины. Создание таблиц БД. В простейшем виде команда CREATE TABLE имеет следующий синтаксис: CREATE TABLE table_name ({column_def table_constraint} [, …]) Определение отдельной колонки, обозначенное как column_def, имеет следующий формат: {column_name data_type} [DEFAULT constant_expression] [column_constraint} [, …] Прежде всего, следует определить имя колонки (column_name), а также тип хранимых в ней данных (data_type). Ключевое слово DEFAULT определяет значение по умолчанию (constant_expression), которое будет использовано, если при вводе записи явно не указано другое значение. Кроме того, для колонки можно определить набор ограничений (column_constraint), которые обеспечивают поддержку целостности данных, т.е. защиту БД от нарушения согласованности сохраняемых данных. При этом может использоваться несколько видов ограничений. 1. Обязательные данные. Для некоторых столбцов требуется наличие в каждой строке таблицы конкретного и допустимого значения. Чтобы задать ограничение подобного типа, предусмотрено использование спецификатора NOT NULL. Если для некоторого столбца задан такой спецификатор, то система будет препятствовать появлению в этом столбце пустых значений (NULL). В соответствии со стандартом ISO спецификатор NULL должен применяться по умолчанию. Например, каждый сотрудник обязательно занимает ту или иную должность. Следовательно, столбец Position в таблице Staff должен определяться следующим образом: Position VARCHAR(10) NOT NULL 2. Первичный ключ. Для определения простого первичного ключа используется спецификатор PRIMARY KEY, который приписывается соответствующему столбцу. При этом для столбца гарантируется уникальность значений, а также становятся запрещенными неопределенные значения (NULL). В таблице можно определить только один первичный ключ. 3. Уникальность значений столбца. Если в дополнение к первичному ключу необходимо иметь альтернативные ключи, то следует применять спецификатор UNIQUE. Например, в таблице Subject (Дисциплина) первичный ключ строится по целочисленному коду SubjectID, что сокращает время поиска. Однако и название дисциплины (символьное поле SubName) должно быть уникальным, что обеспечивается с помощью спецификатора UNIQUE: CREATE TABLE Subject (SubjectID INTEGER PRIMARY KEY, SubName VARCHAR(20) NOT NULL UNIQUE); 4. Проверочные ограничения. С помощью спецификатора CHECK(logical_expression) можно задать диапазон возможных значений для некоторого столбца. Это ограничение, которое основано на проверке логического выражения logical_expression, позволяет объединить несколько условий контроля при вводе данных. Например, правильность ввода значений для столбца Семестр в некоторой таблице можно обеспечить следующим образом: Семестр INTEGER NOT NULL CHECK((Семестр >= 1) OR (Семестр <= 10)) 5. Внешний ключ. Конструкция [FOREIGN KEY] REFERENCES ref_table[(ref_column)] определяет внешний ключ, который предусматривается в дочерней (зависимой) таблице для связи с родительской (главной) таблицей ref_table. Параметр ref_column не является обязательным, т.к. в родительской таблице ссылка осуществляется на первичный ключ. При ссылке на альтернативный ключ (столбец с атрибутом UNIQUE) этот параметр требуется указать в явном виде. Ограничения для значений в колонках таблицы могут устанавливаться и другим способом — через определение ограничений table_constraint на уровне таблицы. Такой вариант обычно применяется в случае составных ключей. При этом используются те же самые ключевые слова, однако синтаксис немного изменяется: {PRIMARY KEY UNIQUE} {(column [, …])} FOREIGN KEY (column [, …]) REFERENCES ref_table [(ref_column [, …])] Например, для создания таблицы Subject можно использовать следующую команду: CREATE TABLE Subject (SubjectID INTEGER, SubName VARCHAR(20) NOT NULL, PRIMARY KEY (SubjectID), UNIQUE (SubName)); Download 372 Kb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling