Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
srs_IPOVS_BD.doc
Скачиваний:
44
Добавлен:
05.06.2015
Размер:
1 Мб
Скачать
☆

Тема 10. Основные элементы языка sql. Использование языка sql для выборки данных

10.1. Оператор select

Этот оператор является основным в языке SQL и служит для отбора данных и выдачи результатов этого отбора в заданном виде. Оператор имеет следующий формат:

SELECT <предложение>

FROM <предложение>

[WHERE <условие>]

[GROUP BY <предложение>] [HAVING <условие>]

[UNION <подзапрос>]

[ORDER BY <предложение>]

Обязательными являются фразы (или предложения) SELECT и FROM. Все другие компоненты оператора SELECT, если они используются, должны записываться в том порядке, в котором они перечислены в формате оператора.

Рассмотрим правила записи отдельных компонентов оператора SELECT.

Фраза SELECT имеет следующий формат:

SELECT [DISTINCT] { * | <список выражений>}

Если указано DISTINCT, то в результирующую таблицу отбираются только уникальные строки. По умолчанию отбираются все строки, в том числе повторяющиеся.

Знак “*” указывает, что в результирующую таблицу выводятся все столбцы из таблиц, указанных в фразе FROM.

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

В выражениях могут употребляться стандартные функции, в том числе: SUM (сумма), AVG (среднее), MIN (минимальное), MAX (максимальное), COUNT (число значений). Каждая из этих функций оперирует совокупностью значений в столбце, заданном в качестве аргумента функции.

Аргументу функции может предшествовать ключевое слово DISTINCT, которое указывает, что дублирующие значения не должны учитываться при определении результата. Например:

SELECT ‘ВСЕГО ЖИТЕЛЕЙ’, COUNT (DISTINCT nom),

‘СУММА ДОХОДОВ=’, SUM (money) FROM Have_D

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

SELECT person.Fio,tphone.Ntel

FROM person,tphone

WHERE person.Adr=tphone.Adr

Тема 11. Отбор строк из таблиц. Условия поиска строк

Фраза WHERE задает условие, по которому выбираются строки для выполнения запроса. в предыдущем примере использован следующий формат фразы WHERE:

WHERE [NOT] [<имя таблицы1>.] <имя столбца>

<знак сравнения> [<имя таблицы2>.] <имя столбца>

Условие отбора строк может задаваться с использованием логических операций AND и OR. Например, если нужны данные только о жителях с фамилиями ИВАНОВ и ПЕТРОВ, то фраза WHERE может быть такой:

WHERE Fio=‘ИВАНОВ’ OR Fio=‘ПЕТРОВ’

Помимо логических операций можно использовать предикат IN (находится в, принадлежит). Фраза WHERE в этом случае имеет такой формат:

WHERE [NOT] <выражение> [NOT] IN

(<список значений><подзапрос>)

Например, WHERE Fio IN (‘ИВАНОВ’, ‘ПЕТРОВ’)

Если нужно выдать сведения о всех жителях, кроме Ивановых и Петровых, то запрос можно задать так:

SELECT * FROM person WHERE Fio NOT IN (‘ИВАНОВ’, ‘ПЕТРОВ’)

В условии может быть задан диапазон:

WHERE [NOT] <выражение> [NOT] BETWEEN <нижнее выражение> AND <верхнее выражение>

Например, получить сведения о жителях, родившихся в 1960 году, можно с помощью запроса

SELECT * FROM person WHERE Rdate BETWEEN '01/01/60' AND '31/12/60'

Предусмотрена возможность поиска символьной информации по шаблону (маске). Символ “%” обозначает в шаблоне любую последовательность символов, а символ “_” (подчеркивание) - любой единичный символ. Поиск по шаблону задается фразой

WHERE [NOT] <имя столбца> [NOT] LIKE ‘<шаблон>’

Так, запрос

SELECT * FROM person WHERE Fio LIKE ‘И%’

обеспечит выдачу сведений о всех жителях, фамилии которых начинаются буквой “И”.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]