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

Примеры

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

CREATE TABLE COUNTRY

(COUNTRY COUNTRYNAME NOT NULL PRIMARY KEY,

CURRENCY VARCHAR(10) NOT NULL);

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

CREATE TABLE STOCK

(MODEL SMALLINT NOT NULL UNIQUE,

MODELNAME CHAR(10) NOT NULL,

ITEMID INTEGER NOT NULL,

CONSTRAINT MOD_UNIQUE UNIQUE (MODELNAME, ITEMID));

Следующая инструкция иллюстрирует PRIMARY KEY, FOREGEN KEY и CHECK ограничения на уровне таблицы. Ограничение PRYMARY KEY базируется на трех столбцах. Этот пример так же иллюстрирует создание столбца типа массив VARCHAR.

CREATE TABLE JOB

(JOB_CODE JOBCODE NOT NULL,

JOB_GRADE JOBGRADE NOT NULL,

JOB_COUNTRY COUNTRYNAME NOT NULL,

JOB_TITLE VARCHAR(25) NOT NULL,

MIN_SALARY SALARY NOT NULL,

MAX_SALARY SALARY NOT NULL,

JOB_REQUIREMENT BLOB(400,1),

LANGUAGE_REQ VARCHAR(15) [5],

PRIMARY KEY (JOB_CODE, JOB_GRADE, JOB_COUNTRY),

FOREIGN KEY (JOB_COUNTRY) REFERENCES COUNTRY (COUNTRY),

CHECK (MIN_SALARY < MAX_SALARY));

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

CREATE TABLE SALARY_HISTORY

(EMP_NO EMPNO NOT NULL,

CHANGE_DATE DATE DEFAULT "NOW" NOT NULL,

UPDATER_ID VARCHAR(20) NOT NULL,

OLD_SALARY SALARY NOT NULL,

PERCENT_CHANGE DOUBLE PRECISION DEFAULT 0 NOT NULL

CHECK (PERCENT_CHANGE BETWEEN -50 AND 50),

NEW_SALARY COMPUTED BY

(OLD_SALARY + OLD_SALARY * PERCENT_CHANGE / 100),

PRIMARY KEY (EMP_NO, CHANGE_DATE, UPDATER_ID),

FOREIGN KEY (EMP_NO) REFERENCES EMPLOYEE (EMP_NO));

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

CREATE TABLE BOOKADVANCE

(BOOKNO CHAR(6),

TITLE CHAR(50) COLLATE ISO8859_1,

EUROPUB CHAR(50) CHARACTER SET ISO8859_1 COLLATE FR_FR);

CREATE GENERATOR

Синтаксис

CREATE GENERATOR name;

name

Новое уникальное имя создаваемого генератора.

Примеры

Следующая инструкция создает генератор EMPNO_GEN и триггер CREATE_EMPNO. Триггер использует генератор для создания последовательных числовых ключей, с приращение 1, для столбца NEW.EMPNO:

CREATE GENERATOR EMPNO_GEN;

CREATE INDEX

Синтаксис

CREATE [UNIQUE] [ASC[ENDING] | DESC[ENDING]]

INDEX index ON table (col [, col ...]);

UNIQUE

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

ASC[ENDING]

Сортировка колонки по возрастанию, используется по-умолчанию если не указано иное.

DESC[ENDING]

Сортировка колонки по убыванию, используется по-умолчанию если не указано иное.

index

Уникальное имя индекса

table

Имя таблицы, для которой строится индекс

col

Имя колонки в таблице, для которого строится индекс

Примеры

Следующая инструкция создает уникальный индекс:

CREATE UNIQUE INDEX PRODTYPEX ON PROJECT (PRODUCT, PROJ_NAME);

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

CREATE DESCENDING INDEX CHANGEX ON SALARY_HISTORY (CHANGE_DATE);

Следующая инструкция создает индекс, состоящий из двух столбцов:

CREATE INDEX NAMEX ON EMPLOYEE (LAST_NAME, FIRST_NAME);

CREATE PROCEDURE

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]