![]()
Главная Обратная связь Дисциплины:
Архитектура (936) ![]()
|
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, тому що, цілий блок операторів повинен розглядатися як єдина група операторів. */
![]() |