Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Посібник Мова SQL кредитно-модульний.doc
Скачиваний:
35
Добавлен:
01.05.2015
Размер:
1.25 Mб
Скачать

Створення таблиці Authors у базі BookShopDb

У редакторі запитів уведемо наступний код мовою Transact-SQL:

USE bookshopdb

CREATE TABLE Authors

(

AuthorID SMALLINT IDENTITY(101,1) NOT NULL,

FirstName VARCHAR(30) NOT NULL DEFAULT 'unknown',

LastNane VARCHAR(3O) NOT NULL,

YearBorn CHAR(4) NOT NULL DEFAULT 'N/A',

YearDied CHAR(4) NOT NULL DEFAULT ' N/A',

Description VARCHAR (200) NOT NULL DEFAULT 'N/A'

)

Створення таблиць BookAuthors і BookCondition у базі даних BookShopDb

Уведемо на панелі редактору запитів наступний код Transact-SQL:

USE Boookshopdb

CREATE TABLE BookAuthors

(

AutorID SMALINT NOT NULL,

TitleID CHAR(8) NOT NULL

)

CREATE TABLE BookCondition

(

ConaitionID TINYINT NOT NULL,

ConditionName CHAR(10) NOT NULL,

Description VARCHAR(50) NOT NULL DEFAULT 'N/A'

)

Цей оператор створює таблиці BookAuthors і BookCondition. Зверніть увагу, що ні в жодній з таблиць не визначена властивість IDENTITY. BookAuthors - це з'єднуюча таблиця, тому її значення визначаються іншими таблицями (Authors і Books). Таблиця BookCondition складається з кінцевого числа рядків, тому не становить праці згенерувати ідентифікатор вручну.

Тема 3. Синтаксичні елементи мови Transact-sql

В Transact-SQL входить багато синтаксичних елементів, які використовуються більшістю операторів або впливають на них. До таких елементів відносяться ідентифікатори, змінні, функції, типи даних, вирази, мова керування ходом виконання та коментарі.

1.Ідентифікатори

Ім'я об'єкта бази даних називається ідентифікатором.В SQL Server будь-який об'єкт може мати ідентифікатор: сервери, бази даних і їх об'єкти (таблиці, відображення, стовпці, індекси, тригери, процедури, обмеження і правила). Для більшості об'єктів ідентифікатори необхідні, у той час як для деяких об'єктів (наприклад, для обмежень) вони не обов'язкові.

Ідентифікатор об'єкта створюється при визначенні об'єкта. Після цього на об'єкт посилаються за допомогою ідентифікатора. У прикладі оператор створює таблицю з ідентифікатором Table, що складається із двох стовпців з ідентифікаторамиKeyColіDescription:

CREATE TABLE Table (

KeyCol INT PRIMARY KEY,

Description NVARCHAR(50)

)

Існують два класи ідентифікаторів: звичайні і з обмежниками.

Звичайні ідентифікатори

У звичайних ідентифікаторах обмежники не застосовуються. У наступному операторі SELECT є присутнім два ідентифікатори: TableіKeyCol.

SELECT * FROM Table

WHERE KeyCol = 124

Ідентифікатори з обмежниками

Ідентифікатори з обмежниками включають у подвійні лапки (" "} або квадратні дужки ([ ]). Ідентифікатори, що відповідають правилам форматування ідентифікаторів, бувають як з обмежниками, так і звичайними ідентифікаторами. У наступному операторі SELECTобмежники (квадратні дужки) не обов'язкові:

SELECT * FROM [Table]

WHERE [KeyCol] = 124

В операторах Transact-SQL ідентифікатори, що не повністю відповідають правилам форматування, необхідно записувати між обмежниками. У наступному операторі SELECT ідентифікатор My Tableнеобхідно використати з обмежниками, оскільки він містить пробіл. ІдентифікаторOrderтакож варто використати з обмежниками, оскільки він збігається із зарезервованим ключовим словом.

SELECT * FROM [My Table]

WHERE [Order] = 10

Змінні

Змінна мови Transact-SQL являє собою об'єкт у пакетах Transact-SQL і у сценаріях, який може мати певне значення. Після того як змінна визначена (оголошена), один оператор Transact-SQL з пакету може встановити її значення, а інший - пізніше одержати значення цієї змінної. Наступні оператори Transact- SQL оголошують змінну з ім'ям EmpIDVar, та встановлюють її значення яке дорівнює 3, а потім використовують цю змінну в операторі SELECT:

USE Northwind

DECLARE @EmpIDVar INT

SET @EmpIDVar = 3

SELECT * FROM Employees

WHERE EmployeeID = @EmpIDVar + 1

Як правило, змінні в пакетах і сценаріях виконують наступні функції:

  • є лічильниками циклів;

  • зберігають значення, які аналізуються операторами, що управляють ходом виконання програми;

  • використовуються для збереження значення коду повернення збереженої процедури.

Часто змінні використовуються як лічильники в операторах WHILEіLOOP, a також у блокахIF...ELSEу пакетах або процедурах. Змінні можна застосовувати тільки у виразах, вони не повинні збігатися з іменами об'єктів і ключових слів.