
- •Пермь 2010 Содержание
- •Введение
- •1 Подготовительная работа
- •1.1 Программные продукты, используемые при проектировании базы данных
- •1.2 Создание структуры базы данных
- •2 Проектирование базы данных
- •2.1 Создание базы данных
- •2.2 Создание таблиц
- •2.3 Заполнение таблиц
- •2.4 Создание триггеров
- •2.5 Создание пользователей
- •2.5.1 Создание пользователей в операционной системе
- •2.5.2 Создание пользователей внутри sql Server
- •2.6 Резервное копирование базы данных
- •2.7 Создание репликации
- •3 Создание запросов
- •3.1 Описание языка Transact-sql
- •3.2 Создание запросов к базе данных
- •3.3 Создание представлений
- •3.4 Создание функции
- •3.5 Создание процедур
- •3.6 Экспорт данных в ms Excel
- •Заключение
- •Список использованных источников
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');