Пълно ръководство на Sql

  • Начална страница
  • База данни
  • С и С++
  • Данни
  • Обекти
  • Оператори
  • Приложения
  • Дизайн
  • Програмиране
  • Изпълнение
  • Кв
  • Системи
  • Популярни статии
  • UEFI
  • Как се появиха езиците за програмиране?
  • Защо е по-добре да програмирате в IDE, отколкото в бележника?
  • Какво е обектно-ориентирано програмиране?
  • OOP, UML и Java
  • Байпасна защита в Oracle
  • Подобрете стила си на програмиране
  • Защо си струва да станете програмист?
  • Проектиране на софтуерен проект
  • Защо 12 езика за програмиране шокираха света?
  • Какво е диаграма на случая на употреба (UML)?
  • Какви са алгоритмите за компресиране на данни?
  • Как да се науча на програмиране?
  • Какво представляват масивите в програмирането?
  • Хипертекстови технологии
  • Как да изберем език за програмиране за разработване на уебсайт?

в SQL Server. В тази база данни външното присъединяване се обозначава чрез добавяне на звездичка (*) към оператора за сравнение в клаузата where, указваща условието за присъединяване. За да се обозначи пълна външна връзка на две таблици Tvy и TBL2 чрез свързаните колони соя и C0L2, звезда (*) се поставя вляво и вдясно от оператора;

КЪДЕ C0L1 * = * C0L2

За да посочите ляво външно съединение, звездичка се поставя само отляво:

КЪДЕ C0L1 * = C0L2

а дясното външно съединение е отдясно:

КЪДЕ C0L1 = * C0L2

Същата нотация се използва и с други оператори за сравнение, например:

КЪДЕ C0L1 *> = C0L2

Oracle също поддържа външно присъединяване, но използва различна система за запис. Външно присъединяване в клауза where е обозначено със знак плюс в скоби вдясно от името на колоната на таблицата, към която добавяте нулеви редове (т.е. спомагателната таблица). Условието за избор, което дефинира лявото външно съединение, изглежда така:

КЪДЕ C0L1 = C0L2 (+)

и дефиниращото дясно външно съединение е по следния начин:

КЪДЕ C0L1 (+) = C0L2

Имайте предвид, че знакът плюс е на противоположната страна на израза от звездичката, който се използва в нотация на SQL Server. Пълно външно присъединяване не се поддържа в Oracle.

Въпреки че и двете описани системи за писане на външно съединение са относително удобни, те въпреки това донякъде подвеждат. Съгласно правилата за обработка на SQL заявка за селекция, дадени в табл. 7.1, първо се анализира клаузата от и се формира произведението на две таблици, а след това от нея се изключват редове, които не отговарят на условието за избор в клаузата къде. Но продуктът не съдържа нулевите низове във външния съюз! Клаузата from не казва на СУБД кой съюз - вътрешен или външен - да изгради. Как тези редове попадат в резултатите от заявката? Отговорът е, че когато формира продукта, СУБД е принуден да се позовава на клаузата where, за да разбере дали да включва нулеви низове в продукта. Също така две таблици могат да бъдат обединени, като се използват повече от една двойка свързани колони и не е ясно как трябва да се използва системата за нотация, ако има две или три двойки свързани колони.