Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции_БД.doc
Скачиваний:
92
Добавлен:
04.05.2019
Размер:
4.03 Mб
Скачать
      1. Оператор выбора Select.

Оператор выбора Select – возвращает одно или множество значений указанных полей записей, удовлетворяющих указанному условию и упорядоченных по заданному критерию. Формат оператора:

SELECT <список имен полей>

FROM <таблица> [WHERE <условие отбора> ] [ORDER BY <список имен полей>];

где

<список имен полей> - имена тех полей таблицы, значения которых будут возвращены. Список должен включать хотя бы одно поле. Если в результирующий набор включаются все поля таблицы, то можно указать символ ‘*’.

<таблица> - та таблица базы данных, из которой осуществляется отбор, например, Tovar;

<условие отбора> - отбираются только те записи, в которых условие выполняется;

Например,

  1. SELECT S_Fam, S_Birthday FROM Sotrudniki

Результирующий набор данных включает поля S_Fam и S_Birthday из таблицы Sotrudniki.

  1. SELECT * FROM Sotrudniki

Будут выбраны все поля таблицы Sotrudniki

Для каждого имени поля можно указать псевдоним в виде

AS <псевдоним>

где

<псевдоним> - любой идентификатор, на который можно при необходимости сослаться.

Например,

1) SELECT S_fio AS Fam FROM Sotrudniki

2) SELECT S_fio AS Фамилия, S_birthday AS Дата_рождения

FROM Sotrudniki

В списке полей можно использовать не только сами поля, но и любые выражения с использованием арифметических операций +, -, *, /.

Например,

SELECT S_fio, 2005-EXTRACT (YEAR FROM S_Birthday)

AS Age FROM Sotrudniki

В выражениях для полей можно использовать строковые константы и операцию «||», которая означает сцепление строк.

Например,

SELECT 'Фамилия: ' || S_fio,

'год рожд.:' || CAST(EXTRACT (YEAR FROM

S_Birthday) AS CHAR(4)) FROM Sotrudniki

Условие отбора после WHERE отбирает только те записи, для которых заданное условие истинно. Условие может включать имена полей (кроме вычисляемых), константы, логические выражения, содержащие арифметические операции, логические операции и операции отношения:

=

равно

>

больше

>=

больше или равно

<

меньше

<=

меньше или равно

!= или <>

или не равно

Like

наличие заданной последовательности символов

between … and

диапазон значений

in

соответствие элементу множества

Например,

SELECT * FROM Tovar WHERE Kol_vo<15 and Cena>4

Операция Like:

<поле> LIKE ‘<последовательность символов>’

  • применяется к полям типа строка и возвращает True, если в строке встретился фрагмент, заданный в операции как <последовательность символов>. В начале последовательности и в ее конце может присутствовать символ % (любое количество любых символов).

Например,

SELECT * FROM Tovar WHERE Tovar Like 'Л%'

Операция betweenand:

<поле> between <значение> and <значение>

  • задает для указанного поля диапазон отбираемых значений.

Например,

SELECT * FROM Tovar WHERE Cena BETWEEN 20 and 50

Операция In:

<поле> in (<множество>)

  • отбирает записи, в которых значение указанного поля является одним из элементов указанного множества.

Например,

1) SELECT * FROM Sotrudniki

WHERE S_fio IN ('Иванов И.И.','Инин И.И.')

2) SELECT * FROM Sotrudniki

WHERE Extract(YEAR FROM S_Birthday) IN (1976,1980)

Элемент ORDER BY определяет упорядочивание (сортировку) записей, по указанным полям. Можно указывать только поля, фигурирующие в списке отобранных (после слова SELECT), в том числе и вычисляемые. Для сортировки по убыванию значений поля нужно после имени поля указать ключевое слово DESC.

Например,

  1. SELECT Tovar, Kol_vo, Cena

FROM Tovar ORDER BY Tovar, Cena DESC

  1. SELECT Tovar, Kol_vo, Cena, Kol_vo*Cena AS Стоимость

FROM Tovar ORDER BY Стоимость

После ключевого слова SELECT в оператор могут вставляться ключевые слова:

DISTINCT – в результирующий набор данных не включаются повторяющиеся записи, в которых совпадают значения полей указанных в списке оператора,

или ALLозначает включение всех записей.

Например,

SELECT DISTINCT Tovar FROM Tovar

- будет выдан список различных товаров, которые имеются в таблице.

Пример. Сортировка по вычисляемому полю. (Распечатка).