русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Упорядочивание


Дата добавления: 2013-12-24; просмотров: 1007; Нарушение авторских прав


Взаимосвязь таблиц

Механизм соединения таблиц, участвующих в запросе, позволяет дополнительно ограничивать состав данных, получаемых в результате выполнения запроса. Если в операторе ИЗ перечислить несколько таблиц, а в операторе ВЫБРАТЬ задать некоторые поля из этих таблиц, то результатом будут все возможные сочетания значений полей таблиц. Для ограничения выборки используют операторы соединения таблиц.

Различают четыре вида соединения:

  • [ВНУТРЕННЕЕ] СОЕДИНЕНИЕ
  • ЛЕВОЕ [ВНЕШНЕЕ] СОЕДИНЕНИЕ
  • ПРАВОЕ [ВНЕШНЕЕ] СОЕДИНЕНИЕ
  • ПОЛНОЕ [ВНЕШНЕЕ] СОЕДИНЕНИЕ

Рассмотрим различие вариантов соединения на следующем примере. Пусть есть две таблицы:

Таблица 1

Номенкл. Номер1
Ручка
Карандаш
Вилка

 

Таблица 2

ЕдИзм Номер2
Шт
Гр
Кг
Банка

 

Пусть условием связи будет:

Таблица1.Номер1=Таблица2.Номер2

В качестве полей запроса определим две колонки: «Номенкл.» из первой таблицы и «ЕдИзм» из второй таблицы.

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

Записи, неудовлетворяющие условию соединения:

Теперь рассмотрим варианты соединения:

Внутреннее соединение:в результат выполнения запроса войдут только данные записей из обеих таблиц, для которых выполняется условие соединения т.е.

Ручка Шт.
Ручка банка
Вилка Гр.

Левое внешнее соединение:в результат выполнения запроса войдут данные из записей, для которых выполняется условие соединения и «не вошедшие» из Таблицы №1.

Ручка Шт.
Ручка банка
Вилка Гр.
Карандаш Null

Правое внешнее соединениеобратно левому.

Ручка Шт.
Ручка банка
Вилка Гр.
Null Кг.
     

Полное внешнее соединение.В результат запроса войдут как записи, для которых выполнялось условие соединения, так и записи, полученные из «не вошедших» данных из обеих таблиц.



 

Ручка Шт.
Ручка банка
Вилка Гр.
Карандаш Null
Null Кг.

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

 

 

// Показать курсы всех валют, которые хранятся в регистре сведений КурсыВалют.

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

// сведений, но она также должна попасть в отчет.

| ВЫБРАТЬ Спр.Наименование, Рег.Курс

| ИЗ Справочник.Валюты КАК Спр

| ЛЕВОЕ СОЕДИНЕНИЕ

| РегистрСведений.КурсыВалют.СрезПоследних() КАК Рег

| ПО Спр.Ссылка = Рег.Валюта

 

// Или то же самое можно сделать так:

| ВЫБРАТЬ Спр.Наименование, Рег.Курс

| ИЗ РегистрСведений.КурсыВалют.СрезПоследних() КАК Рег

| ПРАВОЕ СОЕДИНЕНИЕ

| Справочник.Валюты КАК Спр

| ПО Спр.Ссылка = Рег.Валюта

 

Часто требуется представить результат выполнения запроса упорядоченным по какому-то полю или группе полей. Для этого используется оператор

УПОРЯДОЧИТЬ ПО СписокПолей

Для каждого поля из списка можно указать порядок сортировки: ВОЗР, УБЫВ, ИЕРАРХИЯ. Если порядок не указан то сортировка происходит по возрастанию.

Последний порядок (ИЕРАРХИЯ) работает только для таблиц с иерархией, например таблиц иерархических справочников. Упорядочивание происходит сначала по первому полю списка, затем в рамках уже существующей сортировки упорядочивание по второму полю и т.д.

| ВЫБРАТЬ Наименование КАК Товар

| ИЗ Справочник.Номенклатура

| УПОРЯДОЧИТЬ ПО Товар ИЕРАРХИЯ");

 

 

Ключевое слово ПЕРВЫЕ ограничивает выборку несколькими первыми записями. Часто это слово используется в комбинации с упорядочиванием.

// Найти 3 самых дорогих товара

| ВЫБРАТЬ ПЕРВЫЕ 3 Наименование КАК Товар, ЦенаПродажи КАК Цена

| ИЗ Справочник.Номенклатура

| УПОРЯДОЧИТЬ ПО Цена УБЫВ");

 



<== предыдущая лекция | следующая лекция ==>
Структура и описание запроса | Параметры


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.424 сек.