Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
db / Лекции / 6 семестр / Языки запросов.docx
Скачиваний:
100
Добавлен:
23.03.2015
Размер:
280.32 Кб
Скачать
        1. Исключение повторяющихся строк

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

Запрос.Вывести значения столбцаPostтаблицыTEACHER.

SELECT Post

FROM TEACHER;

POST

профессор

доцент

преподаватель

ассистент

ассистент

преподаватель

доцент

профессор

преподаватель

профессор

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

Запрос.Вывести уникальные значения столбцаPostтаблицыTEACHER.

SELECT DISTINCT Post

FROM TEACHER;

POST

профессор

доцент

преподаватель

ассистент

        1. Использование вычисляемых выражений

Фраза SELECTможет содержать не только перечень столбцов таблицы или символ *, но и выражения. Выражения базируются на именах столбцов и могут быть любыми допустимыми в языке выражениями соответствующих типов. Приведем пример.

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

SELECT

Name,

Salary,

Rise,

Salary + Rise,

Rise * 100 / Salary

FROM TEACHER;

NAME

SALARY

RISE

SALARY+RISE

RISE*100/SALARY

Сидоров

1070

470

1540

43.93

Рамишевский

830

370

1200

44.58

Хоренко

670

230

900

34.33

Вибровский

570

170

740

29.82

Воропаев

570

150

720

26.32

Кузинцев

630

270

900

42.86

Завратинский

770

341

1111

44.29

Козлутин

530

220

750

41.51

Лекарь

890

440

1330

49.44

        1. Переопределение имен результирующих столбцов

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

С другой стороны имена столбцов, указанные во фразе SELECT, используются также для ссылки на них в других фразах (например, GROUP BY, HAVING, ORDER BY) и запросах. Если результирующий столбец является вычисляющим выражением (например, Rise * 100 / Salary), сослаться на него не получится.

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

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

SELECT

Name as Имя,

Salary as Ставка,

Rise as Надбавка,

Salary + Rise as “Ставка с надбавкой”,

Rise * 100 / Salary as “Процент надбавки”

FROM TEACHER;

Имя

Ставка

Надбавка

Ставка с надбавкой

Процент надбавки

Сидоров

1070

470

1540

43.93

Рамишевский

830

370

1200

44.58

Хоренко

670

230

900

34.33

Вибровский

570

170

740

29.82

Воропаев

570

150

720

26.32

Кузинцев

630

270

900

42.86

Завратинский

770

341

1111

44.29

Козлутин

530

220

750

41.51

Лекарь

890

440

1330

49.44