Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Сортировка записей. Простая выборка данныхСтр 1 из 2Следующая ⇒
Простая выборка данных Для выборки данных служит оператор SELECT. В простейшем виде этот оператор имеет такой формат: SELECT Список_полей FROM Список_таблиц Здесь SELECT (выбор) и FROM (из) – зарезервированные слова. Подобно зарезервированным словам Delphi они не могут использоваться в качестве имен полей, таблиц или иных сущностей БД. Если из таблиц в списке таблиц выбираются все поля, вместо списка полей можно указать символ звездочки (*). Например, SELECT * FROM Books Запрос означает выбор всех полей из таблицы Books. SQL-интерпретатор BDE игнорирует регистр букв в зарезервированных словах или названиях полей, таблиц и других сущностей БД (индексы, ограничения и т. п.). Этот простейший формат выборки позволяет формировать НД из нужных полей нужных таблиц. Например, следующий оператор выберет только три поля из таблицы Books: SELECT BName, BAuthor, BPublish FROM Books Здесь BName – название книги, BAuthor – автор(ы), BPublish – издательство. Выборка из связанных таблиц Хотя простейший оператор SELECT допускает одновременную выборку данных из нескольких таблиц, но он не учитывает возможные связи между таблицами. Чтобы учесть реляционную связь по полям NFirm и FirmID, нужно установить критерий отбора: SELECT * FROM Nakls, Firms WHERE FirmID=NFirm Здесь Nakls (Накладные), Firms (Партнеры) – таблицы; FirmID (уникальный идентификатор партнера) – поле таблицы Firms, NFirm (уникальный идентификатор партнера) – поле таблицы Nakls. Критерий отбора формулируется в секции, которая начинается зарезервированным словом WHERE (где). Чтобы связать две таблицы, следует указать, что для каждой записи таблицы Nakls (она открывает перечень таблиц) в поле NFirm содержится шифр связанной с ней записи из таблицы Firms. В результирующем НД будет столько записей, сколько их имеется в таблице Nakls, причем к каждой записи Nakls будут справа добавлены все поля записи таблицы Firms с информацией об указанном в накладной партнере. Связывание таблиц в запросе не требует обязательного наличия индексов по подстановочным полям, но если такие индексы есть, BDE будет их использовать. Сортировка записей Для сортировки используется секция, начинающаяся зарезервированными словами ORDER BY (сортировать по). Отсортируем записи по полю NaklID (уникальный идентификатор накладной, первичный ключ). SELECT NaklID, NDate, FName, TName, NSum, NPayedSum, NRetSum, NCoeff, NRetDate FROM Nakls, Firms, TypeNakl WHERE FirmID=NFirm AND TypeID=NType ORDER BY NaklID В БД есть таблица подстановки TypeNakl, содержащая два поля: TypeID (целого типа, первичный ключ) и текстовое поле TName. В поле TypeID указаны возможные значения поля NType (тип накладной) в виде чисел от 0 до 7, а в поле TName – расшифровка смысла типа (0 – покупка у поставщика; 1 – продажа покупателю; 2 – возврат поставщику; 3 – возврат от покупателя; 4 – книги получаются по обмену; 5 – книги передаются по обмену; 6 – покупка с предоплатой; 7 – продажа с предоплатой). Другие поля означают: NDate – дата составления накладной; FName – название партнера; NSum – сумма накладной с учетом значения поля NCoeff; NPayedSum – оплаченная сумма (не используется в накладных обмена); NRetSum – сумма возврата (не используется в накладных обмена); NCoeff – величина скидки/наценки; NRetDate – срок возврата нереализованных книг (не используется в накладных обмена). Сортировать можно по любым полям, не обязательно индексным.
|