- •Министерство образования Российской Федерации Пензенский государственный университет
- •Пенза 2004
- •Введение
- •1. Архитектура баз данных ms sql Server 2000
- •Физическая архитектура базы данных sql Server 2000
- •1.1.1. Файлы данных и группы файлов
- •1.1.2. Страничная организация файлов данных
- •ЛоГическая архитектура базы данных sql Server 2000
- •1.3. Системные базы данных sql server 2000
- •Создание и сопровождение баз данных средствами enterprise manager
- •3. Создание и сопровождение таблиц баз данных средствами enterprise manager
- •3.1. Основные принципы создания таблиц
- •3.2. Создание, модификация и удаление таблиц средствами Enterprise Manager
- •3.3. Управление диаграммами
- •4. Создание и управление индексами средствами Enterprise manager
- •5. Создание представлений средствами Enterprise manager
- •6. Основы программирования на языке Transact-sql
- •6.1. Средства языка Transact–sql
- •6.2. Константы, имена, идентификаторы, переменные, выражения в языке Transact–sql
- •6.3. Типы данных sql Server 2000
- •6.4. Создание и удаление баз данных, таблиц и представлений
- •6.4.1. Создание и удаление баз данных
- •6.4.2. Создание и удаление таблиц
- •6.4.3. Создание представлений
- •6.5. Создание и управление индексами
- •6.6. Вставка, удаление и изменение данных
- •6.7. Выборка данных
- •Раздел into позволяет создать новую таблицу для хранения результатов запроса, структура которой будет определяться списком выбора, т.Е. Динамически при выполнении запроса.
- •6.8. Функции sql Server 2000
- •6.8.1. Встроенные функции sql Server 2000
- •6.8.2. Функции пользователя
- •6.9. Хранимые процедуры sql Server 2000
- •6.9.1. Создание хранимых процедур
- •6.10. Триггеры
- •6.11. Создание и управление транзакциями
- •6.12. Создание, отладка и оптимизация sql–модулей
- •7. Лабораторный практикум
- •Создание диаграммы базы данных;
- •Рекомендуемые источники Печатные издания
- •Интернет-ресурсы1
- •Приложение 1. Примеры операторов языка Transact-sql
- •1.1. Создание баз данных
- •Create database Archive
- •Use master
- •Filegroup SalesGroup1
- •Filegroup SalesGroup2
- •Create database Sales
- •Create database Employees
- •1.2. Создание таблиц баз данных
- •1.3. Создание индексов
- •1.4. Создание представлений
- •From dbo. Authors
- •1.5. Добавление, модификация и удаление данных в таблицах
- •Insert Into TabF default values
- •Insert Into TabG (Col1,Col2)
- •1.6. Выборка данных из таблиц
- •If update (Phone)
- •Insert into #aaa values (111)
- •Insert into #aaa values (222)
- •Insert into #aaa values (333)
- •1.9. Создание пользовательских функций
- •1.10. Создание хранимых процедур пользователя
- •Приложение 2. Описание предметных областей, схем баз данных и запросов для лабораторного практикума
- •2.1. Предметная область «Летопись острова Санта-Белинда»
- •2.2. Предметная область «Скачки»
- •2.3. Предметная область «Хроника восхождений в альпинистском клубе»
- •2.4. Предметная область базы данных медицинского кооператива
- •2.5. Предметная область базы данных «Городская Дума»
- •2.6. Предметная область базы данных рыболовной фирмы
- •2.7. Предметная область база данных фирмы, проводящей аукционы
- •2.8. Предметная область база данных библиотеки
- •Предметная область базы данных для обслуживания работы конференции
- •2.10. Предметная область базы данных для обслуживания склада
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