Программирование >>  Построение запросов sql 

1 ... 17 18 19 [ 20 ] 21 22 23 ... 101


Здесь в качестве возвращаемых элементов используются имена столбцов AccountCD, Fio, Phone базовой таблицы Abonent.

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

SELECT A.AccountCD, A.Fio, A.Phone FROM Abonent A;.

Результат выполнения двух предыдущих запросов представлен на рис. 3.2.

ACCOUNTCD

PHONE

005488

АКСЕНОВ С. А.

556893

115705

МИЩЕНКО Е.В.

769975

015527

КОНЮХОВ В.С.

761699

443690

ТУЛУПОВА М.И.

214833

136159

СВИРИНА З. А.

350003

443069

СТАРОДУБЦЕВ Е.В.

683014

136160

ШМАКОВ С.В.

982222

126112

МАРКОВА В.П.

683301

136169

ДЕНИСОВА Е.К.

680305

080613

ЛУКАТИНА РМ

254417

080047

ШУБИНА Т.П.

257842

080270

ТИМОШКИНА Н.Г.

321002

Рис. 3.2. Результат выполнения запроса к таблице Abonent

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

SELECT Abonent.AccountCD, Abonent.Fio, Abonent.Phone FROM Abonent A; будет выдавать сообщение об ошибке.

В результаты запроса можно включать константы, например в следующем виде:

SELECT Абонент, Fio, Номер телефона, Phone FROM Abonent;.

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

PHONE

Абонент

АКСЕНОВ С.А.

Номер телефона

556893

Абонент

МИЩЕНКО Е.В.

Номер телефона

769975

Абонент

КОНЮХОВ В.С.

Номер телефона

761699

Абонент

ТУЛУПОВА М.И.

Номер телефона

214833

Абонент

СВИРИНА З.А.

Номер телефона

350003

Абонент

СТАРОДУБЦЕВ Е.В.

Номер телефона

683014

Абонент

ШМАКОВ С.В.

Номер телефона

982222

Абонент

МАРКОВА В.П.

Номер телефона

683301

Абонент

ДЕНИСОВА Е.К.

Номер телефона

680305

Абонент

ЛУКАШИНА Р.М.

Номер телефона

254417

Абонент

ШУБИНА Т.П.

Номер телефона

257842

Абонент

ТИМОШКИНА Н.Г.

Номер телефона

321002



Как следует из результата предыдущего запроса, СУБД Firebird определяет по умолчанию системные имена для столбцов ТРЗ, содержащих константы.

Повторяющиеся строки из таблицы результатов запроса можно удалить, если в запросе SELECT перед списком возвращаемых элементов указать ключевое слово DISTINCT (различный). Например, чтобы выбрать из таблицы Abonent различные значения кодов улиц, необходимо использовать следующий запрос:

SELECT DISTINCT StreetCD FROM Abonent;.

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

STREETCD

Рис. 3.4. Результат запроса на исключение повторяющихся строк

Этот запрос выполняется следующим образом. Вначале генерируются все строки результатов (двенадцать строк - по числу строк в таблице Abonent), а затем удаляются те из них, коды улиц в которых в точности повторяют другие. Ключевое слово DISTINCT можно указывать независимо от содержимого списка возвращаемых элементов запроса SELECT. Если ключевое слово DISTINCT не указано, то повторяющиеся строки не удаляются.

Кроме столбцов, значения которых считываются непосредственно из БД, SQL-запрос на чтение может содержать вычисляемые столбцы, значения которых определяются на основании значений данных, хранящихся в БД. Чтобы получить вычисляемый столбец, в списке возвращаемых элементов необходимо указать выражение. Выражения могут включать в себя операции сложения, вычитания, умножения, деления и операцию конкатенации (склеивания) строк, которая обозначается, как две вертикальные линии . В выражениях можно также использовать скобки. Таким образом, выражение представляет собой следующую конструкцию:

<выражение>

{ [ [+] - ] { столбец константа функция} [ + - * / ] [ ]} .

Например, если требуется вывести в столбце AccountCDRyazan значение лицевого счёта абонента, а в столбце с именем FioPhone - фамилию и номер телефона абонента с добавлением символов 8-4912 в начало номера телефона каждого лицевого счета, то можно построить следующий запрос:

SELECT AccountCD AS AccountCDRyazan,

(Fio имеет телефон 8-4912- Phone) AS FioPhone FROM Abonent;.



В этом примере использованы псевдонимы столбцов, которые задаются с помощью зарезервированного слова AS (как), указываемого после возвращаемого элемента и определяющего имя, под которым столбец будет представлен в ТРЗ.

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

ACCOUNTCDRYAZAN

FIOPHONE

005488

АКСЕНОВ С.А. имеет телефон 8-4912-556893

115705

МИЩЕНКО Е.В. имеет телефон 8-4912-769975

015527

КОНЮХОВ В.С. имеет телефон 8-4912-761699

443690

ТУЛУПОВА М.И. имеет телефон 8-4912-214833

136159

СВИРИНА З.А. имеет телефон 8-4912-350003

443069

СТАРОДУБЦЕВ Е.В. имеет телефон 8-4912-683014

136160

ШМАКОВ С.В. имеет телефон 8-4912-982222

126112

МАРКОВА В.П. имеет телефон 8-4912-683301

136169

ДЕНИСОВА Е.К. имеет телефон 8-4912-680305

080613

ЛУКАШИНА Р.М. имеет телефон 8-4912-254417

080047

ШУБИНА Т.П. имеет телефон 8-4912-257842

080270

ТИМОШКИНА Н.Г. имеет телефон 8-4912-321002

Рис. 3.5. Результат выполнения запроса с вычисляемыми столбцами

Существует возможность управлять количеством строк, возвращаемых запросом. Это делается в запросе SELECT с использованием следующей конструкции:

[FIRST m] [SKIP n] ,

где m и n - целочисленные выражения.

Здесь после зарезервированного слова FIRST указывается, что только первые m строк из возвращаемого набора данных нужно вывести, а оставшиеся -отбросить. Зарезервированное слово SKIP определяет параметр n - количество первых строк, которое нужно пропустить с начала набора данных, сформированного запросом.

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

SELECT FIRST 4 SKIP 1 * FROM Abonent;.

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

ACCOUNTCD

STREETCD

HOUSENO

FLATNO

PHONE

115705

МИЩЕНКО Е.В.

769975

015527

КОНЮХОВ В.С.

761699

443690

ТУЛУПОВА М.И.

214833

136159

СВИРИНА З.А.

350003



1 ... 17 18 19 [ 20 ] 21 22 23 ... 101

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика