Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Разработка и сопровождение БД в среде MS SQL Se...doc
Скачиваний:
317
Добавлен:
14.11.2019
Размер:
1.71 Mб
Скачать

Create database Employees

ON

(NAME = Empl_dat,

FILENAME = ‘f:’ ,-- или ‘d:\sample data dir\’;

SIZE = 10,

MAXSIZE = 50,

FILEGROWTH = 5),

LOG ON

(NAME = Sales_log,

FILENAME = ‘g:’,-- или ‘d:\sample log dir\’;

SIZE = 5,

MAXSIZE = 25,

FILEGROWTH = 5)

GO

1.2. Создание таблиц баз данных

Задание 1.2.1. Создать три взаимосвязанные таблицы jobs (работы), employee (служащий) и publishers (издатели), используя необходимые ограничения. Для этого необходимо исполнить следующие команды Transact-SQL.

CREATE TABLE jobs

(job_id smallint IDENTITY (1,1) PRIMARY KEY CLUSTERED,

job_desc varchar (so) NOTT NULL

DEFAULT ‘New Position – title not formalized jet’,

min_lul tinyint NOT NULL CHECK (min_lul > = 10),

max_lul tinyint NOT NULL CHECK (max_lul > = 250)

)

CREATE TABLE employee

(emp_id CONSTRAINT PK_emp_id PRIMARY KEY NOTICLUSTERED

CONSTRAINT PK_emp_id CHECK (emp_id LIKE

[A-Z][A-Z][A-Z][1-9][0-9][0-9][FM]’ or

[A-Z]-[A-Z][1-9][0-9][0-9][0-9][FM]’,

fname varchar (20) NOT NULL,

minit char (1) NULL,

lname varchare (30) NOT NULL,

job_id smallint NOT NULL DEFAULT 1 REFERENCES jobs (job.id),

job_lul tinyint DEFAULT 10,

pub_id char (4) NOT NULL DEFAULT(‘9952’)

REFERENCES publishers (pub_id),

hire_date datetime NOT NULL varchar (40) NULL, (getdate ())

)

CREATE TABLE publishers

(pub_id char (4) NOT NULL

CONSTRAINT OPKL_pubid PRIMARY KEY CLOSTERD

CHEC (pub_id IN (‘1389’, ‘0736’, ‘0877’, ‘1622’, ‘1756’

OR pub_id LIKE ‘99[0-9][0-9]’),

pub_name varchar (40) NULL,

city varchar (20) NULL,

state char (2) NULL,

country varchar (30) NULL DEFAULT (‘OSA’)

)

Задание 1.2.2. Создать таблицу с глобальным идентификатором. Для этого необходимо выполнить следующие команды:

CREATE TABLE GUIDTAB

(guid uniqueidentifier CONSTRAINT GuidDefault DEFAULT NEWID (),

Emploec_Name varchar (60) CONSTRAINT Guid_PK PRIMARY KEY (guid)

)

Задание 1.2.3. Создать таблицу с вычисляемым столбцом. Для этого необходимо выполнить следующие команды:

CREATE TABLE My Table

(low int,

high int,

myavg AS (low + hvgh)/2

)--myuser-name AS USER_NAME()

1.3. Создание индексов

Задание 1.3.1. Создать уникальный кластерный индекс для столбца au_id таблицы authors базы данных pubs с расположением его на первичной группе файлов. Для этого необходимо выполнить команду:

CREATE UNIQVE CLUSTERED INDEX VEKCL_auidind

ON [dbo].[authors](au_id)

WITH DROP_EXISTING -- с предварительным уничтожением

-- индекса с таким же именем

ON PRIMARY

Задание 1.3.2. Создать составной не кластерный индекс для столбцов au_fname и au_lname таблицы authors базы данных pubs. Для этого необходимо выполнить команду:

CREATE UNIQVE NONCLUSTERED INDEX index_authors_name

ON authors (au_fname, au_lname )

WITH FILLFACTOR = 30,

STATISTICS_NORECOMPUTE -- статистика создается один раз при построении индекса;

SORT_IN_TEMPDB -- использовать временную базу для сортировки;

ON PRIMARY

1.4. Создание представлений

Задание 1.4.1. Создать представление auth, ссылающегося на таблицу authors базы данных Pubs и содержащего идентификационный номер автора au_lname и телефон phone, при этом отобразить только авторов из Калифорнии ‘СА’ или авторов, не подписавших контракт с издательством. Необходимо выполнить следующую команду:

CREATE VIEW auth

WITH SCHEMABINDING

AS SELECT au_id, au_lname, au_fname, phone