Sql запитване множество таблици

  • SQL заявки множество таблици

    Преди това всяка заявка, която сме се счита, въз основа на една таблица. В тази глава uzn # x0301; aete искал да поиска всяка брой маси с една единствена команда. Това е изключително мощен инструмент, защото той не само съчетава изхода на много маси, но също така определя взаимоотношенията между тях. Ще научите за различните форми, които използват тези връзки, както и тяхната конфигурация и използване да се срещнат възможно най-специални изисквания.







    АСОЦИАЦИЯ НА МАСИ

    Един от най-важните характеристики на SQL заявки - способността им да се определят отношенията между множество таблици и показване на информация от тях, по отношение на тези облигации, всичко това в една команда. Този вид операция се нарича асоциация, която е вид операции в релационна база данни. Както е посочено в глава 1. Най-важното нещо в комуникацията е релационно подход, който може да се създаде между елементите от данни в таблиците. Използването на асоциации, ние веднага се асоциира информацията с произволен брой маси, и по този начин в състояние да създаде връзки между сравними фрагменти от данни. Когато се комбинират, масата, изгледа на списък в ОТ клауза, разделени със запетая. заявка предикат може да се отнася до всяка колона и всяка свързана маса, следователно, може да се използва за комуникация между тях. Обикновено предикат сравнява стойностите в колоните на различни таблици за да се определи дали КЪДЕТО набор състояние.

    Имената на маса и колоните

    Пълното име на колона в таблицата всъщност се състои от името на една маса, последвана от една точка, а след това името на колоната. Ето някои примери за имена:

    Преди това, можете да пропуснете имената на таблиците, защото те помолих за известно време само една маса, и SQL е достатъчно умен, за да зададете подходяща маса име префикс. Дори когато заявка множество таблици, можете дори да пропусна имената на таблиците, ако всички колони са с различни имена. Но това не винаги е така. Например, ние имаме две типични маса с колони, наречен град.

    Ако трябва да свържем тези колони (краткосрочни), ние ще трябва да посочат имената или Salespeople.city Customers.city, така че SQL може да се прави разлика между тях.

    Създаване на Съединените

    Да предположим, че искате да поставите в съответствие с вашия дилър на клиентите си в града, в който живеят, така че вие ​​ще видите всички комбинации от доставчици и клиенти за този град. Вие ще трябва да се вземат на всеки продавач и погледнете в таблицата на клиенти на всички клиенти на един и същ град. Можете да направите това, като въведете следната команда (на изхода е показано на фигура 8.1):







    Тъй като този град има и таблица Доставчици и маса клиенти, имена на таблици трябва да се използва като префикс. Въпреки, че това е необходимо, само когато две или повече области имат едно и също име, във всеки случай, това е добра идея да се включи името на таблицата в Съюза за по-добро разбиране и последователност. Въпреки това, ние ще продължим в нашите примери използват имена на таблици, само когато е необходимо, така че би било ясно, когато те са необходими и кога не.

    SQL, че в общи линии прави в басейна, така че тя разглежда всяка комбинация от две или повече линии на възможни таблици и проверка на тези комбинации в своите предикати. В предишния пример, той изисква низ Peel Продавачите Продавач на масата и го комбинирате с всеки ред от потребителите на масата, един по един.

    Ако комбинацията се получава стойност, която прави сказуемото е вярно и ако линиите на полето на града на таблицата с клиентите, се равнява на Лондон, Peel - е заявеният стойност, която е комбинация от избира за изход. Същото след това се прави за всеки продавач в таблицата до продавача (някои от които не са имали клиенти в тези градове).

    АСОЦИАЦИЯ НА Таблици по референтна цялост

    Тази функция често се използва само за поддържане на комуникация, вградени в базата данни. В предишния пример, ние сме създали връзка между двете плочи в басейна. Това е добре. Но масите вече бяха свързани чрез snum-област. Тази връзка се нарича състояние на референтната цялост, както казахме в Глава 1. С помощта на сдружението, можете да извлечете данните по отношение на комуникацията.

    Например, за да се покаже имената на всички клиенти, продавачите, които ги обслужват, ще използваме тази заявка:

    Изходът на тази заявка е показана на Фигура 8.2.

    АСОЦИАЦИЯ НА маси за еднаква стойност
    В колоната и други асоциации,

    Асоциация за равенство е може би най-често срещаната форма на сдружаване, но има и други. Можете да използвате почти всяка релационна операция в асоциация. Ето един пример на друг вид свързване (изходът е показано на фигура 8.3):

    Тази команда не е често полезно. Тя възпроизвежда всички комбинации от името на продавача и името на клиента, така че първият предхожда последната по азбучен ред, а втората е с рейтинг по-малко от 200. Обикновено не се създават сложни взаимоотношения като този, и поради тази причина има вероятност да се изгради най-често срещаните сдружение за равенство, но трябва да знаете също и други функции.

    За BEDINENIE повече от две таблици

    Можете също да създавате заявки, които съчетават повече от две таблици. Да предположим, че искате да намерите всички нареждания на клиенти, които не са в градовете, където те са продавачи. За тази цел, (показано на Фигура 8.4 изход) трябва да се свърже всички три от масата на пробата:

    Въпреки, че този отбор изглежда повече като комплекс, можете да следвате логиката, просто проверява дали клиентите не са поставени в градовете, в които поставят своите продавачи (съвпадение на две snum полета), както и че тези поръчки се изпълняват с помощта на тези клиенти (съвпадение на поръчки с полета cnum и поръчки маса в snum).

    Работа с SQL