Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Створення обмежень CHECK




Обмеження CHECK створюють одним з наступних способів:

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

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

Щоб модифікувати обмеження CHECK за допомогою Transact-SQL, спочатку варто видалити існуюче визначення обмеження CHECK, а потім створити нове визначення.

У цьому прикладі створюється таблиця Tablel і визначається для стовбця со1_2 обмеження CHECK, що обмежує введення значень з діапазоном 0 - 1000:

CREATE TABLE Table1

(

Col_l INT PRIMARY KEY,

Col_2 INT

CONSTRAINT limit_amount CHECK (Col_2 BETWEEN 0 AND 1000),

Col_3 VARCHAR(50)

)

 

Це обмеження також можна визначити на рівні таблиці:

CREATE TABLE Tablel

(

Col_l INT PRIMARY KEY,

Col_2 INT,

Col_3 VARCHAR(5O),

CONSTRAINT limit_amount CHECK (Col_2 BETWEEN 0 AND 1000)

)

 

Щоб додати обмеження СНЕСК до існуючої таблиці, можна скористатися оператором ALTER TABLE:

ALTER TABLE Tablel

ADD CONSTRAINT limit_amount CHECK (Col_2 BETWEEN 0 AND 1000)

При додаванні до існуючої таблиці обмеження CHECK застосовується тільки до нових даних або до всіх даних таблиці, включаючи існуючі. За замовчуванням обмеження CHECK застосовується як до існуючих, так і до всіх нових даним. Можливість застосувати обмеження тільки до нових даних корисна, якщо існуючі дані вже відповідають новому обмеженню CHECK або якщо бізнес-правило вимагає, щоб обмеження застосовувалося, тільки починаючи із цього моменту.

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

Модифікація таблиць у базі даних SQL Server

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

  • додавання й видалення обмеження PRIMARY KEY і FOREIGN KEY;
  • додавання й видалення обмеження UNIQUE і CHECK, а також визначення обмежень (і об'єктів) DEFAULT;
  • додавання й видалення стовпців з ідентифікатором за допомогою властивостей IDENTITY або ROWGUIDCOL. Дозволяється додавати й видаляти властивість ROWGUIDCOL в існуючих стовпців, але при цьому в будь-який момент часу можливий тільки один стовпець із властивістю ROWGUIDCOL;
  • таблиці й обрані стовпці таблиці можна зареєструвати для повнотекстового індексування.

Видалення таблиці з бази даних SQL Server

Іноді, наприклад, якщо потрібно реалізувати нову структуру або звільнити місце в базі даних, необхідно видалити таблицю. При цьому структурне визначення таблиці, дані, повнотекстові індекси, обмеження й індекси повністю віддаляються з бази даних, а місце, колись зайняте таблицею і її індексами, стає доступним для інших таблиць. Можна явно видалити тимчасову таблицю, якщо ви не хочете чекати на неї автоматичного видалення.

Якщо необхідно видалити таблиці, зв'язані за допомогою обмеження FOREIGN KEY, UNIQUE або PRIMARY KEY, те спочатку варто видалити таблиці з обмеженням FOREIGN KEY. Якщо потрібно видалити таблицю, на яку є посилання в обмеженні FOREIGN KEY, але при цьому повністю видаляти таблицю із зовнішнім ключем не можна, варто видалити обмеження FOREIGN KEY.

Видаляють таблицю з бази даних SQL Server за допомогою оператора DROP TABLE або SQL Server Management Studio (яка видаляє таблицю з вузла Tables). Наведемо простий приклад видалення таблиці Table1 з бази даних за допомогою оператора DROP TABLE:

DROP TABLE Table1

 

На завершення наведемо декілька прикладів створення таблиць у базі даних BookShopDB.

Створення таблиці 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:




Поделиться с друзьями:


Дата добавления: 2015-06-29; Просмотров: 395; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.01 сек.