- •Введение в sql
- •1. Введение в реляционную базу данных
- •2.Sql: Обзор
- •3. Использования sql для извлечения информации из таблиц
- •4. Использование реляционный и булевых операторов для создания более изощренных предикатов
- •5. Использование специальных операторов в условиях
- •6. Обобщение данных с помощью агрегатных функций
- •7. Формирование выводов запросов
- •8. Запрашивание многочисленных таблиц также как одной
- •9. Объединение таблицы с собой
- •10. Вставка одного запроса внутрь другого
- •11. Соотнесенные подзапросы
- •12. Использование оператора exists
- •13. Использование операторов any, all, и some
- •14. Использование предложения union
- •15. Ввод, удаление и изменение значений полей
- •16. Использование подзапросов с коммандами модификации
- •17. Создание таблиц
- •19. Поддержка целостности ваших данных
- •20. Введение: Представления
- •21. Изменение значей с помощью представлений
- •22. Кто что может делать в базе данных
- •Глава 23 продолжит обсуждение о выводах в sql, таких как сохранение
- •23. Глобальные аспекты sql
- •24. Как данные sql содержатся в упорядоченом виде
- •25. Использование sql с другим языком (вложенный sql)
- •Глава 1
- •Глава 2
- •Глава 3
- •Глава 4
- •Глава 5
- •Глава 6
- •Глава 7
- •Глава 8
- •Глава 9
- •Глава 10
- •Глава 11
- •Глава 12
- •Глава 13
- •Глава 14
- •Глава 15
- •Глава 16
- •Глава 17
- •Глава 18
- •Глава 19
- •Глава 20
- •Глава 21
- •Глава 22
- •Глава 23
- •Глава 24
- •Глава 25
- •Приложение b Тиры данных в sql
- •Приложение c Некоторые общие нестандартные средства sql
- •Intersect и minus
- •Приложение d Синтаксис и команда ссылки
Глава 12
1. SELECT *
FROM Salespeople first
WHERE EXISTS
(SELECT *
FROM Customers second
WHERE first.snum = second.snum
AND rating = 300);
2. SELECT a.snum, sname, a.city, comm
FROM Salespeople a, Customers b
WHERE a.snum = b.snum
AND b.rating = 300;
3. SELECT *
FROM Salespeople a
WHERE EXISTS
(SELECT *
FROM Customers b
WHERE b.city = a.city
AND a.snum < > b.snum);
4. SELECT *
FROM Customers a
WHERE EXISTS
(SELECT *
FROM Orders b
WHERE a.snum = b.snum
AND a.cnum < > b.cnum)
Глава 13
1. SELECT *
FROM Customers
WHERE rating > = ANY
(SELECT rating
FROM Customers
WHERE snum = 1002);
2. cnum cname city rating snum
2002 Giovanni Rome 200 1003
2003 Liu San Jose 200 1002
2004 Grass Berlin 300 1002
2008 Cisneros SanJose 300 1007
3. SELECT *
FROM Salespeople
WHERE city < > ALL
(SELECT city
FROM Customers);
или
SELECT *
FROM Salespeople
WHERE NOT city = ANY
(SELECT city
FROM Customers);
4. SELECT *
FROM Orders
WHERE amt > ALL
(SELECT amt
FROM Orders a, Customers b
WHERE a.cnum = b.cnum
AND b.city = 'London');
5. SELECT *
FROM Orders
WHERE amt >
(SELECT MAX (amt)
FROM Orders a, Customers b
WHERE a.cnum = b.cnum
AND b.city = 'London');
Глава 14
1. SELECT cname, city, rating, 'High Rating'
FROM Customers
WHERE rating > = 200
UNION
SELECT cname, city, rating, ' Low Ratlng'
FROM Customers
WHERE rating < 200;
или
SELECT cname, city, rating, 'High Rating'
FROM Customers
WHERE rating > = 200
UNION
SELECT cname, city, rating, ' Low Rating'
FROM Customers
WHERE NOT rating > = 200;
Различие между этими двумя предложениями, в форме второго предиката.
Обратите внимание что, в обоих случаях, строка "Low Rating" имеет в
начале дополнительный пробел для того чтобы совпадать со строкой "High
Rating" по длине.
2. SELECT cnum, cname
FROM Customers a
WHERE 1 <
(SELECT COUNT (-)
FROM Orders b
WHERE a.cnum = b.cnum)
UNION
SELECT snum, sname
FROM Salespeople a
WHERE 1 <
(SELECT COUNT (*)
FROM Orders b
WHERE a.snum = b.snum)
ORDER BY 2;
3. SELECT snum
FROM Salespeople
WHERE city = 'San Jose'
UNION
(SELECT cnum
FROM Customers
WHERE city = 'San Jose'
UNION ALL
SELECT onum
FROM Orders
WHERE odate = 10/03/1990);
Глава 15
1. INSERT INTO Salespeople (city, cname, comm, cnum)
VALUES ('San Jose', 'Blanco', NULL, 1100);
2. DELETE FROM Orders WHERE cnum = 2006;
3. UPDATE Customers
SET rating = rating + 100
WHERE city = 'Rome';
4. UPDATE Customers
SET snum = 1004
WHERE snum = 1002;