Главная Обратная связь

Дисциплины:

Архитектура (936)
Биология (6393)
География (744)
История (25)
Компьютеры (1497)
Кулинария (2184)
Культура (3938)
Литература (5778)
Математика (5918)
Медицина (9278)
Механика (2776)
Образование (13883)
Политика (26404)
Правоведение (321)
Психология (56518)
Религия (1833)
Социология (23400)
Спорт (2350)
Строительство (17942)
Технология (5741)
Транспорт (14634)
Физика (1043)
Философия (440)
Финансы (17336)
Химия (4931)
Экология (6055)
Экономика (9200)
Электроника (7621)


 

 

 

 



Create table MARKS (ID_MARK int PRIMARY KEY IDENTITY, MARK varchar(20))



 

/*

За допомогою команди DDL create table створюється таблиця з ім'ям MARKS, що має 2 поля:

id_mark - поле, що має цілочисельний тип даних int, що є первинним ключем (PRIMARY KEY - обмеження, що вимагає, щоб значення в стовпці завжди існували (NOT NULL) і були унікальними(UNIQUE); тільки один стовпець або набір стовпців може мати це обмеження) і властивість IDENTITY, що дозволяє генерувати значення поля автоматично (у цьому випадку, оскільки не зазначене початкове значення і збільшення, то будуть згенеровані значення, починаючи з 1 з кроком 1.

Це поле призначене для зберігання коду оцінки.

mark - поле, що має строковий тип даних змінної довжини з максимальною кількістю символів = 20 (varchar(20)).

Це поле призначене для зберігання позначення оцінки.

Для виконання команди CREATE TABLE користувач повинен мати привілей dm_ddladmin доступу до бази даних, у якій створюється таблиця.

*/

 

INSERT INTO MARKS VALUES('A')

INSERT INTO MARKS VALUES('BC')

INSERT INTO MARKS VALUES('DE')

INSERT INTO MARKS VALUES('FX')

 

/*

За допомогою команди INSERT таблиця MARKS заповнюється значеннями. Оскільки перше поле таблиці має властивість IDENTITY, то значення для нього генеруються автоматично, а тому не вказуються в списку значень після ключового слова VALUE. При цьому після імені таблиці не потрібно задавати список стовпців, для яких явно зазначені значення в команді INSERT.

Для виконання команди INSERT користувач повинен мати привілей dm_datawriter доступу до бази даних, у якій перебуває шукана таблиця.

 

*/

 

END

-ELSE

-- DROP TABLE MARKS

 

/*

Якщо таблиця MARKS існує, то вона знищується за допомогою команди DDL DROP TABLE, для виконання якої користувач повинен мати привілей dm_ddladmin доступу до бази даних, у якій перебуває таблиця. Цю команду не можна застосовувати для таблиць, на які йде посилання в обмеженні FOREIGN KEY ... REFERENCES (для видалення таких таблиць необхідно видалити обмеження FOREIGN KEY ... REFERENCES або таблицю, його утримуючу).

*/

 

 

if NOT exists(select TABLE_NAME from INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'STUDENTS')

 

/*

Перевіряється: чи існує вибірка з подання TABLES, власником якого є користувач INFORMATION_SCHEMA, поля TABLE_NAME, значення якого повинне рівнятися STUDENTS. Для одержання потрібного значення поля TABLE_NAME використовується команда DML SELECT. Для її використання користувач повинен мати привілей dm_datareader доступу до бази даних, що містить шукану таблицю.

Зміст цього оператора мови TSQL полягає в перевірці того, чи існує таблиця з ім'ям STUDENTS. Якщо така таблиця не існує, то виконується її створення і заповнення даними.

*/

 

 

BEGIN

 

/*

Використовуються операторные дужки BEGIN...END, тому що, цілий блок операторів повинен розглядатися як єдина група операторів.

*/

 

Create table STUDENTS (ID_STUD int PRIMARY KEY,

ID_PERS INT NOT NULL REFERENCES PERSONS)

 

/*

За допомогою команди DDL create table створюється таблиця з ім'ям STUDENTS, що має 2 поля:

id_stud - поле, що має цілочисельний тип даних int, що є первинним ключем (PRIMARY KEY - обмеження, що вимагає, щоб значення в стовпці завжди існували (NOT NULL) і були унікальними(UNIQUE); тільки один стовпець або набір стовпців може мати це обмеження).

Це поле призначене для зберігання номера залікової студента.

id_pers - поле, що має цілочисельний тип даних int і обмеження FOREIGN KEY ... REFERENCES (зовнішній ключ, при такому використанні обмеження ключові слова FOREIGN KEY і імена стовпців можуть бути опущені). Це обмеження встановлює зв'язок між стовпцем або групою стовпців поточної таблиці й стовпцем або групою стовпців референсної таблиці (вказується після ключового слова REFERENCES). Стовпець або група стовпців у референсній таблиці повинні мати обмеження PRIMARY KEY або UNIQUE.

Це поле призначене для зберігання назви досліджуваного предмета.

Для виконання команди CREATE TABLE користувач повинен мати привілей dm_ddladmin доступу до бази даних, у якій створюється таблиця.

*/

 

DECLARE

@ID_PR INT

 

/*

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

Змінну ID_PR можна використовувати в межах поточного пакета команд (тобто усередині BEGIN...END). Примусове виконання блоку команд за допомогою команди GO приведе до неможливості подальшого використання змінної ID_PR. За допомогою ключового слова DECLARE можна оголосити декілька змінних, причому кожне нове оголошення необхідно відокремлювати від попередніх за допомогою коми. Наприклад:

 

DECLARE

@A int,

@B money

*/

 

SET @ID_PR = (SELECT ID_PERS FROM PERSONS

WHERE SURNAME = 'IVANOV')

INSERT INTO STUDENTS VALUES (9560679, @ID_PR)

SET @ID_PR = (SELECT ID_PERS FROM PERSONS

WHERE SURNAME = 'PETROV')

INSERT INTO STUDENTS VALUES (3945794, @ID_PR)

SET @ID_PR = (SELECT ID_PERS FROM PERSONS

WHERE SURNAME = 'SIDOROV')

INSERT INTO STUDENTS VALUES (4596956, @ID_PR)

 

/*

Команда SET використовується для установки значення змінної ID_PR. Значенням є результат виконання команди DML SELECT, у результаті чого на підставі даних з таблиці PERSONS формується код особистості зазначеним прізвищем. Команда SET дозволяє встановити значення тільки для однієї змінної.

За допомогою команди INSERT таблиця STUDENTS заповнюється значеннями. Оскільки у жодного поля таблиці немає властивості IDENTITY, то після ключового слова VALUE вказуються значення для всіх стовпців таблиці.

Для виконання команди INSERT користувач повинен мати привілей dm_datawriter доступу до бази даних, у якій перебуває шукана таблиця.

 

*/

 

END

-ELSE

-- DROP TABLE STUDENTS

 

/*

Якщо таблиця STUDENTS існує, то вона знищується за допомогою команди DDL DROP TABLE, для виконання якої користувач повинен мати привілей dm_ddladmin доступу до бази даних, у якій перебуває таблиця. Цю команду не можна застосовувати для таблиць, на які йде посилання в обмеженні FOREIGN KEY ... REFERENCES (для видалення таких таблиць необхідно видалити обмеження FOREIGN KEY ... REFERENCES або таблицю, його утримуючу).

*/

 

GO

 

/*

Команда GO служить для примусового закінчення (виконання) пакета команд. Після її використання стає неможливим подальше використання описаних раніше змінних.

*/

 

 

if NOT exists(select TABLE_NAME from INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'STUD_PROGRESS')

 

/*

Перевіряється: чи існує вибірка з подання TABLES, власником якого є користувач INFORMATION_SCHEMA, поля TABLE_NAME, значення якого повинне рівнятися STUD_PROGRESS. Для одержання потрібного значення поля TABLE_NAME використовується команда DML SELECT. Для її використання користувач повинен мати привілей dm_datareader доступу до бази даних, що містить шукану таблицю.

Зміст цього оператора мови TSQL полягає в перевірці того, чи існує таблиця з ім'ям STUD_PROGRESS. Якщо така таблиця не існує, то виконується її створення і заповнення даними.

*/

 

BEGIN

 

/*

Використовуються операторні дужки BEGIN...END, тому що, цілий блок операторів повинен розглядатися як єдина група операторів.

*/

 



Просмотров 474

Эта страница нарушает авторские права




allrefrs.su - 2024 год. Все права принадлежат их авторам!