SQL таблици връзка в заявка изберете - SQL заявка език
Един от най-важните характеристики на SQL заявки, е способността им да се определи връзката между множество таблици и представяне на информацията, съдържаща се в тях по отношение на тези отношения в рамките на една единствена команда. Работата на този вид се нарича съединение (Съединение таблици). Всъщност наличието на операция се присъединят е може би най-важното нещо, което отличава релационни системи от други видове системи.
При работа съединения, изброени в таблица заявка ОТ клауза; имена на таблици, разделени със запетаи. заявка предикат се отнася до всяка колона на някоя от присъединиха маси, и следователно може да се използва за установяване на връзки между тях. Обикновено сказуемото сравнява стойностите в колоните на различни маси, за да се определи дали състоянието на Къде е изпълнено.
1. Да предположим, че искате да се свържете продавачи (по продажбите) и купувачите (клиенти) в съответствие с мястото си на пребиваване, за да получи всички възможни комбинации на купувачи и продавачи на един и същ град. За да направите това, вземете продавача на масата за специалисти по продажбите и да извършват търсене на масата за клиентите на всички клиенти, които имат една и съща стойност в колона града:
SELECT Customers.cname, Salespeople.sname, Salespeople.city ОТ специалисти по продажбите, клиентите КЪДЕ Salespeople.city = Customers.city;
За да се избегне двусмислието в пробата с позоваване на терена в клаузата WHERE трябва да се посочи, съдържащ имената на масите.
Операция маси връзка с помощта на референтна цялост се прилага за използването на връзки, вграден в база данни.
2. Например, за да се покаже името на клиент съвпада с името на доставчици, обслужващи тези клиенти, използвайте следната заявка:
SELECT Customers.cname, Salespeople.sname от клиенти, специалисти по продажбите КЪДЕ Salespeople.snum = Customers.snum;
3. Например, следното съединение генерира всички комбинации от купувачи и продавачи на имена, така че първият от последния по азбучен ред, а вторите имат рейтинг от по-малко от 200:
SELECT SNAME, CNAME ОТ специалисти по продажбите, клиентите КЪДЕ SNAME
4. Можете да се изгради заявки чрез комбиниране на повече от две таблици. Например, ние трябва да намерим всички приложения на потребителите не са в същия град като свой доставчик. За необходимостта от свързване на трите счита таблицата:
SELECT onum, CNAME, Orders.cnum, Orders.snum ОТ специалистите по продажбите, клиенти, системи, където Customers.city <> Salespeople.city И Orders.cnum = Customers.cnum И Orders.snum = Salespeople.snum;
Въпреки, че отборът изглежда, че е доста трудно да се следват своята логика, че е лесно да се гарантира, че купувачите и продавачите, разположени в различни градове (те се сравняват с поле snum) ще бъдат изброени в продукцията, и че тези резерви са направени от тези клиенти (реда на избирането им се определя в съответствие с cnum полета и snum Поръчки таблицата).
Някои случаи доста често срещана практика, от които се нуждаете, за да изберете данни от таблица, въз основа на резултатите от допълнителни проби от една и съща маса. Тези проби се наричат корелирани. За да ги изпълни с помощта на таблицата на псевдоними (имена aliasnye), което следва непосредствено след името на таблицата в извадката. Следващият пример използва псевдоними КЛИЕНТИ маса: първи и втори.
5. Изберете всички двойки от продавачи, които имат същото класиране, следната команда:
SELECT first.cname, second.cname, first.rating от клиенти на първо място, клиентите на второ място КЪДЕ first.rating = second.rating И first.cname
В примера на SQL команда се държи така, сякаш операция съединение с участието на две маси, наречена «първият» и «второ». И двамата са в действителност масата за клиентите, но псевдоними позволяват да го разглеждаме като два независими маса. Псевдоними са първи и втори са били идентифицирани в ОТ клауза заявката директно зад името на таблицата. Псевдоними се използват и в SELECT клаузата, независимо от факта, че те не са определени, докато предложението. Това е съвсем оправдано. SQL първо ще предприеме някое от следните псевдоними за даденост, но след това отхвърли заповедта, ако ОТ клауза от заявка псевдоними не са определени. Продължителността на живот зависи от времето за изпълнение на команди псевдоним. След заявката използвани в него псевдоними губят своята стойност. След получаване на две копия на таблицата на клиентите да работят, SQL изпълнява JOIN. в продължение на две различни таблици избира следващия ред от един псевдоним и го свързва с друг псевдоним всеки ред. За изключение на повторения, за да се определи реда за две стойности, така че една стойност е по-малка от другата, или предшествани, подредени по азбучен ред.
Към съединение данни за връщане в една таблица, дори и при липса на съответния запис в друга таблица, е възможно да се създаде външна връзка с помощта на поредица от букви, (+) в сравнение формиране таблици за връзка.
6. В този пример, избраните редове, които съдържат имената и длъжностите на служителите, като се посочват наименованията на отделите, в които те работят. В набора от резултати също така получава и оперативни звена, което не работи всеки служител
SELECT РЕДАКТОР, работа, dept.deptno, dname ОТ EMP, кат КЪДЕТО emp.deptno (+) = dept.deptno;
В резултат на тази заявка:
маси SQL връзка
SQL връзка таблици.