- •Министерство образования Российской Федерации Пензенский государственный университет
- •Пенза 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. Предметная область базы данных для обслуживания склада
From dbo. Authors
WHERE state = ‘CA’ OR contract = 0
WITH CHECK OPTION
Задание 1.4.2. Создать представление report, которое ссылается на представление auth и таблицы titleauthor и titles, и в котором выводятся имя автора au_fname, фамилия автора au_lname и сокращенные названия написанных им книг. Необходимо выполнить команду:
CREATE VIEW report
AS SELECT [Фамилия] = CAST (au_lname aschar(10)),
[Имя] = CAST(au_fname aschar(10)),
[Название книги] =
CAST (title as char(30)) +
CASE WHEN LEN (title) >30 THEN ‘...’ END
FROM auth a, titleauthor ta, titles t
WHERE ta.au_id = a.au_id AND
t.title_id = ta .title_id
1.5. Добавление, модификация и удаление данных в таблицах
Задание 1.5.1. Использование простой команды INSERT
Create Database InsertDB
Create Table TabA(Col1 int,Col2 varchar(30))
Insert TabA Values(1,'Пример 1')
Задание 1.5.2. Использование произвольной последовательности колонок таблицы
Create Table TabB(Col1 int,Col2 varchar(30))
Insert TabB (Col2,Col1) Values('Пример В',1)
Задание 1.5.3. Использование нулевых значений и значений по умолчанию
Create Table TabC(Col1 int IDENTITY,
Col2 varchar(30)
CONSTRAINT default_name DEFAULT('Значение TabC.Col2'),
Col3 int NULL,
Col4 varchar(40))
Insert Into TabC(Col4) Values('Значение 1 TabC.Col4')
Insert Into TabC(Col2,Col4) Values('Явное значение TabC.Col2','Значение 2 TabC.Col4')
Insert Into TabC(Col2,Col3,Col4) Values('SAV',44, 'ABC')
Задание 1.5.4. Явное задание значения для колонки-счетчика (с ограничением IDENTITY)
Create Table TabD(Col1 int IDENTITY,
Col2 varchar(30))
Insert Into TabD Values('Счетчик изменяется автоматически')
Insert Into TabD(Col2) Values('Вторая строка')
Set IDENTITY_INSERT TabD ON
Insert Into TabD(Col1,Col2) Values(-99, 'Явное значение')
Задание 1.5.5. Использование представления для занесения значений в таблицу
Create Table TabE(Col1 int,Col2 varchar(30))
GO
Create View ViewE AS Select Col2,Col1 From TabE
GO
Insert Into ViewE Values('Строка 1',1) -- порядок ViewE
Задание 1.5.5. Использование опции DEFAULT VALUES.
Create Default bound_default2 AS 'Col4'
GO
Create Table TabF(Col1 int IDENTITY,
Col2 varchar(30)
CONSTRAINT Fdefault_name DEFAULT('Значение TabF.Col2'),
Col3 timestamp,
Col4 varchar(30),
Col5 int NULL
)
GO
EXEC sp_bindefault 'bound_default2','TabF.Col4'
GO
USE InsertDB
Insert Into TabF default values
Задание 1.5.6. Использование команды SELECT для копирования данных в таблицу.
Create Table TabG(Col1 int IDENTITY,
Col2 varchar(50))
GO
Set IDENTITY_INSERT TabG ON
GO
Insert Into TabG (Col1,Col2)
Select Col1,Col2 From TabD
GO
Select * From TabG
GO
Задание1.5.7. Модификация данных с помощью команды UPDATE.
Declare @@Var1 int
SET @@Var1 = 0
Update #TempTableAuthors SET @@Var1 = @@Var1 + 1
Where Contact = 0
Select @@Var1
GO
Declare @@Var2 varchar(40)
Update #TempTableAuthors SET @@Var2 = au_lname = au_lname + '__NO CONTRACT__'
Where Contact = 0
Select au_id, au_lname, phone From #TempTableAuthors --2строки
Where Contract = 0
Select @@Var2 AS 'Значение переменной @@Var2' --1строка
Задание1.5.8. Использование команды DELETE.
Delete From #TempTableAuthors
Select * From #TempTableAuthors