АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Варіанти підмножин мов SQL для виконання завдань

Читайте также:
  1. IV. Повідомлення теми, мети, завдань уроку
  2. IV. Повідомлення теми, мети, завдань уроку.
  3. IV. Повідомлення теми, мети, завдань уроку.
  4. IV. Повідомлення теми, мети, завдань уроку.
  5. IV. Повідомлення теми, мети, завдань уроку.
  6. IV. Повідомлення теми, мети, завдань уроку.
  7. IV. Повідомлення теми, мети, завдань уроку.
  8. IV. Повідомлення теми, мети, завдань уроку.
  9. IV. Повідомлення теми, мети, завдань уроку.
  10. IV. Повідомлення теми, мети, завдань уроку.
  11. K вн – середній коефіцієнт виконання норм вироблення всіма робітниками, що обслуговуються.
  12. L Перевірка виконання домашньої задачі.

ВАРІАНТИ ТА ПОЯСНЕННЯ ДО ЗАВДАНЬ ЛАБОРАТОРНИХ РОБІТ ДИСЦИПЛІНИ «ФОРМАЛЬНІ ГРАМАТИКИ ТА ПОБУДОВА КОМПІЛЯТОРІВ»

ЗМІСТ

1. Перелік варіантів лабораторних робіт ……………………………. 1

1.1 Варіанти підмножин мов SQL для виконання завдань ………… 1

1.2 Загальні пояснення та уточнення по варінтах …………………. 3

2. Перелік завдань лабораторних робіт ……………………………… 20

3. Загальна схема роботи створюваного компілятора ……………... 21

4. Методичні вказівки до виконання завдань ………………………. 22


Перелік варіантів лабораторних робіт

Завдання для виконання лабораторних робіт передбачають розробку мінікомпілятора для одного з операторів (інструкцій) мови SQL, що є стандартом для СКБД, які підтримують реляційну модель даних, або мови реляційної алгебри (РА), яка, разом з реляційним численням, є теоретичним базисом мови SQL. В завданнях наводяться: назва та сутність (семантика) операторів, приклади їх запису, обмеження на використання тих чи інших граматичних конструкцій та інші пояснення.

 

Варіанти підмножин мов SQL для виконання завдань

Загальний список варіантів наведено у табл. 1.

Таблиця 1. Перелік варіантів завдань

Стислий варіант мови Розширений варіант мови
  DELETE (в опції WHERE – тільки один оператор порівняння) В опції WHERE – логічний вираз з використанням логічних операторів NOT, AND, OR
  UPDATE (в опції WHERE – тільки один оператор порівняння) В опції WHERE – логічний вираз з використанням логічних операторів NOT, AND, OR та без використання дужок
  INSERT INTO … VALUES … (поля таблиці не перелічуються) Поля таблиці перелічуються
  ALTER TABLE … (тільки ADD або тільки DROP) ADD та/або DROP у будь-якій послідовності
  SELECT … FROM … WHERE … (до однієї таблиці та без застосування розрахункових полів) Розрахункові поля, а в опції WHERE – тільки один оператор порівняння
  SELECT … FROM … WHERE … (до однієї таблиці та без застосування розрахункових полів і функцій) Агрегатні функції SUM(), COUNT() та інші
  SELECT … FROM …INNER JOIN … (без опції WHERE) SELECT … FROM …INNER JOIN … WHERE з простим оператором порівняння
  SELECT … FROM …LEFT JOIN … (без опції WHERE) SELECT … FROM …LEFT JOIN … WHERE з простим оператором порівняння
  SELECT … FROM …RIGHT JOIN … (без опції WHERE) SELECT … FROM …RIGHT JOIN … WHERE з простим оператором порівняння
  SELECT … FROM … GROUPBY … (до однієї таблиці з використанням агрегатних функцій та без опцій WHERE та HAVING) З використанням опції HAVING з простим оператором порівняння
  SELECT … FROM … GROUPBY … (до однієї таблиці з використанням агрегатних функцій та без опцій WHERE та HAVING)) З використанням опції WHERE з простим оператором порівняння
  SELECT … FROM … … UNION SELECT … FROM … (без опції JOIN) Можливість використання опції WHERE
  SELECT … FROM …WHERE < atribute > = (SELECT … FROM …WHERE …)  
  SELECT … FROM …WHERE < atribute > < modified ALL > (SELECT … FROM …WHERE …)  
  SELECT … FROM …WHERE < atribute > IN [NOT IN] (SELECT … FROM …WHERE …) Ускладнення умови вибору за рахунок використання ще й інших операторів порівняння
  SELECT … FROM …WHERE EXISTS (SELECT … FROM …WHERE …) Ускладнення умови вибору за рахунок використання ще й інших операторів порівняння
  SELECT … FROM …WHERE < atribute > < modified ANY > (SELECT … FROM …WHERE …) Ускладнення умови вибору за рахунок використання ще й інших операторів порівняння
  SELECT INTO… FROM … WHERE … (до однієї таблиці та без застосування розрахункових полів) Агрегатні функції SUM(), COUNT(), MAX(), MIN()
  SELECT INTO … FROM … WHERE … (до однієї таблиці та без застосування розрахункових полів і функцій) В опції WHERE – – логічний вираз з використанням логічних операторів NOT, AND, OR

 

Студенти мають побудувати граматику свого варіанту мови (насправді, невеликої підмножини мови SQL, тому вище вживано назву «мінікомпілятор») та виконати усі завдання щодо розробки компілятора.

 

1.2 Загальні пояснення та уточнення по варінтах

 

Варіант №1

1. Спрощений варіант мови – інструкція вилучення рядків з таблиці в мові SQL – DELETE.

2. Приклади. Хай в БД є таблиця STUDENTS(IDStud, Name, Age, Gender, Budget, Year), де IDStud, Name, Gender – текстові атрибути; Age, Year – цілочисельні атрибути; Budget – логічний атрибут.

Приклад 1. DELETE FROM STUDENTS WHERE IDStud = ‘203456’;

Приклад 2. DELETE FROM STUDENTS WHERE Age>30;

Приклад 3. DELETE FROM STUDENTS WHERE Gender=’women’ AND Year>=5;

Приклад 4. DELETE FROM STUDENTS WHERE (Gender=’women’ OR Year>=6) AND Age>30;

Приклад 5. DELETE FROM STUDENTS WHERE Gender=’men’ AND NOT Budget;

Приклад 6. DELETE FROM STUDENTS;

3. Додаткові вимоги.

3.1 Імена таблиць та атрибутів мають довжину не більше 8 символів.

3.2 Умова вилучення рядків, що слідує за фразою WHERE, є логічним виразом і припускає будь яку глибину вкладення дужок, при цьому перевіряється відповідність між дужками, що відкривають вираз і що його закривають.

3.3 У логічному виразу після WHERE можуть бути атрибути тільки попереднє заданої таблиці.

3.3 Перевіряється коректність операторів порівняння для атрибутів у відповідності до їх типів.

3.4 Перевіряється унікальність імен атрибутів та їх неспівпадання з іменем таблиці.

3.5 Опис таблиці можна обмежити тільки переліком атрибутів та їх типів даних.

3.6. Рекомендується при визначенні типів даних використовувати кілька варіантів, наприклад, “char” або “text”, “integer” або “number” і т.д., оскільки у різних діалектах мови SQL вживаються різні позначення.

 

 

Варіант №2

1. Спрощений варіант мови – інструкція оновлення (корегування) даних в таблиці мовою SQL – UPDATE.

2. Приклади. Хай в БД є таблиця DYSCYPL(KodDysc, NazvDysc, ObsCred, KodCycl, KodBlok, NomKaf), де KodDysc, NazvDysc, KodBlok – текстові атрибути; KodCycl, NomKaf – цілочисельні атрибути; ObsCred – чисельний атрибут.

Приклад 1. UPDATE DYSCYPL SET ObsCred = 3,0 WHERE KodDysc = ‘2.03’;

Приклад 2. UPDATE DYSCYPL SET KodBlok = “12” WHERE KodCycl >3 OR ObsCred=>2,0;

3. Додаткові вимоги.

3.1 Імена таблиць та атрибутів мають довжину не більше 12 символів.

3.2 Умова оновлення рядків, що слідує за фразою WHERE, є логічним виразом і припускає будь яку глибину вкладення дужок, при цьому перевіряється відповідність між дужками, що відкривають вираз і що його закривають.

3.3 У логічному виразу після WHERE можуть бути атрибути тільки попереднє заданої таблиці.

3.4 Перевіряється коректність операторів порівняння для атрибутів у відповідності до їх типів.

3.5 Перевіряється унікальність імен атрибутів та їх неспівпадання з іменем таблиці.

3.6 Опис таблиці можна обмежити тільки переліком атрибутів та їх типів даних.

3.7 Рекомендується при визначенні типів даних використовувати кілька варіантів, наприклад, “char” або “text”, “integer” або “number” і т.д., оскільки у різних діалектах мови SQL вживаються різні позначення.

 

Варіант №3

1. Спрощений варіант мови – інструкція додавання рядків до таблиці мовою SQL – INSERT INTO TableName.

2. Приклади. Хай в БД є таблиця BOOKS(Authors, Name, Publisher, FirstCity, Year, Pages, Hard, Price), де Authors, Name, Publisher, FirstCity – текстові атрибути; Year, Pages – цілочисельні атрибути; Hard – логічний атрибут (“Yes” – тверда палітурка, “No” – м’яка), Price – чисельний атрибут.

Приклад 1. INSERT INTO BOOKS VALUES (“Ахо А.В, Сети Р., Ульман Д.Д.”, “Компилятори. Принципы, технологии, инструменти”, “Вильямс”, “Москва”, 2003, 787, Yes, 158.42);

Приклад 2. INSERT INTO BOOKS (Authors, Name, Publisher, FirstCity, Year, Price) VALUES (“Калберстон Р., Браун К., Кобб Г.”,“Быстрое тестирование”,“Вильямс”,“Москва”, 2002, 75.80);

Приклад 3. INSERT INTO BOOKS (Name, Authors, Publisher, Year, Price) VALUES (“Проектирование и конструирование компиляторов”, “Хантер P.”, “Финансы и статистика”, 1984, 66.45);

3. Додаткові вимоги.

3.1 Довжина імені таблиці не більше 8 символів.

3.2 Довжина імені атрибута не більше 16 символів.

3.3 Перевіряється унікальність імен атрибутів та їх неспівпадання з іменем таблиці.

3.4 Опис таблиці можна обмежити тільки переліком атрибутів та їх типів даних.

3.5 Рекомендується при визначенні типів даних використовувати кілька варіантів, наприклад, “char” або “text”, “integer” або “number” і т.д., оскільки у різних діалектах мови SQL вживаються різні позначення.

3.6 Перевіряється коректність типів даних, що уводяться, у відповідності до опису їх типів.

3.7 Данні полів мають бути уведені у відповідності до семантики оператора INSERT INTO, прийнятою в мові SQL, тобто порядок уведення має відповідати порядку опису в інструкції CREATE TABLE, якщо одразу після імені таблиці записано ключове слово VALUES, або в порядку, який наведено у списку перед цим ключовим словом.

 

Варіант №4

1. Спрощений варіант мови – інструкція зміни структури таблиці мовою SQL – ALTER TABLE.

2. Приклади. Хай в БД є таблиця TEACHERS(KodVykl, PrizvVykl, Zvannja, Stepin, Sale, NomKaf), де KodVykl, PrizvVykl, Zvannja, Stepin – текстові атрибути, Sale – чисельний атрибут, NomKaf – цілочисельний атрибут.

Приклад 1. ALTER TABLE TEACHERS ADD Status, Age;

Приклад 2. ALTER TABLE TEACHERS DROP KodVykl, NomKaf;

Приклад 3. ALTER TABLE TEACHERS ADD Status, Age DROP KodVykl, NomKaf;

Приклад 4. ALTER TABLE TEACHERS DROP KodVykl, NomKaf ADD Status, Address;

3. Додаткові вимоги.

3.1 Довжина імені таблиці не більше 12 символів.

3.2 Довжина імені атрибута не більше 16 символів

3.3 Здіснюється перевірка на дублювання імен атрибутів, що додаються або вилучаються.

3.4. Граматика оператора ALTER TABLE розширюється таким чином, що при додаванні полів треба задавати їх тип даних як і в операторі CREATE TABLE. Тому приклади п.2 тепер будуть виглядати так:

Приклад 1. ALTER TABLE TEACHERS ADD Status LOGIC, Age INTEGER;

/* Status = {“Yes” ­– штатний сівробітник; “No” – сумісник} */

Приклад 2. ALTER TABLE TEACHERS DROP KodVykl, NomKaf;

Приклад 3. ALTER TABLE TEACHERS ADD Status LOGIC, Age INTEGER DROP KodVykl, NomKaf;

Приклад 4. ALTER TABLE TEACHERS DROP KodVykl, NomKaf ADD Status, Address (75);

3.5. Перевіряється унікальність імен атрибутів та їх неспівпадання з іменем таблиці як при створенні таблиці, так і при додаванні атрибутів..

3.6. Опис таблиці можна обмежити тільки переліком атрибутів та їх типів даних.

3.7. Рекомендується при визначенні типів даних використовувати кілька варіантів, наприклад, “char” або “text”, “integer” або “number” і т.д., оскільки у різних діалектах мови SQL вживаються різні позначення.

3.8 Перевіряється коректність типів даних, що уводяться, у відповідності до опису їх типів.

 

Варіант №5

1. Спрощений варіант мови – інструкція вибірки (селекції) даних із однієї таблиці мовою SQL – SELECT в межах опцій SELECT … FROM … WHERE … без застосування розрахункових полів та функцій.

2. Приклади. Хай в БД є таблиця DYSCYPL(KodDysc, NazvDysc, ObsCred, KodCycl, KodBlok, NomKaf), де KodDysc, NazvDysc, KodBlok – текстові атрибути; KodCycl, NomKaf – цілочисельні атрибути; ObsCred – чисельний атрибут.

Приклад 1. SELECT NazvDysc, ObsCred FROM DYSCYPL;

Приклад 2. SELECT NazvDysc, ObsCred FROM DYSCYPL WHERE NomKaf=5 AND KodCycl=3;

3. Додаткові вимоги.

3.1 Довжина імені таблиці не більше 12 символів.

3.2 Довжина імені атрибута не більше 8 символів

3.3 Умова селекції рядків, що слідує за фразою WHERE, є логічним виразом і припускає будь яку глибину вкладення дужок, при цьому перевіряється відповідність між дужками, що відкривають вираз і що його закривають.

3.4 Граматика оператора розширюється за рахунок можливості використання в списку полів розрахункових полів, а також функцій MAX(), MIN() і AVG().

Приклад 1. SELECT NazvDysc, 54*ObsCred AS ObsGodin FROM DYSCYPL;

Приклад 2. SELECT MAX(ObsCred) AS MaxCredDysc FROM DYSCYPL WHERE KodCycl=3;

3.5 У логічному виразу після WHERE можуть бути атрибути тільки попереднє заданої таблиці.

3.6 Перевіряється унікальність імен атрибутів та їх неспівпадання з іменем таблиці як при створенні таблиці, так і при додаванні атрибутів, що є розрахунковими полями.

3.7 Опис таблиці можна обмежити тільки переліком атрибутів та їх типів даних.

3.8. При використанні розрахункових полів та функцій перевіряється наявність використаних атрибутів у таблиці.

3.9 При використанні функцій MAX(), MIN() і AVG() перевіряється коректність їх застосування: оскільки немає опції групування GROUPBY, то ці функції можуть бути застосовані тільки до одного атрибута, при цьому треба ще перевірити, чи відповідає цим функціям тип даних (чи можна з цим типом даних виконувати арифметичні операції).

 

Варіант №6

1. Спрощений варіант мови – інструкція вибірки (селекції) даних із однієї таблиці мовою SQL – SELECT в межах опцій SELECT … FROM … WHERE … без застосування розрахункових полів та функцій.

2. Приклади. Хай в БД є таблиця TEACHERS(PrizvVykl, Zvannja, Stepin, Sale, NomKaf, Status), де KodVykl, PrizvVykl, Zvannja, Stepin – текстові атрибути, Sale – чисельний атрибут, NomKaf – цілочисельний атрибут, Status – логічний атрибут.

Приклад 1. SELECT PrizvVykl, Zvannja, NomKaf FROM TEACHERS;

Приклад 2. SELECT PrizvVykl, Stepin, Sale FROM TEACHERS WHERE NomKaf=5 AND Zvannja =”доцент” OR Status=No;

3. 3. Додаткові вимоги.

3.1 Довжина імені таблиці не більше 8 символів.

3.2 Довжина імені атрибута не більше 24 символів

3.3 Умова селекції рядків, що слідує за фразою WHERE, є логічним виразом і припускає будь яку глибину вкладення дужок, при цьому перевіряється відповідність між дужками, що відкривають вираз і що його закривають.

3.4 Граматика оператора розширюється за рахунок можливості використання в списку полів розрахункових полів, а також функцій SUM(), COUNT() і COUNT (*).

Приклад 1. SELECT COUNT(PrizvVykl) AS QtyTeachers FROM DYSCYPL;

Приклад 2. SELECT SUM(Sale) AS SumSaleKaf5 FROM DYSCYPL

WHERE NomKaf = 5;

3.5 У логічному виразу після WHERE можуть бути атрибути тільки попереднє заданої таблиці.

3.6 Перевіряється унікальність імен атрибутів та їх неспівпадання з іменем таблиці як при створенні таблиці, так і при додаванні атрибутів, що є розрахунковими полями.

3.7 Опис таблиці можна обмежити тільки переліком атрибутів та їх типів даних.

3.8 При використанні розрахункових полів та функцій перевіряється наявність використаних атрибутів у таблиці.

3.9 При використанні функцій SUM(), COUNT() і COUNT (*) перевіряється коректність їх застосування: оскільки немає опції групування GROUPBY, то ці функції можуть бути застосовані тільки до одного атрибута, при цьому треба ще перевірити, чи відповідає функції SUM() тип даних (чи можна з цим типом даних виконувати арифметичні операції).

 

Варіант №7

1. Спрощений варіант мови – інструкція вибірки (селекції) даних із двох таблиць мовою SQL – SELECT в межах опцій SELECT … FROM … INNERJOIN … WHERE … без застосування розрахункових полів та функцій.

2. Приклади. Хай в БД є таблиці BLOKDYSC1(KodDysc, NazvDysc, ObsCred, KodCycl, NomKaf) та BLOKDYSC2(KodDysc, NazvDysc, ObsCred, KodCycl, NomKaf), де KodDysc, NazvDysc – текстові атрибути; KodCycl, NomKaf – цілочисельні атрибути; ObsCred – чисельний атрибут.

Приклад. SELECT KodDysc, NazvDysc, ObsCred FROM BLOKDYSC1 INNERJOIN BLOKDYSC2 ON BLOKDYSC1.KodDysc = BLOKDYSC2.KodDysc;

3. Спрощення та обмеження.

3.1 Ім’я таблиці складається із сукупності літер і цифр, що починається з літери. Довжина не більше 8 символів.

3.2 Ім’я атрибута складається із сукупності літер, цифр, символів «_» і «-», що починається з літери або символа «_». Довжина не більше 16 символів.

4. Розширений варіант мови:

Граматика оператора розширюється за рахунок можливості використання в списку полів розрахункових полів та можливості використання повних імен атрибутів, тобто з прив’язкою до таблиці.

Приклад. SELECT BLOKDYSC1.KodDysc, BLOKDYSC1.NazvDysc, BLOKDYSC1.ObsCred*54 AS ObsGod FROM BLOKDYSC1 INNERJOIN BLOKDYSC2 ON BLOKDYSC1.KodDysc = BLOKDYSC2.KodDysc;

5. Додаткові вимоги та спрощення.

5.1. Перевіряється унікальність імен атрибутів та їх неспівпадання з іменем таблиці як при створенні таблиці, так і при додаванні атрибутів, що є розрахунковими полями.

5.2. Опис таблиці можна обмежити тільки переліком атрибутів та їх типів даних.

5.3. При використанні розрахункових полів перевіряється наявність використаних атрибутів у таблиці.

Варіант №8

1. Спрощений варіант мови – інструкція вибірки (селекції) даних із двох таблиць мовою SQL – SELECT в межах опцій SELECT … FROM … LEFTJOIN … WHERE … без застосування розрахункових полів та функцій.

2. Приклади. Хай в БД є таблиці STORE1(IDItem, NameItem, Qty, Sertif, Price) та STORE2(IDItem, NameItem, Qty, Sertif, Price), де IDItem – цілочисельний атрибут, NameItem – текстовий атрибут; Qty, Price – чисельнs атрибути, Sertif – логічний атрибут.

Приклад. SELECT IDItem, NameItem FROM STORE1 LEFTJOIN STORE2 ON STORE1. IDItem = STORE2. IDItem;

3. Спрощення та обмеження.

3.1 Ім’я таблиці складається із сукупності літер і цифр, що починається з літери. Довжина не більше 8 символів.

3.2 Ім’я атрибута складається із сукупності літер, цифр, символів «_» і «-», що починається з літери або символа «_». Довжина не більше 16 символів.

3.3 Умова селекції рядків, що слідує за фразою WHERE, є логічним виразом і припускає будь яку глибину вкладення дужок, при цьому перевіряється відповідність між дужками, що відкривають вираз і що його закривають.

4. Граматика оператора розширюється за рахунок можливості використання в списку полів розрахункових полів та можливості використання повних імен атрибутів, тобто з прив’язкою до таблиці.

Приклад. SELECT STORE2.IDItem, STORE2.NameItem, STORE2.Price* STORE2.Qty AS Cost FROM STORE1 LEFTJOIN STORE2 ON STORE1. IDItem = STORE2. IDItem;

5.1. Перевіряється унікальність імен атрибутів та їх неспівпадання з іменем таблиці як при створенні таблиці, так і при додаванні атрибутів, що є розрахунковими полями.

5.2. Опис таблиці можна обмежити тільки переліком атрибутів та їх типів даних.

5.3. При використанні розрахункових полів перевіряється наявність використаних атрибутів у таблиці.

 

Варіант №9

1. Спрощений варіант мови – інструкція вибірки (селекції) даних із двох таблиць мовою SQL – SELECT в межах опцій SELECT … FROM … RIGHT JOIN … WHERE … без застосування розрахункових полів та функцій.

2. Приклади. Хай в БД є таблиці DYSCYPL(KodDysc, NazvDysc, ObsCred, KodCycl, KodBlok, NomKaf) та CYCL(KodCycl,NazvCycl), де KodDysc, NazvDysc, NazvCycl, KodBlok – текстові атрибути; KodCycl, NomKaf – цілочисельні атрибути; ObsCred – чисельний атрибут.

Приклад. SELECT KodDysc, NazvDysc, NazvCycl FROM DYSCYPL RIGHT JOIN CYCL ON DYSCYPL.KodCycl = CYCL.KodCycl;

3. Спрощення та обмеження.

3.1 Ім’я таблиці складається із сукупності літер і цифр, що починається з літери. Довжина не більше 8 символів.

3.2 Ім’я атрибута складається із сукупності літер, цифр, символів «_» і «-», що починається з літери або символа «_». Довжина не більше 16 символів.

4. Граматика оператора розширюється за рахунок можливості використання в списку полів розрахункових полів та можливості використання повних імен атрибутів, тобто з прив’язкою до таблиці.

Приклад. SELECT KodDysc, NazvDysc, ObsCred*54 AS ObsGod FROM DYSCYPL RIGHTJOIN CYCL ON CYCL.KodCycl = DYSCYPL.KodCycl;

5. Додаткові вимоги та спрощення.

5.1. Перевіряється унікальність імен атрибутів та їх неспівпадання з іменем таблиці як при створенні таблиці, так і при додаванні атрибутів, що є розрахунковими полями.

5.2. Опис таблиці можна обмежити тільки переліком атрибутів та їх типів даних.

5.3. При використанні розрахункових полів перевіряється наявність використаних атрибутів у таблиці.

 

Варіант № 10

1. Спрощений варіант мови – інструкція вибірки (селекції) даних із однієї таблиці мовою SQL – SELECT в межах опцій SELECT … FROM … GROUPBY … HAVING … до однієї таболиці без фрази WHERE та із використанням в розрахункових полях функцій MAX(), MIN() і AVG().

2. Приклади. Хай в БД є таблиця DYSCYPL(KodDysc, NazvDysc, ObsCred, KodCycl, KodBlok, NomKaf), де KodDysc, NazvDysc, KodBlok – текстові атрибути; KodCycl, NomKaf – цілочисельні атрибути; ObsCred – чисельний атрибут.

Приклад 1. SELECT DYSCYPL.NomKaf, MAX(DYSCYPL.ObsDysCred) AS MaxOfObsDysCred, MIN(DYSCYPL.ObsDysCred) AS MinOfObsDysCred FROM DYSCYPL GROUP BY DYSCYPL.NomKaf;

Приклад 2. SELECT DYSCYPL.KodCycl, DYSCYPL.NomKaf, SUM(DYSCYPL.ObsDysCred) AS SumOfObsDysCred FROM DYSCYPL GROUP BY DYSCYPL.KodCycl, DYSCYPL.NomKaf;

3. Спрощення та обмеження.

3.1 Ім’я таблиці складається із сукупності літер і цифр, що починається з літери. Довжина не більше 8 символів.

3.2 Ім’я атрибута складається із сукупності літер, цифр, символів «_» і «-», що починається з літери або символа «_». Довжина не більше 16 символів.

3.3 Умова селекції рядків, що слідує за фразою HAVING, є логічним виразом і припускає будь яку глибину вкладення дужок, при цьому перевіряється відповідність між дужками, що відкривають вираз і що його закривають.

4. Граматика оператора розширюється за рахунок інструкції ORDERBY, в тому числі з опціями ASC та DESC.

Приклад 3. SELECT DYSCYPL.NomKaf, MAX(DYSCYPL.ObsDysCred) AS MaxOfObsDysCred, MIN(DYSCYPL.ObsDysCred) AS MinOfObsDysCred

FROM DYSCYPL GROUP BY DYSCYPL.NomKaf ORDER BY MIN(DYSCYPL.ObsDysCred) DESC;

5. Додаткові вимоги та спрощення.

5.1. Перевіряється унікальність імен атрибутів та їх неспівпадання з іменем таблиці як при створенні таблиці, так і при додаванні атрибутів, що є розрахунковими полями.

5.2. Опис таблиці можна обмежити тільки переліком атрибутів та їх типів даних.

5.3. При використанні розрахункових полів та функцій перевіряється наявність використаних атрибутів у таблиці.

5.4. При використанні функцій MAX(), MIN() і AVG() перевіряється коректність їх застосування: треба ще перевірити, чи відповідає цим функціям тип даних (чи можна з цим типом даних виконувати арифметичні операції).

5.5 Після інструкції GROUP BY можуть бути атрибути тільки попереднє заданої таблиці.

5.6 У логічному виразу після HAVING можуть бути атрибути тільки попереднє заданої таблиці.

5.7 Після інструкції ORDERBY можуть бути атрибути тільки попереднє заданої таблиці, імена рорахункових полів не передаються, тому для упорядкування по них треба знов записувати функції, що застосовані в інструкції SELECT.

 

 

Варіант № 11

1. Спрощений варіант мови – інструкція вибірки (селекції) даних із однієї таблиці мовою SQL – SELECT в межах опцій SELECT … FROM … GROUPBY … HAVING … до однієї таболиці без фрази HAVING та із використанням в розрахункових полях функцій SUM(), COUNT() і COUNT (*).

2. Хай в БД є таблиця DYSCYPL(KodDysc, NazvDysc, ObsCred, KodCycl, KodBlok, NomKaf), де KodDysc, NazvDysc, KodBlok – текстові атрибути; KodCycl, NomKaf – цілочисельні атрибути; ObsCred – чисельний атрибут.

Приклад 1. SELECT DYSCYPL.NomKaf, SUM(DYSCYPL.ObsDysCred) AS SumOfObsDysCred, Count(DYSCYPL.ObsDysCred) AS QtyOfDys FROM DYSCYPL GROUP BY KodCycl;

Приклад 2. SELECT DYSCYPL.KodCycl, SUM(DYSCYPL.ObsDysCred) AS SumOfObsDysCred FROM DYSCYPL GROUP BY DYSCYPL.KodCycl, DYSCYPL.NomKaf;

3. Спрощення та обмеження.

3.1 Ім’я таблиці складається із сукупності літер і цифр, що починається з літери. Довжина не більше 8 символів.

3.2 Ім’я атрибута складається із сукупності літер, цифр, символів «_» і «-», що починається з літери або символа «_». Довжина не більше 16 символів.

3.3 Умова селекції рядків, що слідує за фразою HAVING, є логічним виразом і припускає будь яку глибину вкладення дужок, при цьому перевіряється відповідність між дужками, що відкривають вираз і що його закривають.

4. Граматика оператора розширюється за рахунок інструкції ORDERBY, в тому числі з опціями ASC та DESC.

Приклад 3. SELECT DYSCYPL.KodCycl, SUM(DYSCYPL.ObsDysCred) AS SumOfObsDysCred FROM DYSCYPL GROUP BY DYSCYPL.KodCycl ORDER BY SUM(DYSCYPL.ObsDysCred) ASC;

5. Додаткові вимоги та спрощення.

5.1. Перевіряється унікальність імен атрибутів та їх неспівпадання з іменем таблиці як при створенні таблиці, так і при додаванні атрибутів, що є розрахунковими полями.

5.2. Опис таблиці можна обмежити тільки переліком атрибутів та їх типів даних.

5.3. При використанні розрахункових полів та функцій перевіряється наявність використаних атрибутів у таблиці.

5.4. При використанні функцій SUM() перевіряється коректність її застосування: треба ще перевірити, чи відповідає цій функції тип даних (чи можна з цим типом даних виконувати арифметичні операції).

5.5 Після інструкції GROUP BY можуть бути атрибути тільки попереднє заданої таблиці.

5.6 У логічному виразу після HAVING можуть бути атрибути тільки попереднє заданої таблиці.

5.7 Після інструкції ORDERBY можуть бути атрибути тільки попереднє заданої таблиці, імена рорахункових полів не передаються, тому для упорядкування по них треба знов записувати функції, що застосовані в інструкції SELECT.

 

Варіант № 12

1. Спрощений варіант мови – інструкція об’єднання (UNION) даних з двох таблиць мовою SQL в межах опцій SELECT … FROM … UNION SELECT … FROM …, тобто без опції WHERE та наступних за нею.

2. Приклади. Хай в БД є таблиці BLOKDYSC1(KodDysc, NazvDysc, ObsCred, KodCycl, NomKaf) та BLOKDYSC2(KodDysc, NazvDysc, ObsCred, KodCycl, NomKaf), де KodDysc, NazvDysc – текстові атрибути; KodCycl, NomKaf – цілочисельні атрибути; ObsCred – чисельний атрибут.

Приклад 1. SELECT KodDysc, NazvDysc, ObsCred, KodCycl, NomKaf FROM BLOKDYSC1 KodCycl, NomKaf UNION SELECT KodDysc, NazvDysc, ObsCred, KodCycl, NomKaf FROM BLOKDYSC2;

3. Спрощення та обмеження.

3.1 Ім’я таблиці складається із сукупності літер і цифр, що починається з літери. Довжина не більше 8 символів.

3.2 Ім’я атрибута складається із сукупності літер, цифр, символів «_» і «-», що починається з літери або символа «_». Довжина не більше 16 символів.

4. Граматика оператора розширюється за рахунок можливості використання опції WHERE.

Приклад 2. SELECT KodDysc, NazvDysc, ObsCred, KodCycl, NomKaf FROM BLOKDYSC1 KodCycl, NomKaf UNION SELECT KodDysc, NazvDysc, ObsCred, KodCycl, NomKaf FROM BLOKDYSC2 WHERE = 17;

5. Додаткові вимоги та спрощення.

5.1 Перевіряється унікальність імен атрибутів та їх неспівпадання з іменем таблиці як при створенні таблиці, так і при додаванні атрибутів, що є розрахунковими полями.

5.2 Припускається об’єднання кількох таблиць.

5.3 Перевіряється сумісність типів даних полів, по яких здійснюється об’єднання.

5.4 Опис таблиці можна обмежити тільки переліком атрибутів та їх типів даних.

5.5 Умова вибору після опції WHERE є простим оператором порівняння без застосування дужок.

 

Варіант № 13

1.Спрощений варіант мови SQL – вкладений підзапит з оператором порівняння: SELECT … FROM …WHERE < atribute > = (SELECT … FROM …WHERE …)

2. Хай в БД є таблиці:

VYKLADACH (KodVykl, PrizvVykl, KodPost, NomKaf) та

POSADA(KodPost, PostVykl, NormPost), де:

KodVykl, NomKaf – цілочисельні атрибути;

PrizvVykl, KodPost, PostVykl – текстові атрибути;

NormPost – чисельний атрибут.

Приклад 1. SELECT VYKLADACH.PrizvVykl, POSADA.PostVykl, POSADA.NormPost FROM VYKLADACH INNER JOIN POSADA ON VYKLADACH.KodPost = POSADA.KodPost

WHERE (((POSADA.NormPost)=(select NormPost from POSADA WHERE POSADA.KodPost=”02”));

3. Спрощення та обмеження.

3.1 Ім’я таблиці складається із сукупності літер і цифр, що починається з літери. Довжина не більше 8 символів.

3.2 Ім’я атрибута складається із сукупності літер, цифр, символів «_» і «-», що починається з літери або символа «_». Довжина не більше 16 символів.

3.3 У вкладеному запиті не використовуються агрегатні (групові) функції.

4. Граматика оператора розширюється за рахунок можливості використання агрегатних функцій у підзапиті.

Приклад 2. SELECT VYKLADACH.PrizvVykl, POSADA.PostVykl, POSADA.NormPost FROM VYKLADACH INNER JOIN POSADA ON VYKLADACH.KodPost = POSADA.KodPost

WHERE (((POSADA.NormPost)=(select MIN(NormPost) from POSADA)));

5. Додаткові вимоги та спрощення.

5.1 Перевіряється унікальність імен атрибутів та їх неспівпадання з іменем таблиці як при створенні таблиці, так і при додаванні атрибутів, що є розрахунковими полями.

5.3 Перевіряється сумісність типів даних атрибутів, по яких здійснюється порівняння.

5.4 Опис таблиці можна обмежити тільки переліком атрибутів та їх типів даних.

5.5 Умова вибору після опції WHERE є простим оператором порівняння без застосування дужок.

 

 

Варіант № 14

1.Спрощений варіант мови SQL – вкладений підзапит з модіфікованим оператором порівняння ALL: SELECT … FROM …WHERE < atribute > < modified ALL > (SELECT … FROM …WHERE …)

2. Хай в БД є таблиці:

VYKLADACH (KodVykl, PrizvVykl, KodPost, NomKaf), де:

KodVykl, NomKaf – цілочисельні атрибути;

PrizvVykl, KodPost – текстові атрибути.

Приклад 1. SELECT VYKLADACH.PrizvVykl, VYKLADACH.NomKaf, VYKLADACH.KodPost FROM VYKLADACH

WHERE (((VYKLADACH.KodPost)>All (select KodPost from VYKLADACH where NomKaf=12)));

3. Спрощення та обмеження.

3.1 Ім’я таблиці складається із сукупності літер і цифр, що починається з літери. Довжина не більше 8 символів.

3.2 Ім’я атрибута складається із сукупності літер, цифр, символів «_» і «-», що починається з літери або символа «_». Довжина не більше 16 символів.

3.3 У запитах не використовуються агрегатні (групові) функції.

3.4.Умова вибору зовнішнього SELECT складається тільки із вкладеного оператора SELECT.

4. Граматика оператора розширюється за рахунок можливості використання у підзапиті підзапита (SELECT...) ще й іншого логічного виразу, об’єднаного з ним логічними операціями..

Приклад 2. SELECT VYKLADACH.PrizvVykl, VYKLADACH.NomKaf, VYKLADACH.KodPost FROM VYKLADACH

WHERE ((((VYKLADACH.KodPost) <All (select KodPost from VYKLADACH where NomKaf=2))) AND (KodPost<>”01”));

5. Додаткові вимоги та спрощення.

5.1 Перевіряється унікальність імен атрибутів та їх неспівпадання з іменем таблиці як при створенні таблиці, так і при додаванні атрибутів, що є розрахунковими полями.

5.3 Перевіряється сумісність типів даних атрибутів, по яких здійснюється порівняння.

5.4 Опис таблиці можна обмежити тільки переліком атрибутів та їх типів даних.

 

Варіант № 15

1.Спрощений варіант мови SQL – вкладений підзапит з предикатом IN (Not In).

2. Хай в БД є таблиці:

VYKLADACH (KodVykl, PrizvVykl, KodPost, NomKaf), де:

KodVykl, NomKaf – цілочисельні атрибути;

PrizvVykl, KodPost – текстові атрибути.

Приклад 1. SELECT VYKLADACH.PrizvVykl, VYKLADACH.NomKaf, VYKLADACH.KodPost FROM VYKLADACH

WHERE (((VYKLADACH.KodPost) In (select KodPost from VYKLADACH where NomKaf=2)));

3. Спрощення та обмеження.

3.1 Ім’я таблиці складається із сукупності літер і цифр, що починається з літери. Довжина не більше 8 символів.

3.2 Ім’я атрибута складається із сукупності літер, цифр, символів «_» і «-», що починається з літери або символа «_». Довжина не більше 16 символів.

3.3 У запитах не використовуються агрегатні (групові) функції.

3.4.Умова вибору зовнішнього SELECT складається тільки із вкладеного оператора SELECT.

4. Граматика оператора розширюється за рахунок можливості використання у підзапиті підзапита (SELECT...) ще й іншого логічного виразу, об’єднаного з ним логічними операціями..

Приклад 2. SELECT VYKLADACH.PrizvVykl, VYKLADACH.NomKaf, VYKLADACH.KodPost FROM VYKLADACH

WHERE (((VYKLADACH.NomKaf)<>2) AND ((VYKLADACH.KodPost) In (select KodPost from VYKLADACH where NomKaf=2)));

5. Додаткові вимоги та спрощення.

5.1 Перевіряється унікальність імен атрибутів та їх неспівпадання з іменем таблиці як при створенні таблиці, так і при додаванні атрибутів, що є розрахунковими полями.

5.3 Перевіряється сумісність типів даних атрибутів, по яких здійснюється порівняння.

5.4 Опис таблиці можна обмежити тільки переліком атрибутів та їх типів даних.

 

Варіант № 16

1.Спрощений варіант мови SQL – вкладений підзапит з квантором EXISTS (NOT EXISTS): SELECT … FROM …WHERE (EXISTS (SELECT … FROM …WHERE …));

2. Хай в БД є таблиці:

VYKLADACH (KodVykl, PrizvVykl, KodPost, NomKaf) та

POSADA(KodPost, PostVykl, NormPost), де:

KodVykl, NomKaf – цілочисельні атрибути;

PrizvVykl, KodPost, PostVykl – текстові атрибути;

NormPost – чисельний атрибут.

Приклад 1. SELECT VYKLADACH.PrizvVykl, POSADA.PostVykl

FROM VYKLADACH INNER JOIN POSADA ON VYKLADACH.KodPost = POSADA.KodPost

WHERE (((Exists (SELECT * FROM VYKLADACH where ((KodPost="02") AND (NomKaf=2))))=True));

3. Спрощення та обмеження.

3.1 Ім’я таблиці складається із сукупності літер і цифр, що починається з літери. Довжина не більше 8 символів.

3.2 Ім’я атрибута складається із сукупності літер, цифр, символів «_» і «-», що починається з літери або символа «_». Довжина не більше 16 символів.

3.3 У вкладеному запиті не використовуються агрегатні (групові) функції.

4. Граматика оператора розширюється за рахунок можливості використання у підзапиті підзапита (SELECT...) ще й іншого логічного виразу, об’єднаного з ним логічними операціями.

Приклад 2. SELECT VYKLADACH.PrizvVykl, POSADA.PostVykl

FROM VYKLADACH INNER JOIN POSADA ON VYKLADACH.KodPost = POSADA.KodPost

WHERE (((VYKLADACH.NomKaf)=2) AND ((Exists (SELECT * FROM VYKLADACH where ((KodPost="02") AND (NomKaf=2))))=True));5. Додаткові вимоги та спрощення.

5.1 Перевіряється унікальність імен атрибутів та їх неспівпадання з іменем таблиці як при створенні таблиці, так і при додаванні атрибутів, що є розрахунковими полями.

5.3 Перевіряється сумісність типів даних атрибутів, по яких здійснюється порівняння.

5.4 Опис таблиці можна обмежити тільки переліком атрибутів та їх типів даних.

 

Варіант № 17

1.Спрощений варіант мови SQL – вкладений підзапит з модіфікованим оператором порівняння ANY: SELECT … FROM …WHERE < atribute > < modified ANY > (SELECT … FROM …WHERE …)

2. Хай в БД є таблиці:

VYKLADACH (KodVykl, PrizvVykl, KodPost, NomKaf), де:

KodVykl, NomKaf – цілочисельні атрибути;

PrizvVykl, KodPost – текстові атрибути.

Приклад 1. SELECT VYKLADACH.PrizvVykl, VYKLADACH.NomKaf, VYKLADACH.KodPost FROM VYKLADACH

WHERE (((VYKLADACH.KodPost)>Any (select KodPost from VYKLADACH where NomKaf=2)));

3. Спрощення та обмеження.

3.1 Ім’я таблиці складається із сукупності літер і цифр, що починається з літери. Довжина не більше 8 символів.

3.2 Ім’я атрибута складається із сукупності літер, цифр, символів «_» і «-», що починається з літери або символа «_». Довжина не більше 16 символів.

3.3 У запитах не використовуються агрегатні (групові) функції.

3.4.Умова вибору зовнішнього SELECT складається тільки із вкладеного оператора SELECT.

4. Граматика оператора розширюється за рахунок можливості використання у підзапиті підзапита (SELECT...) ще й іншого логічного виразу, об’єднаного з ним логічними операціями.

Приклад 2. SELECT VYKLADACH.PrizvVykl, VYKLADACH.NomKaf, VYKLADACH.KodPost

FROM VYKLADACH

WHERE ((((VYKLADACH.KodPost) <All (select KodPost from VYKLADACH where NomKaf=2))) AND (KodPost<>”04”));

5. Додаткові вимоги та спрощення.

5.1 Перевіряється унікальність імен атрибутів та їх неспівпадання з іменем таблиці як при створенні таблиці, так і при додаванні атрибутів, що є розрахунковими полями.

5.3 Перевіряється сумісність типів даних атрибутів, по яких здійснюється порівняння.

5.4 Опис таблиці можна обмежити тільки переліком атрибутів та їх типів даних.

 

Варіант № 18

1. Спрощений варіант мови – інструкція створення таблиці під час запиту вибірки (селекції) даних із однієї таблиці мовою SQL – SELECT в межах опцій SELECT … FROM … WHERE … з простим оператором порівняння, тобто без використання дужок.

2. Приклади. Хай в БД є таблиця DYSCYPL(KodDysc, NazvDysc, ObsCred, KodCycl, KodBlok, NomKaf), де KodDysc, NazvDysc, KodBlok – текстові атрибути; KodCycl, NomKaf – цілочисельні атрибути; ObsCred – чисельний атрибут.

Приклад 1. INSERT INTO DSCPL_Kaf5 SELECT KodCycl, KodDysc, NazvDysc, ObsCred FROM DYSCYPL WHERE NomKaf = 5;

Приклад 2. INSERT INTO DSCPL_Blok3 SELECT NazvDysc, ObsCred FROM DYSCYPL WHERE KodBlok = “03”;

3. Додаткові вимоги.

3.1 Довжина імені таблиці не більше 12 символів.

3.2 Довжина імені атрибута не більше 8 символів.

4. Граматика оператора розширюється за рахунок можливості використання у запиті агрегатних функцій MAX(), MIN(), COUNT().

Приклад 1. INSERT INTO DSCPL_Cycl_Qty SELECT KodCycl, COUNT(KodDysc) FROM DYSCYPL GROUP BY KodCycl;

Приклад 2. INSERT INTO DSCPL_MaxObs SELECT NomKaf, NazvDysc MAX(ObsCred) FROM DYSCYPL GROUP BY NomKaf;

5. Додаткові вимоги та спрощення.

5.1 Перевіряється унікальність імен атрибутів та їх неспівпадання з іменем таблиці як при створенні таблиці, так і при додаванні атрибутів, що є розрахунковими полями.

5.3 Перевіряється сумісність типів даних атрибутів, по яких здійснюється порівняння.

5.4 Опис таблиці можна обмежити тільки переліком атрибутів та їх типів даних.

 

 

3.3 Умова селекції рядків, що слідує за фразою WHERE, є логічним виразом і припускає будь яку глибину вкладення дужок, при цьому перевіряється відповідність між дужками, що відкривають вираз і що його закривають.

3.4 Граматика оператора розширюється за рахунок

 

Варіант № 19

1. Спрощений варіант мови – інструкція створення таблиці під час запиту вибірки (селекції) даних із однієї таблиці мовою SQL – SELECT в межах опцій SELECT … FROM … WHERE … з простим оператором порівняння, тобто без використання дужок.

2. Приклади. Хай в БД є таблиця DYSCYPL(KodDysc, NazvDysc, ObsCred, KodCycl, KodBlok, NomKaf, Normat), де KodDysc, NazvDysc, KodBlok – текстові атрибути; KodCycl, NomKaf – цілочисельні атрибути; ObsCred – чисельний атрибут; Normat – атрибут логічного типу (приймає значення Yes або No).

Приклад 1. INSERT INTO DSCPL_Cycl3 SELECT KodCycl, KodDysc, NazvDysc, ObsCred FROM DYSCYPL WHERE KodCycl = 3;

Приклад 2. INSERT INTO DSCPL_Kaf2_Norm SELECT NazvDysc, ObsCred FROM DYSCYPL WHERE Normat = Yes;

3. Додаткові вимоги.

3.1 Довжина імені таблиці не більше 10 символів.

3.2 Довжина імені атрибута не більше 6 символів.

4. Граматика оператора розширюється за рахунок використання у логічному виразі з логічних операторів NOT, AND, OR, а також за рахунок того, що термом логічного виразу може бути не тільки оператор порівняння, а й атрибут логічного типу.

Приклад 1. INSERT INTO DSCPL_Cycl3_Kaf5 SELECT KodCycl, KodDysc, NazvDysc, ObsCred FROM DYSCYPL WHERE KodCycl = 2 AND NomKaf = 5;

Приклад 2. INSERT INTO DSCPL_Kaf2_Norm SELECT NazvDysc, ObsCred FROM DYSCYPL WHERE NomKaf = 2 AND Normat= Yes;

 

 

Варіант № 20

1. Оскільки мова SQL працює тільки з відношенням, що представлені таблицями, то вона має певні обмеження при створенні додатків із складними алгоритмами обробки. В SQL немає змінних, операторів циклу, розгалуження, тощо. Тому в таких випадках розробник або використовує поширені мови програмування (Delphi, C++, Java та інші) з вбудованим SQL, або використовує розширення SQL, що постачає фірма-розробник СКБД. Так, в MS SQL Server це мова Transact SQL, Oracle ­– PL/ SQL. Зокрема, в мові Transact SQL назва змінної починається з символу @, за яким слідує ідентифікатор. Цій змінній можна присвоїти значення атрибута таблиці під час запиту, але треба бути впевненим, що результом запиту буде єдине значення.

2. Приклади. Хай в БД є таблиця DYSCYPL(KodDysc, NazvDysc, ObsCred, KodCycl, KodBlok, NomKaf), де KodDysc, NazvDysc, KodBlok – текстові атрибути; KodCycl, NomKaf – цілочисельні атрибути; ObsCred – чисельний атрибут; Normat – атрибут логічного типу (приймає значення Yes або No).

Приклад 1. @SumObs = SELECT SUM(ObsCred) FROM DYSCYPL;

Приклад 2. @QtyDysc = SELECT COUNT(KodDysc) FROM DYSCYPL;

3. Додаткові вимоги.

3.1 Довжина імені таблиці не більше 8 символів.

3.2 Довжина імені атрибута не більше 10 символів.

4. Граматика оператора розширюється за рахунок використання опції WHERE, у логічному виразі використовуються логічні оператори NOT, AND, OR, а операндами можуть бути як оператори порівняння, так й атрибути логічного типу.

Приклад 1. @ObsKaf5 = SELECT SUM(ObsCred) FROM DYSCYPL WHERE NomKaf = 5;

Приклад 1. @ QtyNrmDysc3 = SELECT COUNT(KodDysc) FROM DYSCYPL WHERE KodCycl = 3 AND Normat= Yes;

 


1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.07 сек.)