Читать в оригинале

<< ПредыдущаяОглавлениеСледующая >>


2.1. Базовая конструкция SQL-запроса

Основной операцией для описания запроса к БД в языке SQL является конструкция вида:

Select <список атрибутов>
From <список отношений>
Where <условие>

Эта операция представляет собой композицию реляционных операторов проекции, соединения и выбора. Проекция берется для указанного списка атрибутов, соединение выполняется для указанного списка отношений, выбор определяется условием отбора записей where.

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

Итак, напишем первый запрос и нажмем клавишу F5 (пункт меню Запрос - Выполнить):

select * from Туристы;

В результате возвращаются все записи из таблицы «Туристы» базы данных BDTur_firmSQL.

Главное окно программы принимает вид (рис. 27).

Рис. 27. Извлечение строк из таблицы «Туристы»

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

select Фамилия from Туристы;

Результат выполнения данного запроса представлен на рисунке 28.

Для вывода определенного количества записей используем следующий запрос (рис. 29):

select top 3 Фамилия from Туристы;

Рис. 28. Извлечение столбца «Фамилия»

Рис. 29. Извлечение заданного количества записей

Извлекаются первые три записи поля «Фамилия», расположенные в самой таблице «Туристы». Обратим внимание на то, что фамилии расположены не в алфавитном порядке, а в порядке, в котором они были сохранены в базе данных.

Добиться алфавитного порядка можно с помощью предложения order by, содержащего список атрибутов, после каждого из которых стоит либо ключевое слово asc (сортировка по возрастанию), либо ключевое слово dec (сортировка по убыванию). Теперь предыдущий запрос может выглядеть так:

select top 3 Фамилия from Туристы order by Фамилия asc;

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

select top 25 percent Фамилия from Туристы;

Результат выполнения запроса представлен на рисунке 30.

Рис. 30. Извлечение нескольких записей

Для отбора записей, отвечающих заданному условию, используем оператор where:

select * from Туры where Цена > 27000;

Этот запрос возвращает все записи из таблицы «Туры», в которых поле «Цена» имеет значение, большее 27000 (рис. 31).

Рис. 31. Отбор записей со всеми полями по заданному значению

Оператор where поддерживает работу со знаками сравнения <, >, >=, <=. Точную выборку только из заданного множества значений осуществляет оператор in, в следующем примере извлекаются лишь те записи, в которых значение поля «Цена» в точности равно либо 10 000, либо 20 000, либо 30 000 (рис. 32):

select * from Туры where Цена in (10000, 20000, 30000);

Рис. 32. Отбор записей по точному совпадению значений поля Цена

Выборка значений, лежащих в указанном интервале, осуществляется оператором between <первое_значение> and <второе_значение> (рис. 33):

Select * from Туры where Цена between 10000 and 30000;

Рис. 33. Отбор записей по значениям в указанном интервале поля Цена

 



<< ПредыдущаяОглавлениеСледующая >>