Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лекции по бд.doc
Скачиваний:
2
Добавлен:
01.05.2025
Размер:
4.79 Mб
Скачать

Примеры

  • Следующая инструкция создает базу данных в текущем каталоге:

CREATE DATABASE ‘employee.gdb’;

  • Следующая инструкция создает базу данных с размером страницы 2048 байт, вместо 1024 по умолчанию:

CREATE DATABASE ‘employee.gdb’ PAGE_SIZE 2048;

  • Следующая инструкция создает базу данных, которая расположена в двух файлах, и определяет ее кодировку по умолчанию:

CREATE DATABASE ‘employee.gdb’

DEFAULT CHARACTER SET ISO8859_1

FILE ‘employee.gd1’ STARTING AT PAGE 10001 LENGTH 10000 PAGES;

  • Пример создания базы данных в Interbase:

SET NAMES WIN1251;

SET SQL DIALECT 3;

CREATE DATABASE 'C:\Temp\FifthOcean.gdb' USER 'boss' PASSWORD 'ray8)bow' PAGE_SIZE 1024 DEFAULT CHARACTER SET WIN1251;

Оператор create table

Оператор CREATE TABLE, очевидно, используется для того, чтобы создавать таблицы. Хотя непосредственно создание таблицы оказывается совсем простым делом, прежде чем использовать оператор CREATE TABLE, нужно со всей тщательностью подойти к вопросу планирования структуры таблицы.

Вот несколько простых вопросов, на которые при создании таблицы нужно получить ответы.

  • Какого типа данные будут вводиться в таблицу?

  • Каким должно быть имя таблицы?

  • Каким столбцом (или столбцами) будет задаваться ключевое поле (составной ключ)?

  • Какие имена следует присвоить столбцам (полям)?

  • Какие типы данных следует назначить столбцам?

  • Какой выбрать длину каждого из столбцов?

  • Какие столбцы таблицы будут требовать обязательного ввода данных?

Получив ответы на все эти вопросы, не составляет труда построить подходящий оператор CREATE TABLE и применить его.

Синтаксис оператора для создания таблиц будет следующим:

CREATE TABLE ИМЯ_ТАБЛИЦЫ (ПОЛЕ1 ТИП ДАННЫХ [ NOT NULL ],

ПОЛЕ2 ТИП ДАННЫХ [ NOT NULL ], ПОЛЕ3 ТИП ДАННЫХ [ NOT NULL ],

ПОЛЕ4 ТИП ДАННЫХ [ NOT NULL ], ПОЛЕ5 ТИП ДАННЫХ [ NOT NULL ]);

В примерах этого урока используются такие популярные типы данных, как CHAR (символьный постоянной длины), VARCHAR (символьный переменной длины), NUMBER (числовой, для десятичных и не десятичных значений) и DATE (для значений даты и времени).

Создайте таблицу с именем EMPLOYEE_TBL, например, с помощью следующего оператора:

CREATE TABLE EMPLOYEE_TBL

(EMP_ID CHAR(9) NOT NULL,

EMP_NAME VARCHAR(40) NOT NULL,

EMP_ST_ADDR VARCHAR(20) NOT NULL,

EMP_CITY VARCHAR(20) NOT NULL,

EMP_ST CHAR(2) NOT NULL,

EMP_ZIP NUMBER(5) NOT NULL,

EMP_PHONE NUMBER(10) NULL,

EMP_PAGER NUMBER(10) NULL); Вместо NUMBER попробовать NUMERIC.

Еще один пример создания таблицы:

CREATE TABLE customer (

id_customer INTEGER NOT NULL,

sity VARCHAR(40) NOT NULL,

company_name VARCHAR(100) NOT NULL,

juridical_person VARCHAR(200) NOT NULL,

bank_properties BLOB SUB_TYPE 1,

adress VARCHAR(100) NOT NULL,

account_adress VARCHAR(100) NOT NULL,

comment BLOB SUB_TYPE 1);

В результате в таблице будет восемь столбцов. Обратите внимание на использование символа подчеркивания в именах столбцов так, что эти имена кажутся состоящими из нескольких слов (например, EMPLOYEE ID превратилось в EMP_ID). Каждому столбцу назначен свой тип данных определенной длины, а использование ограничений NULL /NOT NULL позволяет указать, какие из столбцов должны обязательно иметь значения во всех строках таблицы. Поле EMP_PHONE определено как NULL, и это значит, что для соответствующего столбца допустимы пустые значения (ввиду того, что не все могут иметь телефонные номера). Информация о столбцах разделяется запятыми, а описания всех столбцов заключены в круглые скобки (открывающая скобка помещена перед определением первого столбца, а закрывающая – после определения последнего).

Завершается оператор точкой с запятой. Большинство реализаций SQL предполагает использование некоторого символа, означающего завершение оператора или передачу оператора серверу базы данных. В Oracle используется точка с запятой. TransactSQL использует оператор GO. Мы используем точку с запятой.

В созданной нами таблице каждая запись или строка с данными будет состоять из следующих полей: EMP_ID, EMP_NAME, EMP_ST_ADDR, EMP_CITY, EMP_ST, EMP_ZIP, EMP_PHONE, EMP_PAGER.

В этой таблице каждое поле является столбцом. Столбец EMP_ID может состоять как из одного-единственного табельного номера одного служащего, так и из множества табельных номеров многих служащих в зависимости от требований запроса к базе данных или транзакций.

Значение NULL является значением столбца по умолчанию, следовательно, это значение в операторе CREATE TABLE вводить не обязательно.

CREATE TABLE (InterBase)

CREATE TABLE устанавливает новую таблицу, ее столбцы и ограничения целостности в существующей базе данных. Пользователь, который создает таблицу, становится владельцем таблицы и получает полные привилегии для этого, включая возможность предоставления (GRANT) привилегий другим пользователям, триггерам, и сохраненным процедурам.

CREATE TABLE поддерживает несколько опций для определения столбцов:

  • Локальные столбцы определяющие имя и тип данных для данных введенных в столбец.

  • Вычисляемые столбцы, базирующиеся на расширении. Значение столбца вычисляется каждый раз при доступе к таблице. Если тип данных не определен, InterBase вычисляет как соответствующий. Столбцы, к которым обращается выражение, должны существовать раньше, чем столбец может быть определен.

  • Основанные на доменах столбцы, наследуемые все характеристики домена, но определение столбца может включать новое значение по умолчанию, атрибут NOT NULL, дополнительные ограничения CHECK или переопределять порядок сортировки, которые отменяют определение домена.

  • Описание типа данных для столбца типа CHAR, VARCHAR или BLOB-техт может включать предложение CHARACTER SET определяя специфическую кодировку для одиночного столбца. Иначе столбец использует определенную по умолчанию для базы данных кодировку. Если кодировка базы данных изменена, все столбцы впоследствии определенные имеют новую кодировку, но существующие столбцы не изменяются.

Предложение COLLATE позволяет указать специфический порядок сортировки для типов данных CHAR, VARCAHR и BLOB-текст. Выбор порядка сортировки ограничен теми, которые поддерживаются для данной кодировки столбца, это или кодировка по умолчанию для базы данных в целом или другая установленная в предложении CHARACTER SET как часть определения типа данных. Смотри Language Reference, чтобы получить полный список возможных сортировок.

Атрибут NOT NULL предотвращает ввод NULL или неизвестного значения в столбец. Атрибут NOT NULL проявляется во всех INSERT и UPDATE операциях над столбцом.

Ограничения целостности могут быть определены для таблицы, когда она создана. Ограничения целостности это правила, которые контролируют базу данных и ее компоненты, связи типа столбец-таблица и таблица-таблица, и проверку вводимых данных. Они охватывают все транзакции к базе данных и автоматически поддерживаются системой. CREATE TABLE может создавать следующие типы ограничений целостности:

  • PRIMARY KEY (первичный ключ) – уникально идентифицирует каждую строку таблицы. Значение в этом столбце либо в упорядоченном наборе столбцов не могут повторятся в более чем одной строке. Столбец PRIMARY KEY должен быть определен только с атрибутом NOT NULL. Таблица может иметь только один PRIMARY KEY, который может быть определен на одном или более столбцов.

  • UNIQUE (уникальные) ключи гарантируют, что не существует двух строк имеющих одно и тоже значение в специфическом столбце или упорядоченном наборе столбцов. Уникальный столбец должен быть определен с атрибутом NOT NULL. Таблица может иметь один или более UNIQUE ключей. UNIQUE ключ может быть использован FOREIGN KEY (внешний ключ) в другой таблице.

  • Справочные ограничения гарантируют, что значения в наборе столбцов, которые определены в FOREIGN KEY, принимают те же самые значения, которые присутствуют в столбце UNIQUE или PRIMARY KEY в справочной таблице.

  • CHECK ограничения предписывают <search_condition>, которые должны принимать значение истинно для добавленных или измененных данных. <search_condition> могут требовать некоторой комбинации или порядка значений или равенства значению, введенному в другие столбцы.

Для не именованных ограничений, система создает уникальное имя, сохраненное в системной таблице RDB$RELATION_CONSTRAINTS.

Обратите внимание: Ограничения не допустимы на выражениях.

Опция EXTERNAL FILE создает таблицу, чьи данные постоянно расположены во внешней таблице или файле, а не в базе данных InterBase. Используйте эту опций для

  • Определения таблицы InterBase, состоящей из столбцов и данных из внешних источников, таких как данные в файлах управляемых другой операционной системой или приложениями, не являющимися базами данных.

  • Передачи данных в существующую таблицу InterBase из внешнего файла.