- •Введение
- •Лабораторное занятие № 1
- •Описание учебного примера.
- •Удаление таблиц
- •Создание таблиц
- •Имена ограничений
- •Ограничения null и not null
- •Ограничение primary key
- •IdSubject, idReport, nTerm));
- •Ограничение unique
- •Ограничение Foreign key
- •Ограничение check
- •Вопросы для самоконтроля к лабораторной работе № 1
- •Лабораторная работа № 2
- •Команда вставки - insert
- •Команда обновления - update
- •Команда удаления - delete
- •Вопросы для самоконтроля к лабораторной работе № 2
- •Лабораторная работа №3
- •Команда alter table
- •Модификация ограничений
- •Добавление ограничений с ограниченной областью проверки
- •Отключение и подключение ограничений
- •Правила для изменения и модификации описания столбцов
- •Добавление столбца
- •Модификация столбца
- •Удаление столбца
- •Удаление таблицы
- •Переименование таблицы
- •Вопросы для самоконтроля к лабораторной работе № 3
- •Лабораторная работа № 4
- •Выборка данных из нескольких таблиц
- •Определение условий выборки в предложении where.
- •Групповые функции и предложение group by
- •Наиболее часто встречающиеся ошибки при выполнении group by
- •Предложение order by
- •Вопросы для самоконтроля к лабораторной работе № 4
- •Лабораторная работа № 5
- •Подзапросы
- •Inner join Student s
- •Inner join Student s
- •Inner join
- •Inner join Student s
- •Вопросы для самоконтроля к лабораторной работе № 5
- •Лабораторная работа №6
- •Представления
- •Вопросы для самоконтроля к лабораторной работе № 6
- •Лабораторная работа №7
- •Хранимые процедуры
- •Оператор use
- •Оператор declare
- •Операторы set и select
- •Функция @@identity
- •Функция @@error
- •Объявление параметров
- •Изменение хранимых процедур
- •Удаление хранимой процедуры
- •Лабораторная работа №8
- •If exists
- •Вопросы для самоконтроля к лабораторной работе № 8
- •Задания в тестовой форме
- •Литература Оглавление
Литература Оглавление
Введение 3
ЛАБОРАТОРНОЕ ЗАНЯТИЕ № 1 4
Описание учебного примера. 4
Таблица 1 5
Таблица 2 5
Таблица 3 7
Таблица 4 7
Таблица 5 7
Таблица 6 8
Таблица 7 8
Таблица 8 8
Таблица 9 8
Таблица 10 8
Удаление таблиц 10
Создание таблиц 10
Пример 1 10
Пример 2 10
Пример 3 11
Имена ограничений 12
Ограничения NULL и NOT NULL 12
Пример 4 13
Ограничение PRIMARY KEY 13
Пример 5 13
Пример 6 14
Ограничение UNIQUE 14
Пример 7 14
Пример 8 15
Задание 1 16
Ограничение Foreign key 16
Пример 9 16
Пример 10 17
Ограничение CHECK 18
Пример 11 18
Задание 2 19
Рисунок 1 20
Вопросы для самоконтроля к лабораторной работе № 1 21
Лабораторная работа № 2 22
Команда вставки - INSERT 22
Пример 12 22
Пример 13 23
Пример 14 23
Задание 3 25
Пример 15 25
Команда обновления - UPDATE 25
Пример 16 25
Пример 17 26
Команда удаления - DELETE 26
Пример 18 26
!Пример 19 27
Задание 4 27
Вопросы для самоконтроля к лабораторной работе № 2 27
Лабораторная работа №3 28
Команда ALTER TABLE 28
Модификация ограничений 28
Пример 20 28
Пример 21 29
Пример 22 30
Пример 23 30
Добавление ограничений с ограниченной областью проверки 30
Пример 24 31
Пример 25 31
Задание 5 32
Задание 6 32
Задание 7 32
Отключение и подключение ограничений 32
Пример 26 32
Пример 27 33
Пример 28 33
Пример 29 33
Пример 30 33
Задание 8 34
Задание 9 34
Правила для изменения и модификации описания столбцов 34
Добавление столбца 34
Пример 31 34
Пример 32 35
Пример 33 35
Пример 34 36
Модификация столбца 36
Пример 35 36
Пример 36 37
Задание 10 37
Задание 11 37
Задание 12 38
Таблица 11 38
Удаление столбца 38
Удаление таблицы 38
Пример 37 38
Переименование таблицы 39
Пример 38 39
Задание 13 39
Задание 14 40
Вопросы для самоконтроля к лабораторной работе № 3 40
Лабораторная работа № 4 41
Пример 39 41
Пример 40 42
Пример 41 42
Пример 42 43
Выборка данных из нескольких таблиц 44
Таблица 12 44
Пример 43 45
Пример 44 45
Пример 45 46
Пример 46 46
Пример 47 47
Пример 48 47
Определение условий выборки в предложении WHERE. 48
Таблица 13 48
Таблица 14 49
Пример 49 49
Пример 50 50
Пример 51 50
Пример 52 51
Пример 53 51
Пример 54 52
Пример 55 52
Пример 56 53
Пример 57 53
Пример 58 53
Задание 15 54
Задание 16 54
Таблица 15 54
Пример 59 54
Пример 60 55
Пример 61 55
Групповые функции и предложение GROUP BY 55
Пример 62 56
Пример 63 57
Пример 64 58
58
Наиболее часто встречающиеся ошибки при выполнении GROUP BY 58
Пример 65 58
Пример 66 59
Предложение ORDER BY 59
Пример 67 59
Пример 68 60
Задание 17 60
Задание 18 60
Задание 19 61
Задание 20 61
Задание 21 61
Вопросы для самоконтроля к лабораторной работе № 4 61
Лабораторная работа № 5 62
Подзапросы 62
Пример 69 63
63
Пример 70 63
64
Рисунок 2 64
Задание 22 65
Задание 23 65
Задание 24 65
Пример 71 65
Пример 72 66
Пример 73 67
Пример 74 67
68
Задание 25 68
Задание 26 68
Пример 75 69
Пример 76 69
Пример 77 70
Пример 78 71
Задание 27 71
Вопросы для самоконтроля к лабораторной работе № 5 72
Лабораторная работа №6 73
Представления 73
Пример 79 74
Пример 80 75
Пример 81 76
Пример 82 77
Пример 83 78
Пример 84 79
Задание 28 79
Задание 29 79
Задание 30 80
Вопросы для самоконтроля к лабораторной работе № 6 80
Лабораторная работа №7 81
Хранимые процедуры 81
Рисунок 3 82
Оператор USE 84
Оператор DECLARE 84
Операторы SET и SELECT 84
Пример 85 84
Весьма часто при создании хранимых процедур используются системные функции, их более 30, но в данной работе мы рассмотрим только 2 из них, наиболее применимые в последующих примерах. 85
Функция @@IDENTITY 86
Функция @@IDENTITY - возвращает автоматически сгенерированное последним оператором значение. Необходима в тех случаях, когда применяются столбцы с уникальным сгенерированным значением и существует ссылка на них в дочерних таблицах. Хранит только последнее вставленное значение, предыдущее значение не будет сохранено, если его предварительно не записали в переменную. Если при выполнении последней команды INSERT ни один вставленный столбец не будет иметь уникального значения, то @@IDENTITY будет иметь признак NULL. 86
Функция @@ERROR 86
Пример 86 86
Объявление параметров 87
Пример 87 87
Пример 88 88
Пример 89 88
Пример 90 90
Изменение хранимых процедур 90
Рисунок 4 91
Удаление хранимой процедуры 91
Пример 91 91
Лабораторная работа №8 92
Пример 92 94
Пример 93 95
Пример 94 95
Пример 95 96
Задание 31 97
Задание 32 97
Задание 33 97
Задание 34 97
Вопросы для самоконтроля к лабораторной работе № 8 97
Задания в тестовой форме 98
Задание 1. В процессе жизни базы данных наибольшим изменениям подвержены 98
Задание 2. Даны схемы отношений трех отношений 98
R1={№ книги, Имя автора} 98
R2={№ книги, Дата выдачи книги, № читательского билета} 98
R3={№ читательского билета, Имя читателя, № телефона} 98
Внешние ключи не содержат 98
Задание 3. Не относится к Data Manipulation Language команда 98
Задание 4. В запросе содержит ошибку предложение 98
Задание 5. Операции удаления не препятствует наличию в предcтавлении 98
Задание 6. Подзапрос в команде Select может иметь место в предложении 99
Задание 7. Только на уровне столбца действует ограничение 99
Задание 8. Агрегатные функции могут использоваться в предложении 99
Задание 9. При старте триггера FOR UPDATE создаются таблицы 99
Задание 10. При реализации вывода имен студентов и номеров их зачеток, не аттестованных по тем или иным предметам ошибка в синтаксисе команды допущена в строке 99
Задание 11. Некорректной является команда 100
Задание 12. Запрос SELECT Mark FROM Progress 100
WHERE Mark >ANY( SELECT AVG(Mark) FROM Progress 100
GROUP BY IDSubject) 100
к приведенной ниже таблице (см. Приложение 2. Пример заполнения таблица Progress) возвратит количество строк, равное 100
Задание 13. Основные свойства транзакций (ACID) 100
Задание 14. Агрегатные функции могут использоваться в предложении 100
Задание 1. В запросе, выводящем имена студентов, чьи оценки выше, чем средняя оценка в их группе 100
Задание 2. В команде, редактирующей столбец MarkAVG таблицы Student 101
Приложение 1. Типы данных используемые СУБД SQL Server 2000 104
Приложение 2. Пример заполнения таблиц 105
Приложение 3. Агрегатные функции 108
Приложение 4. Функции обработки дат 108
Приложение 5. Допустимые значения параметра частьДаты 109
Литература 110
Оглавление 111
1 При повторном создании таблицы следует удалить предыдущую версию таблицы, используя команду DROP TABLE Subject.
2Чтобы избежать корректировки таблиц, целесообразно предварительно продумать порядок создания таблиц: сначала создаются родительские (те, которые не содержат внешних ключей), затем дочерние таблицы (Progress и UPlan).
3После такой принудительной вставки целесообразно снова выполнить команду SET IDENTITY_INSERT , но уже с опцией OFF
4 Подробно о выполнении транзакции смотрите в пособии ТРАНЗАКЦИИ
5 Если такое ограничение уже существует, то вам для апробации этой команды придется его удалить.
6 Допускается до 255 уровней вложенности подзапросов.
7ФункцияSUBSTRUNGвыделяет подстроку заданного размера, начиная с указанного символа