У режимі конструктора структуру цієї таблиці показано на рис. 7.3.
Рис. 7.3. Структура таблиці ZAKR_DYSC
7.1.1.4. CREATE TABLE POSADA1 (KodPost TEXT (2) PRIMARY KEY, PostVyklTEXT (25), NormPostNUMBER NOT NULL);
У режимі конструктора структуру цієї таблиці показано на рис. 7.3.
Рис. 7.4. Структура таблиці POSADA1
7.1.2 CREATE INDEX – створити індекс
Приклади:
7.1.2.1 CREATE UNIQUE INDEX PostVykl ON POSADA1(PostVykl);
Результат показано на рис.7.5.
Не унікальний індекс можна створити командою CREATE INDEX.
Рис. 7.5. Результат індексації поля PostVykl таблиці POSADA1
7. 1.2.2 CREATE INDEX NmKf ON VYKLADACH(NomKaf);
Результат показано на рис.7.6. Щоб отримати більш детальну інформацію, крім тієї, що видно із структури таблиці (ім’я індексу та його склад), треба при відкритій у режимі конструктора таблиці зайти на панель інструментів Вид→Индекси.
Рис.7.6 Результат індексації поля NomKaf таблиці VYKLADACH1
7. 1.2.3 CREATE INDEX KafDysc ON ZAKR_DYSC(KodVykl, KodDysc);
Результат індексації показано на рис.7.7.
Рис.7.7 Результат індексації полів (NomKaf, KodDysc) таблиці ZAKR_DYSC
Як бачимо, таблиця ZAKR_DYSCвже має два індекси. Індекс Zakr , який складається із полів (KodVykl, KodDysc), був створений автоматично при визначенні цій сукупності полів як PRIMARY KEY при створенні таблиці (п. 7.1.1.3).
7.1.3 DROP TABLE - видалити таблицю
Приклад:
DROP TABLE DYSCYPL1;
7.1.4 DROP INDEX - видалити індекс
Приклад:
DROP INDEXKafDyscONZAKR_DYSC;
Інформація про індекси таблиці наведено на рис.7.8. Як бачимо, в ній залишився один індексZakr , який був створений автоматично при встановленні первинного ключа.
Рис.7.8 Індекси таблиці ZAKR_DYSC після видалення індексу KafDysc
7.1.5 ALTER TABLE - змінити структури таблиці
Приклади:
7.1.5.1. Додати 2 поля і складений індекс до таблиці ZAKR_DYSC
ALTER TABLE ZAKR_DYSC ADD KodPostTEXT (2), NomKafBYTE, NazvKaf TEXT (25),CONSTRAINT Idx1 UNIQUE (KodVykl, NazvDysc) );
У режимі конструктора нова структура таблиці показано на рис. 7.9, а її індекси – на рис. 7.10.
Рис.7.9. Структура таблиці ZAKR_DYSC
Рис. 7.10. Первинний ключ і складені індекси таблиціZAKR_DYSC
7.1.5.2. Видалимо індексIdx1із таблиці ZAKR_DYSC.
ALTER TABLE ZAKR_DYSC DROP CONSTRAINT Idx1;
Після виконання цього запиту структура індексів повернеться до стану, що приведений на рис.7.8.
7.1.5.3. Видалимо поле NazvKafіз таблиці ZAKR_DYSC.
ALTER TABLE ZAKR_DYSCDROP NazvKaf;
Примітка. Запити 7.1.5.2 і 7.1.5.3 можна було об’єднати в один запит:
ALTER TABLE ZAKR_DYSC DROP CONSTRAINT Idx1, COLUMN NazvKaf;
7.1.5.4 Надамо полю NormPost таблиці POSADA1 властивість необов’язкового значення (NULL). Для цього прийдеться спочатку вилучити його, а потім додати з новою властивістю, без якої буде неможливим виконання операції п.1.6.2.
1-й запит. ALTER TABLE POSADA1 DROP COLUMN NormPost;
2-й запит. ALTER TABLE POSADA1 ADD COLUMN NormPost NUMBER NULL;
7.1.6 INSERT –додати рядок або рядки із іншої таблиці/запиту
Приклади:
7.1.6.1 Додати до таблиці POSADA1рядок
професор
INSERT INTO POSADA1 VALUES ("01","професор",700);
7.1.6.2 Додати до таблиці POSADA1рядок
доцент
INSERT INTO POSADA1 (KodPost, PostVykl) VALUES ("02","доцент");
Після виконання операторів п.1.6.1 і 1.6.2 таблиця POSADA1матиме такий вміст
KodPost
PostVykl
NormPost
професор
доцент
7.1.6.3 Додати до таблиці POSADA1рядки
старший викладач
викладач
Оскільки для кожного рядка треба створювати новий запит, створимо параметричний запит INSERT.
INSERT INTO POSADA1
VALUES ([KodPost - код посади],[NazvPost - назва посади],[NormPost - норма навантаження]);
Нижче (рис.7.11) наведено діалогове вікно одного з фрагментів роботи параметричного оператора.
Рис. 7.11. Фрагмент уведення даних параметричним запитом
Після уведення наведених вище рядків вміст таблиці буде таким.
KodPost
PostVykl
NormPost
професор
доцент
старший викладач
викладач
7.1.6.4 Приклад команди INSERT, що має формат INSERT …SELECT. В таблицю треба вставити дані з іншої таблиці:
INSERT INTO DSCPL ( CdDs1, TtDs2, DsCrr, CdClnn, CdCf )
WHERE (DISC.CdDs="17") OR (DISC.CdDs="33") OR (DISC.CdDs="34");
7.1.7 UPDATE - оновити дані (поля) в таблиці
Приклади:
7.1.7.1 Увести дані про норму навантаження доцента (код ”02”)
UPDATE POSADA1 SET NormPost = 650 WHERE KodPost =”02”;
7.1.7.2 Зменшити норму для усіх посад, крім доцента, на 100 годин
UPDATE POSADA1 SET NormPost = NormPost-100WHERE KodPost <>”02”;
Після виконання наведених вище операторів вміст таблиці буде таким.
KodPost
PostVykl
NormPost
професор
доцент
старший викладач
викладач
Умова виконання запиту UPDATE може бути побудована з використанням полів інших таблиці, але для цього треба задіяти операції з’єднання (сполучення) таблиць, про які мова піде в п.2 (запити SELECT).
7.1.8 DELETE – видалити рядки із таблиці
Приклад:
Хай таблиця VYKLADACH має вміст, що наведено на рис.7.12 зліва. Вилучимо із таблиці викладачів кафедри №5.
DELETEFROM VYKLADACHWHERENomKaf=5;
Вміст таблиці VYKLADACH після виконання запиту показано на рис.7.12 справа.
KodVykl
PrizvVykl
KodPost
NomKaf
KodVykl
PrizvVykl
KodPost
NomKaf
П’ятниця М.М.
Середа І.С.
Середа І.С.
Бандур М.М.
Бандур М.М.
Мунтян Р.Д.
Мунтян Р.Д.
Сірко В.В.
Границя О.А.
Опришко Ю.Й.
Сірко В.В.
Турчак А.Д.
Опришко Ю.Й.
Турчак А.Д.
Рис.7.12. Вміст таблиці VYKLADACH1 до і після виконання запиту DELETE