Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Операторы создания и конструкции описания объектов




Основные операторы языка SQL

Имена и типы данных

Имена таблиц и представлений должны быть уникальными в пределах данной схемы, а имена столбцов – уникальными в пределах данной таблицы. Имена объектов могут иметь до 128 символов и состоять из букв латинского алфавита, цифр и символов подчеркивания. Регистр символов (прописные или строчные буквы) значения не имеет. Обращение к полю таблицы в общем случае записывается как имя_таблицы.имя_поля.

Каждому полю необходимо присвоить определенный тип данных. В SQL-92 описаны более десятка типов данных, основные типы приведены в табл. 7.6. Логический тип в описании языка отсутствует.

Таблица 7.6

Основные типы данных в SQL

Тип Описание
INTEGER (INT) Целое число
NUMERIC Число с фиксированной точкой. Необходимо указать общую длину числа (включая десятичную точку) и количество десятичных знаков после точки. Например, при задании Numeric (6, 2) все числа столбца должны иметь две цифры после десятичной точки и не более трех в целой части.
REAL Вещественное число одинарной точности. Количество десятичных знаков зависит от конкретной вычислительной системы
DATE Дата
TIME Время
CHARACTER (CHAR) Строка символов фиксированной длины. Необходимо указывать длину: например,CHAR (20) соответствует строкам из 20 символов

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

Операторы языка SQL подразделяются на операторы создания объектов базы данных и операторы манипулирования данными.

Для создания схемы базы данных используется оператор CREATE SCHEMA, например:

CREATE SCHEMA internet_shop

Создание таблицы выполняется оператором CREATE TABLE, в котором указывается имя таблицы и перечисляются имена полей и типов данных. Вводить данные во все поля, кроме ключевых, необязательно. Если же неключевое поле обязательно должен принимать значения, то после типа данных ставится конструкция NOT NULL. Для задания ограничений на значения полей и значений по умолчанию используются конструкции CHECK и DEFAULT соответственно. В конце списка дается описание первичного ключа и внешних ключей, если они существуют. Например, таблица book отношения КНИГА базы данных Интернет-магазина описывается следующим оператором:

CREATE TABLE book

(

isbn char (25),

section char (50) NOT NULL,

name char (255) NOT NULL,

authors char (255) NOT NULL,

publisher char (50),

year int CHECK (VALUE>1990 AND VALUE<2010),

price numeric (6, 2)

PRIMARY KEY (isbn))

Здесь описана длина текстовых полей, заданы условия на значение для года издания (year), дается ограничение на цену (price) – не более трех знаков в целой части и два знака в дробной, указывается, что такие поля, как раздел литературы, название книги и авторы, должны быть обязательно заполнены при вводе записи о книге (NOT NULL), указан первичный ключ – ISBN-номер книги.

Для указания внешнего ключа в операторе CREATE TABLE применяется конструкция FOREIGN KEY, имеющая следующий формат:

FOREIGN KEY (поле_внешнего_ключа)

REFERENCES имя_таблицы (имя_поля)

Здесь поле_внешнего_ключа – имя внешнего ключа в описываемой таблице, конструкция REFERENCES задает ссылку на главную таблицу, с которой должна быть связана описываемая таблица по внешнему ключу. Параметр имя_поля указывает соответствующее поле первичного ключа в главной таблице, его можно опускать, если имена полей в обеих таблицах одинаковы.

Приведем оператор создания таблицы Orderдля отношения ЗАКАЗ:

CREATE TABLE order

(order_numb int,

customer_numb int,

payment char(20),

order_date date,

deliver_date date,

delivered date,

deliver_kind char(25),

messenger_numb int,

address char(255),

comment char(255),

PRIMARY KEY (order_numb),

FOREIGN KEY (customer_numb) REFERENCES customer,

FOREIGN KEY (deliver_kind) REFERENCES deliver_price,

FOREIGN KEY (messenger_numb) REFERENCES messenger)

Поля customer_numb, deliver_kind и messenger_numb имеют те же названия в связанных таблицах ПОКУПАТЕЛЬ (customer), ЦЕНА ДОСТАВКИ (deliver_price) и КУРЬЕР (messenger), поэтому в качестве ссылки после REFERENCES указаны только имена таблиц.

Для ускорения поиска можно создавать индексы для неключевых полей с помощью оператора CREATE INDEX:

CREATE INDEX имя_индекса

ON имя_таблицы (имя_индексного_поля)

Создадим индекс book_section по полю section (раздел литературы) таблицы book:

CREATE INDEX book_section

ON book (section)

Запросы создаются и сохраняются в словаре базы данных в виде представлений. Для создания представлений используется оператор CREATE VIEW со встроенным оператором выборки записей SELECT. Например, запрос published_2001 на выборку из таблицы book всех книг (поля Наименование, Авторы, Цена), изданных в 2001 году, имеет следующий вид:

CREATE VIEW published_2001 AS

SELECT name, authors, price

FROM book

WHERE year = 2001

Если запрос строится по нескольким связанным таблицам, то в операторе SELECT выбираемые поля указываются в виде имя_таблицы.имя_поля.




Поделиться с друзьями:


Дата добавления: 2014-12-29; Просмотров: 465; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.014 сек.