Методическое пособие 241
.pdfUNION – последовательно объединяются все записи из указанных запросов.
UNION ALL – последовательно объединяются только уникальные записи из указанных запросов.
Вставка данных (операция INSERT)
INSERT [INTO]
{таблица} [(список_полей)] {список_значений | выборка}
Добавляет одну или несколько (в случае выборки) записей в указанную таблицу с указанными значениями в указанные поля.
Изменение данных (операция UPDATE)
UPDATE {таблица}
SET {поле1= значение1 [… , полеN=значениеN]} [WHERE условие_отбора]
Изменяет в указанной таблице указанные поля на указанные значения для записей, удовлетворяющих условию отбора.
Удаление данных (операция DELETE, TRUNCATE)
DELETE [FROM] { таблица } [WHERE условие_отбора]
Удаляет из указанной таблицы записи, удовлетворяющие условию отбора.
TRUNCATE TABLE { таблица }
Удаляет из указанной таблицы все записи.
1.5. Встроенные функции Transact-SQL
Конвертация
CAST ( expression AS data_type [ ( length ) ] ) CONVERT ( data_type [ ( length ) ], expression [ style ] )
Преобразует выражение одного типа данных в другой.
expression – Любое допустимое выражение. data_type – Целевой тип данных.
9
Length – Целое число, обозначающее длину целевого типа данных. Значение по умолчанию равно 30.
style – Целочисленное выражение, определяющее, как функция CONVERT преобразует параметр expression.
Математические
ABS ( numeric_expression ) – Математическая функция, возвращающая абсолютное (положительное) значение указанного числового выражения.
ACOS ( float_expression ) – Математическая функ-
ция, возвращающая угол в радианах, чей косинус является указанным выражением.
ASIN ( float_expression ) – Возвращает угол в ра-
дианах, синус которого был задан как выражение типа float. ATAN ( float_expression ) – Возвращает угол в
радианах, тангенс которого задан выражением.
CEILING ( numeric_expression ) – Возвращает наименьшее целое число, которое больше или равно данному числовому выражению.
COS ( float_expression ) – Математическая функция,
возвращающая тригонометрический косинус указанного угла в радианах в указанном выражении.
COT ( float_expression ) – Математическая функция,
возвращающая тригонометрический котангенс заданного угла в радианах в заданном выражении float.
EXP ( float_expression ) – Возвращает значение экспоненты заданного выражения типа float.
FLOOR ( numeric_expression ) – Возвращает наи-
большее целое число, меньшее или равное указанному числовому выражению.
LOG ( float_expression [, base ] ) – Возвращает натуральный логарифм данного выражения типа float.
float_expression – Выражение, имеющее тип float или тип, который неявно может быть преобразован в float.
base – Необязательный целочисленный аргумент,
10
который определяет основу для логарифма.
PI ( ) – Возвращает постоянное значение PI.
POWER ( float_expression , y ) – Возвращает значение указанного выражения, возведенное в заданную степень.
float_expression – Выражение, имеющее тип float или тип, который может быть неявно преобразован в float.
y – Степень, в которую возводится аргумент float_expression. y может быть выражением категории точного или приблизительного числового типа данных, за исключением типа данных bit.
RAND ( [ seed ] ) – Возвращает псевдослучайное значение типа float от 0 до 1.
ROUND ( numeric_expression , length [ ,function ] ) –
Возвращает числовое значение, округленное до указанной длины или точности.
numeric_expression – Выражение.
length – Точность, с которой должно быть округлено значение выражения numeric_expression. Когда аргумент length является положительным числом, numeric_expression округляется до числа десятичных разрядов, указанных в аргументе length. Когда length является отрицательным числом, numeric_expression округляется слева от точки, отделяющей десятичную дробь от целого числа, как указано в length.
function – Тип выполняемой операции. Когда аргумент function опускается или имеет значение 0 (значение по умолчанию), аргумент numeric_expression округляется. Когда указывается значение, не равное 0, numeric_expression усекается.
SIN ( float_expression ) – Возвращает значение тригонометрического синуса указанного угла в радианах и приблизительное числовое выражение типа float.
SQRT ( float_expression ) – Возвращает квадратный 11
корень данного числа с плавающей точкой.
TAN ( float_expression ) – Возвращает тангенс входного аргумента.
Логические
CHOOSE ( index, val_1, val_2 [, val_n ] ) – Возвра-
щает элемент по указанному индексу из списка значений. index – отсчитываемый от 1 индекс в списке эле-
ментов, следующих за ним.
val_1 … val_n – Список значений.
IIF ( boolean_expression, true_value, false_value ) –
возвращает одно из двух значений в зависимости от того, имеет логическое выражение значение true или false.
FORMAT ( value, format [, culture ] ) – Возвращает значение, указанное в формате, языке и региональных параметрах (необязательно).
value – Выражение для форматирования. format – Шаблон формата nvarchar.
culture – Дополнительный аргумент nvarchar, обозначающий язык и региональные параметры.
LEFT ( character_expression , integer_expression ) –
Возвращает указанное число символов символьного выражения слева.
character_expression – Выражение символьных или двоичных данных. character_expression может быть константой, переменной или столбцом.
integer_expression – Положительное целое число, указывающее, сколько символов character_expression будет возвращено.
LEN ( string_expression ) – Возвращает количество символов указанного строкового выражения, исключая конечные пробелы.
LOWER ( character_expression ) – Возвращает символьное выражение после преобразования символьных данных верхнего регистра в символьные данные нижнего
12
регистра.
LTRIM ( character_expression ) – Возвращает сим-
вольное выражение после удаления начальных пробелов.
REPLACE ( string_expression , string_pattern , string_replacement ) – Заменяет все вхождения указанного строкового значения другим строковым значением.
string_expression – Строковое выражение, в котором выполняется поиск.
string_pattern – Подстрока для поиска. string_replacement – Строка замещения.
RIGHT ( character_expression , integer_expression ) –
Возвращает указанное число символов символьной строки справа.
character_expression – Выражение символьных или двоичных данных.
integer_expression – Положительное целое число, указывающее, сколько символов character_expression будет возвращено.
RTRIM ( character_expression ) – Возвращает строковое выражение, удаляя все завершающие пробелы.
SUBSTRING ( expression ,start , length ) – Возвра-
щает часть символьного, двоичного, текстового или графического выражения.
expression – строка.
start – Целое число или выражение типа bigint, указывающее начальную позицию возвращаемых символов.
length – Положительное целое число или выражение типа bigint, указывающее количество символов выражения expression, которое будет возвращено.
UPPER ( character_expression ) – Возвращает символьное выражение, в котором символы нижнего регистра преобразованы в символы верхнего регистра.
Даты
SYSDATETIME () – Возвращает значение типа
13
datetime2(7), которое содержит дату и время компьютера, на котором запущен экземпляр SQL Server.
SYSDATETIMEOFFSET () – Возвращает значение типа datetimeoffset(7), которое содержит дату и время компьютера, на котором запущен экземпляр SQL Server.
SYSUTCDATETIME ( ) – Возвращает значение типа datetime2(7), которое содержит дату и время компьютера, на котором запущен экземпляр SQL Server.
DATEPART ( datepart , date )
Возвращает целое число, представляющее указанный компонент datepart указанной даты date.
datepart – Отображаемая часть переменной date. В следующей таблице перечислены все допустимые аргументы datepart.
datepart |
Сокращения |
|
|
Year |
yy, yyyy |
|
|
Quarter |
qq, q |
|
|
Month |
mm, m |
|
|
Dayofyear |
dy, y |
|
|
Day |
dd, d |
|
|
Week |
wk, ww |
|
|
Weekday |
dw, w |
|
|
Hour |
hh |
|
|
Minute |
mi, n |
|
|
Second |
ss, s |
|
|
Millisecond |
ms |
|
|
Microsecond |
mcs |
|
|
Nanosecond |
ns |
|
|
date – дата.
DATEFROMPARTS (year, month, day) – Возвращает дату, полученную из указанных частей.
14
year – год.
month – Целочисленное выражение от 1 до 12, задающее месяц.
day – Целочисленное выражение, задающее день.
DATETIME2FROMPARTS ( year, month, day, hour, minute, seconds, fractions, precision ) – Возвращает дату,
полученную из указанных частей.
year – Целочисленное выражение, задающее год. month – Целочисленное выражение, задающее месяц. day – Целочисленное выражение, задающее день. hour – Целочисленное выражение, задающее часы. minute – Целочисленное выражение, задающее минуты. seconds – Целочисленное выражение, задающее секунды. fractions – Целочисленное выражение, задающее
доли секунд.
precision – Целочисленное литеральное значение, определяющее точность возвращаемого значения datetime2.
DATETIMEFROMPARTS (year, month, day, hour, minute, seconds, milliseconds) – Возвращает дату,
полученную из указанных частей.
year – Целочисленное выражение, задающее год. month – Целочисленное выражение, задающее месяц. day – Целочисленное выражение, задающее день. hour – Целочисленное выражение, задающее часы. minute – Целочисленное выражение, задающее минуты. seconds – Целочисленное выражение, задающее
секунды.
milliseconds – Целочисленное выражение, задающее миллисекунды.
DATEDIFF (datepart, startdate, enddate) – Возвращает количество пересеченных границ (целое число со знаком), указанных аргументом datepart, за период времени, указанный аргументами startdate и enddate.
15
datepart – Часть аргументов startdate и enddate,
которая задает тип пересекаемых границ. startdate – начальная дата.
enddate – конечная дата.
DATEADD (datepart, number, date) – Возвращает дату, полученную как сумму исходной даты date и интервала number (целое число со знаком), добавленного к заданному компоненту datepart даты date.
datepart – Компонент даты date, к которому добавляется интервал integernumber.
number – Выражение, которое добавляется к компо-
ненту datepart даты date. date – дата.
EOMONTH (start_date [, month_to_add]) – Возвра-
щает последний день месяца, содержащего указанную дату, с необязательным смещением.
start_date – Выражение даты, задающее дату, для которой необходимо возвратить последний день месяца.
month_to_add – Необязательное целочисленное выражение, задающее количество месяцев, добавляемых к параметру start_date.
1.6. Язык определения данных
Создание таблицы
CREATE TABLE { таблица } ({поле1
свойства_поля1 [ограничение1 [ограничение2 [...ограничениеN]]]}
[[,]{полеN свойства_поляN [ограничение1 [ограничение2 [...ограничениеN]]]}...])
Создает указанную таблицу с указанными полями и ограничениями.
Свойства_поля = Тип_данных [NULL | NOT NULL | IDENTITY[(seed, increment)]]
Тип_данных – опрелеляет тип создаваемого поля.
16
IDENTITY[(seed, increment)] - для поля с таким свойством сервером автоматически генерируется возрастающая последовательность, начиная с seed и приращением increment.
Ограничение – ограничение как для поля следующих видов:
Первичный ключ:
[CONSTRAINT имя_ограничения] PRIMARY KEY
(поле1 [, поле2 [..., поле16]])
Ограничение уникальности:
[CONSTRAINT имя_ограничения] UNIQUE (поле1 [, поле2 [..., поле16]])
Создает ограничение, разрешающее только уникальные записи.
Вторичный ключ:
[CONSTRAINT имя_ограничения] FOREIGN KEY
(поле1 [, поле2 [..., поле16]]) REFERENCES
главная_таблица (поле1 [, поле2 [..., поле16]])
Создает вторичный ключ и связывает указанное поле с первичным ключом указанной таблицы.
Значение по умолчанию:
[CONSTRAINT имя_ограничения] DEFAULT
{выражение } [FOR поле]
Создает значение по умолчанию равное указанному выражению для указанного поля.
Ограничение проверки:
[CONSTRAINT имя_ограничения] CHECK
(выражение)
Создает ограничение проверки, не позволяющее значений, не удовлетворяющих указанному выражению.
Изменение таблицы
ALTER TABLE { таблица } ADD {поле1
свойства_поля1 |
[ограничение1 |
[ограничение2 |
|
17 |
|
[...ограничениеN]]]} [[,]{полеN свойства_поляN [ограничение1 [ограничение2 [...ограничениеN]]]}...] | DROP [CONSTRAINT] ограничение1 [ограничение2 [...ограничениеN]]]
Изменяет указанную таблицу, добавляя в нее указанные поля или ограничения или удаляя ограничения.
Удаление таблицы
DROP TABLE таблица Удаляет указанную таблицу.
Удаление ограничения
DROP имя
Удаляет ограничение по его имени.
Создание представления
CREATE VIEW имя_представления [(поле1 [,
поле2]...)]
AS SELECT …
Создает виртуальную таблицу (представление), воспроизводящую данные из указанной выборки.
2. Работа с данными средствами языка Transact-SQL (4 ч)
2.1. Требуемые ресурсы и инструменты
Установленный программный продукт Microsoft SQL ServerExpress. Созданная ранее и заполненная БД по предметной области 1 раздела 6.
2.2.Порядок действий
1.Соединится с сервером БД, содержащим базу с именем learn_db.
2.В панели инструментов нажать на кнопку «New Query» (1) - появится окно текстового редактора (2) для работы с SQL-запросами (Рис. 1).
18