Название: Microsoft SQL Server 2014
Автор: Александр Бондарь
Издательство: БХВ-Петербург
Год: 2015
Страниц: 589
Формат: pdf (+ файлы примеров)
Размер: 10 mb
Качество: отличное
Книга посвящена установке, настройке, администрированию и разработке баз данных с помощью СУБД SQL Server 2014. Рассмотрено создание базы данных и основных ее объектов: таблиц, индексов, представлений, хранимых процедур и функций, триггеров и др. Показана работа средств отображения объектов и их характеристик. Описаны типы данных, включая XML, пространственные и пользовательские данные. Приведены синтаксис и семантика языка Transact-SQL в нотациях Бэкуса - Наура и при помощи R-графов. Подробно рассмотрены характеристики и взаимодействия транзакций. Уделено внимание средствам копирования и восстановления базы данных. В ходе создания учебной базы данных описаны примеры использования операторов манипулирования данными, триггеров, хранимых процедур и др.
Содержание:
Оглавление Введение 13
Содержание книги 15
Дополнительные материалы 18
Глава 1. Установка программных средств
19
1.1. Установка Visual Studio 2010 Express 20
1.2. Установка MS SQL Server 2014 Express 24
1.3. Установка справочной системы 38
Глава 2. Общие сведения о SQL Server 2014
41
2.1. Реляционные базы данных 41
2.1.1. Таблицы 42
2.1.1.1. Основные свойства и характеристики таблиц 42
Типы данных 42
Порядок сортировки 43
Неизвестное значение NULL 44
Индексы 44
2.1.1.2. Ключи в таблицах 45
Первичный ключ 45
Уникальный ключ 46
Внешний ключ 46
Отношения между таблицами в базе данных 46
Ограничения таблицы 47
2.1.2. Представления 47
2.1.3. Хранимые процедуры и триггеры 48
2.1.4. Пользователи, привилегии и роли базы данных 49
2.1.5. Задание первичных ключей таблиц 49
2.1.6. Транзакции 50
2.1.7. Двенадцать правил Кодда 51
2.2. Реализация отношений в реляционной модели 51
2.2.1. Отношение "один к одному" 52
2.2.2. Отношение "один ко многим" 53
2.2.3. Отношение "многие ко многим" 53
2.3. Нормализация таблиц 54
2.3.1. Цель нормализации таблиц 54
2.3.2. Первая нормальная форма 55
2.3.3. Вторая нормальная форма 57
2.3.4. Третья нормальная форма 57
2.3.5. Другие нормальные формы 58
2.3.6. Денормализация таблиц 58
2.4. Проектирование баз данных 59
2.5. Язык Transact-SQL 60
2.5.1. Синтаксис 61
2.5.1.1. Целое число 63
2.5.1.2. Целое со знаком 64
2.5.1.3. Дробное число 64
2.5.1.4. Число с плавающей точкой 64
2.5.1.5. Двоичное число 65
2.5.1.6. Комментарии 65
2.5.1.7. Строковые константы 65
2.5.1.8. Идентификатор 66
2.5.2. Основные сведения о составе языка Transact-SQL 70
2.6. Что дальше? 72
Глава 3. Работа с базами данных
73
3.1. Запуск и останов экземпляра сервера 74
3.1.1. Запуск на выполнение экземпляра сервера 74
3.1.1.1. Запуск сервера из командной строки 74
3.1.1.2. Запуск сервера из программы Configuration Manager 75
3.1.1.3. Запуск сервера с помощью программы Management Studio 76
3.1.2. Останов экземпляра сервера 78
3.1.2.1. Останов сервера из командной строки 78
3.1.2.2. Останов сервера из программы Configuration Manager 78
3.1.2.3. Останов сервера из программы Management Studio 78
3.2. Что собой представляет база данных в SQL Server 79
3.2.1. Системные базы данных 80
3.2.1.1. База данных master 80
3.2.1.2. База данных model 80
3.2.1.3. База данных msdb 81
3.2.1.4. База данных tempdb 81
3.2.1.5. База данных resource 81
3.2.2. Базы данных пользователей 82
3.2.3. Некоторые характеристики базы данных 83
3.2.3.1. Владелец базы данных 83
3.2.3.2. Порядок сортировки 84
3.2.3.3. Возможность изменения данных базы данных 84
3.2.3.4. Состояние базы данных 84
3.2.4. Некоторые характеристики файлов базы данных 85
3.2.4.1. Основные характеристики файлов базы данных 85
3.2.4.2. Состояния файлов базы данных 85
3.3. Получение сведений о базах данных и их файлах в текущем экземпляре сервера 86
3.3.1. Системное представление sys.databases 86
3.3.2. Системное представление sys.master_files 87
3.3.3. Системное представление sys.database_files 89
3.3.4. Системное представление sys.filegroups 90
3.3.5. Другие средства получения сведений об объектах базы данных 91
3.3.5.1. Системные представления 91
3.3.5.2. Системные хранимые процедуры 92
3.3.5.3. Системные функции 92
3.4. Создание и удаление базы данных 93
3.4.1. Использование операторов Transact-SQL для создания, отображения и удаления баз данных 93
3.4.1.1. Оператор создания базы данных 93
Логическое имя базы данных 96
Предложение CONTAINMENT 96
Предложение ON 97
Предложение LOG ON 97
Предложение COLLATE 97
Предложение WITH 98
Файловый поток 98
Другие опции предложения WITH 98
Спецификация файла 99
Предложение NAME 100
Предложение FILENAME 101
Предложение SIZE 102
Предложение MAXSIZE 102
Предложение FILEGROWTH 103
Файловая группа 103
3.4.1.2. Оператор удаления базы данных 104
3.4.1.3. Создание и отображение баз данных в командной строке 105
3.4.1.4. Создание и отображение баз данных в Management Studio 126
Замечания по использованию Management Studio 136
3.4.2. Создание базы данных с использованием диалоговых средств Management Studio 137
3.5. Изменение базы данных 140
3.5.1. Изменение базы данных в языке Transact-SQL 141
3.5.1.1. Изменение имени базы данных 141
3.5.1.2. Изменение порядка сортировки 142
3.5.1.3. Изменение файлов базы данных 145
Добавление нового файла 145
Удаление существующего файла 146
Изменение характеристик файла 146
3.5.1.4. Изменение файловых групп 151
3.5.1.5. Изменение других характеристик базы данных 153
3.5.2. Изменение базы данных диалоговыми средствами Management Studio 155
3.5.2.1. Изменение имени базы данных 155
3.5.2.2. Изменение файлов базы данных 155
3.5.2.3. Изменение файловых групп базы данных 159
3.5.2.4. Изменение других характеристик базы данных 160
3.5.2.5. Отображение отчета использования дискового пространства базы данных 162
3.5.3. Удаление базы данных диалоговыми средствами Management Studio 163
3.6. Создание автономной базы данных 163
3.6.1. Установка допустимости автономных баз данных 164
3.6.2. Создание автономной базы данных и пользователя средствами языка Transact-SQL 165
3.6.3. Создание автономной базы данных диалоговыми средствами Management Studio 166
3.6.4. Создание автономного пользователя в Management Studio 167
3.6.5. Соединение с автономной базой данных в Management Studio 168
3.7. Присоединение базы данных 169
3.7.1. Присоединение базы данных с использованием Transact-SQL 170
3.7.2. Присоединение базы данных с использованием диалоговых средств Management Studio 172
3.7.3. Отсоединение базы данных 174
3.8. Создание мгновенных снимков базы данных 175
3.9. Схемы базы данных 177
3.9.1. Работа со схемами в Transact-SQL 178
3.9.1.1. Создание схемы 178
3.9.1.2. Изменение схемы 179
3.9.1.3. Удаление схемы 179
3.9.1.4. Пример создания схем 179
3.9.2. Работа со схемами в Management Studio 181
3.9.2.1. Отображение схем базы данных 181
3.9.2.2. Создание схемы 181
3.9.2.3. Изменение существующей схемы 181
3.9.2.4. Удаление схемы 183
3.10. Средства копирования и восстановления баз данных 183
3.10.1. Использование операторов копирования/восстановления базы данных 184
3.10.2. Использование диалоговых средств Management Studio для копирования/восстановления базы данных 185
3.11. Домашнее задание 189
3.12. Что дальше? 189
Глава 4. Типы данных
191
4.1. Классификация типов данных в SQL Server 191
4.2. Объявление локальных переменных 193
4.3. Числовые типы данных 195
4.3.1. Тип данных BIT 197
4.3.1.1. Таблицы истинности 197
4.3.2. Целочисленные типы данных TINYINT, SMALLINT, INT, BIGINT 199
4.3.3. Дробные числа NUMERIC, DECIMAL, SMALLMONEY, MONEY 201
4.3.3.1. Типы данных NUMERIC и DECIMAL 202
4.3.3.2. Типы данных SMALLMONEY и MONEY 203
4.3.3.3. Сложение и вычитание 203
4.3.3.4. Умножение 204
4.3.3.5. Деление 204
4.3.3.6. Остаток от деления 204
4.3.3.7. Преобразования в точные числа 205
4.3.4. Числа с плавающей точкой FLOAT, REAL 205
4.3.5. Функции для работы с числовыми данными 206
4.3.5.1. Агрегатные функции 206
4.3.5.2. Тригонометрические функции 206
4.3.5.3. Логарифмические функции, возведение в степень, извлечение корня 208
4.3.5.4. Другие математические функции 209
4.4. Символьные данные 211
4.4.1. Символьные строки CHAR, VARCHAR 211
4.4.2. Символьные строки NCHAR, NVARCHAR 213
4.4.3. Типы данных VARCHAR(MAX), NVARCHAR(MAX), VARBINARY(MAX) 213
4.4.4. Строковые функции 214
4.4.4.1. Определение размера DATALENGTH(), LEN() 214
4.4.4.2. Выделение подстроки LEFT(), RIGHT(), SUBSTRING() 215
4.4.4.3. Удаление пробелов LTRIM(), RTRIM() 217
4.4.4.4. Преобразование символов ASCII(), STR(), CHAR(), NCHAR(), UNICODE() 217
4.4.4.5. Изменение регистра символов UPPER(), LOWER() 220
4.4.4.6. Преобразование строки к идентификатору QUOTENAME() 221
4.4.4.7. Поиск данных и изменение строки REPLICATE(), REVERSE(), REPLACE(), CHARINDEX() 221
Поиск данных по шаблону PATINDEX() 223
4.5. Типы данных даты и времени 225
4.5.1. Описание типов данных даты и времени 225
4.5.2. Действия с датами и временем 226
4.5.2.1. Задание даты и времени 226
4.5.2.2. Функции, возвращающие значение текущей даты, времени и смещения часового пояса 230
4.5.2.3. Функции преобразования и выделения части даты и времени 231
4.5.2.4. Другие функции для даты и времени 237
4.6. Двоичные данные 237
4.7. Пространственные типы данных 238
4.7.1. Тип данных GEOMETRY 239
4.7.1.1. Точка 239
Свойства 240
Методы 240
Отображение характеристик 240
Создание объекта 240
Дополнительные методы 243
4.7.1.2. Ломаная линия 245
4.7.1.3. Полигон 248
4.7.1.4. Другие геометрические объекты 250
4.7.2. Тип данных GEOGRAPHY 251
4.8. Другие типы данных 256
4.8.1. Тип данных SQL_VARIANT 257
4.8.2. Тип данных HIERARCHYID 260
4.8.3. Тип данных UNIQUEIDENTIFIER 265
4.8.4. Тип данных CURSOR 267
4.8.5. Тип данных TABLE 274
4.8.6. Тип данных XML 275
4.8.6.1. Нетипизированные элементы XML 279
4.8.6.2. Типизированные элементы XML 282
4.8.6.3. Отображение таблиц, содержащих столбцы XML 288
4.9. Создание и удаление пользовательских типов данных 289
4.9.1. Синтаксис оператора создания пользовательского типа данных 289
4.9.2. Создание псевдонима средствами Transact-SQL 292
4.9.3. Создание псевдонима в диалоговых средствах Management Studio 293
4.9.4. Создание пользовательского табличного типа данных средствами Transact-SQL 294
4.9.4.1. Определение столбца 294
4.9.4.2. Ограничения столбца 294
4.9.4.3. Вычисляемые столбцы 295
4.9.4.4. Ограничения таблицы 295
4.9.4.5. Пример создания пользовательских типов данных 296
4.9.5. Создание пользовательского табличного типа данных диалоговыми средствами Management Studio 298
4.9.6. Удаление пользовательского типа данных 298
4.10. Что дальше? 301
Глава 5. Работа с таблицами
303
5.1. Синтаксис оператора создания таблицы 303
5.1.1. Общие характеристики таблицы 305
5.1.1.1. Идентификатор таблицы 305
5.1.1.2. Предложение AS FileTable 306
5.1.1.3. Определение столбца, вычисляемого столбца, набора столбцов 306
5.1.1.4. Предложение ON 306
5.1.1.5. Предложение TEXTIMAGE_ON 306
5.1.1.6. Предложение FILESTREAM_ON 306
5.1.1.7. Предложение WITH 306
5.1.2. Определение столбца 308
5.1.2.1. Имя столбца 309
5.1.2.2. Тип данных 309
5.1.2.3. FILESTREAM 309
5.1.2.4. COLLATE 310
5.1.2.5. NULL | NOT NULL 310
5.1.2.6. DEFAULT 310
5.1.2.7. IDENTITY 310
5.1.2.8. ROWGUIDCOL 311
5.1.2.9. SPARSE 311
5.1.3. Ограничения столбца и ограничения таблицы 312
5.1.3.1. Имя ограничения 312
5.1.3.2. Ограничения первичного и уникального ключей 313
Создаваемые индексы 315
5.1.3.3. Ограничение внешнего ключа 316
Предложение ON DELETE 318
Предложение ON UPDATE 318
5.1.3.4. Ограничение CHECK 319
5.1.4. Вычисляемые столбцы 320
5.1.5. Набор столбцов 322
5.2. Простые примеры таблиц 323
5.3. Создание секционированных таблиц 336
5.3.1. Синтаксические конструкции 336
5.3.2. Пример создания секционированной таблицы 340
5.3.3. Отображение результатов создания таблицы 349
5.3.4. Изменение характеристик секционированной таблицы 353
5.4. Создание таблиц диалоговыми средствами 355
5.4.1. Создание таблицы секционирования 355
5.4.2. Создание таблицы секционирования, схемы секционирования и функции секционирования 365
5.5. Отображение состояния секционированных таблиц 371
5.6. Файловые потоки 371
5.7. Удаление таблиц 377
5.7.1. Определение зависимостей таблицы 377
5.7.2. Удаление таблицы оператором DROP TABLE 381
5.7.3. Удаление таблицы диалоговыми средствами Management Studio 381
5.8. Изменение характеристик таблиц 384
5.8.1. Изменение таблиц при использовании оператора Transact-SQL 384
5.8.1.1. Имя таблицы 387
5.8.1.2. Изменение столбца 387
5.8.1.3. Изменение типа данных 388
5.8.1.4. Изменение порядка сортировки 389
5.8.1.5. Добавление нового столбца (обычного или вычисляемого) 390
5.8.1.6. Добавление ограничения 390
5.8.1.7. Удаление столбца 390
5.8.1.8. Удаление ограничения 391
5.8.2. Изменение таблиц средствами Management Studio 391
5.8.2.1. Изменение имени таблицы 391
5.8.2.2. Изменение столбца 391
5.8.2.3. Изменение типа данных 392
5.8.2.4. Изменение порядка сортировки 397
5.8.2.5. Изменение формулы для вычисляемого столбца 397
5.8.2.6. Добавление нового столбца 398
5.8.2.7. Добавление и изменение ограничений 398
Добавление и изменение ограничения первичного ключа 398
Первичный ключ состоит из нескольких столбцов таблицы 400
Добавление и изменение ограничения уникального ключа 402
Добавление и изменение ограничения внешнего ключа 405
Изменение ограничения CHECK 409
Добавление ограничения CHECK 410
5.8.2.8. Удаление столбца 412
5.8.2.9. Удаление ограничений 414
Удаление ограничения CHECK 414
Удаление ограничения первичного ключа 415
Удаление ограничения уникального ключа 416
Удаление ограничения внешнего ключа 416
5.8.3. Построение диаграммы базы данных 418
5.9. Файловые таблицы 419
5.10. Что дальше? 422
Глава 6. Индексы
423
6.1. Отображение индексов 424
6.2. Работа с индексами средствами Transact-SQL 425
6.2.1. Создание обычного (реляционного) индекса 425
6.2.1.1. Имя объекта, для которого создается индекс 427
6.2.1.2. Имя индекса 427
6.2.1.3. Задание уникального индекса 427
6.2.1.4. Кластерный и некластерный индексы 428
6.2.1.5. Структура индекса 428
6.2.1.6. Предложение INCLUDE 429
6.2.1.7. Предложение WHERE 429
6.2.1.8. Предложение ON 429
6.2.1.9. Предложение FILESTREAM_ON 430
6.2.1.10. Задание параметров индекса 430
6.2.2. Создание индекса для представлений 434
6.2.3. Создание индекса columnstore 434
6.2.4. Создание индекса для столбца XML 436
6.2.4.1. Имя объекта, для которого создается индекс 438
6.2.4.2. Имя индекса 438
6.2.4.3. Первичный индекс 438
6.2.4.4. Вторичные индексы 438
6.2.4.5. Задание параметров индекса 438
6.2.5. Создание пространственного индекса 442
6.2.6. Удаление индекса 446
6.2.7. Изменение индекса 448
6.3. Работа с индексами в диалоговых средствах Management Studio 451
6.3.1. Создание индекса в Management Studio 452
6.3.2. Удаление индекса в Management Studio 456
6.3.3. Изменение индекса в Management Studio 456
6.4. Что дальше? 456
Глава 7. Добавление, изменение и удаление данных
457
7.1. Обобщенное табличное выражение 457
7.2. Добавление данных. Оператор INSERT 458
7.3. Изменение данных. Оператор UPDATE 466
7.4. Удаление данных. Оператор DELETE 470
7.5. Удаление строк таблицы. Оператор TRUNCATE TABLE 472
7.6. Добавление, изменение или удаление строк таблицы. Оператор MERGE 473
7.7. Что дальше? 480
Глава 8. Выборка данных
481
8.1. Оператор SELECT 481
8.2. Оператор UNION 492
8.3. Операторы EXCEPT, INTERSECT 493
8.4. Примеры выборки данных 493
8.4.1. Список выбора 493
8.4.2. Упорядочение результата (ORDER BY) 495
8.4.3. Условие выборки данных (WHERE) 497
8.4.3.1. Использование операторов сравнения 497
8.4.3.2. Использование варианта LIKE 499
8.4.3.3. Использование варианта BETWEEN 501
8.4.3.4. Использование варианта IN 501
8.4.3.5. Использование функций ALL, SOME, ANY, EXISTS 503
Функция ALL 503
Функции ANY и SOME 504
Функция EXISTS 505
8.4.4. Соединение таблиц 505
8.4.4.1. Левое внешнее соединение 505
8.4.4.2. Правое внешнее соединение 508
8.4.4.3. Полное внешнее соединение 508
8.4.4.4. Двойное соединение 509
8.4.4.5. Рефлексивное соединение, или самосоединение 510
8.4.4.6. Внутреннее соединение 512
8.4.5. Группировка результатов выборки (GROUP BY, HAVING) 512
8.5. Использование операторов UNION, EXCEPT, INTERSECT 517
8.6. Что дальше? 519
Глава 9. Представления
521
9.1. Синтаксис операторов для представлений 522
9.1.1. Создание представления 522
9.1.2. Изменение представления 523
9.1.3. Удаление представления 524
9.2. Создание представлений в Transact-SQL 524
9.3. Создание представлений диалоговыми средствами Management Studio 527
9.4. Что дальше? 528
Глава 10. Транзакции
529
10.1. Понятие и характеристики транзакций 529
10.2. Операторы работы с транзакциями 530
10.3. Уровни изоляции транзакции 532
10.4. Что дальше? 534
Глава 11. Хранимые процедуры, функции, определенные пользователем, триггеры
535
11.1. Язык хранимых процедур и триггеров 535
11.1.1. Блок операторов BEGIN / END 536
11.1.2. Комментарии 536
11.1.3. Локальные переменные 536
11.1.4. Ветвление в программе. Операторы IF и CASE 536
11.1.5. Организация циклов. Оператор WHILE 537
11.1.6. Оператор GOTO 538
11.1.7. Оператор RETURN 538
11.1.8. Конструкция TRY / CATCH 538
11.1.9. Оператор THROW 540
11.2. Хранимые процедуры 540
11.2.1. Создание хранимой процедуры 540
11.2.2. Изменение хранимой процедуры 542
11.2.3. Удаление хранимой процедуры 543
11.2.4. Использование хранимых процедур 544
11.3. Функции, определенные пользователем 549
11.3.1. Создание функции 549
11.3.2. Изменение функций 551
11.3.3. Удаление функций 551
11.3.4. Использование функций 552
11.4. Триггеры 553
11.4.1. Создание триггеров 553
11.4.2. Изменение триггеров 556
11.4.3. Удаление триггеров 558
11.4.4. Использование триггеров 559
Приложения 563
Приложение 1. Двенадцать правил Кодда 564
Приложение 2. Зарезервированные слова Transact-SQL 566
Приложение 3. Утилита командной строки sqlcmd 571
Приложение 4. Характеристики базы данных 574
П4.1. Параметры Auto 576
П4.2. Параметры доступности базы данных 578
П4.3. Параметры автономной базы данных 579
П4.4. Параметры курсора 580
П4.5. Параметры восстановления 581
П4.6. Общие параметры SQL 581
П4.7. Параметры компонента Service Broker 585
Приложение 5. Языки, представленные в SQL Server 586
Приложение 6. Описание электронного архива 588
Предметный указатель 589
Содержание книги 15
Дополнительные материалы 18
Глава 1. Установка программных средств
19
1.1. Установка Visual Studio 2010 Express 20
1.2. Установка MS SQL Server 2014 Express 24
1.3. Установка справочной системы 38
Глава 2. Общие сведения о SQL Server 2014
41
2.1. Реляционные базы данных 41
2.1.1. Таблицы 42
2.1.1.1. Основные свойства и характеристики таблиц 42
Типы данных 42
Порядок сортировки 43
Неизвестное значение NULL 44
Индексы 44
2.1.1.2. Ключи в таблицах 45
Первичный ключ 45
Уникальный ключ 46
Внешний ключ 46
Отношения между таблицами в базе данных 46
Ограничения таблицы 47
2.1.2. Представления 47
2.1.3. Хранимые процедуры и триггеры 48
2.1.4. Пользователи, привилегии и роли базы данных 49
2.1.5. Задание первичных ключей таблиц 49
2.1.6. Транзакции 50
2.1.7. Двенадцать правил Кодда 51
2.2. Реализация отношений в реляционной модели 51
2.2.1. Отношение "один к одному" 52
2.2.2. Отношение "один ко многим" 53
2.2.3. Отношение "многие ко многим" 53
2.3. Нормализация таблиц 54
2.3.1. Цель нормализации таблиц 54
2.3.2. Первая нормальная форма 55
2.3.3. Вторая нормальная форма 57
2.3.4. Третья нормальная форма 57
2.3.5. Другие нормальные формы 58
2.3.6. Денормализация таблиц 58
2.4. Проектирование баз данных 59
2.5. Язык Transact-SQL 60
2.5.1. Синтаксис 61
2.5.1.1. Целое число 63
2.5.1.2. Целое со знаком 64
2.5.1.3. Дробное число 64
2.5.1.4. Число с плавающей точкой 64
2.5.1.5. Двоичное число 65
2.5.1.6. Комментарии 65
2.5.1.7. Строковые константы 65
2.5.1.8. Идентификатор 66
2.5.2. Основные сведения о составе языка Transact-SQL 70
2.6. Что дальше? 72
Глава 3. Работа с базами данных
73
3.1. Запуск и останов экземпляра сервера 74
3.1.1. Запуск на выполнение экземпляра сервера 74
3.1.1.1. Запуск сервера из командной строки 74
3.1.1.2. Запуск сервера из программы Configuration Manager 75
3.1.1.3. Запуск сервера с помощью программы Management Studio 76
3.1.2. Останов экземпляра сервера 78
3.1.2.1. Останов сервера из командной строки 78
3.1.2.2. Останов сервера из программы Configuration Manager 78
3.1.2.3. Останов сервера из программы Management Studio 78
3.2. Что собой представляет база данных в SQL Server 79
3.2.1. Системные базы данных 80
3.2.1.1. База данных master 80
3.2.1.2. База данных model 80
3.2.1.3. База данных msdb 81
3.2.1.4. База данных tempdb 81
3.2.1.5. База данных resource 81
3.2.2. Базы данных пользователей 82
3.2.3. Некоторые характеристики базы данных 83
3.2.3.1. Владелец базы данных 83
3.2.3.2. Порядок сортировки 84
3.2.3.3. Возможность изменения данных базы данных 84
3.2.3.4. Состояние базы данных 84
3.2.4. Некоторые характеристики файлов базы данных 85
3.2.4.1. Основные характеристики файлов базы данных 85
3.2.4.2. Состояния файлов базы данных 85
3.3. Получение сведений о базах данных и их файлах в текущем экземпляре сервера 86
3.3.1. Системное представление sys.databases 86
3.3.2. Системное представление sys.master_files 87
3.3.3. Системное представление sys.database_files 89
3.3.4. Системное представление sys.filegroups 90
3.3.5. Другие средства получения сведений об объектах базы данных 91
3.3.5.1. Системные представления 91
3.3.5.2. Системные хранимые процедуры 92
3.3.5.3. Системные функции 92
3.4. Создание и удаление базы данных 93
3.4.1. Использование операторов Transact-SQL для создания, отображения и удаления баз данных 93
3.4.1.1. Оператор создания базы данных 93
Логическое имя базы данных 96
Предложение CONTAINMENT 96
Предложение ON 97
Предложение LOG ON 97
Предложение COLLATE 97
Предложение WITH 98
Файловый поток 98
Другие опции предложения WITH 98
Спецификация файла 99
Предложение NAME 100
Предложение FILENAME 101
Предложение SIZE 102
Предложение MAXSIZE 102
Предложение FILEGROWTH 103
Файловая группа 103
3.4.1.2. Оператор удаления базы данных 104
3.4.1.3. Создание и отображение баз данных в командной строке 105
3.4.1.4. Создание и отображение баз данных в Management Studio 126
Замечания по использованию Management Studio 136
3.4.2. Создание базы данных с использованием диалоговых средств Management Studio 137
3.5. Изменение базы данных 140
3.5.1. Изменение базы данных в языке Transact-SQL 141
3.5.1.1. Изменение имени базы данных 141
3.5.1.2. Изменение порядка сортировки 142
3.5.1.3. Изменение файлов базы данных 145
Добавление нового файла 145
Удаление существующего файла 146
Изменение характеристик файла 146
3.5.1.4. Изменение файловых групп 151
3.5.1.5. Изменение других характеристик базы данных 153
3.5.2. Изменение базы данных диалоговыми средствами Management Studio 155
3.5.2.1. Изменение имени базы данных 155
3.5.2.2. Изменение файлов базы данных 155
3.5.2.3. Изменение файловых групп базы данных 159
3.5.2.4. Изменение других характеристик базы данных 160
3.5.2.5. Отображение отчета использования дискового пространства базы данных 162
3.5.3. Удаление базы данных диалоговыми средствами Management Studio 163
3.6. Создание автономной базы данных 163
3.6.1. Установка допустимости автономных баз данных 164
3.6.2. Создание автономной базы данных и пользователя средствами языка Transact-SQL 165
3.6.3. Создание автономной базы данных диалоговыми средствами Management Studio 166
3.6.4. Создание автономного пользователя в Management Studio 167
3.6.5. Соединение с автономной базой данных в Management Studio 168
3.7. Присоединение базы данных 169
3.7.1. Присоединение базы данных с использованием Transact-SQL 170
3.7.2. Присоединение базы данных с использованием диалоговых средств Management Studio 172
3.7.3. Отсоединение базы данных 174
3.8. Создание мгновенных снимков базы данных 175
3.9. Схемы базы данных 177
3.9.1. Работа со схемами в Transact-SQL 178
3.9.1.1. Создание схемы 178
3.9.1.2. Изменение схемы 179
3.9.1.3. Удаление схемы 179
3.9.1.4. Пример создания схем 179
3.9.2. Работа со схемами в Management Studio 181
3.9.2.1. Отображение схем базы данных 181
3.9.2.2. Создание схемы 181
3.9.2.3. Изменение существующей схемы 181
3.9.2.4. Удаление схемы 183
3.10. Средства копирования и восстановления баз данных 183
3.10.1. Использование операторов копирования/восстановления базы данных 184
3.10.2. Использование диалоговых средств Management Studio для копирования/восстановления базы данных 185
3.11. Домашнее задание 189
3.12. Что дальше? 189
Глава 4. Типы данных
191
4.1. Классификация типов данных в SQL Server 191
4.2. Объявление локальных переменных 193
4.3. Числовые типы данных 195
4.3.1. Тип данных BIT 197
4.3.1.1. Таблицы истинности 197
4.3.2. Целочисленные типы данных TINYINT, SMALLINT, INT, BIGINT 199
4.3.3. Дробные числа NUMERIC, DECIMAL, SMALLMONEY, MONEY 201
4.3.3.1. Типы данных NUMERIC и DECIMAL 202
4.3.3.2. Типы данных SMALLMONEY и MONEY 203
4.3.3.3. Сложение и вычитание 203
4.3.3.4. Умножение 204
4.3.3.5. Деление 204
4.3.3.6. Остаток от деления 204
4.3.3.7. Преобразования в точные числа 205
4.3.4. Числа с плавающей точкой FLOAT, REAL 205
4.3.5. Функции для работы с числовыми данными 206
4.3.5.1. Агрегатные функции 206
4.3.5.2. Тригонометрические функции 206
4.3.5.3. Логарифмические функции, возведение в степень, извлечение корня 208
4.3.5.4. Другие математические функции 209
4.4. Символьные данные 211
4.4.1. Символьные строки CHAR, VARCHAR 211
4.4.2. Символьные строки NCHAR, NVARCHAR 213
4.4.3. Типы данных VARCHAR(MAX), NVARCHAR(MAX), VARBINARY(MAX) 213
4.4.4. Строковые функции 214
4.4.4.1. Определение размера DATALENGTH(), LEN() 214
4.4.4.2. Выделение подстроки LEFT(), RIGHT(), SUBSTRING() 215
4.4.4.3. Удаление пробелов LTRIM(), RTRIM() 217
4.4.4.4. Преобразование символов ASCII(), STR(), CHAR(), NCHAR(), UNICODE() 217
4.4.4.5. Изменение регистра символов UPPER(), LOWER() 220
4.4.4.6. Преобразование строки к идентификатору QUOTENAME() 221
4.4.4.7. Поиск данных и изменение строки REPLICATE(), REVERSE(), REPLACE(), CHARINDEX() 221
Поиск данных по шаблону PATINDEX() 223
4.5. Типы данных даты и времени 225
4.5.1. Описание типов данных даты и времени 225
4.5.2. Действия с датами и временем 226
4.5.2.1. Задание даты и времени 226
4.5.2.2. Функции, возвращающие значение текущей даты, времени и смещения часового пояса 230
4.5.2.3. Функции преобразования и выделения части даты и времени 231
4.5.2.4. Другие функции для даты и времени 237
4.6. Двоичные данные 237
4.7. Пространственные типы данных 238
4.7.1. Тип данных GEOMETRY 239
4.7.1.1. Точка 239
Свойства 240
Методы 240
Отображение характеристик 240
Создание объекта 240
Дополнительные методы 243
4.7.1.2. Ломаная линия 245
4.7.1.3. Полигон 248
4.7.1.4. Другие геометрические объекты 250
4.7.2. Тип данных GEOGRAPHY 251
4.8. Другие типы данных 256
4.8.1. Тип данных SQL_VARIANT 257
4.8.2. Тип данных HIERARCHYID 260
4.8.3. Тип данных UNIQUEIDENTIFIER 265
4.8.4. Тип данных CURSOR 267
4.8.5. Тип данных TABLE 274
4.8.6. Тип данных XML 275
4.8.6.1. Нетипизированные элементы XML 279
4.8.6.2. Типизированные элементы XML 282
4.8.6.3. Отображение таблиц, содержащих столбцы XML 288
4.9. Создание и удаление пользовательских типов данных 289
4.9.1. Синтаксис оператора создания пользовательского типа данных 289
4.9.2. Создание псевдонима средствами Transact-SQL 292
4.9.3. Создание псевдонима в диалоговых средствах Management Studio 293
4.9.4. Создание пользовательского табличного типа данных средствами Transact-SQL 294
4.9.4.1. Определение столбца 294
4.9.4.2. Ограничения столбца 294
4.9.4.3. Вычисляемые столбцы 295
4.9.4.4. Ограничения таблицы 295
4.9.4.5. Пример создания пользовательских типов данных 296
4.9.5. Создание пользовательского табличного типа данных диалоговыми средствами Management Studio 298
4.9.6. Удаление пользовательского типа данных 298
4.10. Что дальше? 301
Глава 5. Работа с таблицами
303
5.1. Синтаксис оператора создания таблицы 303
5.1.1. Общие характеристики таблицы 305
5.1.1.1. Идентификатор таблицы 305
5.1.1.2. Предложение AS FileTable 306
5.1.1.3. Определение столбца, вычисляемого столбца, набора столбцов 306
5.1.1.4. Предложение ON 306
5.1.1.5. Предложение TEXTIMAGE_ON 306
5.1.1.6. Предложение FILESTREAM_ON 306
5.1.1.7. Предложение WITH 306
5.1.2. Определение столбца 308
5.1.2.1. Имя столбца 309
5.1.2.2. Тип данных 309
5.1.2.3. FILESTREAM 309
5.1.2.4. COLLATE 310
5.1.2.5. NULL | NOT NULL 310
5.1.2.6. DEFAULT 310
5.1.2.7. IDENTITY 310
5.1.2.8. ROWGUIDCOL 311
5.1.2.9. SPARSE 311
5.1.3. Ограничения столбца и ограничения таблицы 312
5.1.3.1. Имя ограничения 312
5.1.3.2. Ограничения первичного и уникального ключей 313
Создаваемые индексы 315
5.1.3.3. Ограничение внешнего ключа 316
Предложение ON DELETE 318
Предложение ON UPDATE 318
5.1.3.4. Ограничение CHECK 319
5.1.4. Вычисляемые столбцы 320
5.1.5. Набор столбцов 322
5.2. Простые примеры таблиц 323
5.3. Создание секционированных таблиц 336
5.3.1. Синтаксические конструкции 336
5.3.2. Пример создания секционированной таблицы 340
5.3.3. Отображение результатов создания таблицы 349
5.3.4. Изменение характеристик секционированной таблицы 353
5.4. Создание таблиц диалоговыми средствами 355
5.4.1. Создание таблицы секционирования 355
5.4.2. Создание таблицы секционирования, схемы секционирования и функции секционирования 365
5.5. Отображение состояния секционированных таблиц 371
5.6. Файловые потоки 371
5.7. Удаление таблиц 377
5.7.1. Определение зависимостей таблицы 377
5.7.2. Удаление таблицы оператором DROP TABLE 381
5.7.3. Удаление таблицы диалоговыми средствами Management Studio 381
5.8. Изменение характеристик таблиц 384
5.8.1. Изменение таблиц при использовании оператора Transact-SQL 384
5.8.1.1. Имя таблицы 387
5.8.1.2. Изменение столбца 387
5.8.1.3. Изменение типа данных 388
5.8.1.4. Изменение порядка сортировки 389
5.8.1.5. Добавление нового столбца (обычного или вычисляемого) 390
5.8.1.6. Добавление ограничения 390
5.8.1.7. Удаление столбца 390
5.8.1.8. Удаление ограничения 391
5.8.2. Изменение таблиц средствами Management Studio 391
5.8.2.1. Изменение имени таблицы 391
5.8.2.2. Изменение столбца 391
5.8.2.3. Изменение типа данных 392
5.8.2.4. Изменение порядка сортировки 397
5.8.2.5. Изменение формулы для вычисляемого столбца 397
5.8.2.6. Добавление нового столбца 398
5.8.2.7. Добавление и изменение ограничений 398
Добавление и изменение ограничения первичного ключа 398
Первичный ключ состоит из нескольких столбцов таблицы 400
Добавление и изменение ограничения уникального ключа 402
Добавление и изменение ограничения внешнего ключа 405
Изменение ограничения CHECK 409
Добавление ограничения CHECK 410
5.8.2.8. Удаление столбца 412
5.8.2.9. Удаление ограничений 414
Удаление ограничения CHECK 414
Удаление ограничения первичного ключа 415
Удаление ограничения уникального ключа 416
Удаление ограничения внешнего ключа 416
5.8.3. Построение диаграммы базы данных 418
5.9. Файловые таблицы 419
5.10. Что дальше? 422
Глава 6. Индексы
423
6.1. Отображение индексов 424
6.2. Работа с индексами средствами Transact-SQL 425
6.2.1. Создание обычного (реляционного) индекса 425
6.2.1.1. Имя объекта, для которого создается индекс 427
6.2.1.2. Имя индекса 427
6.2.1.3. Задание уникального индекса 427
6.2.1.4. Кластерный и некластерный индексы 428
6.2.1.5. Структура индекса 428
6.2.1.6. Предложение INCLUDE 429
6.2.1.7. Предложение WHERE 429
6.2.1.8. Предложение ON 429
6.2.1.9. Предложение FILESTREAM_ON 430
6.2.1.10. Задание параметров индекса 430
6.2.2. Создание индекса для представлений 434
6.2.3. Создание индекса columnstore 434
6.2.4. Создание индекса для столбца XML 436
6.2.4.1. Имя объекта, для которого создается индекс 438
6.2.4.2. Имя индекса 438
6.2.4.3. Первичный индекс 438
6.2.4.4. Вторичные индексы 438
6.2.4.5. Задание параметров индекса 438
6.2.5. Создание пространственного индекса 442
6.2.6. Удаление индекса 446
6.2.7. Изменение индекса 448
6.3. Работа с индексами в диалоговых средствах Management Studio 451
6.3.1. Создание индекса в Management Studio 452
6.3.2. Удаление индекса в Management Studio 456
6.3.3. Изменение индекса в Management Studio 456
6.4. Что дальше? 456
Глава 7. Добавление, изменение и удаление данных
457
7.1. Обобщенное табличное выражение 457
7.2. Добавление данных. Оператор INSERT 458
7.3. Изменение данных. Оператор UPDATE 466
7.4. Удаление данных. Оператор DELETE 470
7.5. Удаление строк таблицы. Оператор TRUNCATE TABLE 472
7.6. Добавление, изменение или удаление строк таблицы. Оператор MERGE 473
7.7. Что дальше? 480
Глава 8. Выборка данных
481
8.1. Оператор SELECT 481
8.2. Оператор UNION 492
8.3. Операторы EXCEPT, INTERSECT 493
8.4. Примеры выборки данных 493
8.4.1. Список выбора 493
8.4.2. Упорядочение результата (ORDER BY) 495
8.4.3. Условие выборки данных (WHERE) 497
8.4.3.1. Использование операторов сравнения 497
8.4.3.2. Использование варианта LIKE 499
8.4.3.3. Использование варианта BETWEEN 501
8.4.3.4. Использование варианта IN 501
8.4.3.5. Использование функций ALL, SOME, ANY, EXISTS 503
Функция ALL 503
Функции ANY и SOME 504
Функция EXISTS 505
8.4.4. Соединение таблиц 505
8.4.4.1. Левое внешнее соединение 505
8.4.4.2. Правое внешнее соединение 508
8.4.4.3. Полное внешнее соединение 508
8.4.4.4. Двойное соединение 509
8.4.4.5. Рефлексивное соединение, или самосоединение 510
8.4.4.6. Внутреннее соединение 512
8.4.5. Группировка результатов выборки (GROUP BY, HAVING) 512
8.5. Использование операторов UNION, EXCEPT, INTERSECT 517
8.6. Что дальше? 519
Глава 9. Представления
521
9.1. Синтаксис операторов для представлений 522
9.1.1. Создание представления 522
9.1.2. Изменение представления 523
9.1.3. Удаление представления 524
9.2. Создание представлений в Transact-SQL 524
9.3. Создание представлений диалоговыми средствами Management Studio 527
9.4. Что дальше? 528
Глава 10. Транзакции
529
10.1. Понятие и характеристики транзакций 529
10.2. Операторы работы с транзакциями 530
10.3. Уровни изоляции транзакции 532
10.4. Что дальше? 534
Глава 11. Хранимые процедуры, функции, определенные пользователем, триггеры
535
11.1. Язык хранимых процедур и триггеров 535
11.1.1. Блок операторов BEGIN / END 536
11.1.2. Комментарии 536
11.1.3. Локальные переменные 536
11.1.4. Ветвление в программе. Операторы IF и CASE 536
11.1.5. Организация циклов. Оператор WHILE 537
11.1.6. Оператор GOTO 538
11.1.7. Оператор RETURN 538
11.1.8. Конструкция TRY / CATCH 538
11.1.9. Оператор THROW 540
11.2. Хранимые процедуры 540
11.2.1. Создание хранимой процедуры 540
11.2.2. Изменение хранимой процедуры 542
11.2.3. Удаление хранимой процедуры 543
11.2.4. Использование хранимых процедур 544
11.3. Функции, определенные пользователем 549
11.3.1. Создание функции 549
11.3.2. Изменение функций 551
11.3.3. Удаление функций 551
11.3.4. Использование функций 552
11.4. Триггеры 553
11.4.1. Создание триггеров 553
11.4.2. Изменение триггеров 556
11.4.3. Удаление триггеров 558
11.4.4. Использование триггеров 559
Приложения 563
Приложение 1. Двенадцать правил Кодда 564
Приложение 2. Зарезервированные слова Transact-SQL 566
Приложение 3. Утилита командной строки sqlcmd 571
Приложение 4. Характеристики базы данных 574
П4.1. Параметры Auto 576
П4.2. Параметры доступности базы данных 578
П4.3. Параметры автономной базы данных 579
П4.4. Параметры курсора 580
П4.5. Параметры восстановления 581
П4.6. Общие параметры SQL 581
П4.7. Параметры компонента Service Broker 585
Приложение 5. Языки, представленные в SQL Server 586
Приложение 6. Описание электронного архива 588
Предметный указатель 589
Загрузить книгу «Microsoft SQL Server 2014»