Студопедия

Главная страница Случайная лекция


Мы поможем в написании ваших работ!

Порталы:

БиологияВойнаГеографияИнформатикаИскусствоИсторияКультураЛингвистикаМатематикаМедицинаОхрана трудаПолитикаПравоПсихологияРелигияТехникаФизикаФилософияЭкономика



Мы поможем в написании ваших работ!




Примеры определения представлений

 

1. Определить представление Londonstaff, содержащее сведения о продавцах из города London
CREATE VIEW Londonstaff AS SELECT * FROM Salespeople WHERE city='London'

2. Определить представление Salesown, со всеми данными о продавцах, кроме комиссионных
CREATE VIEW Salesown AS SELECT snum, sname, city FROM Salespeople

3. Изменить комиссионные продавцов c помощью представления Londonstaff
UPDATE Londonstaff SET comm=0.20

4. Изменить комиссионные продавцов c помощью представления Salesown нельзя
UPDATE Salesown SET comm=0.20 – – ошибка! В представлении нет поля comm

5. Вывести список продавцов из города London с комиссионными превышающими 0.12
SELECT * FROM Londonstaff WHERE comm > 0.12

6. Определить групповое представление Ratcount c числом покупателей по уровням рейтинга
CREATE VIEW Ratcount (rating,number) AS
SELECT rating, COUNT(*) FROM Customers GROUP BY rating

7. Определить групповое представление TDay с итоговой информацией за определенные дни
CREATE VIEW TDay AS SELECT odate, COUNT(onum) as c , AVG(amt) as a,
SUM(amt) as s FROM Orders GROUP BY odate

8. Определить представление NameOrders, показывающее для каждого заказа имена продавца и покупателя (представление, содержащее соединение таблиц)
CREATE VIEW NameOrders AS SELECT onum, amt, a.snum, sname, cname
FROM Orders a, Customers b, Salespeople c
WHERE a.cnum=b.cnum AND a.snum=c.snum

9. Пример использования представления NameOrders в соединение с базовой таблицей
CREATE VIEW NameOrders1 AS
SELECT a.sname, cname, amt*comm as s
FROM NameOrders a, Salespeople b
WHERE a.sname='Axelrod'AND b.snum=a.snum

10. Определить представление EliteSalesForce, показывающее продавца, имеющего покупателя с наибольшей стоимостью заказа на заданную дату (представление, содержащее вложенные подзапросы)
CREATE VIEW EliteSalesForce AS SELECT b.odate, a.snum, a.sname
FROM Salespeople a, Orders b WHERE a.snum=b.snum AND b.amt=
(SELECT MAX(amt) FROM Orders c WHERE c.odate=b.odate)

11. Определить новое представление Bonus на основе предыдущего EliteSalesForce для выплаты вознаграждения продавцу
CREATE VIEW Bonus AS SELECT DISTINCT snum, sname
FROM EliteSalesForce a WHERE 10 <=
(SELECT COUNT(*) FROM EliteSalesForce b WHERE a.snum=b.snum)

Вопросы

 

1. Создайте представление, показывающее всех покупателей с наивысшими рейтингами.

2. Создайте представление, которое показывает количество продавцов в каждом городе.

3. Создайте представление, которое показывает общую и среднюю сумму заказов для каждого продавца после его имени.

4. Создайте представление, которое показывает список покупателей со всеми сведениями о продавце.

5. Создайте представление, которое показывает список заказов со всеми сведениями о покупателе и продавце.

 

1. CREATE VIEW Highratings AS SELECT * FROM Customers WHERE rating = (SELECT MAX (rating) FROM Customers); 2. CREATE VIEW Citynumber AS SELECT city, COUNT (DISTINCT snum) FROM Salespeople GROUP BY city; 3. CREATE VIEW Nameorders AS SELECT sname, AVG (amt), SUM (amt) FROM Salespeople, Orders WHERE Salespeople.snum = Orders.snum GROUP BY sname; 4 CREATE VIEW Multcustomers AS SELECT * FROM Salespeople a WHERE 1 < (SELECT COUNT (*) FROM Customers b WHERE a.snum = b.snum);

 


<== предыдущая страница | следующая страница ==>
Теоретические сведения. 1. Таблицы в которых содержатся реальные данные называются базовыми таблицами (base tables) | Теоретические сведения. 1. Если команды обновления (INSERT, UPDATE, DELETE) можно применить к представлению, то говорят, что представление является обновляемым (updatable

Дата добавления: 2015-06-30; просмотров: 201; Нарушение авторских прав




Мы поможем в написании ваших работ!
lektsiopedia.org - Лекциопедия - 2013 год. | Страница сгенерирована за: 0.003 сек.