Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
О.Б.Д / лекции / 2БД.doc
Скачиваний:
38
Добавлен:
30.05.2020
Размер:
103.42 Кб
Скачать

2.3 Перетворення типів

Нерідко необхідно конвертувати значення одного типу в значення іншого. Найбільш часто виконується конвертація чисел в символьні дані і навпаки, для цього використовується спеціалізована функція STR. Для виконання інших перетворень SQL Server пропонує універсальні функції CONVERT і CAST, за допомогою яких значення одного типу перетворюються в значення іншого типу, якщо такі зміни взагалі можливі. CONVERT і CAST приблизно однакові і можуть бути взаємозамінними.

Разом з типами даних основоположними поняттями при роботі з язиком SQL в середовищі MS SQL Server є вирази, оператори, змінні, керуючі конструкції.

3 Основні поняття ms sql Server

3.1 Вирази

Вирази є комбінацією ідентифікаторів, функцій, знаків логічних і арифметичних операцій, констант і інших об'єктів. Вираз може використовуватися як аргумент в командах, збережених процедурах або запитах.

Вираз складається з операндів (власне даних) і операторів (знаків операцій, здійснюваних над операндами). Як операнди можуть виступати константи, змінні, імена стовпців, функції, підзапити.

Оператори – це знаки операцій над одним або декількома виразами для створення нового виразу. Серед операторів можна виділити унарні оператори, оператори привласнення, арифметичні оператори, рядкові оператори, оператори порівняння, логічні оператори, бітові оператори .

3.2 Змінні

В середовищі SQL Server існує декілька способів передачі даних між командами. Один з них – передача даних через локальні змінні. Перш ніж використовувати яку-небудь змінну, її слід оголосити. Оголошення змінної виконується командою DECLARE, що має наступний формат:

DECLARE {@имя_переменной тип_даних } [,...n]

Значення змінної можна привласнити за допомогою команд SET і SELECT. За допомогою команди SELECT зміній можна привласнити не тільки конкретне значення, але і результат обчислення виразу.

DECLARE @a INT

SET @a=10

Приклад 2.4. Використовування SET для привласнення значення локальної змінної.

DECLARE @k INT

SELECT @k=SUM(кількість) FROM Товар

Приклад 2.5. Використовування SELECT для привласнення локальної змінної результату обчислень.

4 Управляючі конструкції sql

Язик SQL є непроцедурним, але в середовищі SQL Server передбачений ряд різних керуючих конструкцій, без яких неможливе написання ефективних алгоритмів.

Групування двох і більш команд в єдиний блок здійснюється з використанням ключових слів BEGIN і END:

<блок_операторів>::=BEGIN{ sql_оператор | блок_операторів }END

Згруповані команди сприймаються інтерпретатором SQL як одна команда. Подібне угрупування потрібне для конструкцій поліваріантних розгалужень, умовних і циклічних конструкцій. Блоки BEGIN...END можуть бути вкладеними.

Деякі команди SQL не повинні виконуватися разом з іншими командами (йдеться про команди резервного копіювання, зміни структури таблиць, збережених процедур і ним подібних), тому їх сумісне включення в конструкцію BEGIN...END не допускається.

Нерідко певна частина програми повинна виконуватися тільки при реалізації деякої логічної умови. Синтаксис умовного оператора показаний нижче:

<умовний_оператор>::=

IF лог_вираз { sql_оператор | блок_операторів }

[ ELSE

{sql_оператор | блок_операторів } ]

Цикли організовуються за допомогою наступної конструкції:

<оператор_циклу>::=

WHILE лог_вырз { sql_оператор | блок_операторів }

[ BREAK ]

{ sql_оператор | блок_операторів }

[ CONTINUE ]

Цикл можна примусово зупинити, якщо в його тілі виконати команду BREAK. Якщо ж потрібно почати цикл заново, не чекаючи виконання всіх команд в тілі, необхідно виконати команду CONTINUE.

Для заміни безлічі одиночних або вкладених умовних операторів використовується наступна конструкція:

<оператор_поліваріантних_розгалужень>::=

CASE вхідне_значення

WHEN {значення_для_порівняння | лог_вираз} THEN вих_вираз [,...n]

[ ELSE інакше_вих_вираз]

END

Якщо вхідне значення і значення для порівняння співпадають, то конструкція повертає вихідне значення. Якщо ж значення вхідного параметра не знайдено ні в одному з рядків WHEN...THEN, то тоді буде повернено значення, вказане після ключового слова ELSE.

Соседние файлы в папке лекции