SQL дэх зүүн холболт ба зүүн гадна талын холболтын хоорондох ялгаа - Бүх ялгаа

 SQL дэх зүүн холболт ба зүүн гадна талын холболтын хоорондох ялгаа - Бүх ялгаа

Mary Davis

Мэдээллийн сан нь ихэвчлэн компьютерийн системд цахим хэлбэрээр хадгалагддаг бүтэцлэгдсэн мэдээллийн зохион байгуулалттай цуглуулгаас бүрдэнэ. SQL Server, Oracle, PostgreSQL, MySQL зэрэг хэд хэдэн өөр өгөгдлийн сан нь өгөгдлийг удирдах хэлийг ихэвчлэн ашигладаг .

Тийм хэлүүдийн нэгийг SQL гэж нэрлэдэг. SQL нь Inner Join, Left Join, Right Join хэлбэрээр өөр өөр Joins командуудтай.

Таны мэдэж байгаагаар SQL-д нэгдэх нь холбогдох баганаас хоёр ба түүнээс дээш хүснэгтийн мөрүүдийг цуглуулахад хэрэглэгддэг . Энэ нь бусад хувилбарууд юу хийдэг вэ гэсэн асуулт гарч ирж магадгүй юм.

Энэ нь жаахан ойлгомжгүй байна, би итгэлтэй байна! Гэхдээ санаа зоволтгүй, би тэдгээр нь юу гэсэн үг болохыг дэлгэрэнгүй тайлбарлах бөгөөд энэ нь танд илүү сайн ойлгоход тусална гэж найдаж байна.

Одоо орцгооё!

SQL гэж юу вэ?

SQL гэдэг нь Structured Query Language гэсэн үгийн товчлол юм. Энэ хэл нь янз бүрийн өгөгдлийн сангуудад өгөгдөл бичих, асуулга хийхэд ашигладаг хэл юм. Энэ нь хүснэгтүүдийг ашиглан мэдээллийг удирдах боломжийг олгодог бөгөөд эдгээр хүснэгтүүд болон харагдац, функц, процедур гэх мэт бусад холбогдох объектуудыг хайх хэлийг харуулдаг.

Дональд Чемберлин, Рэймонд Бойс нар дизайнерууд юм. of SQL, тэдгээр нь өгөгдлийг удирдахын тулд хийсэн. Тэдний загвар нь IBM-д ажиллаж байсан, 70-аад онд харилцааны мэдээллийн санг зохион бүтээсэн Эдгар Фрэнк Коддын бүтээлүүд дээр үндэслэсэн байв.

Эхэндээ үүнийг SEQUEL гэж нэрлэсэн боловч тодорхой шалтгааны улмаас SQL болгон богиносгосон.барааны тэмдгийн асуудал. Гэсэн хэдий ч хэрэв та хүсвэл тэднийг SEQUEL гэж нэрлэж болно.

SQL-ийн тусламжтайгаар та өгөгдөл оруулах, устгах, шинэчлэх, бусад мэдээллийн сангийн объект үүсгэх, устгах, өөрчлөх боломжтой. Стандарт SQL командууд нь “ сонгох”, “устгах”, “оруулах”, “шинэчлэх”, “үүсгэх”, “унагах” юм. Эдгээр нь мэдээллийн сан дээр хийх ёстой бүх зүйлийг хийж чадна.

Түүгээр ч зогсохгүй энэ хэл нь өгөгдөл болон өгөгдлийн сангийн объектуудтай ажиллахад туслах зорилгоор олон мэдээллийн санд ашиглагддаг. Хэрэв энэ нь танд төвөгтэй санагдаж байвал SQL гэж юу болохыг анхлан суралцагчдад тайлбарласан видеог эндээс үзнэ үү:

Өгөгдлийн сан нь хэлгүйгээр ажиллаж чадах уу?

Бид яагаад SQL ашигладаг вэ?

Энэ бол маш энгийн. Бид SQLгүйгээр мэдээллийн санг ойлгохгүй. Үүнтэй адилаар бид мэдээллийн санд зааварчилгаа өгөх боломжгүй, учир нь SQL нь мэдээллийн сантай холбогдоход хэрэглэгддэг систем юм.

SQL системүүд өгөгдлийг устгах, нэмэх, өөрчлөх зэрэг ажлуудыг гүйцэтгэдэг. Энэ системийг үр дүнтэй удирдах замаар их хэмжээний өгөгдлүүдийг удирдахад хялбар болгох зорилгоор ихэвчлэн ашигладаг. SQL ашигладаг хэд хэдэн стандарт харилцааны өгөгдлийн сангийн удирдлагын системд Oracle, Sybase, Microsoft Access, Ingres орно.

Мөн_үзнэ үү: Цуст гаралтай VS Хар сүнснүүд: Аль нь илүү харгис вэ? - Бүх ялгаа

Дотоод болон гадна холболт гэж юу вэ?

За эхлээд нэгдэл гэж юу болохыг ойлгоё. SQL-д холболтыг нэгтгэхэд ашигладаг. өөр өөр хүснэгтүүдийн агуулга. Та өгөгдлийг хэрхэн авахыг хүсч байгаагаа зааж өгснөөр өгөгдлийг олон аргаар нэгтгэж болно.нэгдсэн болон та ямар төрлийн нэгдэл ашиглахыг хүсэж байна.

Дотоод нэгдэл нь нэг хүснэгтийн чухал бичлэг нь нөгөө хүснэгтийн чухал бичлэгтэй ижил байх үед оролцож буй хоёр хүснэгтийн бүх мөрийг буцаадаг нэгдэл юм.

Ийм төрлийн нэгдэл нь хоёр хүснэгтийн стандарт талбар эсвэл баганыг дэмжсэн оролцогч хүснэгтийн мөрүүдийг тааруулахын тулд харьцуулах операторыг шаарддаг.

Гадаад нэгдэл нь буцаах боломжгүй. -нэг эсвэл хоёр хүснэгтийн мөрийг тааруулах . Үндсэндээ энэ нь нөхцөлийг хангасан бүх хүснэгтийн бүх мөрийг буцаана.

Гадна холболтын олон төрөл байдаг. Эдгээр нь Зүүн холболт, Баруун нэгдэл, Бүрэн гаднах нэгдэл орно.

SQL дээр байгаа нэгдлүүдийн чухал функцуудыг нэгтгэн харуулсан хүснэгт энд байна:

Нэгдэлтийн төрлүүд: Функц :
Дотоод нэгдэл Энэ нь хоёр хүснэгтэд дор хаяж нэг таарч байгаа үед мөрүүдийг буцаана.
Зүүн гадна талын нэгдэл Энэ нь баруун хүснэгтийн тохирох мөрүүдийн хамт зүүн хүснэгтийн бүх мөрийг буцаана.
Баруун гадна талын нэгдэл Энэ нь баруун хүснэгтийн бүх мөрүүдийг зүүн хүснэгтийн тохирох мөрүүдтэй хамт буцаана.
Бүтэн гадна талын холболт Энэ нь зүүн гадна талын нэгдэл ба баруун гадна талын холболтыг нэгтгэдэг. Нөхцөл хангагдсан үед аль ч хүснэгтээс мөрүүдийг буцаана.

Энэ нь SQL-ийн дөрвөн холболтын ялгааг харуулж байна.

Дотор болон гадаад холболтын ялгаа

Илүү олон зүйл бий. Дотор болон гадна холболтын хоорондох мэдэгдэхүйц ялгаа нь дотоод холболт нь ихэвчлэн хоёр хүснэгтийн огтлолцлыг үүсгэдэг. Харин, Гадаад холболтууд нь хоёр хүснэгтийг холиход хүргэдэг.

Үндсэндээ Дотоод нэгдэл доорх зурган дээр үзүүлсэн шиг хоёр өгөгдлийн багцын давхцаж буй хэсгийг үүсгэдэг. Та дотоод холболтын хоёр хүснэгтэд зөвхөн стандарт мөрүүдийг нэгтгэх болно. Нөгөө талаас, Outer Joins нь зүүн эсвэл тохирох хүснэгтийн утгууд бүхий бүх бүртгэлийг буцаана.

Гадаад холболтууд нь хүснэгтийн тохирох мөрүүд болон тохирохгүй мөрүүдийг агуулдаг. Түүнчлэн, Гадаад холболт нь худал тааруулах нөхцөлийг удирдахдаа дотоод холболтоос ялгаатай.

Зүүн гадаад холболт нь Зүүн гадна талын холболт + Дотор холболтоос бүрдэнэ. Баруун гадна талын холболт нь баруун гадна талын холболт + дотоод холболтоос бүрдэнэ. Бүрэн гаднах холболт нь эдгээрээс бүрддэг.

Зүүн талын холболт (SQL-ийн зүүн гадна талын холболттой ижил үү?)

Магадгүй та сонссон байх. Мөн SQL-д нэгдсэн үү? За, энэ бол яг ижил Зүүн гадна талын нэгдэл юм. Тэдгээр нь ижил функцийн хоёр өөр нэртэй байдаг.

Зүүн холболт нь SQL-ийн зүүн гадна талын нэгдэлтэй ижил бөгөөд тэдгээр нь нэг юм. Left Join нь зүүн гадна талын нэгдлийн товчлол юм. Үг"Гадаад" гэдэг нь үйлдлийг илүү ойлгомжтой болгодог боловч хоёр товчлуур нь ижил үүргийг гүйцэтгэдэг.

Яагаад зүүн талын холбоосыг зүүн гадна талын холбоос гэж нэрлэдэг вэ?

Танд үүнийг өргөтгөсөн нэрээр нь эсвэл товчлолоор нь дуудах сонголтууд байх болно. Түүнээс гадна эдгээр нь ижил зүйл юм.

энэ нэгдэл нь зүүн талд байгаа хүснэгтийн бүх мөрүүдийг болон нэгдсэн баруун талд тохирох мөрүүдийг буцаадаг гэдгийг санаарай. Хэрэв баруун талд тохирох талууд байхгүй бол үр дүн нь хоосон байна.

Тиймээс хэрэв бид A ба B гэсэн хоёр хүснэгтийг нэгтгэвэл SQL Left Outer Join нь зүүн хүснэгтийн бүх мөрийг буцаана. , энэ нь A ба баруун талд байгаа нөгөө B хүснэгтэд тохирох бүх мөр. Товчхондоо, SQL Left Join-ийн үр дүн нь үргэлж зүүн талын хүснэгтийн мөрүүдээс бүрддэг.

Нэгдэх ба зүүн талын холболтын ялгаа

Үндсэн ойлголтын хувьд Join-ийг дотоод холболт гэж нэрлэдэг бол зүүн талын холболтыг гадна талын нэгдэл гэж нэрлэдэг.

Гэхдээ гол ялгаа нь зүүн талын нэгдэх команд нь мэдээллийн зүүн талд иш татсан хүснэгтийн бүх мөрийг багтааж, нэгтгэх боломжтой байдаг. Зөвхөн тохирохгүй мөрүүдийн оронд зүүн талын хүснэгтийн бүх мөр, бусад хүснэгтийн тохирох мөрүүдээс бүрдэнэ.

SQL-д Left Outer Join-г хэзээ ашиглах вэ?

Та янз бүрийн хүснэгтүүдийг нэгтгэх арга хайж байна гэж бодъё. Эсвэл, хэрэв та хоёр хүснэгтэд нэгдэж, үр дүнг тохируулахыг хүсч байвалЗөвхөн нэг хүснэгтийн тохирохгүй мөрүүдийг оруулах бол та зүүн гадна талын нэгдэх заалт эсвэл тохирох гадна талын нэгдэх заалтыг ашиглах хэрэгтэй. Зүүн гадна талын нэгдлийг ашиглах нь зүүн гадна талын нэгдэх заалтын өмнө заасан хүснэгттэй таарахгүй мөрүүдээс бүрдэнэ.

Техникийн хувьд зүүн талын нэгдэл нь нэгдэх нөхцөлийг хангасан хүснэгтүүдийн бүх мөрүүдийг тодорхойлдог. хүснэгтээс тохирохгүй мөрүүд.

Зүүн гадна талын холбоос нь эгнээний тоог нэмэгдүүлдэг үү?

Энэ бол байнга асуудаг асуулт юм. Техникийн хувьд энэ нь тийм юм.

Гэхдээ Зүүн нэгдэл нь зөвхөн зүүн хүснэгтийн мөрийн тоог нэмэгдүүлэх боломжтой. Энэ нь зөвхөн олон таарч тохирох хүснэгтэд байгаа тохиолдолд л тохиолддог. Нэмж дурдахад, хэрэв та дүн шинжилгээ хийхэд шаардлагатай бол олон тооны Зүүн холболтыг нэг асуулгад ашиглаж болно.

Зүүн гадна талын холбоос ба баруун талын гадна холбоос

Зүүн гадна талын холболт ба баруун гадна талын холболтын хоорондох мэдэгдэхүйц ялгаа нь тохироогүй мөрүүдийг нэгтгэх явдал юм.

Тиймээс энэ хоёрын ялгаа нь зүүн гадна талын нэгдэл нь нэгдэх заалтын зүүн талд байгаа тохирохгүй мөрүүд эсвэл хүснэгтийн бүх бичлэгүүд, түүний дотор баруун хүснэгт эсвэл өгүүлбэрийн тохирох мөрүүдийг агуулна.

Нөгөө талаас Баруун гадна талын нэгдэл нь Join заалтын баруун талд байгаа хүснэгтээс тохирохгүй мөрүүдийг агуулж, баруун талын бүх мөрийг буцаана.

Нэгдэх заалт нь хоёр ба түүнээс дээш хүснэгтийн бүртгэлийг нэгтгэх эсвэл маягтыг өөрчлөх, өөрчлөхнэгдэх нөхцөл. Энэ нэгдэх нөхцөл нь өөр өөр хүснэгтүүдийн багануудыг харьцуулахдаа хэрхэн таарч байгааг харуулдаг.

Жишээ нь, ажилчдын цалинг агуулсан хүснэгт болон ажилтны дэлгэрэнгүй мэдээллийг агуулсан өөр хүснэгтийн хооронд стандарт багана байх болно. Энэ нь ажилтны ID байж болох бөгөөд энэ нь хоёр хүснэгтэд нэгдэхэд тусална.

Тиймээс та хүснэгтийг аж ахуйн нэгж гэж үзэж болох бөгөөд түлхүүр нь хоёр хүснэгтийн хоорондох нийтлэг холбоос бөгөөд хамтарсан үйл ажиллагаанд ашиглагддаг.

Мэдээллийн санг судлах нь төвөгтэй байж болно. Гэхдээ сайтар ойлговол үүнийг олж авахад маш энгийн.

Баруун холболт ба баруун гадна талын нэгдэл хоёрын ялгаа нь юу вэ?

Баруун холболт нь зүүн холболттой төстэй, гэхдээ бүгдийг нь буцаадаг. Хүснэгтийн баруун талд байгаа мөрүүд, зүүн талаас тохирох мөрүүд.

Дахин хэлэхэд, Баруун болон баруун гадна талын нэгдэлд тодорхой ялгаа байхгүй, зүүн болон зүүн гадна талын нэгдэлд ялгаа байхгүй. Товчхондоо, Right Join гэдэг нэр томьёо нь баруун гадна талын нэгдэл гэсэн үгийн товчлол юм.

“Гадаад” түлхүүр үг нь сонголттой. Тэд хоёулаа өгөгдлийн багц болон хүснэгтүүдийг нэгтгэн ижил ажлыг гүйцэтгэдэг.

Яагаад зүүнээс залгахын оронд баруун тийш залгах хэрэгтэй вэ?

Ерөнхийдөө баруун гадна талын холболтыг ихэвчлэн ашигладаггүй, учир нь та тэдгээрийг үргэлж Зүүн талын гадна холболтоор сольж болох бөгөөд нэмэлт функцийг гүйцэтгэх шаардлагагүй болно.

Мөн_үзнэ үү: Тилапиа ба Свай загас, түүний дотор хоол тэжээлийн талууд юугаараа ялгаатай вэ? - Бүх ялгаа

Хэн нэгэн үед Зүүн нэгдэл гэхээсээ баруун тийш нэгдэхийг ашиглах талаар бодох болноSQL-г илүү өөрөө баримтжуулахыг хичээж байна.

Та хамааралтай талдаа хоосон мөртэй асуулгад хандахын тулд Зүүн холболт -г ашиглаж болно. Бие даасан тал дээр хоосон мөр үүсгэдэг асуултуудад та Баруун холболт -г ашиглах болно.

Баруун гадна талын холболт нь нэг хүснэгтийг бусад олон хүснэгтийн огтлолцолтой хослуулах шаардлагатай үед бас тустай.

SQL-д нэгдэх ба нэгдэх хоёрын ялгаа

Нэгдэх ба нэгдэх хоёрын ялгаа нь Union нь хоёр буюу түүнээс дээш SELECT мэдэгдлийн үр дүнг нэгтгэхэд хэрэглэгддэг.

Join нь тохирох нөхцлөөс хамааран олон хүснэгтийн өгөгдлийг нэгтгэдэг бол Join мэдэгдлийг ашиглан нэгтгэсэн өгөгдөл нь шинэ багана үүсгэдэг.

Union-ын мэдэгдлийг ашиглан нэгтгэсэн өгөгдөл нь ижил тооны баганатай олонлогоос ялгаатай шинэ мөрүүдийг үүсгэдэг.

Төгсгөлийн бодол

Дүгнэж хэлэхэд ЗҮҮН НЭГДСЭН болон ЗҮҮН ГАДААД НЭГДСЭН хооронд ямар ч ялгаа байхгүй. Энэ нь зөв нэгдэл, зөв ​​гадна нэгдэлд мөн адил хамаарна.

Түлхүүр хоёулаа ижил үүрэг гүйцэтгэдэг бөгөөд “ гадаад” гэдэг нь зүгээр л ашиглах боломжтой түлхүүр үг юм. Зарим хүмүүс үүнийг зөвхөн гаднах холболт үүсгэж байгааг тодруулж байгаа тул ашиглахыг зөвлөж байна.

Тиймээс эцэст нь та үүнийг зааж өгсөн эсэхээс үл хамааран ямар ч ялгаа байхгүй.

Бусад сонирхолтой нийтлэлүүд:

    Эдгээр ялгаануудын талаар илүү дэлгэрэнгүй мэдээлэл авах бол энд дарна уу.

    Mary Davis

    Мэри Дэвис бол янз бүрийн сэдвээр харьцуулсан дүн шинжилгээ хийх чиглэлээр мэргэшсэн зохиолч, контент бүтээгч, шулуухан судлаач юм. Сэтгүүлзүйн чиглэлээр суралцаж төгссөн, энэ салбарт тав гаруй жил ажилласан туршлагатай Мэри уншигчдадаа шударга, шууд мэдээлэл хүргэх хүсэл эрмэлзэлтэй нэгэн. Түүний зохиол бичих дуртай залуу байхаас нь эхэлсэн бөгөөд зохиол бичих амжилтынх нь гол түлхэц болсон юм. Мэригийн судалгаа хийж, олдворуудыг ойлгоход хялбар, анхаарал татахуйц хэлбэрээр танилцуулах чадвар нь түүнийг дэлхийн өнцөг булан бүрээс уншигчдын хайрыг татсан юм. Мэри бичихгүй байхдаа аялах, ном унших, гэр бүл, найз нөхөдтэйгээ цагийг өнгөрөөх дуртай.