Най-често тя се нуждае, за да се получи съединение с общи колони от две таблици - първични и външни ключове. В този случай, състоянието на WHERE клауза равенство дадена колона от една маса и съответната колона на друга маса. Така един ред от таблица линии са свързани с друга в съответствие с общи стойности в съответните колони.
Пример: За всеки служител да се оттегли името си и името на отдела, в който той работи.
Имената на служителите са в s_emp маса, а наименованията на отделите са s_dept маса. Таблица s_emp са dept_id колона, която съдържа отдел номер на служителя и външен ключ във връзка с s_dept маса. Таблица s_dept също има колона, съдържаща номера на отдел - идентификация, тя е основният ключ s_dept на маса. Ние трябва за всеки служител от масата s_emp намерите номера му карта и след това намерете същото отдел броя в s_dept маса, а върху него да се определи името на отдела.
SELECT s_emp.last_name, s_dept.name
ОТ s_dept, s_emp
избрани 25 реда.
Забележете, че в горния пример, който се изброяват се предхождат от имената на таблиците, от които трябва да се избират на колоните. Фактът, че различни таблици могат да бъдат колони с едно и също име. Така например, в нашия пример и в s_emp маса и масата е s_dept колона име номер. За да укажете на сървъра каква маса да изберете колоните трябва да определите префикс под формата на името на масата, за всяко име на колона, която може да се тълкува двусмислено. Името на име на таблица и колона, разделени с точка по същото време. Ако не е посочен префикса, възниква грешка.
Пример: За всеки служител да се оттегли името си и името на отдела, в който той работи.
SELECT last_name, име
ОТ s_dept, s_emp
Грешка на ред 3:
ORA-00918: колона двусмислено формулирано
Ако едно и също име колоните в запитването не е, тогава имена на таблици, не е задължително да определи. Но това се препоръчва, когато пробата от няколко таблици в никакъв случай да посочват имената на таблиците, тъй като това увеличава производителността сървъра за обработка на заявки и подобрява яснотата на заявката.
Ако в допълнение към условията на връзка, трябва да се определят условията, които ограничават линии в пробите, тези условия са написани с И оператор.
Пример: Намерете името на отдела, както и името на региона, в който този отдел е за отдела №35.
SELECT s_dept.name, s_region.name
ОТ s_dept, s_region
Прогнозирането на всяко име на колона в името на съответната таблица може да отнеме време, особено ако заявката съдържа голям брой имена на колони, както и имена на таблици са дълги. Ето защо по-кратки псевдоними маса могат да бъдат използвани вместо имената. Alias маса е уточнен след името на таблицата в ОТ клауза на масата и задава различно име в една конкретна заявка. Таблицата за използване псевдоними SQL позволява да се намали количеството на код, който намалява разхода на памет.
Таблица псевдоними могат да бъдат до тридесет знака, но колкото по-кратък са те, толкова по-добре. Ако определите маса псевдоними през ОТ клауза, тя трябва да се използва вместо името на таблицата в текста на искането.
Пример: За всеки клиент на фирмата, за да изберете своя номер, име, фамилия, търговската си представител, както и името на района, където се намира.
SELECT c.id, c.name, e.last_name, r.name
ОТ s_customer С, s_emp д, s_region г
КЪДЕТО c.sales_rep_id = e.id и c.region_id = r.id;
ID NAME LAST_NAME NAME
201 Unisports Giljum Южна Америка
202 ОВ Atheletics Нгуен Азия
203 Делхи Sports Нгуен Азия
204 Womansport Магий Северна Америка
Спортни стоки Дюма Азия 205 Кам е
206 Sportique Дюма Европа
208 Мюнх Sports Дюма Европа
209 Beisbol Si! Магий Северна Америка
210 Futbol Сонора Giljum Южна Америка
избрани 14 реда.
Забележете, че в примера по-горе съдържа три таблици, така че връзката е настроена на 2 условия. (Условия s_customer маса и s_emp съединение и състояние и s_customer s_region съединението на.) Във всеки случай, размерът на комбинирани съединение н състояние таблици трябва да бъде най-малко п-1, в противен случай ще получите декартови маси продукта.
Свързани статии