КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Расчет результирующих столбцов на основе арифметических выражений
Использование псевдонимов таблиц. В приведенном выше примере оператора SELECT
SELECT ReaderCode, FamilyName, Name, BookGiveOutRecord.Code, InventoryCode FROM BookGiveOutRecord, Readers WHERE Readers.Code = BookGiveOutRecord. ReaderCode
в перечне возвращаемых столбцов после слова SELECT и в условии поиска после слова WHERE перед именем столбца через точку пишется название таблицы:
WHERE Readers.Code = BookGiveOutRecord. ReaderCode
Указание имени таблицы перед именем столбца является совершенно необходимым, поскольку в разных таблицах могут оказаться одноименные столбцы (как в нашем примере), и SQL-сервер должен знать, со столбцом какой таблицы он имеет дело. Использование общих имен таблиц для идентификации столбцов неудобно из-за своей громоздкости. Намного лучше присвоить каждой таблице какое-нибудь краткое обозначение, псевдоним. Такие псевдонимы называются псевдонимами таблиц. Они определяются после имени каждой таблицы в указании списка таблиц-источников после слова FROM:
SELECT... FROM <таблица1 псевдоним1> [, < таблица2 псевдоним2>...] WHERE...
Например, приведенный выше запрос
SELECT ReaderCode, FamilyName, Name, BookGiveOutRecord.Code, InventoryCode FROM BookGiveOutRecord, Readers WHERE Readers.Code = BookGiveOutRecord. ReaderCode
после введения в него псевдонимов таблиц выглядит намного компактнее:
SELECT ReaderCode, FamilyName, Name, B.Code, InventoryCode FROM BookGiveOutRecord B, Readers R WHERE R.Code = B.ReaderCode 8.2.6. Предложение ORDER BY – определение сортировки. Набор данных, выдаваемый в результате выполнения оператора SELECT, в общем случае возвращается в неотсортированном виде. Это удобно далеко не всегда. Определить, по каким полям необходимо отсортировать записи в результирующем НД, можно, указав после предложения, следующего за словом WHERE, предложение
ORDER BY <список_столбцов>
Список столбцов должен содержать имена столбцов, по которым будет производиться сортировка. В случае указания имен нескольких столбцов, разделенных через запятую, столбец, указанный первым, будет использован для глобальной сортировки, второй столбец - для сортировки внутри группы, определяемой единым значением первого столбца, и т.д.
ПРИМЕР
Выдать список читателей библиотеки в алфавитном порядке
SELECT * FROM Readers ORDER BY FamilyNamе, Name, Patronymic
Результат выполнения запроса приведен в таблице 8.4. Таблица 8.4. Результат выполнения запроса SELECT * FROM Readers ORDER BY….
Сравните таблицу 8.4 с таблицей 8.1. КОНТРОЛЬНЫЕ ВОПРОСЫ:
1. Какие формы реляционного исчисления Вы знаете? 2. Какова задача реляционного исчисления кортежей? 3. Какова задача реляционного исчисления доменов?
Арифметические выражения используются для расчета значений вычисляемых столбцов результирующего набора данных. При их формировании следует придерживаться общих правил формирования арифметических выражений, принятых в алгоритмических языках, например Object Pascal для Delphi. При этом в списке возвращаемых столбцов после слова SELECT вместо имени вычисляемого столбца указывается выражение:
SELECT [DISTINCT ALL] {* | <столбец1> [, <выражение1>]} FROM <таблица1> [,<таблица2> …]
ПРИМЕР
Для каждой книги из таблицы 4.9 определим произведение ее цены на сумму значений кода книги и фонда книги. SELECT Code, InventaryNumber, (BookCode + FundCode) * Cost FROM BookInventaryNumbers
Результат выполнения запроса приведен в таблице 11.1. Таблица 11.1
Как видно из таблицы 11.1, результат вычисления выражения (BookCode + FundCode) * Cost для каждой записи из таблицы BookInventaryNumbers записан в сгенерированный столбец, которому по умолчанию присвоено имя Column3. В случае, если нужно присвоить имя столбцу, содержащему результаты вычисления выражения, это имя можно указать после выражения вслед за ключевым словом AS:
SELECT... {* | <значение1> [, <выражение1 [AS <имя столбца>]>...]}
ПРИМЕР
Выдаваемому в предыдущем примере вычисляемому столбцу присвоим имя EXAMPLE.
SELECT Code, InventaryNumber, (BookCode + FundCode) * Cost AS Example FROM BookInventaryNumbers
Результат выполнения запроса приведен в таблице 11.2. Таблица 11.2
Дата добавления: 2014-01-07; Просмотров: 417; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |