Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
курсовая SQL.doc
Скачиваний:
13
Добавлен:
21.11.2018
Размер:
653.31 Кб
Скачать

2.2 Создание таблиц

Создадим таблицы при помощи оператора CREATE TABLE языка Transact-SQL. CREATE TABLE создает новую таблицу, ее столбцы и ограничения целостности в существующей базе данных.

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

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

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

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

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

CREATE TABLE Books --имя таблицы

(

Book_ID nchar(6) PRIMARY KEY, /*символьный тип данных длиной в 6 символов, первичный ключ*/

Theme nchar(3) not null /*символьный тип данных длиной в 6 символов, не может принимать значение null*/

FOREIGN KEY REFERENCES Theme(Theme_ID)

ON DELETE NO ACTION, --установление вторичного ключа

Autor text, --текстовый тип данных

Title text, --текстовый тип данных

Mockery int not null --целочисленный тип данных, не может принимать значение null

FOREIGN KEY REFERENCES Mockery(Mockery_ID)

ON DELETE NO ACTION, --установление вторичного ключа

Year_Edition date, --тип данных дата

Page int, --числовой тип данных

Cost money, --денежный тип данных

Edition int not null --целочисленный тип данных, не может принимать значение null

FOREIGN KEY REFERENCES Type_Edition(Edition_ID)

ON DELETE NO ACTION, --установление вторичного ключа

Quantity int, --целочисленный тип данных

Storage int not null --целочисленный тип данных, не может принимать значение null

FOREIGN KEY REFERENCES Storage(Storage_ID)

ON DELETE NO ACTION --установление вторичного ключа

)

ON USERS --принадлежность таблицы к файловой группе USERS

2.3 Заполнение таблиц

Заполнение таблиц осуществим с помощью оператора INSERT INTO. Таблицу Books в базе данных Library заполним следующим образом:

INSERT INTO Books

VALUES

('3297P8','A20','ProidakovI.V.','Englishvocabulary','145','2004','864','236.60','3','30','1'),

('6332H4','H91','Zyev M.N','History of Russia','308','2007','634','160.90','2','75','1'),

('1237F4','F12','AlekseevP.V.','The textbook on philosophy','546','2010','328','129.50','3','10','4'),

('4519L9','L45','Eremin N.P.','Latin language','546','2003','498','210.60','2','5','4'),

('1359S1','S92','KravchenkoA.I.','Sociology','800','2005','136','110.00','3','70','1'),

('0047S3','I41','SmirnovaG.N.','Designing of information systems','211','2001','512','156.00','2','50','1'),

('8830P4','P10','Shebetko A.I.','Test','422','1995','198','39.20','4','10','2'),

('3385A0','A20','LvovV.M.','Computer&InternetDictionary','145','1995','574','320.50','3','12','1'),

('6339I5','H91','Orlov A.S.','History of Russia','789','2002','520','174.00','2','30','1'),

('4512I0','I41','Leontev V.I.','Personal Conputer','789','2008','800','549','5','3','2'),

('8854P0','P10','Leontev A.A.','Psychology of dialogue','800','1997','366','30.00','3','15','2'),

('1212G8','F12','Grek O.V.','Philosophy','985','2000','230','149.50','1','10','3'),

('4120G1','I41','Grekyla A.N.','Informatics','800','2010','20','56.00','6','5','2'),

('1357S0','L45','Somov O.A.','Latin language','789','2007','156','200.00','3','2','4'),

('1134S6','S92','Soley N.A.','Sociology','926','1998','348','410.00','4','15','1');