Михаил Флёнов. Transact sql учебник


Transact-SQL В подлиннике : Персональный сайт Михаила Флёнова

Оглавление Предисловие 1
Благодарности 2
Для кого эта книга 3
Введение в SQL 4
Работа с запросами 7
Именование 7
CyD SQL Factory 9
Query Analyzer 12

Глава 1. Управление базой данных

17
1.1. Создание и удаление базы данных 18
1.1.1. Файловые группы 28
1.1.2. Подключение базы данных 33
1.1.3. Сопоставление 34
1.2. Создание таблиц 35
1.2.1. Оператор CREATE TABLE 39
1.2.2. Автоматическое увеличение 43
1.2.3. Значения по умолчанию 47
1.2.4. Ограничения 49
1.2.5. Первичный ключ 58
1.2.6. Внешний ключ 60
1.2.7. Индексы 69
1.2.8. Опции индексов 80
1.2.9. Вычисляемые поля 82
1.2.10. Создание временных таблиц 85
1.2.11. GUID-поля 87
1.3. Редактирование параметров базы данных 88
1.3.1. Изменение размера файла 89
1.3.2. Добавление и удаление файла 93
1.3.3. Добавление и удаление файловых групп 94
1.3.4. Переименование базы данных 95
1.3.5. Изменение свойств базы данных 95
1.4. Редактирование таблиц 98
1.4.1. Добавление новых полей 100
1.4.2. Удаление полей 101
1.4.3. Изменение ограничений 101
1.4.4. Изменение поля 103
1.5. Обеспечение целостности данных 104
1.5.1. Ограничение DEFAULT 107
1.5.2. Ограничение CHECK 108
1.5.3. Ключи 109
1.5.4. Уникальность 110
1.5.5. Отключение ограничений 110
1.5.6. Правила и объекты значений по умолчанию 111
1.6. Именование 114
1.7. Резюме 115

Глава 2. Работа с данными

121
2.1. Оператор SELECT
122
2.2. Выборка данных 124
2.2.1. Полный путь 125
2.2.2. Ограничение вывода строк 127
2.2.3. Псевдонимы полей 128
2.3. Ограничение выборки 129
2.4. Булевы операторы 133
2.5. Улучшенный поиск 136
2.6. Вставка в таблицу 139
2.7. Шаблоны строк 140
2.8. Работа с несколькими таблицами 142
2.9. Объединение в стиле Microsoft 149
2.10. Простейшие расчеты 151
2.11. Сортировка 155
2.12. Группировка 156
2.13. Объединение запросов 160
2.14. Подзапросы 162
2.15. Операторы работы с подзапросами
169
2.15.1. Оператор EXISTS 169
2.15.2. Операторы ANY, SOME и ALL 170
2.16. Добавление записей 172
2.17. Изменение данных 178
2.18. Удаление данных 183
2.19. Транзакции 187
2.20. Переменные 196
2.21. Конвертирование типов 200
2.22. Работа с датами и временем 203
2.22.1. Преобразование дат 203
2.22.2. Функции для работы с датами 205
2.22.3. Замечания по работе с датами 209
2.23. Ход выполнения запроса 210
2.23.1. Условный оператор IF 210
2.23.2. Условный оператор CASE 214
2.23.3. Оператор цикла WHILE 216
2.23.4. Прерывание работы сценария 218
2.23.5. Подмена 219
2.23.6. Ожидание 220
2.24. Работа с GUID-полями 221
2.25. Функции работы со строками 227
2.25.1. Функция SUBSTRING 227
2.25.2. Функция LEFT 228
2.25.3. Функция LEN 229
2.25.4. Функция LOWER 229
2.25.5. Функция UPPER 229
2.25.6. Функции LTRIM и RTRIM 230
2.25.7. Функция PATINDEX 231
2.25.8. Функция REPLACE 231
2.25.9. Функция REPLICATE 232
2.25.10. Функция REVERSE 233
2.25.11. Функция SPACE 234
2.25.12. Функция STR 234
2.25.13. Функция STUFF 235
2.26. Математические функции 236
2.26.1. Знаки 236
2.26.2. Округление 237
2.26.3. Сложная математика 238
2.26.4. Случайное значение 239
2.26.5. Тригонометрические функции 239
2.26.6. Степень 240
2.27. Связь "многие-ко-многим" 241

Глава 3. Программирование на сервере

245
3.1. Представления 246
3.1.1. Создание представления 246
3.1.2. Редактирование представления 252
3.1.3. Удаление представления 253
3.1.4. Изменение содержимого представления 253
3.1.5. Удаление строк из представления 254
3.1.6. Опции представления 254
3.2. Хранимые процедуры 255
3.2.1. Создание хранимых процедур 257
3.2.2. Выполнение процедур 259
3.2.3. Удаление процедур 259
3.2.4. Использование параметров 260
3.2.5. Преимущества хранимых процедур 261
3.2.6. Практика создания и использования процедур 261
3.2.7. Изменение процедур 264
3.2.8. Использование процедур при вставке данных 266
3.2.9. Опции 266
3.3. Хранимые функции 267
3.3.1. Создание функции 268
3.3.2. Скалярные функции 269
3.3.3. Использование функций 271
3.3.4. Функция, возвращающая таблицу 272
3.3.5. Многооператорная функция, возвращающая таблицу 274
3.3.6. Опции функций 276
3.3.7. Изменение функций 277
3.3.8. Удаление функций 279
3.4. Триггеры 279
3.4.1. Создание триггера 280
3.4.2. Откат изменений в триггере 281
3.4.3. Изменение триггера 283
3.4.4. Удаление триггера 285
3.4.5. Как работают триггеры? 285
3.4.6. Триггер INSTEAD OF 290
3.4.7. Дополнительные сведения о триггерах 293
3.4.8. Практика использования триггеров 295
3.5. SQL Server Agent 298
3.5.1. Добавление задания 300
3.5.2. Управление операторами 302
3.5.3. Добавление шага 306
3.5.4. Запуск задания 312
3.5.5. Информация о задании 315
3.5.6. Управление заданиями 319
3.5.7. Управление шагами 320
3.5.8. Эффективное использование заданий 322
3.6. Планировщик заданий 323
3.6.1. Добавление плана выполнения 324
3.6.2. Обновление планировщика 328
3.6.3. Удаление планировщика 329
3.6.4. Информация о планировщике 329
3.7. Оповещения 329
3.7.1. Создание сообщения 330
3.7.2. Создание оповещения 331
3.7.3. Создание уведомления 336

Глава 4. Дополнительные возможности Transact-SQL

339
4.1. Свойства сервера 339
4.1.1. Ограничение выводимых строк 340
4.1.2. Управление неявными транзакциями 341
4.1.3. Управление блокировками 342
4.1.4. Управление датой 346
4.1.5. Объединение с NULL 347
4.1.6. Запрет на подсчет строк 348
4.1.7. Закрытие курсора 348
4.1.8. План выполнения 348
4.1.9. Соответствие ANSI 349
4.2. Информация о системе 351
4.2.1. Информация о базе данных 351
4.2.2. Имя пользователя 354
4.2.3. Имя приложения
354
4.2.4. Информация об объекте 355
4.2.5. Информация о журнале транзакций 358
4.2.6. Свойство IDENTITY 359
4.2.7. Информационные процедуры 360
4.2.8. Пользовательские параметры конфигурации 363
4.3. Обработка ошибок 365
4.3.1. Глобальная переменная @@ERROR 366
4.3.2. Генерирование сообщений 367
4.3.3. Создание собственных сообщений 369
4.3.4. Резюме 370
4.4. Поддержка XML 370
4.5. Типы данных, определенные пользователем 372
4.6. Поддержка индексов 373
4.7. Работа со статистикой 380
4.8. Управление пользователями 387
4.8.1. Управление пользователями сервера 387
4.8.2. Управление пользователями базы данных 390
4.8.3. Роли 392
4.8.4. Создание и удаление ролей 394
4.8.5. Управление ролями 394
4.9. Права доступа 396
4.9.1. Разрешение доступа 396
4.9.2. Запрещение доступа 399
4.9.3. Отмена прав доступа 401
4.9.4. Информация о правах доступа 403
4.10. Резервное копирование и восстановление 405
4.10.1. Стратегия резервного копирования 406
4.10.2. Стратегия восстановления 409
4.10.3. Резервное копирование 410
4.10.4. Восстановление данных 422
4.10.5. Замечания по резервному копированию 435
4.11. Уменьшение базы данных 437
4.12. Отключение базы данных 439

Глава 5. Сложные запросы

443
5.1. Распределенные запросы 443
5.1.1. Динамическое создание подключений 444
5.1.2. Создание связанного сервера 448
5.1.3. Код на связанном сервере 452
5.2. Оптимизация запросов 453
5.2.1. Работа с планом выполнения 454
5.2.2. Отображение профиля 461
5.2.3. Генерация плана выполнения 462
5.3. Расширенные процедуры 464
5.3.1. Обращение к системе 464
5.3.2. Информация об учетной записи 466
5.3.3. Список групп 468
5.3.4. Информация о сервере 468
5.3.5. Доступ к серверу 469
5.3.6. Доступ к журналу 469
5.4. Внешнее выполнение 471
5.5. Домашняя бухгалтерия 476
5.5.1. Создание тестовой базы 476
5.5.2. Выборка данных о затратах 482
5.5.3. Простые отчеты 483
5.5.4. Многомерные отчеты 486
5.6. Типы данных TEXT и IMAGE 490
5.6.1. Чтение больших объемов данных 493
5.6.2. Обновление данных 494
5.7. Курсоры 497
5.7.1. Объявление курсора 499
5.7.2. Открытие курсора 501
5.7.3. Выборка записей из курсора 501
5.7.4. Закрытие курсора 505
5.7.5. Изменение данных в курсоре 506
5.8. Полнотекстовый поиск 509
5.8.1. Включение поиска 511
5.8.2. Создание каталога 511
5.8.3. Регистрация таблиц 512
5.8.4. Регистрация полей 513
5.8.5. Информация о каталоге 515
5.8.6. Использование поиска 517

Глава 6. Transact-SQL и 1C

523
6.1. Конфигурирование 524
6.2. Обслуживание базы данных 530
6.2.1. Настройка базы данных 530
6.2.2. Резервное копирование 531
6.2.3. Восстановление данных 534
6.2.4. Задания 536
6.3. Выборка данных 541
Заключение 545
ПРИЛОЖЕНИЯ 547
Приложение 1. Типы данных в SQL Server 2000 549
Числа 549
Числа с плавающей точкой 549
Денежные типы 550
Дата и время 550
Строки 550
Бинарные данные 551
Другие типы данных 551
Приложение 2. Описание компакт-диска 553
Предметный указатель 555
VIII Оглавление IX Оглавление

www.flenov.info

transact-sql 2

Основные данные о работе

Версия шаблона 1.1
Филиал
Вид работы Курсовая работа
Название дисциплины Базы данных
Тема «Transact-SQL»
Фамилия студента
Имя студента
Отчество студента
№ контракта

Содержание

Введение

Основная часть……………………………………………………………………….4

1 Управляющие конструкции transact-sql

2 Идентификаторы

3 Типы данных 8

Заключение

Список использованных источников

Приложения………………………………………………………………………....24

Введение

Структурированный язык запросов SQL (Structured Query Language) был разработан в 1970 г. корпорацией IBM как язык управления реляционными базами данных. До него и после него были попытки создания альтернативных языков, но стандартом стал именно SQL. Практически все производители систем управления базами данных используют в своих продуктах ту или иную модификацию SQL. С 1970 г. Было разработано немало версий этого языка, часто не совместимых друг с другом. В результате в 1992 г. американским национальным институтом стан­дартов (American National Standard Institute-ANSI) был разработан стандарт SQL – 92, описывающий поведение сервера и регламентирующий основные правила ра­боты. Целью разработки этого стандарта было, в частности, уменьшение несо­вместимости различных вариантов SQL.

Однако, несмотря на все усилия добиться единого стандарта, каждый из производителей использует и развивает свою модификацию SQL. В SQL Server 7.0 реализован вариант Transact-SQL, поддерживающий большинство возможно­стей стандарта ANSI SQL-92, а также ряд дополнений, увеличивающих гибкость и мощность языка. Transact-SQL широко используется не только в продуктах Microsoft, но и в приложениях независимых разработчиков.

Transact-SQL является основой SQL Server 7.0, реализуя простые, но в то же время мощные методы доступа к данным. Администратор может сконфигуриро­вать сервер таким образом, что пользователям не нужно будет явно указывать на­чало и конец транзакций. Сервер сам позаботится об обеспечении целостности данных. Для профессиональной работы с SQL Server 7.0 необходимо понимать механизмы работы Transact-SQL и уметь успешно применять их на практике.

Основная часть

1 глава Управляющие конструкции Transact-Sql

Рассмотрим различные конструкции Transact-SQL, без которых невоз­можно написание эффективных алгоритмов.

BEGIN…END

С помощью этой конструкции выполняется группировка двух и более ко­манд в единый блок. Сгруппированные команды воспринимаются интерпретато­ром Transact-SQL как один оператор. Подобная группировка требуется для конст­рукции поливариантных ветвлений, условных и циклических конструкций. Begin ставится в начале блока. После него располагается одна или несколько команд. Завершается блок ключевым словом END:

BEGIN

SELECT * FROM authors

SELECT * FROM titles

PRINT ‘Дата : ‘+ CAST (GETDATE () AS char)

END

Некоторые команды Transact-SQL не должны выполнятся вместе с дру­гими командами, поэтому их включение в конструкцию BEGIN…END совместно с другими командами не допускается. К таким командам относятся команды ре­зервного копирования, изменения структуры таблиц, хранимых процедур и им подобные.

IF…ELSE

Часто определённая часть программы должна выполнятся только при неко­тором условии. Например, изменять строки в таблице имеет смысл только в том случае, если они имеются. Конструкция IF…ELSE позволяет выполнять указан­ную команду только при соблюдении логических условий.

В отличие от большинства языков программирования, в конструкции IF…ELSE языка Transact-SQL не используется ключевое слово THEN. Кроме ТОО, в некоторых языках программирования конструкция IF…ELSE предусмат­ривает включение множества команд. В Transact-SQL позволено указание не бо­лее одной команды. Если требуется выполнить более одной команды, необходимо воспользоваться конструкцией BEGIN…END.

CASE…END

Эта конструкция часто используется для замены множества одиночных или вложенных конструкций IF…ELSE. Конструкция CASE…END возвращает ре­зультат, который можно использовать в качестве переменной в других выраже­ниях. При этом она рассматривается как функция.

CASE input_ expression

WHEN {when_ expression | Boolean_ expression}

THEN result_ expression

[…n]

[ELSE else_ result_ expression]

END

Конструкцию CASE…END можно также использовать непосредственно в запросе.

COALESCE

Эта конструкция возвращает первое нулевое значение. Её синтаксис таков:

COALESCE (expression […n])

Внутри скобок в этой конструкции через запятую перечисляется множество значений. Конструкция COALESCE может быть представлена в виде конструкции CASE…END.

WHILE…BREAK & CONTINUE

С помощью это конструкции в Transact-SQL организуется циклы, причём это единственный тип циклов, поддерживаемый Transact-SQL. Во многих языках программирования реализовано два, а то три типа циклов. Например, Delphi под­держивает три типа циклов: FOR…TO, WHILE…DO и REPEAT…UNTIL.

Цикл можно принудительно остановить, если в его теле выполнить команду BREAK. Если же нужно начать цикл заново, не дожидаясь выполнения всех ко­манд в теле цикла, необходимо выполнить команду CONTINUE. После этой ко­манды цикл переходит к проверке логического условия.

2 глава Идентификаторы

Все объекты SQL Server 7.0 имеют свои собственные имена, с помощью ко­торых можно ссылаться на них. Имена объектов называются идентификаторами. Любой объект базы данных должен быть уникально идентифицирован. Transact-SQL налагает ряд ограничений на именование объектов:

1.Первый символ имени объекта должен соответствовать стандарту Unicode Standard 2.0 и быть одним из символов латинского или национального алфавита либо символом «_», то есть не допускается использование в качестве первого символа имени объекта цифр, символов «!», «№», «*» и т.д. Кроме того, для обо­значения временных объектов сервер разрешает использование символов «@» (временные переменные или параметры) и «#» (временные таблицы или храни­мые процедуры). Временные объекты существуют только в течение сеанса или транзакции, а затем уничтожаются. Для обозначения глобальных временных объ­ектов, к которым могут обращаться все пользователи, Transact-SQL позволяет ис­пользовать символы «##». Для обозначения глобальных временных переменных вначале идентификатора указываются символы «@@». Некоторые функции и пе­ременные SQL Server 7.0 начинаются с символов «@@».

  1. Остальная часть идентификатора может включать любые символы, определённые стандартом Unicode Standard 2.0, символы национальных ал­фавитов, десятичные цифры, символы «@», «#» и «_».
  2. При выборе имени следует убедиться, что оно не является зарезерви­рованным словом (как, например, BEGIN или KILL) и что ещё не существует объекта с таким именем. Transact-SQL не различает регистра, в котором набрано имя, и поэтому считает одинаковыми имена объектов, вы­бранные в разных регистрах.
  3. Запрещается использование внутри имени пробелов, круглых ско­бок и специальных символов «~», «!», «%», «^», «&», «-», «{», «}», «`», «.», «\», и «’».
  4. Длина имени объекта не должна превышать 128 символов. Исключе­ние составляют имена временных таблиц, длина имени которых не должна превышать 116 символов.
Для обхода некоторых ограничений можно заключить имена объектов в двойные кавычки или квадратные скобки. В этом случае разрешается использова­ние в имени объекта пробелов, специальных символов, а также употребление за­резервированных слов в качестве идентификаторов. Стандартные имена также могут быть записаны с использованием ограничителей. Идентификаторы, заклю­чённые в двойные кавычки или квадратные скобки, называются ограниченными идентификаторами (Delimited identifiers).

Многие хранимые процедуры и команды Transact-SQL требуют указания в качестве аргумента имени таблицы, колонки, представления или другого объекта. В этом случае имена объектов должны заключаться в одинарные кавычки. Выра­жение, заключенное в одинарные кавычки, рассматривается как символьная строка. Например, для получения информации о таблице title author базы данных pubs необходимо ввести следующую команду:

EXEC SP _help ‘pubs… title author’

Если же название таблицы не соответствует правилам именования объектов, необходимо заключить имя таблицы в квадратные скобки или двойные кавычки:

EXES SP _help ‘pubs… ” Title author”’

EXES SP _help ‘pubs… [Title author]’

По умолчанию в качестве ограничителя имени можно использовать как двойные кавычки (“), так и квадратные скобки []. Область применения двойных кавычек зависит от соответствующих значений конфигурации сервера. Причём эти установки могут устанавливаться на трёх уровнях: на уровне соединения с помощью команды SET QUOTED _IDENIFIER, на уровне базы данных с помо­щью хранимой процедуры sp_abortion ‘quoted identifier’ ON | OFF и на уровне сер­вера с помощью хранимой процедуры sp_configure ‘user option’1.

3 глава Типы данных

Тип данных определяет диапазон значений, которые можно сохранить в пе­ременной или колонке таблицы. Набор стандартных типов данных был заметно расширен по сравнению с предыдущими версиями. Теперь поддерживаются 23 встроенных системных типа данных, на основе которых дополнительно может быть создано множество разнообразных пользовательских типов.

Информация о типах данных, как системных, так и пользовательских, хра­нится в таблице systypes в каждой базе данных. Если в базе данных не создано ни одного пользовательского типа данных, то эта таблица будет содержать 24 строки. Для получения списка типов и их свойств можно использовать следую­щую команду:

SELECT * FROM systypes

В результате сервер выдаст таблицу со списком типов, созданных в текущей базе данных, с указанием их свойств. Каждая строка описывает один тип.

Обращаясь к таблице systypes, можно получить информацию о созданных базе типа данных, не прибегая к использованию Enterprise Manager. Для получе­ния информации о конкретном типе данных можно использовать системную хра­нимую процедуру sp_help:

EXEC sp_help ‘data_type’Числовые типы данных.

Числовые типы данных, как следует из названия, предназначены для хране­ния только числовых значений. Числовые типы данных различаются по возмож­ности хранения положительных и отрицательных значений, целочисленных и дробных значений, а также по общему количеству цифр и количеству цифр после запятой.

К целочисленным типам данных (общее название – integer) относятся сле­дующие типы данных:

  1. Int (или integer). Для хранения данных используется 32 бит или 4 байта, что обеспечивает 4 294 967 296 вариантов значений. 31 бит использу­ется для хранения собственно числа, а старший бит предназначен для ука­зания знака. Если этот бит установлен в 1, то число отрицательное. Следо­вательно, этот тип данных позволяет хранить целые числа в диапазоне от -231 до 231-1, что соответствует интервалу от -2 147 483 648 до 2 147 483 647.
  2. Smallint. Для хранения данных используется 16 бит, или 2 байта, что обеспечивает 65 536 вариантов значений. 15 бит используется для хра­нения собственно числа, а старший бит предназначен для указания знака. Следовательно, этот тип данных позволяет хранить целые числа в диапа­зоне от -215 до 215-1, что соответствует интервалу от -32 768 до 32 767.
  3. Tinyint. Этот целочисленный тип занимает всего 1 байт и не содер­жит отрицательных чисел. Все биты интерпретируются как числовое значе­ние. Тип данных tinyint позволяет хранить значения в интервале от 0 до 255.
При выборе того или иного типа данных необходимо исходить из физиче­ского значения хранимых данных. Например, если в колонке будет храниться ко­личество лет, исполнившееся сотруднику, то лучшим вариантом будет использо­вание типа tinyint, так как не придётся хранить отрицательные значения и вряд ли человек проживёт более 255 лет1.Нецелочисленные типы данных.

Числа, в составе которых есть десятичная точка, называется нецелочислен­ными. Microsoft разделяет нецелочисленные данные на два типа- десятичные (decimal) и приблизительные (approximate).

Десятичные данные физически хранятся не в виде чисел, а в виде последо­вательности цифр. Для предоставления каждой десятичной цифры обычно ис­пользуется 4 бита, то есть один байт позволяет хранить две десятичных цифры, или значение от 0 до 99. В то же время, использование байта для представления числа в двоичной форме позволяет хранить значения в диапазоне от 0 до 255. К десятичным типам данных относятся следующие:

  1. Decimal [(p [, s])] (или dec) и Numeric [(p [, s])]. Эти два типа практи­чески не различаются, и их можно с успехом взаимно заменять. Эти типы содержат фиксированное количество знаков до и после запятой. При использовании типов decimal и numeric можно задавать значения, лежащие в диапазоне от –(1038-1) до 1038-1. Аргумент p определяет максимально воз­можное количество десятичных знаков (до и после запятой в сумме). Мак­симальное значение этого параметра равно 38. Аргумент s определяет коли­чество десятичных знаков после запятой, которое будет храниться в этом типе данных. Это значение может быть равно значению p, но не может пре­вышать его. Если этот аргумент не указан, то по умолчанию используется значение 0, то есть хранение цифр после запятой не допускается.
К приблизительным типам данных относят следующие:
  1. Float [(n)]. Этот тип представляет данные с плавающей запятой. Воз­можные значения лежат в пределах от -1,79*10308 до 1,79*10308. Значе­ние n определяет количество бит, используемых для хранения мантиссы. Этот параметр определяет точность данных и может принимать значение от 1до 53. Физически тип fioat поддерживает два вида точности: до 7 цифр и до 15 цифр. В первом случае значение n может быть от 1 до 24 и для хранения типа float используется 4 байта. Во втором случае n может принимать зна­чение от 25 до 53 и для хранения типа float используется 8 байт.
  2. Real. Этот тип данных представляет частный случай типа float со зна­чением аргумента n, равным 24. Для хранения типа real используется 4 байта, и он обеспечивает представление чисел в диапазоне от -3,40*1038 до 3,40*1038.
Денежные типы данных.

Для хранения данных о денежных суммах Transact-SQL предлагает исполь­зовать типы данных, дающие хранение до 4 знаков после запятой.

К денежным типам данных относятся:

  1. Money. Для данных этого типа отводится 8 байт, что обеспечивает представление чисел в диапазоне от -922 337 203 685 477,5808 до +922 377 203 685 477,5807. Если необходимо хранить данные большей длины, то можно использовать тип decimal или numeric.
  2. Small money. Это более компактный вариант типа money. Для хране­ния значений типа smallmoney отводятся 4 байта, что обеспечивает представление чисел в диапазоне от -214 748,3648 до 214 748,3647.
Типы данных для хранения информации о времени.

Для хранения информации о дате и времени Transact-SQL предлагает два типа данных, позволяющих одновременно хранить сведения и о дате, и о вре­мени. Нет встроенных типов, позволяющих хранить отдельно информацию только о дате или только о времени. Использование специализированных типов позволяет более гибко управлять данными о времени и проводить с ними различ­ные операции. К временным типам данных относят следующие :

  1. Datetime. Для предоставления этого типа используется 8 байт. В пер­вых 4 хранится информация о дате. Это значение- своего рода смеще­ние относительно базовой даты. В качестве базовой даты было выбрано 1 января 1753 г. Оставшиеся 4 байта хранят информацию о количестве мил­лисекунд, прошедших после полуночи данного дня. В итоге тип данных datetime позволяет хранить значения о дате и времени в диапазоне от 1 ян­варя 1753 г. до 31 декабря 9999 г. с точностью до 3,33 мс.
  2. Smalldatetime. Для представления данных этого типа используется 4 байта. Первые 2 байта используются для хранения информации о дате, а оставшиеся 2 байта - о времени. Тип данных smalldatetime обеспечивает хранение информации о дате в диапазоне от 1 января 1900 г. до 6 июня 2079 г. с точностью до минуты.
Бинарные типы данных.

Бинарные типы данных используются для хранения последовательности двоичных значений большой длины. Большинство типов Transact-SQL позволяют хранить значения длиной до нескольких байт, которые в большинстве случаев представляют физические характеристики объектов. В бинарных типах данных можно хранить любые значения, начиная от текста и заканчивая исполняемым кодом программы. Бинарные типы делятся:

  1. Binary (n). Этот тип данных позволяет хранить до 8000 байт, что стало возможно благодаря изменению внутренней архитектуры системы хранения данных Transact-SQL, а конкретно - размера страницы. Данные типа binary не могут размещаться более чем на одной странице, поэтому их максимальный размер зависит от размера страницы. Значение n определяет количество байт, которое будет хранить.
  2. Verbinary(n). Этот тип похож на тип binary. Аргумент n (максималь­ное значение-8000) определяет только максимальную длину, при повышении которой происходит усечение данных.
  3. Image. Этот бинарный тип позволяет преодолевать ограничение длины в 8000 байтов, характерное для типов binary и varbinary. При ис­пользовании этого типа допускается хранение битовых полей длиной до 231-1 (2 147 483 647).
При выборе того или иного типа данных придётся выбирать между произ­водительностью работы системы хранения и свободным пространством в базе данных. Тип данных image стоит в стороне от типов binary и varbinary, и его ис­пользование оправдано лишь в том случае, если необходимо хранить действи­тельно длинные поля бинарных данных. Символьные типы данных.

Для хранения текстовой информации используют символьные и текстовые типы данных. Характерное отличие между символьными и текстовыми типами данных заключается в максимальном количестве символов, которое может хра­нить тот или иной тип данных. К символьным типам относят типы:

  1. Char. Этот тип данных разрешает хранение набора символов дли­ной до 8000 знаков. Аргумент n определяет максимальное количество символов, равное 8000. В таблице для хранения значений типа char выде­ляется указанное количество байт независимо от того, сколько символов было реально сохранено.
  2. Varchar. Этот тип подобен типу данных char с тем отличием, что ко­личество выделяемого в таблице пространства зависит от реального числа байтов, которое занимает значение.
  3. Nchar. Поведение сервера при работе с этим типом аналогично ра­боте с char с тем отличием, что тип nchar используется для хранения символов Unicode. Каждый символ Unicode занимает два байта и макси­мальное количество символов, которое можно сохранить с использова­нием этого типа, равно 4000.
  4. Nvarchar. Аналог Unicode типа данных varchar. Максимальное зна­чение n ограничено величиной 4000.
Текстовый тип данных.

Текстовые типы данных так же, как и символьные, позволяют хранить тек­стовые данные. Они обеспечивают хранение очень большого количества симво­лов – до 2 Гбайт. К текстовым типам данных относятся:

  1. Text. Этот тип обеспечивает хранение блоков текста длиной до 231-1 (2 147 483 647) символов.
  2. Ntext. При работе с большим объёмом текста в формате Unicode используется тип данных ntext, обеспечивающий хранение до 230-1 (1 073 741 823) символов. Хранение данных типа ntext осуществляется теми же методами, что и типов text и image.
Transact-SQL предлагает набор специализированных функций для обра­ботки текстовых данных. Эти функции перечислены в таблице.Специальные типы данных.

Специальные типы данных используются в основном для внутренних нужд с целью обеспечения дополнительной функциональности. К специальным типам данных относят:

  1. Bit. Этот тип данных позволяет хранить один бит и принимает зна­чение 0 или 1. Bit как нельзя лучше подходит для хранения данных, которые могут принимать только два значения: «YES/NO», «MAN/ WOMAN», «TRUE/FALSE», «ON/OFF» и т. д.
  2. Timestamp. Этот тип используется в качестве индикатора версии изменения строки в пределах базы данных. С помощью timestamp можно отслеживать последовательность изменений строк как в пределах таблиц, так и в пределах баз данных.
  3. Uniqueidentifier. Он используется для хранения глобальных уни­кальных идентификационных номеров. Значения типа uniqueidentifier за­нимают 16 байт и могут быть представлены в виде xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx, где x представляет одну шестнадцатеричную цифру.
  4. Sysname. Это пользовательский тип данных, созданный самим Transact-SQL на основе типа данных nvarchar. Тип данных sysname ис­пользуется для описания имён объектов базы данных, таких как таблицы, колонки, типы данных, логические имена файлов и т. д.
Конвертирование типов данных.

Нередко бывает выполнить конвертирование значения одного типа в значе­ние другого типа. Наиболее часто выполняется конвертирование чисел в строки и наоборот. Для конвертирования значений числовых типов данных в символьные строки используется специализированная функция STR. Для выполнения других преобразований Transact-SQL предлагает универсальные функции CONVERT и CAST, с помощью которых можно преобразовать значения одного типа в значе­ние любого другого типа, если такое преобразование вообще возможно. Функции CONVERT и CAST предлагают примерно одинаковые возможности и могут быть взаимозаменяемыми:

CAST (ecspression AS data_ type)

CONVERT (data_ type [(length)], expression [, style])

Аргумент expression указывает величину, которую необходимо конвертиро­вать. Тип, в который необходимо конвертировать данные, определяется аргумен­том data_type.

Выражения в Transact-SQL представляют собой комбинацию идентифика­торов, функций, логических и арифметических операций, констант и других объ­ектов. Выражение может быть использовано в качестве аргумента в командах, хранимых процедурах или запросах.

Выражение состоит из операндов (собственно данные) и операторов (дейст­вия, производимые над операндами). Операнды Transact-SQL делятся на следую­щие типы:

  1. Константы. Это постоянные величины, значения которых не могут быть никаким образом изменены. Примеры: 7, 13.64, ‘TextPtr’.
  2. Функции. Это изменённые программы, выполняющие обработку дан­ных и возвращающие определённый результат. Функции могут иметь входные параметры или просто возвращать значение.
  3. Имя колонки. В качестве операнда может выступать колонка таб­лицы. Это часто используется при обработке данных в таблице, удовлетво­ряющих определённому критерию. Пользователь указывает в выражении имя интересующей его колонки, а сервер будет автоматически подставлять соответствующие значения. При последовательном просмотре таблицы зна­чение будет изменяться.
  4. Переменная. Это именованная область памяти определённого объ­ёма, в которой хранятся данные. Физически любая переменная есть после­довательность из одного или нескольких байт. То, как сервер будет обраба­тывать последовательность, представляющую значение переменной, зави­сит от типа данных, ассоциированного с этой переменной.
  5. Подзапрос. В качестве выражения можно указать подзапрос, кото­рый подготовит соответствующий набор данных. По принципу работы это эквивалентно указанию колонки таблицы, только в случае подзапроса дан­ные не нужно явно «закачивать» в таблицу. Сервер сам сделает всю работу: создаст временную таблицу с необходимой структурой, скопирует в неё вы­бранные данные и подключит полученный набор данных в качестве выра­жения.
  6. Конструкции CASE, NULLIF и COALESCE. Эти конструкции позво­ляют использовать логическое условие для определения возвращае­мого результата. Конструкция CASE может быть представлена в виде гро­моздкого набора последовательных логических условий.
Логические операторы предоставляют большие возможность по управле­нию данными и широко используется при написании запросов и фрагментов про­грамм.

Оператор ALL

Expr {=||!=|>|>=|!>|ALL (subquery)

С помощью оператора ALL выполняется сравнение скалярного выражения со всеми значениями, возвращаемыми подзапросом. Скалярная величина сравни­вается с каждым значением, возвращаемым подзапросом. Если логическое усло­вие выполняется для всех возвращаемых подзапросом значений, только тогда всё условие считается выполненным.

Операторы SOME и ANY

Scalar_ expression {=||! = |>|>= | !>|

Scalar_ expression {=||! = |>|>= | !>|

С помощью этих операторов можно сравнить скалярную величину со всеми значениями в колонке таблицы. Разницы между использованием операторов ANY и SOME нет. Если хотя бы в одной строке содержится значение, равное скалярной величине, то условие выполняется.

Оператор BETWEEN

Test_ expression [NOT] BETWEEN begin_ expression AND end_ expression

С помощью этого оператора можно получить ответ на вопрос, лежит ли ве­личина в указанном диапазоне. Исходная величина задаётся аргументом test_ ex­pression. Аргумент begin_ expression задаёт начало диапазона, а аргумент end_ ex­pression – конец диапазона. Оператор BETWEEN можно без труда представить в виде двух операций сравнения:

Test_ expression>=begin_ expression AND test_ expression

Оператор EXISTS

EXSISTS (sudquery)

Этот оператор возвращает значение TRUE, если указанный подзапрос воз­вращает хотя бы одну строку. В противном случае возвращает значение FALSE.

Оператор IN

Test_ expression [NOT] IN

(subquery | expression [….n])

С помощью этого оператора можно проверить, соответствует ли выражение test_expression одному из перечисленных выражений или значений, возвращаемых подзапросом. При работе оператор IN можно заменить оператором «=ANY».

Оператор LIKE

Match_ expression [NOT] LIKE pattern [ESCAPE escape_ character]

С помощью этого оператора можно выполнять сравнение выражения с за­данным шаблоном. Пусть, например, вам нужно найти в базе данных всех авто­ров, номера телефонов которых начинаются на 415. Можно, конечно, сделать это с помощью обычных операций сравнения, вырезая первые три символа и сравни­вая их с «415».

Поиск можно легко выполнить с помощью оператора LIKE, в котором до­пускается использование символов-заменителей. Аргумент match_ expression за­даёт исходное выражение, для которого необходимо выполнить проверку. Шаб­лон для сравнения задаётся с помощью аргумента pattern. Символы заменители: «%», «_», «[]», «[^]». Операнд LIKE позволяет использовать специальный управ­ляющий символ, задаваемый с помощью аргумента escape_ character, который предписывает воспринимать следующий за ним символ, как обычный.

Все инструкции языка Transact-SQL разделены на три группы, называемые языком определения данных (Data Definition Language, DDL), языком обработки данных (Data Manipulation Language, DML) и языком управления данными (Data Control Language, DCL). Инструкции DDL предназначены для создания баз дан­ных и их объектов, инструкции DLM предназначены для чтения и модификации данных, а инструкции DCL –для защиты данных путём определения разрешений пользователей и ролей.Инструкции языка определения данных.

Основу любой инструкции языка определения данных (DDL) составляет одно из трёх ключевых слов: CREATE, ALTER или DROP. Остальные ключевые слова, входящие в инструкцию, определяют тип объекта и его параметры. Напри­мер, для создания в базе данных Test новой таблицы с информацией о контактах нужно открыть окно Query Analyzer, подключиться к SQL Server, открыть базу данных Test и выполнить следующую инструкцию:

CREATE TABLE Contacts

(First Name varchar (20), Last Name varchar (30), Phone char (12)).

Основным элементом этой инструкции является ключевое слово CREATE, которое определяет, что в базе данных необходимо создать новый объект. Ключе­вое слово TABLE указывает тип создаваемого объекта (таблица), а за ним следует имя таблицы и определения её столбцов. Удалить из базы данных таблицу Con­tacts можно с помощью инструкции DROP TABLE, в которой задаётся только имя таблицы. Инструкции языка управления данными.

Эти инструкции служат для предоставления, отмены и запрета разрешений на доступ к объектам баз данных SQL Server и разрешений на выполнение инст­рукций Transact-SQL. Следующая инструкция предоставляет пользователю Cathy разрешение на чтение данных из таблицы Contacts: GRANT SELECT ON Contacts TO Cathy

GRANT означает предоставление разрешения, ключевое слово SELECT указывает, что это разрешение на чтение данных, далее за ключевым словом ON следует имя объекта, на который предоставляется разрешение, а за ключевым словом TO – имя пользователя, которому предоставляется данное разрешение.Инструкции языка обработки данных.

В ходе эксплуатации баз данных интенсивнее всего используются инструк­ции языка обработки данных (DML), поскольку именно с их помощью выполня­ется чтение, добавление, удаление и изменение данных таблиц SQL Server. Глав­ным отличием DML от двух других подмножеств Transact-SQL является то, что инструкции DML используются не структурами SQL-Server, а для работы с дан­ными. Модификация данных SQL-Server выполняется с помощью инструкций IN­SERT, DELETE и UPDATE1.Создание объектов.

В отличиe от пользователей баз данных, которые в большинстве случаев выполняют запросы на выборку и модификацию данных, администраторы очень часто создают базы данных и их объекты. Последовательности инструкций, соз­дающих базы данных и наборы их объектов, часто сохраняют в виде сценариев, а затем используют для повторного создания тех же объектов. Пример инструкции, создающей базу данных Test:

CREATE DATABASE Test

В этой инструкции могут присутствовать дополнительные параметры, оп­ределяющие размер и расположение её файлов, но для создания базы данных со стандартными установками требуется только два ключевых слова CREATE и DATABASE и имя создаваемой базы данных.

После создания базы данных встаёт задача создания её объектов, прежде всего таблиц. Создание таблицы выполняется с помощью инструкции, начинаю­щейся с того же ключевого слова CREATE, за которым следует ключевое слово, определяющее, какой объект вы хотите создать. Однако прежде чем выполнить инструкцию, нужно сообщить SQL Server, с какой базой данных вы хотите рабо­тать. Для этого используется инструкция USE. SQL Server Query Analyzer позво­ляет выполнить эту инструкцию неявно, выбрав базу данных в поле со списком на панели управления. Однако рекомендуется явно включать инструкцию USE в сценарии, особенно если вы их сохраняете для повторного использования. Таким образом, сценарий создания таблицы должен начинаться с инструкции:

USE Test

Введите её в окне Query Analyzer и нажмите клавишу [Enter] для перехода к следующей строке. Затем введите инструкцию CREATE TABLE, указав в ней имя создаваемой таблицы и список её столбцов. Для удобства чтения инструкций можно отодвигать их фрагменты вправо, чтобы их структура была более нагляд­ной. Вот как должен выглядеть наш сценарий: USE Test

CREATE TABLE Contacts

(FirstName varchar (20), LasteName varchar (30), Phone char (12)).

Создание других объектов базы данных выполняется аналогичным образом. Все инструкции для их создания начинаются с ключевого слова CREATE, за ко­торым следует ключевое слово, определяющее тип создаваемого объекта, и имя объекта. Остальные параметры инструкции зависят от типа объекта. Управление объектами.

Все инструкции, изменяющие свойства баз данных и их объектов, начина­ются с ключевого слова ALTER, за которым следует ключевое слово, определяю­щее тип объекта: DATABASE, TABLE, VIEW, PROCEDURE, TRTGGER или FUNCTION. Инструкции ALTER можно использовать для изменения всей базы данных, представления, сохранённой процедуры и других объектов. Для каждого типа объектов в Transact-SQL имеется своя инструкция ALTER со своим набором опций. Последней задачей языка определения данных является удаление объек­тов. Эту операцию выполняют инструкции, начинающиеся с ключевого слова DROP. Нельзя удалить базу данных, к которой подключен хотя бы один пользова­тель, базу данных, в которую в данный момент загружаются данные, или базу данных публикации.Управление защитой.

SQL Server поддерживает некоторые типы разрешений на выполнение ин­струкций SELEKT, UPDATE, INSERT и DELETE. Каждое из этих разрешений для конкретного пользователя или роли может находится в одном из трёх состояний, устанавливаемых инструкциями: GRANT, DENY и REVOKE. Кроме того, разре­шения предоставляются на конкретные объекты баз данных. Например, конкрет­ному пользователю может быть предоставлено разрешение на чтение данных конкретной таблицы. Выполнению инструкций DCL обычно предшествует кро­потливая работа по проектированию системы защиты баз данных и их объектов. Только когда полностью подготовлен план распределения разрешений между пользователями и ролями баз данных и SQL Server, вы можете подготовить сце­нарий на языке Transact-SQL, который реализует этот план. Дальнейшие измене­ния в системе защиты, например, добавление новых пользователей и ролей и из­менение их разрешений, должны выполняться в строгом соответствии с планом согласно текущим потребностям предприятия.

Вот так, например, предоставить пользователю Sally разрешение на чтение данных таблицы Contacts:

USE Test

GRANT SELECT ON Contacts TO Sally

Эта инструкция будет выполнена только в том случае, если в базе данных имеется таблица или представление с именем Contacts и пользователь с именем Sally.

Если нужно запретить пользователю Sally чтение данных таблицы Contacts, то следует вместо инструкции GRANT поставить инструкцию DENY.

Заключение

Transact-SQL, на сегодняшний день, является самым распространенным инструментом в разработке баз данных. Освоивший его человек может создавать базы данных и их объекты, предоставлять пользователям доступ к серверу, базам данных и их объектам, создавать различные объекты баз данных, манипулировать данными, оптимизировать работу сервера и многое другое.

Список использованных источников

1 Андон Ф., Резниченко В., «Язык запросов SQL: Учебный курс», 2006
2

Бойко В.В., Савинков В.М. «Проектирование баз данных информационных систем» - М.: Финансы и статистика, 1989

3 Диго С.М., «Базы данных: проектирование и использование», 2005
4 Дунаев В.В., «Базы данных. Язык SQL: Для студента», 2006
5 Когаловский М.Р. «Энциклопедия технологий баз данных» - М.: Финансы и статистика, 2002
6 Коннолли Т., «Базы данных. Проектирование, реализация и сопровождение. Теория и практика», 2003
7

Мортенсен Л., «MCSE: SQL SERVER 7 Администрирование», 2000

8 Хаббард Дж. «Автоматизированное проектирование баз данных» - М.: Мир, 1984
9 Хоменко А «Базы данных: учебник для вузов. 2е издание» - Спб., 2002
10 Хомоненко А.Д., Цыганков В.М., Мальцев М.Г., «Базы данных», 2006

Приложения

Приложение А

en.coolreferat.com

Transact SQL - Видеоуроки

Transact SQL

Duration 13:27:56

Открыть все курсы от itvdn

Transact SQL - Полный список уроков

Развернуть / Свернуть
  • Урок 1. Transact SQL 00:51:56
  • Урок 2. DDL, DML 00:47:14
  • Урок 3. SELECT. Условия выборки 01:07:47
  • Урок 4. Built-in Functions. Scalar Functions 00:52:50
  • Урок 5. System Catalog. Aggregate functions 00:49:59
  • Урок 6. Целостность данных. Первичный, внешний ключ 01:27:56
  • Урок 7. Нормализация БД 00:34:46
  • Урок 8. Соединение таблиц. JOINs 01:28:56
  • Урок 9. Операторы работы с наборами. Представления 00:51:14
  • Урок 10. Subquery, Temporary table, Common table expression 01:07:47
  • Урок 11. Индексы 00:49:00
  • Урок 12. Поцедурный язык Transact-SQL 00:43:51
  • Урок 13. Хранимые процедуры. Пользовательские функции 00:59:03
  • Урок 14. Транзакции. Триггеры 00:55:37

Transact SQL - расширение языка SQL, созданное окнами для своего детища Microsoft SQL Server. Впринципе, ничего особо нового и фантастического от майкрософт никто не ожидает, поетому просмотр курса для вас будет легким и спокойным. Вы узнаете о принципах проектирования БД и научитесь использовать различные возможности T-SQL.

Твоя оценка

Следи за последними обновлениями и новостями в нашем coursehunters.club, или вступай в наш канал telegram.

Комментарии

coursehunters.net

Учебник. Составление инструкций Transact-SQL

 

Учебник «Составление инструкций Transact-SQL». Этот учебник предназначен для пользователей, не умеющих составлять инструкции SQL. Он поможет новым пользователям начать обучение с просмотра некоторых простых инструкций по созданию таблиц и вставке данных. Этот учебник использует язык Transact-SQL, Microsoft-реализацию стандарта SQL. Он представляет собой краткое введение в язык Transact-SQL и не заменяет обучение языку Transact-SQL. Инструкции в учебнике намеренно простые и не представляют всей сложности типичной производственной базы данных.

ПРИМЕЧАНИЕ. Если вы новичок, то, возможно, вам будет проще использовать SQL Server Management Studio, а не создавать инструкции Transact-SQL.

Дополнительные сведения об отдельных инструкциях см. в электронной документации по SQL Server либо по имени инструкции, либо используя вкладку "Содержание" для просмотра 1800 языковых элементов, перечисленных в алфавитном порядке в разделе Справочник по Transact-SQL (компонент Database Engine). Еще одной хорошей стратегией нахождения информации является ее поиск по ключевым словам, относящимся к интересующей вас тематике. Например, чтобы узнать, как возвратить часть даты (например, месяц), выполните поиск в индексе по датам [SQL Server], а затем используйте функции извлечения частей даты. Это приведет к разделу DATEPART (Transact-SQL). В качестве другого примера, чтобы выяснить, как работать со строками, ищите строковые функции. Это приведет к разделу Строковые функции (Transact-SQL).

В этом учебнике показано, как создать базу данных и таблицу в ней, вставить данные в таблицу, обновить их, прочитать и удалить данные, удалить таблицу. Будут созданы представления и хранимые процедуры, а для базы данных и данных будет настроен пользователь.

Учебник разделен на три занятия.

Урок 1. Создание объектов базы данныхВ этом занятии будет создана база данных, таблица в ней, вставлены данные в таблицу, затем данные будут обновлены и прочитаны.

Занятие 2. Настройка разрешений на объекты базы данныхВ этом занятии будут созданы имя входа и пользователь. Также будут созданы представление и хранимая процедура, и пользователю будет предоставлено разрешение на нее.

Урок 3. Удаление объектов базы данныхВ этом занятии доступ к данным будет запрещен, данные из таблицы удалены, сама таблица тоже удалена вместе с базой данных.

Чтобы завершить этот учебник, не нужно обладать знаниями языка SQL, но нужно иметь основные понятия о базах данных, таких как таблицы. С помощью этого учебника будут созданы база данных и пользователь Windows. Эти задачи требуют высокого уровня разрешений, так что следует войти в систему в качестве администратора.

В системе должно быть установлено следующее.

technet.microsoft.com

Microsoft SQL Server 2012. Основы T-SQL. - Microsoft - Учебники

Microsoft SQL Server 2012. Основы T-SQL.

Автор - Ицик Бен-Ган

В книге Ицика Бен-Гана "Microsoft SQL Server 2012: Основы T-SQL" вы познакомитесь с языком запросов T-SQL (Transact-SQL), который используется в сервере баз данных Microsoft SQL Server и является разновидностью стандартов ISO и ANSI для языка SQL. Вы изучите теорию, лежащую в основе этой технологии, узнаете, как писать код для получения и изменения данных, а также получите общее представление о программируемых объектах. Издание предназначено для начинающих, но вовсе не ограничивается набором пошаговых инструкций. По мере изучения синтаксиса запросов вы углубитесь в логику языка T-SQL и его элементов.

Язык SQL содержит множество уникальных аспектов и сильно отличается от других языков программирования. Книга поможет понять суть данной технологии и ее составляющих. Вы научитесь оперировать множествами и усвоите стиль SQL-программирования. Издание не привязано к конкретным версиям программного обеспечения, но в ней рассматриваются элементы языка, которые появились в последних модификациях SQL Server, в том числе в SQL Server 2012. При рассмотрении таких элементов будет указано, когда именно они введены. База данных SQL Server доступна не только локально, но и в виде облачного сервиса под названием Windows Azure SQL Database (ранее SQL Azure). Примеры из книги тестировались на обоих вариантах сервера. Усвоить информацию помогают приведенные упражнения. С их помощью вы сможете закрепить приобретенные знания на практике. Вы также встретите более сложные задачи, ориентированные на читателей, которые уверенно усваивают материал. Они помечены соответствующим образом и не обязательны для выполнения.

Издание рассчитано на разработчиков, использующих технологии T-SQL, DBAs и BI, специалистов по созданию отчетов, аналитиков, архитекторов и пользователей, которые только начинают работать с базой данных SQL Server и хотят научиться писать запросы и программировать на языке Transact-SQL. Книга состоит из десяти глав. Глава 1 — это фундамент, на который опирается весь остальной материал книги. Она содержит теоретические основы, здесь рассматриваются написание запросов и программирование на языке T-SQL, создание таблиц и обеспечение целостности данных. Различным аспектам получения и редактирования информации посвящены главы 2–8, в главе 9 затронута тема параллельных соединений и транзакций. В главе 10 вы познакомитесь с программируемыми объектами.

Издательство – Эксмо

Год издания – 2015

Формат книги - PDF

Размер - 10,2 Мб

СКАЧАТЬ с depositfiles.com

Или

СКАЧАТЬ с turbobit.net

Любители печатных изданий могут заказать бумажный экземпляр этой же книги здесь:

it-ebooks.ru