SELECT;WHERE;SELECT;SELECT;SELECT;В основе языка
Зарезервированные слова
Зарезервированное слово – это одно из средств, используемых языком SELECT в качестве имени столбца, вы должны при ссылке на этот столбец в запросе указать [SELECT], чтобы SQL Server воспринял это как идентификатор. (По возможности старайтесь избегать использования зарезервированных слов в качестве идентификаторов.)
То, что мы называем командой, в документации SQL Server Books Online обозначается как "зарезервированные ключевые слова" (reserved keywords). Этот термин не очень удачен, поскольку нет большого различия между "зарезервированные ключевые слова" и любым другим зарезервированным словом. По этой причине мы будем использовать термин команда (command), который означает определенный набор зарезервированных ключевых слов, которые представляют действия, выполняемые SQL Server.
Принимая во внимание сложность приложений, которые могут быть созданы с помощью
Изучать команды
Мы уже использовали команды CREATE и ALTER, основываясь на заданных вами параметрах.
Общение с SQL Server
Большинство приложений баз данных используют традиционный язык программирования, такой как Microsoft Visual Basic, для создания интерактивного интерфейса с SQL Server. Используя средства интерфейса, предоставляемые языком, эти приложения представляют данные пользователям в удобной и "дружественной" форме. "За сценой" же они, тем не менее, используют команды
Когда вы используете обычные языки программирования, язык сам определяет, как исполнить команды. Некоторые окружения, например такие, как Microsoft Access, предоставляют интерактивные программные инструменты, схожие с
Наиболее важные команды SQL относятся к группе команд
| Команда | Функция |
|---|---|
INSERT |
Вставляет строки в таблицу или представление. |
UPDATE |
Изменяет строки в таблице или представлении. |
DELETE |
Удаляет строки из таблицы или представления. |
SELECT |
Извлекает строки из таблицы или представления. |
|
Удаляет все строки из таблицы или представления. |
BULK INSERT |
Вставляет строки из файла данных в таблицу или представление. |
USE |
Выполняет соединение с базой данных. |
Команды
| Команда | Функция |
|---|---|
CREATE |
Определяет новый объект базы данных. |
ALTER |
Изменяет определение объекта базы данных. |
DROP |
Удаляет объект базы данных из базы данных. |
Большинство команд
Команды администрирования базы данных показаны в таблице 24.3. Команды и управляют средствами ограничения доступа и защиты базы данных (безопасностью). Команды BACKUP, и UPDATE STATISTICS дублируют функциональные возможности планировщика обслуживания в
Команда SET используется совместно с ключевыми словами, например такими, как DATEFORMAT и LANGUAGE, для управления текущим сеансом SQL Server. В
Последние две команды администрирования базы данных, и SHUTDOWN, используются для управления работой SQL Server. Команда заканчивает выполнение операций, ассоциированных с соединением с определенным пользователем. Команда SHUTDOWN безусловно завершает работу SQL Server.
| Команда | Функция |
|---|---|
|
Устанавливает определенные разрешения для объекта безопасности. |
DENY |
Отключает определенные разрешения для объекта безопасности, и предотвращает наследование объектом разрешений через его членство в роли или группе. |
|
Удаляет определенное разрешение для объекта безопасности. |
BACKUP |
Создает резервную копию базы данных или журнала трансакций. |
|
Восстанавливает данные после резервирования. |
UPDATE STATISTICS |
Обновляет статистику, используемую обработчиком запросов. |
SET |
Управляет окружением SQL Server. |
|
Завершает соединение и все связанные с ним процессы. |
SHUTDOWN |
Отключает SQL Server. |
Остались нерассмотренными еще три набора команд
Набор команд управления потоком контролирует выполнением операторов в SQL-сценарии. Команды управления потоком мы рассмотрим в уроке 26. Набор команд для работы с курсорами управляет поведением объекта специального типа – курсора, который указывает на определенную запись в таблице или представлении. Курсоры мы рассмотрим в уроке 27.
Операцией (operator) мы будем называть символ, обозначающий действие, которое будет выполнено программой SQL Server. В уроке 12 уроке мы использовали SELECT.
Операции
Большинство операций являются бинарными. Операция называется бинарной, если она оперирует с двумя значениями. Операция + в выражении 4+3, и операция < в выражении MonthSales < MonthBudget являются примерами
Когда вы создаете
Ниже представлены операторы в порядке их
Вы можете управлять порядком вычисления, используя скобки, как в предыдущем примере.
Как и команды
Другим оператором комментариев являются два оператора, /* и */, которые используются вместе. SQL Server будет игнорировать все, что находится между первым оператором комментария /* и вторым оператором комментария */, причем не важно сколько строк расположено между ними.
На рис. 24.1 показано использование оператора комментариев.
(рис 24.1) Transact-SQL поддерживает два оператора комментариев.Совет. Operator /* и */ полезны при временном отключении operators
| Оператор | Назначение |
|---|---|
| + | Сложение. |
| - | Вычитание. |
| * | Умножение. |
| / | Деление. |
| % | Остаток от деления. |
| + | Положительное число. |
| - | Отрицательное число. |
Используйте арифметические операции в операторе SELECT
Query Analyzer откроет пустое окно Query (Запрос).
Query Analyzer отобразит диалоговое окно Open Query File (Открытие файла запроса).

Query Analyzer отобразит результаты в панели сетки Grids Pane.
В уроке 13 мы уже рассматривали использование операций сравнения при конструировании фразы WHERE. Соответствующие операторы отображены в таблице 24.5. Операторы сравнения возвращает булевые значения "истина" (TRUE) или "ложь" (FALSE).
| Оператор | Значение |
|---|---|
| = | Равно |
| > | Больше |
| < | Меньше |
| >= | Больше или равно |
| <= | Меньше или равно |
| <> | Не равно |
Используйте операции сравнения в фразе CLAUSE
Query Analyzer откроет пустое окно Query (Запрос).
Query Analyzer отобразит диалоговое окно Open Query File (Открытие файла сценария).

Query Analyzer отобразит результаты в панели сетки Grids Pane.
Как и операции сравнения, логические операции возвращают булевые значения "истина" ( TRUE ) или "ложь" ( FALSE ), но их использование ограничивается сравнением булевых значений. В таблице 24.6 представлены три
| Оператор | Значение |
|---|---|
AND |
TRUE, если оба значения есть TRUE. |
NOT |
Инвертирует значения булевого оператора. |
OR |
TRUE, если хотя бы один из операторов есть TRUE. |
Используйте логические операции в операторе SELECT
Query Analyzer откроет пустое окно Query (Запрос).
Query Analyzer отобразит диалоговое окно Open Query File (Открытие файла сценария).

Query Analyzer отобразит результаты в панели сетки Grids Pane.
Выполнение побитных операций очень схоже с выполнением логических операций, но в то время как логические операции возвращают результаты, основанные на булевых значениях,
Побитные операторы $ и | работают так же, как и их логические собратья, за исключением того, что они сравнивают каждый бит двух значений, а не два значения целиком.
Оператор ^ не имеет соответствующего логического эквивалента. В булевой алгебре, булевое OR (ИЛИ) возвращает TRUE (истина), если хотя бы одно или оба значения есть TRUE (истина). Однако булевое исключающее OR (ИЛИ) возвращает TRUE (истина), если одно, но не оба сравниваемых значения есть TRUE (истина). То же самое делает и оператор ^, который возвращает TRUE (истина), только если одно, но не оба сравниваемых бита есть TRUE (истина).
| Оператор | Значение |
|---|---|
Побитное AND (И). |
|
| | | Побитное OR (ИЛИ). |
| ^ | Побитное исключающее OR (ИЛИ). |
| ~ | Побитное NOT. |
Битовое представление
При данных обстоятельствах вы должны избегать использования битового представления в соответствующей базе данных. Однако битовое представление будет незаменимо при использовании наследуемых данных, и
Используйте побитные операции в операторе SELECT
Query Analyzer откроет пустое окно Query (Запрос).
Query Analyzer отобразит диалоговое окно Open Query File (Открытие файла запроса).

Query Analyzer отобразит результаты в панели сетки Grids Pane.
Операция присвоения =, присваивает значение, стоящее справа от, оператора значению, стоящему слева от оператора. Учтите, что здесь порядок отличается от того, который вы изучали в школе: не "a+b=c", а "c=a+b". Мы будем использовать операцию присвоения далее в этом уроке при изучении переменных.
| Оператор | Значение |
|---|---|
| + | Конкатенация строк. |
| = | Присвоение. |
Используйте операцию конкатенацию в операторе SELECT
Query Analyzer откроет пустое окно Query (Запрос).
Query Analyzer отобразит диалоговое окно Open Query File (Открытие файла сценария).

Query Analyzer отобразит результаты в панели сетки Grids Pane.
Функция очень похожа на операции, но вместо одного символа, соответствующего выполнению одного действия, функция состоит из множества операций. Функция может выполнять одно логическое (logical) действие, но это логическое действие может состоять из любого множества физических действий. Например, функция, перемещающая строку из одной таблицы в другую, выполняет одно логическое действие (перемещение), но при этом два отдельных физических действия ( INSERT и DELETE ).
Нововведением в SQL Server 2000 является возможность создания своих собственных функций, которые называются пользовательскими функциями (
Примечание. В таблицах в этом разделе представлены не все функции. Полный перечень функций доступен в панели
Встроенные функции SQRT(9) всегда возвращает 3, следовательно, функция SQRT детерминированная. Недетерминированная функция, такая как RAND, наоборот, при каждом обращении всегда возвращает различные значения.
В WHERE и т. д. Тем не менее, детерминизм функции определяет, может ли она использоваться в качестве индекса. Индекс всегда должен возвращать согласующиеся результаты, и только детерминированные функции могут использоваться в индексах.
| Функция | Параметры | Операция |
|---|---|---|
DATEADD |
единицы, число, дата | Рассчитывает новую дату, добавляя к существующей указанное число единиц (дней, месяцев, часов и т.д.). |
DATEDIFF |
единицы, нач_дата, кон_дата | Возвращает количество единиц времени, между двумя указанными датами. |
DATENAME |
единицы, дата | Возвращает имя указанной единицы времени даты в виде строки. |
DATEPART |
единицы, дата | Возвращает имя указанной единицы времени даты в виде числа. |
DAY |
дата | Возвращает день для указанной даты в виде числа. |
GETDATE |
Возвращает текущее системное время и дату. | |
MONTH |
дата | Возвращает месяц для указанной даты в виде числа. |
YEAR |
дата | Возвращает год для указанной даты в виде числа. |
Используйте функции даты
Query Analyzer откроет пустое окно Query (Запрос).
Query Analyzer отобразит диалоговое окно Open Query File (Открытие файла сценария).

Query Analyzer отобразит результаты в панели сетки Grids Pane.
Математические функции, представленные в таблице 24.10, выполняют числовые вычисления.
| Функция | Параметры | Операция |
|---|---|---|
ABS |
numeric_expression |
Возвращает абсолютное значение выражения numeric_expression. |
|
float_expression |
Возвращает арккосинус выражения float_expression. |
ASIN |
float_expression |
Возвращает арксинус выражения float_expression. |
ATAN |
float_expression |
Возвращает арктангенс выражения float_expression. |
ATN2 |
float_expression, float_expression |
Возвращает угол в радианах, тангенс которого находится между двумя значениями float_expression. |
|
numeric_expression |
Возвращает ближайшее число, большее или равное выражению numeric_expression. |
COS |
float_expression |
Возвращает тригонометрический косинус выражения float_expression. |
|
float_expression |
Возвращает тригонометрический котангенс выражения float_expression. |
|
numeric_expression |
Данный угол numeric_expression в радианах возвращает в градусах. |
EXP |
float_expression |
Возвращает экспоненциальное значение выражения float_expression. |
|
numeric_expression |
Возвращает ближайшее число, меньшее или равное выражению numeric_expression. |
LOG |
float_expression |
Возвращает натуральный логарифм выражения float_expression. |
LOG10 |
float_expression |
Возвращает десятичный логарифм выражения float_expression. |
PI |
Возвращает значение константы pi. | |
POWER |
numeric_expression, y |
Возвращает значение выражения numeric_expression, возведенное в степень y. |
|
numeric_expression |
Данный угол numeric_expression в градусах возвращает угол в радианах. |
RAND |
[ |
Возвращает случайное значение в интервале от 0 до 1. |
ROUND |
numeric_expression, lenght |
Возвращает округленное с указанной точностью значение выражения numeric_expression. |
SIGN |
float_expression |
Возвращает +1, если numeric_expression положительно, 0 если numeric_expression ноль, и -1 если numeric_expression отрицательно. |
SIN |
float_expression |
Возвращает тригонометрический синус даваемого в радианах угла float_expression. |
SQUARE |
float_expression |
Возвращает квадрат float_expression. |
SQRT |
float_expression |
Возвращает квадратный корень из float_expression. |
TAN |
float_expression |
Возвращает тангенс выражения float_expression. |
Используйте математические функции
Query Analyzer откроет пустое окно Query (Запрос).
Query Analyzer отобразит диалоговое окно Open Query File (Открыть файл запроса).

Query Analyzer отобразит результаты в панели сетки Grids Pane.
Функции агрегирования, представленные в таблице 24.11, принимают в качестве параметра коллекцию значений и возвращают одиночное значение.
| Функция | Операция |
|---|---|
AVG |
Возвращает среднее значение из коллекции, игнорируя нулевые (NULL) значения. |
COUNT |
Возвращает количество значений в коллекции, включая и нулевые. |
MAX |
Возвращает наибольшее значение из коллекции. |
MIN |
Возвращает наименьшее значение из коллекции. |
SUM |
Возвращает сумму значений из коллекции, игнорируя нулевые значения. |
STDEV |
Возвращает стандартное статистическое отклонение для каждого из значений в коллекции. |
STDEVP |
Возвращает стандартное статистическое отклонение все совокупности значений в коллекции. |
VAR |
Возвращает статистическую вариацию значений в группе. |
VARP |
Возвращает статистическую вариацию всех значений в коллекции. |
Используйте функции агрегирования
Query Analyzer откроет пустое окно Query (Запрос).
Query Analyzer отобразит диалоговое окно Open Query File (Открытие файла запроса).

Query Analyzer отобразит результаты в панели сетки Grids Pane.
Функции метаданных возвращают информацию о данных, а не сами данные. Имеется очень большое количество функций метаданных. В таблице 24.12 представлен перечень наиболее часто используемых функций метаданных.
| Функция | Параметры | Операция |
|---|---|---|
COL_LENGTH |
|
Возвращает количество байт столбца column. |
COL_NAME |
tableID, columnId |
Возвращает имя columnID. |
COLUMNPROPERTY |
ID, column, property |
Возвращает информацию о свойстве property столбца column. |
DATABASEPROPERTY |
database, property |
Возвращает значение свойства property. |
DB_ID |
database_name |
Возвращает идентификационный номер базы данных Database_name. |
DB_NAME |
databaseID |
Возвращает имя базы данных по идентификатору databaseID. |
INDEX_COL |
table, indexID, keyed |
Возвращает имя индексированного столбца по идентификаторам indexID и keyID. |
INDEXPROPERTY |
tableID, index, property |
Возвращает информацию о свойстве property индекса index. |
OBJECT_ID |
object |
Возвращает идентификационный номер объекта object базы данных. |
OBJECT_NAME |
objectID |
Возвращает имя объекта по его идентификационному номеру objectID. |
OBJECTPROPERTY |
ID, property |
Возвращает информацию о свойстве property объекта по его идентификационному номеру ID. |
SQL_VARIANT_PROPERTY |
SQL_variant, property |
Возвращает указанное свойство property варианта Sql_variant. |
TYPEPROPERTY |
|
Возвращает информацию о свойстве property для типа данных . |
Используйте функции метаданных
Query Analyzer откроет пустое окно Query (Запрос).
Query Analyzer отобразит диалоговое окно Open Query File (Открытие файла запроса).

Query Analyzer отобразит результаты в панели сетки Grids Pane.
Функции безопасности, представленные в таблице 24.13, возвращают информацию о привилегиях безопасности, имеющихся для пользователей и ролей.
| Функция | Параметры | Операция |
|---|---|---|
HAS_DBACCESS |
database_name |
Показывает, имеет ли текущий пользователь доступ к базе данных database_name. |
IS_MEMBER |
group_or_role |
Показывает, имеет ли текущий пользователь членство в группе или роли group_or_role. |
IS_SRVROLEMEMBER |
role [, login] |
Показывает, имеет ли текущая или указанная учетная запись login членство в роли role. |
SUSER_SID |
[login] |
Для текущей или указанной учетной записи login возвращает идентификационный номер безопасности (SID). |
SUSER_SNAME |
[] |
Возвращает |
USER_ID |
[user] |
Возвращает идентификационный номер текущего или указанного пользователя user. |
USER |
Возвращает имя текущего |
Используйте функции безопасности
Query Analyzer откроет пустое окно Query (Запрос).
Query Analyzer отобразит диалоговое окно Open Query File (Открытие файла запроса).

Query Analyzer отобразит результаты в панели сетки Grids Pane.
| Функция | Параметры | Операция |
|---|---|---|
ASCII |
char_expression |
Возвращает ASCII-код самого левого символа в строке char_expression. |
CHAR |
integer_expression |
Возвращает ASCII-символ, код которого равен integer_expression. |
CHARINDEX |
char_expression, char_expression [, start_position] |
Возвращает позицию первого выражения char_expression во втором выражении char_expression. |
LEFT |
char_expression, integer_expression |
Возвращает крайние слева символы integer_expression в выражении char_expression. |
LEN |
char_expression |
Возвращает количество символов в выражении char_expression. |
LOWER |
char_expression |
Возвращает выражение char_expression, в котором все символы приведены к нижнему регистру. |
LTRIM |
char_expression |
Возвращает выражение char_expression с удаленными начальными пробелами. |
NCHAR |
integer_expression |
Возвращает символ UNICODE, код которого задает integer_expression. |
REPLACE |
char_expression, char_expression, char_expression |
Находит все вхождения второй строки char_expression в первую char_expression и заменяет их на третью char_expression. |
RIGHT |
char_expression, integer_expression |
Возвращает крайние справа символы integer_expression в строке char_expression. |
RTRIM |
char_expression |
Возвращает строку char_expression с удаленными конечными пробелами. |
|
char_expression |
Возвращает четырехзначный код для char_expression. |
SPACE |
integer_expression |
Возвращает число integer_expression пробелов. |
SUBSTRING |
char_expression start, lenght |
Возвращает подстроку char_expression указанной длины lenght, начиная с символа start. |
UNICODE |
unicode_expression |
Возвращает значение UNICODE для первого символа в unicode_expression. |
UPPER |
char_expression |
Возвращает выражение char_expression, в котором все символы приведены к верхнему регистру. |
Используйте строковые функции
Query Analyzer откроет пустое окно Query (Запрос).
Query Analyzer отобразит диалоговое окно Open Query File (Открыие файла запроса).

Query Analyzer отобразит результаты в панели сетки Grids Pane.
Системные функции возвращают информацию об окружении SQL Server. Так же, как и функций метаданных, системных функций очень много и все они доступны через панель
| Функция | Параметры | Операции |
|---|---|---|
APP_NAME |
Возвращает имя приложения. | |
DATALENGHT |
выражение | Возвращает количество байт, используемых для хранения выражения. |
ISDATE |
выражение | Определяет, корректно ли данное выражение. |
ISNULL |
выражение | Определяет, является ли данное выражение нулем. |
ISNUMERIC |
выражение | Определяет, является ли данное выражение числом. |
NEWID |
Создает новый уникальный идентификационный номер uniqueidentifier. | |
NULLIF |
выражение, выражение | Возвращает NULL, если первое и второе выражение одинаковы. |
PARSENAME |
object_name, name_part |
Возвращает часть имени name_part объекта object_name. |
SYSTEM_USER |
Возвращает текущее имя пользователя системы. | |
USER_NAME |
[id] |
Возвращает имя текущего пользователя или пользователя по указанному id. |
Используйте системные функции
Query Analyzer откроет пустое окно Query (Запрос).
Query Analyzer отобразит диалоговое окно Open Query File (Открытие файла запроса).

Query Analyzer отобразит результаты в панели сетки Grids Pane.
SELECT;WHERE;SELECT;SELECT;SELECT;В основе языка
Зарезервированные слова
Зарезервированное слово – это одно из средств, используемых языком SELECT в качестве имени столбца, вы должны при ссылке на этот столбец в запросе указать [SELECT], чтобы SQL Server воспринял это как идентификатор. (По возможности старайтесь избегать использования зарезервированных слов в качестве идентификаторов.)
То, что мы называем командой, в документации SQL Server Books Online обозначается как "зарезервированные ключевые слова" (reserved keywords). Этот термин не очень удачен, поскольку нет большого различия между "зарезервированные ключевые слова" и любым другим зарезервированным словом. По этой причине мы будем использовать термин команда (command), который означает определенный набор зарезервированных ключевых слов, которые представляют действия, выполняемые SQL Server.
Принимая во внимание сложность приложений, которые могут быть созданы с помощью
Изучать команды
Мы уже использовали команды CREATE и ALTER, основываясь на заданных вами параметрах.
Общение с SQL Server
Большинство приложений баз данных используют традиционный язык программирования, такой как Microsoft Visual Basic, для создания интерактивного интерфейса с SQL Server. Используя средства интерфейса, предоставляемые языком, эти приложения представляют данные пользователям в удобной и "дружественной" форме. "За сценой" же они, тем не менее, используют команды
Когда вы используете обычные языки программирования, язык сам определяет, как исполнить команды. Некоторые окружения, например такие, как Microsoft Access, предоставляют интерактивные программные инструменты, схожие с
Наиболее важные команды SQL относятся к группе команд
| Команда | Функция |
|---|---|
INSERT |
Вставляет строки в таблицу или представление. |
UPDATE |
Изменяет строки в таблице или представлении. |
DELETE |
Удаляет строки из таблицы или представления. |
SELECT |
Извлекает строки из таблицы или представления. |
|
Удаляет все строки из таблицы или представления. |
BULK INSERT |
Вставляет строки из файла данных в таблицу или представление. |
USE |
Выполняет соединение с базой данных. |
Команды
| Команда | Функция |
|---|---|
CREATE |
Определяет новый объект базы данных. |
ALTER |
Изменяет определение объекта базы данных. |
DROP |
Удаляет объект базы данных из базы данных. |
Большинство команд
Команды администрирования базы данных показаны в таблице 24.3. Команды и управляют средствами ограничения доступа и защиты базы данных (безопасностью). Команды BACKUP, и UPDATE STATISTICS дублируют функциональные возможности планировщика обслуживания в
Команда SET используется совместно с ключевыми словами, например такими, как DATEFORMAT и LANGUAGE, для управления текущим сеансом SQL Server. В
Последние две команды администрирования базы данных, и SHUTDOWN, используются для управления работой SQL Server. Команда заканчивает выполнение операций, ассоциированных с соединением с определенным пользователем. Команда SHUTDOWN безусловно завершает работу SQL Server.
| Команда | Функция |
|---|---|
|
Устанавливает определенные разрешения для объекта безопасности. |
DENY |
Отключает определенные разрешения для объекта безопасности, и предотвращает наследование объектом разрешений через его членство в роли или группе. |
|
Удаляет определенное разрешение для объекта безопасности. |
BACKUP |
Создает резервную копию базы данных или журнала трансакций. |
|
Восстанавливает данные после резервирования. |
UPDATE STATISTICS |
Обновляет статистику, используемую обработчиком запросов. |
SET |
Управляет окружением SQL Server. |
|
Завершает соединение и все связанные с ним процессы. |
SHUTDOWN |
Отключает SQL Server. |
Остались нерассмотренными еще три набора команд
Набор команд управления потоком контролирует выполнением операторов в SQL-сценарии. Команды управления потоком мы рассмотрим в уроке 26. Набор команд для работы с курсорами управляет поведением объекта специального типа – курсора, который указывает на определенную запись в таблице или представлении. Курсоры мы рассмотрим в уроке 27.
Операцией (operator) мы будем называть символ, обозначающий действие, которое будет выполнено программой SQL Server. В уроке 12 уроке мы использовали SELECT.
Операции
Большинство операций являются бинарными. Операция называется бинарной, если она оперирует с двумя значениями. Операция + в выражении 4+3, и операция < в выражении MonthSales < MonthBudget являются примерами
Когда вы создаете
Ниже представлены операторы в порядке их
Вы можете управлять порядком вычисления, используя скобки, как в предыдущем примере.
Как и команды
Другим оператором комментариев являются два оператора, /* и */, которые используются вместе. SQL Server будет игнорировать все, что находится между первым оператором комментария /* и вторым оператором комментария */, причем не важно сколько строк расположено между ними.
На рис. 24.1 показано использование оператора комментариев.
(рис 24.1) Transact-SQL поддерживает два оператора комментариев.Совет. Operator /* и */ полезны при временном отключении operators
| Оператор | Назначение |
|---|---|
| + | Сложение. |
| - | Вычитание. |
| * | Умножение. |
| / | Деление. |
| % | Остаток от деления. |
| + | Положительное число. |
| - | Отрицательное число. |
Используйте арифметические операции в операторе SELECT
Query Analyzer откроет пустое окно Query (Запрос).
Query Analyzer отобразит диалоговое окно Open Query File (Открытие файла запроса).

Query Analyzer отобразит результаты в панели сетки Grids Pane.
В уроке 13 мы уже рассматривали использование операций сравнения при конструировании фразы WHERE. Соответствующие операторы отображены в таблице 24.5. Операторы сравнения возвращает булевые значения "истина" (TRUE) или "ложь" (FALSE).
| Оператор | Значение |
|---|---|
| = | Равно |
| > | Больше |
| < | Меньше |
| >= | Больше или равно |
| <= | Меньше или равно |
| <> | Не равно |
Используйте операции сравнения в фразе CLAUSE
Query Analyzer откроет пустое окно Query (Запрос).
Query Analyzer отобразит диалоговое окно Open Query File (Открытие файла сценария).

Query Analyzer отобразит результаты в панели сетки Grids Pane.
Как и операции сравнения, логические операции возвращают булевые значения "истина" ( TRUE ) или "ложь" ( FALSE ), но их использование ограничивается сравнением булевых значений. В таблице 24.6 представлены три
| Оператор | Значение |
|---|---|
AND |
TRUE, если оба значения есть TRUE. |
NOT |
Инвертирует значения булевого оператора. |
OR |
TRUE, если хотя бы один из операторов есть TRUE. |
Используйте логические операции в операторе SELECT
Query Analyzer откроет пустое окно Query (Запрос).
Query Analyzer отобразит диалоговое окно Open Query File (Открытие файла сценария).

Query Analyzer отобразит результаты в панели сетки Grids Pane.
Выполнение побитных операций очень схоже с выполнением логических операций, но в то время как логические операции возвращают результаты, основанные на булевых значениях,
Побитные операторы $ и | работают так же, как и их логические собратья, за исключением того, что они сравнивают каждый бит двух значений, а не два значения целиком.
Оператор ^ не имеет соответствующего логического эквивалента. В булевой алгебре, булевое OR (ИЛИ) возвращает TRUE (истина), если хотя бы одно или оба значения есть TRUE (истина). Однако булевое исключающее OR (ИЛИ) возвращает TRUE (истина), если одно, но не оба сравниваемых значения есть TRUE (истина). То же самое делает и оператор ^, который возвращает TRUE (истина), только если одно, но не оба сравниваемых бита есть TRUE (истина).
| Оператор | Значение |
|---|---|
Побитное AND (И). |
|
| | | Побитное OR (ИЛИ). |
| ^ | Побитное исключающее OR (ИЛИ). |
| ~ | Побитное NOT. |
Битовое представление
При данных обстоятельствах вы должны избегать использования битового представления в соответствующей базе данных. Однако битовое представление будет незаменимо при использовании наследуемых данных, и
Используйте побитные операции в операторе SELECT
Query Analyzer откроет пустое окно Query (Запрос).
Query Analyzer отобразит диалоговое окно Open Query File (Открытие файла запроса).

Query Analyzer отобразит результаты в панели сетки Grids Pane.
Операция присвоения =, присваивает значение, стоящее справа от, оператора значению, стоящему слева от оператора. Учтите, что здесь порядок отличается от того, который вы изучали в школе: не "a+b=c", а "c=a+b". Мы будем использовать операцию присвоения далее в этом уроке при изучении переменных.
| Оператор | Значение |
|---|---|
| + | Конкатенация строк. |
| = | Присвоение. |
Используйте операцию конкатенацию в операторе SELECT
Query Analyzer откроет пустое окно Query (Запрос).
Query Analyzer отобразит диалоговое окно Open Query File (Открытие файла сценария).

Query Analyzer отобразит результаты в панели сетки Grids Pane.
Функция очень похожа на операции, но вместо одного символа, соответствующего выполнению одного действия, функция состоит из множества операций. Функция может выполнять одно логическое (logical) действие, но это логическое действие может состоять из любого множества физических действий. Например, функция, перемещающая строку из одной таблицы в другую, выполняет одно логическое действие (перемещение), но при этом два отдельных физических действия ( INSERT и DELETE ).
Нововведением в SQL Server 2000 является возможность создания своих собственных функций, которые называются пользовательскими функциями (
Примечание. В таблицах в этом разделе представлены не все функции. Полный перечень функций доступен в панели
Встроенные функции SQRT(9) всегда возвращает 3, следовательно, функция SQRT детерминированная. Недетерминированная функция, такая как RAND, наоборот, при каждом обращении всегда возвращает различные значения.
В WHERE и т. д. Тем не менее, детерминизм функции определяет, может ли она использоваться в качестве индекса. Индекс всегда должен возвращать согласующиеся результаты, и только детерминированные функции могут использоваться в индексах.
| Функция | Параметры | Операция |
|---|---|---|
DATEADD |
единицы, число, дата | Рассчитывает новую дату, добавляя к существующей указанное число единиц (дней, месяцев, часов и т.д.). |
DATEDIFF |
единицы, нач_дата, кон_дата | Возвращает количество единиц времени, между двумя указанными датами. |
DATENAME |
единицы, дата | Возвращает имя указанной единицы времени даты в виде строки. |
DATEPART |
единицы, дата | Возвращает имя указанной единицы времени даты в виде числа. |
DAY |
дата | Возвращает день для указанной даты в виде числа. |
GETDATE |
Возвращает текущее системное время и дату. | |
MONTH |
дата | Возвращает месяц для указанной даты в виде числа. |
YEAR |
дата | Возвращает год для указанной даты в виде числа. |
Используйте функции даты
Query Analyzer откроет пустое окно Query (Запрос).
Query Analyzer отобразит диалоговое окно Open Query File (Открытие файла сценария).

Query Analyzer отобразит результаты в панели сетки Grids Pane.
Математические функции, представленные в таблице 24.10, выполняют числовые вычисления.
| Функция | Параметры | Операция |
|---|---|---|
ABS |
numeric_expression |
Возвращает абсолютное значение выражения numeric_expression. |
|
float_expression |
Возвращает арккосинус выражения float_expression. |
ASIN |
float_expression |
Возвращает арксинус выражения float_expression. |
ATAN |
float_expression |
Возвращает арктангенс выражения float_expression. |
ATN2 |
float_expression, float_expression |
Возвращает угол в радианах, тангенс которого находится между двумя значениями float_expression. |
|
numeric_expression |
Возвращает ближайшее число, большее или равное выражению numeric_expression. |
COS |
float_expression |
Возвращает тригонометрический косинус выражения float_expression. |
|
float_expression |
Возвращает тригонометрический котангенс выражения float_expression. |
|
numeric_expression |
Данный угол numeric_expression в радианах возвращает в градусах. |
EXP |
float_expression |
Возвращает экспоненциальное значение выражения float_expression. |
|
numeric_expression |
Возвращает ближайшее число, меньшее или равное выражению numeric_expression. |
LOG |
float_expression |
Возвращает натуральный логарифм выражения float_expression. |
LOG10 |
float_expression |
Возвращает десятичный логарифм выражения float_expression. |
PI |
Возвращает значение константы pi. | |
POWER |
numeric_expression, y |
Возвращает значение выражения numeric_expression, возведенное в степень y. |
|
numeric_expression |
Данный угол numeric_expression в градусах возвращает угол в радианах. |
RAND |
[ |
Возвращает случайное значение в интервале от 0 до 1. |
ROUND |
numeric_expression, lenght |
Возвращает округленное с указанной точностью значение выражения numeric_expression. |
SIGN |
float_expression |
Возвращает +1, если numeric_expression положительно, 0 если numeric_expression ноль, и -1 если numeric_expression отрицательно. |
SIN |
float_expression |
Возвращает тригонометрический синус даваемого в радианах угла float_expression. |
SQUARE |
float_expression |
Возвращает квадрат float_expression. |
SQRT |
float_expression |
Возвращает квадратный корень из float_expression. |
TAN |
float_expression |
Возвращает тангенс выражения float_expression. |
Используйте математические функции
Query Analyzer откроет пустое окно Query (Запрос).
Query Analyzer отобразит диалоговое окно Open Query File (Открыть файл запроса).

Query Analyzer отобразит результаты в панели сетки Grids Pane.
Функции агрегирования, представленные в таблице 24.11, принимают в качестве параметра коллекцию значений и возвращают одиночное значение.
| Функция | Операция |
|---|---|
AVG |
Возвращает среднее значение из коллекции, игнорируя нулевые (NULL) значения. |
COUNT |
Возвращает количество значений в коллекции, включая и нулевые. |
MAX |
Возвращает наибольшее значение из коллекции. |
MIN |
Возвращает наименьшее значение из коллекции. |
SUM |
Возвращает сумму значений из коллекции, игнорируя нулевые значения. |
STDEV |
Возвращает стандартное статистическое отклонение для каждого из значений в коллекции. |
STDEVP |
Возвращает стандартное статистическое отклонение все совокупности значений в коллекции. |
VAR |
Возвращает статистическую вариацию значений в группе. |
VARP |
Возвращает статистическую вариацию всех значений в коллекции. |
Используйте функции агрегирования
Query Analyzer откроет пустое окно Query (Запрос).
Query Analyzer отобразит диалоговое окно Open Query File (Открытие файла запроса).

Query Analyzer отобразит результаты в панели сетки Grids Pane.
Функции метаданных возвращают информацию о данных, а не сами данные. Имеется очень большое количество функций метаданных. В таблице 24.12 представлен перечень наиболее часто используемых функций метаданных.
| Функция | Параметры | Операция |
|---|---|---|
COL_LENGTH |
|
Возвращает количество байт столбца column. |
COL_NAME |
tableID, columnId |
Возвращает имя columnID. |
COLUMNPROPERTY |
ID, column, property |
Возвращает информацию о свойстве property столбца column. |
DATABASEPROPERTY |
database, property |
Возвращает значение свойства property. |
DB_ID |
database_name |
Возвращает идентификационный номер базы данных Database_name. |
DB_NAME |
databaseID |
Возвращает имя базы данных по идентификатору databaseID. |
INDEX_COL |
table, indexID, keyed |
Возвращает имя индексированного столбца по идентификаторам indexID и keyID. |
INDEXPROPERTY |
tableID, index, property |
Возвращает информацию о свойстве property индекса index. |
OBJECT_ID |
object |
Возвращает идентификационный номер объекта object базы данных. |
OBJECT_NAME |
objectID |
Возвращает имя объекта по его идентификационному номеру objectID. |
OBJECTPROPERTY |
ID, property |
Возвращает информацию о свойстве property объекта по его идентификационному номеру ID. |
SQL_VARIANT_PROPERTY |
SQL_variant, property |
Возвращает указанное свойство property варианта Sql_variant. |
TYPEPROPERTY |
|
Возвращает информацию о свойстве property для типа данных . |
Используйте функции метаданных
Query Analyzer откроет пустое окно Query (Запрос).
Query Analyzer отобразит диалоговое окно Open Query File (Открытие файла запроса).

Query Analyzer отобразит результаты в панели сетки Grids Pane.
Функции безопасности, представленные в таблице 24.13, возвращают информацию о привилегиях безопасности, имеющихся для пользователей и ролей.
| Функция | Параметры | Операция |
|---|---|---|
HAS_DBACCESS |
database_name |
Показывает, имеет ли текущий пользователь доступ к базе данных database_name. |
IS_MEMBER |
group_or_role |
Показывает, имеет ли текущий пользователь членство в группе или роли group_or_role. |
IS_SRVROLEMEMBER |
role [, login] |
Показывает, имеет ли текущая или указанная учетная запись login членство в роли role. |
SUSER_SID |
[login] |
Для текущей или указанной учетной записи login возвращает идентификационный номер безопасности (SID). |
SUSER_SNAME |
[] |
Возвращает |
USER_ID |
[user] |
Возвращает идентификационный номер текущего или указанного пользователя user. |
USER |
Возвращает имя текущего |
Используйте функции безопасности
Query Analyzer откроет пустое окно Query (Запрос).
Query Analyzer отобразит диалоговое окно Open Query File (Открытие файла запроса).

Query Analyzer отобразит результаты в панели сетки Grids Pane.
| Функция | Параметры | Операция |
|---|---|---|
ASCII |
char_expression |
Возвращает ASCII-код самого левого символа в строке char_expression. |
CHAR |
integer_expression |
Возвращает ASCII-символ, код которого равен integer_expression. |
CHARINDEX |
char_expression, char_expression [, start_position] |
Возвращает позицию первого выражения char_expression во втором выражении char_expression. |
LEFT |
char_expression, integer_expression |
Возвращает крайние слева символы integer_expression в выражении char_expression. |
LEN |
char_expression |
Возвращает количество символов в выражении char_expression. |
LOWER |
char_expression |
Возвращает выражение char_expression, в котором все символы приведены к нижнему регистру. |
LTRIM |
char_expression |
Возвращает выражение char_expression с удаленными начальными пробелами. |
NCHAR |
integer_expression |
Возвращает символ UNICODE, код которого задает integer_expression. |
REPLACE |
char_expression, char_expression, char_expression |
Находит все вхождения второй строки char_expression в первую char_expression и заменяет их на третью char_expression. |
RIGHT |
char_expression, integer_expression |
Возвращает крайние справа символы integer_expression в строке char_expression. |
RTRIM |
char_expression |
Возвращает строку char_expression с удаленными конечными пробелами. |
|
char_expression |
Возвращает четырехзначный код для char_expression. |
SPACE |
integer_expression |
Возвращает число integer_expression пробелов. |
SUBSTRING |
char_expression start, lenght |
Возвращает подстроку char_expression указанной длины lenght, начиная с символа start. |
UNICODE |
unicode_expression |
Возвращает значение UNICODE для первого символа в unicode_expression. |
UPPER |
char_expression |
Возвращает выражение char_expression, в котором все символы приведены к верхнему регистру. |
Используйте строковые функции
Query Analyzer откроет пустое окно Query (Запрос).
Query Analyzer отобразит диалоговое окно Open Query File (Открыие файла запроса).

Query Analyzer отобразит результаты в панели сетки Grids Pane.
Системные функции возвращают информацию об окружении SQL Server. Так же, как и функций метаданных, системных функций очень много и все они доступны через панель
| Функция | Параметры | Операции |
|---|---|---|
APP_NAME |
Возвращает имя приложения. | |
DATALENGHT |
выражение | Возвращает количество байт, используемых для хранения выражения. |
ISDATE |
выражение | Определяет, корректно ли данное выражение. |
ISNULL |
выражение | Определяет, является ли данное выражение нулем. |
ISNUMERIC |
выражение | Определяет, является ли данное выражение числом. |
NEWID |
Создает новый уникальный идентификационный номер uniqueidentifier. | |
NULLIF |
выражение, выражение | Возвращает NULL, если первое и второе выражение одинаковы. |
PARSENAME |
object_name, name_part |
Возвращает часть имени name_part объекта object_name. |
SYSTEM_USER |
Возвращает текущее имя пользователя системы. | |
USER_NAME |
[id] |
Возвращает имя текущего пользователя или пользователя по указанному id. |
Используйте системные функции
Query Analyzer откроет пустое окно Query (Запрос).
Query Analyzer отобразит диалоговое окно Open Query File (Открытие файла запроса).

Query Analyzer отобразит результаты в панели сетки Grids Pane.
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.