SQL пребарувања; преку неколку маси

Поврзување табели - придружете се

Релационите бази на податоци обично се состојат од голем број табели. За SQL пребарување, честопати сакате податоци што доаѓаат од различни табели. За да го направите ова, табелите мора да бидат поврзани. Таквите врски се нарекуваат Се придружува.

преку

Табелите се поврзани со специфицирање на табелите вклучени во клаузулата ОД. Атрибутите кои доаѓаат од различни табели често имаат идентични имиња. Ако се користи таков атрибут во барањето SQL, името на табелата исто така мора да биде наведено. Едниот пишува: име на табела.име на атрибут.

Името на атрибутот Име е двосмислено. Во него се опишани имињата на наставниците од една страна и часот од друга страна. Во нашиот пример, името на часот мора да биде адресирано со Class.Name и името на наставникот со Teacher.Name.

коментира Ако името на колоната е единствено, нема потреба да го ставате името на табелата напред.

Следното барање го покажува принципот. Значењето на клаузулата КАДЕ е подетално објаснето подолу.

Имињата на табелите може да се преименуваат во рамките на клаузулата ОД. За ова, SQL го обезбедува клучниот збор КАКО достапно, но не мора да се користи. На пример, можна е следнава формулација на горенаведеното барање:

ИЗБЕРЕТЕ l.име, k.name
ОД Наставник КАКО л, класа КАКО к
КАДЕ l.PersNr = k. управување со класа;

ИЗБЕРЕТЕ l.име, k.name
ОД Наставник л, клас к
КАДЕ l.PersNr = k. управување со класа;

Бидејќи PersNr и управувањето со класите се единствени имиња на атрибути, клаузулата КАДЕ може да биде и:

КАДЕ PersNr = водач на класа

Имињата на табелите може да се преименуваат во рамките на клаузулата ОД. За ова, SQL го обезбедува клучниот збор КАКО достапно, но не мора да се користи. На пример, можна е следнава формулација на горенаведеното барање:

ИЗБЕРЕТЕ стр.Име, од просторијата бр
ОД професор КАКО стр, дежурна просторија КАКО г.
КАДЕ p.PersNr = d.PersNr;

ИЗБЕРЕТЕ стр Име, т.е. соба бр
ОД професор стр, канцеларија г.
КАДЕ p.PersNr = d.PersNr;

Бидејќи името и RaumNr се единствени имиња на атрибути, клаузулата СЕЛЕКТ може да биде и:

Изберете име, соба бр

Значење на клаузулата КАДЕ

Испуштањето на клаузулата КАДЕ во горниот пример доведува до следниот резултат:

Создавањето на овој резултат може да се замисли како што следува. Во придружување, секој запис за податоци во една табела е поврзан со секој запис за податоци во другата табела. Резултатот е „зачуван“ во виртуелна табела која ги содржи и колоните од едната и од другата табела.

Со помош на клаузулата КАДЕ, можат да се специфицираат услови за еднаквост што исклучуваат бесмислени или бесмислени комбинации.

Самопридружи се

Понекогаш табелата е поврзана со самата себе. Ова особено придружување се нарекува Самопридружи се.

ИЗБЕРЕТЕ Име, предмет
ОД Наставник, има квалификација за наставници
КАДЕ ПерсНр = наставник;
База на податоци за вежби

ИЗБЕРЕТЕ Презиме
ОД Наставник, има специјалистички надзор
КАДЕ ПерсНр = наставник И Предмет = 'германски';
База на податоци за вежби

ИЗБЕРЕТЕ л.име
ОД Наставник, студент, е_Fachlehrkraft_von i
КАДЕ во класа = s.gehoert_zu И i.наставник = 1. лице бр И s.Name = 'Falbala';
База на податоци за вежби

ИЗБЕРЕТЕ наставник
ОД ist_fachlehrkraft_von a, ist_fachlehrkraft_von b
КАДЕ а.наставник = б.наставник И а.класа = б.класа И НЕ (a.Fach = b.Fach);
База на податоци за вежби


Ова е само-спојување бидејќи табелата is_ наставник е споена сама по себе.

Крие