Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции_Банки и базы данных.doc
Скачиваний:
20
Добавлен:
25.09.2019
Размер:
656.9 Кб
Скачать

13.2.3. Примеры простейших запросов на выборку.

Для рассмотрения примеров запросов будем использовать схему данных для предметной области «Телефонная книга» (подробно разбиралась на лабораторных и практических занятиях).

Пример 1. Вывести коды и названия мелодий.

SELECT ID, NAZV

FROM MELODII

Пример 2. Вывести информацию о контактах (код, имя, возраст).

SELECT ID, NAME1, VOZRAST

FROM KONTAKTY

Пример 3. Для каждого вызова вывести фразу типа: “Стоимость звонка 1 равна 3,50р.”.

SELECT 'Стоимость звонка ', ID, ' равна ', STOIM

FROM VYZOVY

Пример 4. Вывести код, длительность и стоимость звонка в долларах (по курсу 30 руб./$).

SELECT ID, DLIT, STOIM/30 AS DOLLARS

FROM VYZOVY

Пример 5. Вывести полную информацию о группах контактов.

SELECT *

FROM GRUPPY

Пример 6. Вывести полную информацию о вызовах, а также стоимость минуты каждого вызова.

SELECT *, STOIM/DLIT*60 AS TARIF

FROM VYZOVY

Пример 7. Вывести коды (ID) мелодий, которые уже использовались (были назначены хотя бы одному контакту).

Неправильно:

SELECT MEL_ID

FROM KONTAKTY

Правильно:

SELECT DISTINCT MEL_ID

FROM KONTAKTY

13.3. Отбор строк (предложение where)

Приведенные выше примеры запросов выбирали информацию из всех строк таблицы. Однако чаще требуется выбрать данные только из тех строк, которые удовлетворяют определенным условиям. Для этой цели служит предложение WHERE, которое исключает строки, не удовлетворяющие заданным в нем условиям. В результаты запроса попадут только те строки, для которых условие отбора вернет True(Истина).

Условие отбора строк в предложении WHERE может быть простым или составным.

Можно выделить пять основных типов простых условий отбора строк.

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

13.3.1. Сравнение

Синтаксис:

<выражение1> <операция сравнения> <выражение2>

Операции сравнения : = (равно), <> (не равно), > (больше), < (меньше), >= (больше или равно), <= (меньше или равно).

Пример 8. Вывести имена контактов, чей возраст больше 20.

SELECT NAME1

FROM KONTAKTY

WHERE VOZRAST>20

Пример 9. Вывести полную информацию о звонках, стоимость которых рассчитывалась исходя из тарифа 1.2 руб/мин.

SELECT *

FROM VYZOVY

WHERE STOIM=DLIT/60*1.2

13.3.2. Проверка на принадлежность диапазону значений (between)

Синтаксис:

<выражение1> [NOT] BETWEEN <выражение2> AND <выражение3>

Данная проверка возвращает True (Истина), если:

<выражение1> [<выражение2>;<выражение3>]

Чаще всего <выражение1> - имя столбца таблицы, <выражение2>, <выражение3> - константы.

Пример 10. Вывести названия мелодий с кодами (ID) от 5 до 15 включительно.

SELECT ID, NAZV

FROM MELODII

WHERE ID BETWEEN 5 AND 15

13.3.3. Проверка на членство во множестве (in)

Синтаксис:

<выражение> [NOT] IN (<выражение1>[,<выражение2>][,…])

Данная проверка возвращает True (Истина), если <выражение> равно одному из выражений в круглых скобках.

Чаще всего <выражение> - имя столбца таблицы, <выражение1>, <выражение2> и т.д. - константы.

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

Пример 11. Вывести номера телефонов, принадлежащих контактам с кодами (ID) 1, 2, 4, 5.

SELECT NOMER, KONT_ID

FROM NOMERA

WHERE KONT_ID IN (1,2,4,5)

Пример 12. Вывести номера телефонов, не принадлежащих контактам с кодами 1, 2, 4, 5.

SELECT NOMER, KONT_ID

FROM NOMERA

WHERE KONT_ID NOT IN (1,2,4,5)