Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Функции EVERY, ANY, SOME.

Корректирующие операторы

Пример 1

INSERT INTO сотрудник

VALUES (32, "Ли", #12/30/1899 12:14:46#, "м", 1, #12/12/1970#, 2000,

1000, yes, "доцент", 21);

Пример 2.

INSERT INTO сотрудник2

SELECT Сотрудник.Код_сотрудника AS Код_сотрудника, Сотрудник.

ФИО AS ФИО, Сотрудник.Дата_рождения AS Дата_рождения,

Сотрудник.Оклад AS Оклад

FROM сотрудник;

Запрос

UPDATE сотрудник SET оклад =оклад*1,2;

увеличит оклады всех сотрудников на 20%.

UPDATE Заказы

SET СуммаЗаказа = СуммаЗаказа * 1.1, СтоимостьДоставки = СтоимостьДоставки * 1.03 WHERE СтранаПолучателя = "Литва";

увеличить зарплату сотрудников, имеющих детей, на 20%, то запрос будет выглядеть сле­дующим образом:

UPDATE DISTINCTROW сотрудник INNER JOIN дети ON сотрудник.Код_сотрудника = дети.Код__сотрудника SET сотрудник.Оклад = [сотрудник]![Оклад]*1.2;

Запрос

UPDATE сотрудник INNER JOIN дети ON сотрудник.Код_сотрудника = дети.Код_сотрудника

SET сотрудник.Оклад = [сотрудник]![Оклад]* 1.2;

DELETE аспирант.ФИО FROM аспирант WHERE (((аспирант.ФИО)="Сидоров"));

DELETE FROM сотрудник WHERE сотрудник.Должность-'стажер";


Агрегатные функции COUNT, SUM, AVG, MIN, MAX, EVERY,ANY, SOME

 

1. Сколько преподавателей имеется в базе данных?

SELECT COUNT(*) AS «Кол-во преподавателей» FROM ПРЕПОДАВАТЕЛИ

 

2. Сколько ассистентов имеется в базе данных?

SELECT COUNT(*) AS «Кол-во ассистентов» FROM ПРЕПОДАВАТЕЛИ

WHERE Должность = «ассистент»

 

3. Сколько ассистентов не имеют телефонов?

SELECT COUNT(*) AS «Кол-во ассистентов без телефона» FROM ПРЕПОДАВАТЕЛИ

WHERE Должность = «ассистент» AND Tel = NULL

 

4. Сколько кафедр на гидрологическом факультете?

SELECT COUNT(*) AS «Код_кафедры»

FROM ФАКУЛЬТЕТ, КАФЕДРА

WHERE ФАКУЛЬТЕТ.Код_фак-та = КАФЕДРА.Код_фак-та

AND Название = «Экономический»

 

5. Сколько различных должностей занимают преподаватели кафедры «Информатика»?

SELECT COUNT(DISTINCT Должность)

FROM ФАКУЛЬТЕТ, ПРЕПОДАВАТЕЛИ

WHERE КАФЕДРА.Код_кафедры = ПРЕПОДАВАТЕЛЬ.Код_кафедры

AND Название = «Информатика»

 

6. Суммарный фонд финансирования всех факультетов?

SELECT SUM(Фонд_фин) FROM ФАКУЛЬТЕТ

 

7. Каково среднее значение ставки в вузе?

SELECT AVG(DISTINCT Оклад) FROM ПРЕПОДАВАТЕЛИ

 

8. Какова максимальная зарплата преподавателя?

SELECT MAX(Оклад+Премия) FROM ПРЕПОДАВАТЕЛИ

 

9. Вывести первое по алфавиту название кафедры с фондом финансирования более 150000 руб.

SELECT MIN(Название) FROM КАФЕДРА WHERE

Фонд_фин > 150000

 

10. Когда в последний раз принимали на работу преподавателя на кафедру МИТ?

SELECT MAX(Дата_приема) FROM КАФЕДРА К, ПРЕПОДАВАТЕЛЬ T WHERE K.Код_кафедры = T.Код_кафедры AND K.Название = «Вычислительная математика»


Использование оператора EXISTS

Унарный оператор EXISTS проверяет, является ли пустым множество, специфицированное в его аргументе. EXISTS принимает значение TRUE, если множество непустое и FALSE в противном случае.

 

Пример 1.

Вывести номера и кол-во мест в аудиториях первого корпуса с вместимостью 30 и более мест, если в этом корпусе имеется хотя бы одна аудитория с вместимостью более 50 мест.

 

SELECT Номер_ауд, Кол-во_мест FROM АУДИТОРИЯ

WHERE Номер_корпуса = 1 AND Кол-во_мест >= 30 AND

EXISTS (SELECT * FROM АУДИТОРИЯ

WHERE Номер_корпуса = 1 AND Кол-во_мест > 50)

 

 

Пример 2.

Вывести названия факультетов, на котором работает хотя бы один преподаватель.

 

SELECT НАЗВАНИЕ FROM ФАКУЛЬТЕТ WHERE EXISTS (SELECT * FROM ПРЕПОДАВАТЕЛЬ WHERE ПРЕПОДАВАТЕЛЬ.Код_кафедры IN

SELECT КАФЕДРА.Код_кафедры FROM КАФЕДРА WHERE КАФЕДРА.Код_факультета = ФАКУЛЬТЕТ. Код_факультета))

 

Пример 3.

Вывести названия факультетов, на которых работает хотя бы один профессор и которые имеют более двух кафедр, при этом фонд финансирования более 100000 руб.

 

SELECT НАЗВАНИЕ FROM ФАКУЛЬТЕТ WHERE Фонд_фин > 100000 AND

3 <= (SELECT СOUNT(*) FROM КАФЕДРА КАФЕДРА.Код_факультета = ФАКУЛЬТЕТ. Код_факультета) AND

EXISTS (SELECT * FROM ПРЕПОДАВАТЕЛЬ

WHERE ПРЕПОДАВАТЕЛЬ.Должность = ‘Профессор’ AND

ПРЕПОДАВАТЕЛЬ.Код_кафедры IN

(SELECT КАФЕДРА.Код_кафедры FROM WHERE КАФЕДРА.Код_факультета = ФАКУЛЬТЕТ. Код_факультета))

 

 

Функции EVERY, ANY, SOME.

 

Все ли профессора являются докторами наук:

SELECT EVERY(PhD) FROM ПРЕПОДАВАТЕЛЬ

WHERE ПРЕПОДАВАТЕЛЬ.Должность = ‘Профессор’

 

Существуют ли доценты – доктора наук:

SELECT SOME(PhD) FROM ПРЕПОДАВАТЕЛЬ

WHERE ПРЕПОДАВАТЕЛЬ.Должность = ‘Доцент’

 

Для поиска фамилий преподавателей:

SELECT ФИО FROM ПРЕПОДАВАТЕЛЬ

WHERE ПРЕПОДАВАТЕЛЬ.Должность = ‘Доцент’ AND PhD

 

 

Пример 4.

Вывести названия факультетов, фонды финансирования которых меньше фонда финансирования хотя бы одной из кафедр физического факультета.

 

SELECT Название FROM ФАКУЛЬТЕТ

WHERE Фонд_фин < SOME (SELECT ФАКУЛЬТЕТ.Фонд_фин FROM КАФЕДРА, ФАКУЛЬТЕТ = ФАКУЛЬТЕТ. Код_факультета AND

ФАКУЛЬТЕТ. Название = «Экономический»)

 

Пример 5.

 

Вывести фамилии доцентов, зарплата которых больше, чем ставка хотя бы одного из профессоров.

 

SELECT ФИО FROM ПРЕПОДАВАТЕЛЬ

WHERE ПРЕПОДАВАТЕЛЬ.Должность = ‘Доцент’ AND

(Оклад + Премия) > SOME (SELECT Оклад FROM ПРЕПОДАВАТЕЛЬ

WHERE ПРЕПОДАВАТЕЛЬ.Должность = ‘Профессор’

 

Поделиться:





Читайте также:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...