Присъединявайки се към таблици в бази данни и SQL SQLite се присъединят и да изберете в SQLite, блог за създаване на сайтове,

Част от 12.14: Присъединяването таблици в SQL бази данни и SQLite база данни: а JOIN и изберете

Здравейте, посетител на сайта ZametkiNaPolyah.ru. Ние продължаваме да се проучи данни и нашето познаване на библиотеката SQLite3. SQL език - е много мощен и гъвкав инструмент, който ви позволява да работите с релационни бази данни. Един от най-интересните характеристики на езика SQL е възможността да се комбинират два или повече таблици в една с помощта на SELECT изявление, и ключовата дума JOIN. Бих искала да отбележа, че се присъединяват маси доста скъпо за експлоатация и, повече редове в таблицата, което ние комбинираме, така че експлоатацията по-скъпо, тъй като СУБД започва да се изчисли т.нар асоциация предикат за всеки ред. В SQL, има пет вида на обединяване на таблици, но, за съжаление, в SQLite от петте продават само три.







Присъединявайки се към таблици в бази данни и SQL SQLite се присъединят и да изберете в SQLite, блог за създаване на сайтове,

Присъединявайки се към таблици в SQL бази данни и SQLite база данни: JOIN и изберете

В този пост ще разгледаме основните принципи на обединяване на таблици в SQL и да се справят с особеностите на прилагането JOIN дума в примера с базата данни, изпълнявана SQLite3. И тогава ние гледаме на всеки от видовете обединяване на таблици, приложени в SQLite индивидуално, за да разберат разликите и особеностите на вътрешната и външната таблица се присъединява. В процеса на вас обяснявайки, както винаги, ще видите примери, които показват работата на SELECT заявка, използвайки присъединят.

Присъединявайки се към таблици в заявки SQL SELECT: НАЛЯВО JOIN, лявата външна JOIN, INNER JOIN, CROSS JOIN. Разлика между исканията JOIN.

По наше мнение JOIN заявки - това е най-интересното нещо, което може да направи SELECT изявлението. Ние проучихме комбинираните заявки в бази данни. които се реализират с помощта на Европейския съюз, а след това ще разгледа резултатите от пробата за сравнение, но това не е толкова интересно, като обединение на таблици в SQLite бази данни. Присъединявайки се към таблици се осъществява с помощта на ключовата дума JOIN.

Стандартът SQL разделя присъедини маси в три вида. вътрешен асоцииране маси (вътрешна УЧАСТВА), таблиците външните асоцииране (лявата външна присъединят, НАДЯСНО присъединят, ПЪЛНО УЧАСТВА) и напречно асоцииране маси (CROSS УЧАСТВА). Принципът на работа на всяко сдружение, което е подобно, но резултатите са винаги или почти винаги се различава.

Принципът на исканията на работа, за да се присъединят към таблици в SQL и релационни бази данни се крие във факта, че в рамките на една SQL SELECT заявка се извършва на два или повече подзаявка (в зависимост от това, че искаме да се съчетаят маси), под-заявки са разделени с ключовата дума JOIN. Това е ограничение да се присъедини на (поне официалната документация SQLite призовава ограничение върху), който се нарича предикат съюз. Присъединете се към предикат - то винаги е някакво условие, с които RDBMS определя кои редове от две таблици е необходимо да се обединят. Но с това как да се комбинират струни, SQLite разбира специални модификатори: вътрешна, лявата външна или просто наляво и кръста.

Това обяснение не използва съвсем уместно в този случай, терминът под-заявка, това се прави умишлено, за да обясни принцип на работа JOIN читател, който не е запознат с SQL. Терминът подзаявка не е съвсем уместно, тъй като подзаявка SELECT винаги се връща някаква маса резултат, а когато ние комбинираме таблици посредством JOIN, често се обръщаме към таблиците за физически бази данни (макар че никой не ви забранява да се съчетаят съществуваща таблица, таблица, която SELECT подзаявка декларации).

Като цяло, стандартна SQL заделя повече модификатори на присъединяване:

  1. INNER JOIN - вътрешен присъединят таблици.
  2. НАЛЯВО JOIN или лявата външна JOIN - ляв външен присъединят таблици.
  3. ПРАВО JOIN или дясната външна JOIN - десен външен присъединят таблици.
  4. FULL JOIN - пълни маси на асоциацията.
  5. CROSS JOIN - кръст присъединят таблици.

Но има само три вида на таблици са свързани в базата данни на бази данни SQLite, което обсъждахме по-рано, те са достатъчни за всички цели. Не забравяйте, че ние сме счита връзката между таблици и се опита да нормализира отношенията си. Когато нашата база данни е в първа нормална форма и ние мислим, че не мисля за това, как да се присъедини маси в SELECT заявка. но когато съотношението е в секунда нормална форма или в трета нормална форма. можем да видим един въпрос: как в една заявка за извличане на данни от две или три маси?

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







По-долу ще намерите малка ясла за SQL SELECT заявка, използвайки присъединят. в яслите имат малки примери и схеми, които ви позволяват да се разбере как работи и как JOIN присъедини таблици в бази данни.

Присъединявайки се към таблици в бази данни и SQL SQLite се присъединят и да изберете в SQLite, блог за създаване на сайтове,

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

Тези, които са се занимавали с работата JOIN в SQL и бази данни SQLite база данни гледа изображението по-горе - на вас и похвала честта, е наистина страхотно, но тези, които не разбират, ние предлагаме да се продължи да се четат и разбират, заедно със съюза и да използвате таблици JOIN в SQLite.

Готварски плотове за примери за изпълнение на SQL JOIN заявка в SQLite база данни

Нека да се подготвят на масата, за да продължи да изпълнява примери за обединяване в таблиците в базата данни с използване на SQL JOIN заявка. И за да се разбере каква е разликата между: НАЛЯВО JOIN, лявата външна JOIN, INNER JOIN и CROSS JOIN. Спомнете си, че в SQLite не е възможно да се съчетаят с помощта на таблици: ПРАВО JOIN и FULL JOIN.

В този случай ние сме в съчетание таблици с помощта на INNER JOIN, изберете само тези колони, които са искали да видят плюс направи филтриране на данните. оставяйки само песните на групата на слезката. Това е начина, по който вътрешният JOIN в SQL база данни дизайн и SQLite3 база данни.

За да обобщим: таблиците вътрешни асоциацията ВЪТРЕШНА JOIN резултатите си в таблица, състояща се от реда се присъединиха маси, за които в резултат на на присъединят предикат се равнява на TRUE. С други думи, в резултат на масата ще бъде само тези редове от лявата таблица, която е свързана с реда отдясно. INNER JOIN работа може да се докаже в диаграма.

Присъединявайки се към таблици в бази данни и SQL SQLite се присъединят и да изберете в SQLite, блог за създаване на сайтове,

Диаграма, показваща таблиците на асоциацията INNER JOIN или вътрешен присъединяват маси

Кръгът T1 - една маса в ляво от INNER JOIN, кръг T2 - маса за правото на INNER JOIN, сенчести места - това е резултатната таблица, която връща SELECT твърдението, че изпълнява действието на масите вътрешните асоциацията.

Ляв присъединят таблици в бази данни SQLite3: НАЛЯВО JOIN и лявата външна JOIN в SQL.

Ние проучихме вътрешната присъединят на таблици в бази данни SQLite, сега нека да пристъпи към разглеждане на външен сдружението и разгледа разликата между вътрешните и външните присъединяват масите. В SQLite има само един вид на таблици външни асоциацията: НАЛЯВО JOIN или лявата външна JOIN.

Стандартът SQL всъщност определя три вида външната присъединява: НАЛЯВО се присъединят, НАДЯСНО JOIN и FULL JOIN. но SQLite3 само лявата външна JOIN. Нека поговорим за ляво се присъединят таблици. Въпреки че по-пълно това звучи като: ляв външен присъединят таблици. Външна присъединят маса работи точно същото като вътрешен присъединят маси, но има разлика във входните линии след тест съединение предиката на. Нека видим пример за лявата външна JOIN, и в същото време да се разбере разлика INNER JOIN. и маси външни функция на асоциацията:

С тези два примера сме показали разликата между вътрешна и външна асоциация маса асоциация. разликата между INNER JOIN и НАЛЯВО JOIN. И в двата случая, SQLite изчислява комбиниране предикат определен след ключовата дума, но разликата е, че във външния присъединява към лявата външна JOIN в получената маса ще бъде на всички редове от лявата масата, и за тях, ако има такива, ще бъдат добавени към ред дясната. Дълго обяснение, но разбираемо и написано с прости думи.

Може да се каже по друг начин: като резултат от лявата външна JOIN в таблицата, която ще върне SELECT, ще бъде всички редове от ляво таблицата, към които ще се добавят към съответните стойности от десния масата, дори ако тези стойности са равни на NULL. Ако е така, не е ясно, че ще представи работата на лявата външна JOIN в диаграма:

Присъединявайки се към таблици в бази данни и SQL SQLite се присъединят и да изберете в SQLite, блог за създаване на сайтове,

Диаграмата показва работата на лявата външна присъединят маси или лявата външна JOIN

Кръгът Т1 - таблица отляво на лявата външна присъединят, кръг Т2 - право маса на лявата външна присъедини. Получената маса на снимката е боядисан. Според данните показват, че в резултат на масата ще бъде на всички редове от лявата масата, и стойностите от дясната таблица ще бъдат добавени към него, ако има такива.

Заслужава да се отбележи, че лявата JOIN произведения асиметрично и това има значение коя от масите ще бъдат първи в списъка, тъй като всички редове от първата таблица ще бъдат в таблицата с резултатите. Това е още една разлика от левия JOIN INNER JOIN. За INNER JOIN ред на таблиците в запитването SQL не е от значение.

Така че ние се справиха с външни маси в SQL съюз и разгледа подробно как лявата външна JOIN в SQLite3 бази данни. както е станало ясно разликата между INNER JOIN и НАЛЯВО JOIN.

Cross-присъединяването таблици в SQL: CROSS JOIN в SQLite бази данни

Ние прегледахме таблици вътрешните асоциацията постигната чрез използването INNER JOIN, ние изследвали връзката на външните маси, реализиран в SQLite бази данни с левия присъединят, сега преминете към кръст присъединят таблици. който се осъществява с парола CROSS JOIN.

Cross маси за асоцииране или CROSS JOIN операция е симетрична като INNER JOIN. което означава, че по реда на писане маси в заявката не е от значение, в резултат на масата ще бъде същото. Крос се присъединят маси по математика е декартово произведение. а това означава, че в резултат на операция пресичат JOIN SQLite ще свърже всеки ред от първата таблица с всеки ред от втората таблица и резултатът ще бъде една маса, в която комбинации са всички редове, които са възможни.

За съжаление, работата пресичат шоу JOIN в диаграмата не можеш просто физически. Ето защо, ние разбираме работата пресичат присъединят таблици в SQL като цяло и SQLite бази данни, по-специално в примера. Нека се опитаме да напише изречение SELECT, с помощта на ключови фрази CROSS JOIN да се присъединят към таблици: