MS SQL Server
MS SQL Server - Общие сведения о базах данных

Общие сведения о базах данных MS SQL Server

Кроме четырех системных баз, SQL Server может обрабатывать до 32 734 баз данных, определяемых пользователем. Все объекты баз данных SQL Server так или иначе связаны с использованием, доступом и целостностью таблиц.
База данных представляет собой:
• набор взаимосвязанных таблиц;
• связанный набор страниц, выделенных для хранения данных MS SQL Server;
• совокупность данных при архивации;
• два и более файла;
• важную совокупность данных для целей защиты и управления.

 
MS SQL Server - Создание базы данных

Создание базы данных MS SQL Server

Базы данных создаются командой CREATE DATABASE. Создание баз данных разрешается любому пользователю с ролью системного администратора или всем, кому системный администратор предоставил такое право. Команда CREATE DATABASE имеет следующий синтаксис:

 
MS SQL Server - Модификация баз данных

Модификация баз данных MS SQL Server

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

 
MS SQL Server - Модификация баз данных - ALTER

Команда ALTER

Команда ALTER DATABASE позволяет изменить как определение, так и размер базы данных. Она имеет следующий синтаксис:

 
MS SQL Server - Уменьшение размера баз данных

Уменьшение размера баз данных

Уменьшение размера баз данных вручную выполняется командой DBCC SHRINKDATABASE. Она имеет следующий синтаксис:

DBCC SHRINKDATABASE
( имя_базы [, процент]
[, {NOTRUNCATE | TRUNCATEONLY}]
)

 
MS SQL Server - Настройка параметров баз данных

Настройка параметров баз данных

Многие параметры конфигурации SQL Server настраиваются на уровне баз данных. Конфигурация может осуществляться хранимой процедурой sp_dboption. Процедура sp_dboption имеет следующий синтаксис:

sp_dboption ['база_данных'] [, 'имя_параметра'] [, 'значение']

 
MS SQL Server - Просмотр сведений о базе данных

Просмотр сведений о базе данных

MS SQL Server содержит три стандартных процедуры каталога (см. табл. 3.6) для просмотра сведений о базах данных, файлах и группах: sp_helpdb, sp_helpfile и sp_helpfilegroup.
Процедура sp_helpdb выводит информацию о базе данных и о ее конфигурации. Хранимая процедура sp_helpdb имеет следующий синтаксис:

sp_helpdb [имя_базы]

 
MS SQL Server - Выборка данных - SELECT

Структура команды SELECT

Команда SELECT состоит из семи основных частей:
• Список выборки;
• FROM;
• WHERE;
• GROUP BY;
• HAVING;
• ORDER BY;
• COMPUTE.

Все части команды SELECT, кроме списка выборки, являются необязательными. Порядок их перечисления строго фиксирован. Синтаксис команды приведен ниже:

 
MS SQL Server - Выборка данных - SELECT FROM

Секция FROM

Секция FROM определяет источник(и) данных для выборки. Вы можете обращаться к данным из таблиц, представлений или производных таблиц. Синтаксис секции FROM приведен ниже:

FROM
{ <таблица_или_представление>| (команда_выборки)
[AS] псевдоним_таблицы (псевдоним_столбца , ...]
| <таблица_или_представление>| CROSS JOIN
<таблица_или_представление>
{ { INNER | { FULL | LEFT | RIGHT } [OUTER] JOIN }
<таблица_или_представление>
ON <условие_объединения>
}[, ...n]

 
MS SQL Server - Выборка данных - SELECT FROM - Уточнение имен объектов

Секция FROM - уточнение имен объектов

Уточненное имя таблицы записывается в форме ИмяСервера.ИмяБазы.ИмяВладельца.ИмяТаблицы:
• ИмяСервера — по умолчанию — текущий сервер;
• ИмяБазы — по умолчанию — текущая база данных;
• ИмяВладельца — по умолчанию сначала проверяется, принадлежит ли таблица текущему пользователю; если не принадлежит, по умолчанию используется владелец базы данных;
• ИмяТаблицы — имя таблицы; должно быть задано.
Если задано имя сервера, необходимо либо задать имена базы и владельца, либо воспользоваться заполнителем (..). Если задано имя базы данных, необходимо либо задать имя владельца, либо включить заполнитель:

 
MS SQL Server - Выборка данных - SELECT FROM WHERE

Секция WHERE

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

 
MS SQL Server - Выборка данных - SELECT FROM WHERE IN

Секция IN

Секция IN проверяет, принадлежит ли столбец набору (списку) значений. Команду IN всегда можно переписать в виде группы условий, объединяемых оператором OR. Ниже приведены два примера использования секций IN:

 
MS SQL Server - Выборка данных - SELECT FROM WHERE LIKE

Секция LIKE

Секция LIKE выполняет поиск по шаблону для символьных строк. Она используется в ситуациях, когда вас не интересует точное совпадение, — например, вы не знаете точного написания слова. Шаблон может содержать обычные и универсальные (wildcards) символы. В табл. 6.2 перечислены универсальные символы шаблонов и их смысл.

 
MS SQL Server - Выборка данных - SELECT FROM WHERE BETWEEN

Секция BETWEEN

Секция BETWEEN определяет верхнюю и нижнюю границы интервала. Она применяется в случаях, когда вам известны минимальное и максимальное значения искомой величины. Если нижняя граница больше верхней, не возвращается ни одна запись. Выражения должны принадлежать к типам данных, неявно преобразуемым друг в друга, или их явное преобразование должно выполняться в команде SELECT (преобразование типов данных рассматривается ниже). Пример использования секции BETWEEN продемонстрирован в следующем фрагменте:

 
MS SQL Server - Выборка данных - Проверка на NULL

Проверка на NULL

Для поиска неопределенных значений NULL SQL Server следует воспользоваться расширением Transaction SQL =NULL. Вы можете включить в список выборки функцию IS NULL и вернуть другое значение в случае, если столбец содержит NULL. Следующий пример показывает, как проверяются неопределенные значения и как извлекаются записи, у которых столбец не равен NULL:

 
MS SQL Server - Выборка данных - Секция GROUP BY (CUBE и ROLLUP)

Секция GROUP BY

Секция GROUP BY предназначена для включения промежуточных результатов в итоговый набор. Она используется в сочетании с агрегатными функциями (агрегатные функции подробно описаны ниже) для получения обобщающих данных. Агрегатная функция обрабатывает данные нескольких записей и вычисляет обобщающий результат, возвращаемый как часть списка выборки. При использовании GROUP BY все столбцы итогового набора либо являются агрегатными функциями, либо включаются в секцию GROUP BY. Секция GROUP BY имеет следующий синтаксис:

 
MS SQL Server - Выборка данных - Секция HAVING

Секция HAVING

Секция HAVING похожа на WHERE, однако она может использоваться только в сочетании с секцией GROUP BY. Секция HAVING содержит только те столбцы, которые присутствуют в списке выборки. В ней можно использовать агрегатные функции, отсутствующие в списке выборки. Следующий фрагмент демонстрирует применение секции HAVING:

 
MS SQL Server - Выборка данных - Секция ORDER BY

Секция ORDER BY

В процессе выборки данные возвращаются в порядке их нахождения SQL Server. Ключевое слово ORDER BY позволяет отменить такое поведение и определить порядок возвращения записей. Конкретный порядок зависит от системного порядка сортировки. Результат можно сортировать по нескольким столбцам, однако общая длина данных во всех сортируемых столбцах должна быть меньше 8060 байт. Если превысить этот порог, запрос не будет работать.

 
Функции SQL Server - скалярные, агрегатные, функции наборов записей

Функции

Функции позволяют SQL Server выполнять вычисления с данными и генерировать результаты. Они похожи на функции любого другого языка программирования. Функции SQL Server делятся на три типа:

• Скалярные — обрабатывают одно значение (или ни одного) и возвращают один результат.
• Агрегатные — обрабатывают набор значений.
• Функции наборов записей — заменяют имена таблиц.

 
Функции SQL Server - Конструкция CASE

Конструкция CASE

В отличие от других скалярных функций, CASE скорее является синтаксической конструкцией — она рассматривает несколько условий для получения одного результата. В простейшем варианте выражение сравнивается с набором простых выражений. Более сложный вариант (формат CASE с поиском) вычисляет набор логических выражений. Синтаксис функции CASE:

 
Функции SQL Server - Функции даты

Функции SQL Server - Функции даты

SQL Server содержит много функций для работы с датами. В большинстве функций даты одним из параметров является компонент даты. Допустимые значения компонентов перечислены ниже:

 
Функции SQL Server - Преобразование типов данных

Функции SQL Server - Преобразование типов данных

MSSQL Server выполняет неявное преобразование различных типов данных. При этом преобразуемые типы данных определяются в соответствии с правилами приоритета; типы данных с низким приоритетом преобразуются в данные с высоким приоритетом. Приоритеты различных типов данных (по убыванию) перечислены ниже:

 
Функции SQL Server - Агрегатные функции

Функции SQL Server - Агрегатные функции

Агрегатные функции обобщают информацию нескольких элементов данных и возвращают одно значение. Они используются в сочетании с секциями GROUP BY и HAVING. Агрегатные функции перечислен ниже

 
Функции SQL Server - Функции наборов записей

Функции SQL Server - Функции наборов записей

Функции наборов записей (rowset) могут использоваться в команде SELECT вместо имен таблиц. Данная категория содержит четыре функции:

 
MS SQL Server - Объединение таблиц

MS SQL Server - Объединение таблиц.

Довольно часто данные, которые требуется извлечь, находятся в нескольких таблицах. Конструкция JOIN позволяет создать объединение, то есть выбрать данные из многих (до 256) таблиц, представлений или производных таблиц.

 
MS SQL Server - Расширенные объединения TSQL

MS SQL Server - Расширенные объединения TSQL

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

 
MS SQL Server - Объединения ANSI

MS SQL Server - Объединения ANSI

SQL Server поддерживает объединения стандарта ANSI. В объединениях ANSI тип и условие объединения задаются в секции FROM. Стандарт ANSI поддерживает внутренние, внешние и ортогональные объединения. В отличие от расширенных объединений TSQL, объединения ANSI допускают использование таблицы в качестве как внутренней, так и внешней таблицы объединения.

 
MS SQL Server - Подзапросы

MS SQL Server - Подзапросы (subquery)

Подзапросы (subquery) позволяют включать команды SELECT в другие запросы. Если таблица принадлежит не внешнему запросу, а вложенному подзапросу, то столбцы этой таблицы могут использоваться только в подзапросе. Подзапросы не могут содержать секций ORDER BY, COMPUTE или FOR BROWSE. Они могут присутствовать в секциях FROM в качестве производных таблиц, а также в секциях WHERE и HAVING.

 
MS SQL Server - Секция TOP

MS SQL Server - Секция TOP

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

 
MS SQL Server - Выборка данных из столбцов типа TEXT и IMAGE

MS SQL Server - Выборка данных из столбцов типа TEXT и IMAGE

При выборке данных из столбцов типа TEXT, NTEXT или IMAGE SQL Server извлекает данные объема @@TEXTSIZE. Для управления выборкой данных типов TEXT, NTEXT или IMAGE в SQL Server существует команда READTEXT, обладающая следующим синтаксисом: