Классика баз данных - статьи

       

Может иметься любое число уровней


Может иметься любое число уровней вложения отображений. Вместо IN может использоваться операция сравнения = без изменения смысла запроса (пользователю это может показаться более естественным, если внутреннее отображение возвращает одно значение).

Q4. Найти имена служащих, которые работают в отделах, расположенных в EVANSTON. SELECT NAME FROM EMP WHERE DNO IN SELECT DNO FROM DEPT WHERE LOC = 'EVANSTON'

В SEQUEL 2 требуется заключать символьно-строковые константы в одинарные кавычки, чтобы отличать их от имен атрибутов (например, и NAME = JOB, и NAME = 'JOB' являются допустимыми предикатами, но с различным смыслом). Для числовых констант являются необязательными (например, SAL = 10000 и SAL = '10000' эквивалентны).

Результат запроса возвращается в порядке, определяемом системой, если пользователь не потребует упорядочивания, как показано в запросе Q5. Пользователь может указать главный и второстепенные атрибуты сортировки и определить восходящий и нисходящий порядок. При упорядочивании атрибутов символьных строк используется лексикографический порядок.

Q5. Выдать номер служащего, его имя и зарплату для служащих отдела 50 в порядке номеров служащих. SELECT EMPNO,NAME,SAL FROM EMP WHERE DNO = 50 ORDER BY EMPNO

В SEQUEL 2 обеспечивается несколько встроенных функций, которые могут использоваться в разделе SELECT, как показано в запросе Q6. Эти функции включают AVG, SUM, COUNT, MAX и MIN. System R позволяет добавлять к системе дополнительные функции, размещая соответствующие программы в специальной библиотеке функций.

Q6. Найти среднюю зарплату клерков. SELECT AVG(SAL) FROM EMP WHERE JOB = 'CLERK'

Нотация COUNT(*) обозначает количество кортежей, которые удовлетворяют разделу WHERE.

В общем случае из множества отобранных значений дубликаты не исключаются до применения встроенной функции. Однако пользователь может явно вызвать исключение дубликатов, поместив слово UNIQUE внутри аргумента функции, как показано в запросе Q7.

Q7. Сколько различных заданий у служащих в отделе 50? SELECT COUNT(UNIQUE JOB) FROM EMP WHERE DNO = 50


Содержание  Назад  Вперед