MySQL JOIN: апісанне, прыклад выкарыстання каманды і рэкамендацыі

Дата:

2018-07-07 21:50:13

Прагляды:

374

Рэйтынг:

1Любіць 0Непрыязнасць

Доля:

Table of contents:

Распрацоўка баз дадзеных інтэрнэт-рэсурсаў практычна нічым не адрозніваецца ад стандартных баз дадзеных, распрацаваных у сістэме MS SQL SERVER. Як правіла, для такога роду рэсурсаў выкарыстоўваецца мова MY SQL, хоць яго можна ўжываць і да распрацоўцы стандартных праграмных прадуктаў, для лакальнага выкарыстання. Але гаворка ў артыкуле пойдзе не пра гэта.

mysql join

Часта пры працы з базамі дадзеных у кожным з моў стаіць задача зрабіць выбарку дадзеных для вывядзення ў разнастайныя справаздачы, графікі і так далей. Як правіла, пры рэалізацыі такога роду задач прыходзіцца выкарыстаць не адну, а некалькі табліц, аб'ядноўваючы іх у адзін запыт, значна ўскладняючы яго канструкцыю. Пры гэтым неабходна ўлічваць тое, як павінны будуць выводзіцца дадзеныя, як будуць «падцягвацца» табліцы і які вынік будзе максімальна прымальным для праграміста. Для вырашэння такіх задач выкарыстоўваецца адна з стандартных канструкцыя мовы MySQL – Join.

Паняцце словы Join

Мовы распрацоўкі баз дадзеных, усё роўна, што менавіта гэта за мову, за аснову бяруць стандартныя словы з англамоўных слоўнікаў (менавіта таму пры ўмове, што вы ведаеце англійская мова, вам будзе нашмат прасцей працаваць з табліцамі). Для рэалізацыі падлучэння табліц у выбарку ўзята такое ж слова - Join. У мове праграмавання баз дадзеных Выкарыстоўваецца My SQL. Пераклад гэтага службовага словы ў дакладнасці такі ж, як і ў самой мове - «аб'яднаньне».

Інтэрпрэтацыя канструкцыі MySQL – Join, прычым любы з іх, будзе дакладна такі ж. Калі расшыфраваць прызначэнне канструкцыі, а менавіта схему яе працы, то атрымаем наступныя значэнне: канструкцыі дазволяць сабраць патрэбныя палі з розных табліц або ўкладзеных запытаў у адну выбарку.

Больш:

Lenovo v580c: падрабязны агляд

Lenovo v580c: падрабязны агляд

Сёння мы вырашылі напісаць пра ноўтбуку Lenovo v580c. Агляд будзе падрабязным, так як гэты партатыўны ПК серыі IdeaPad мае высокую папулярнасць, але не многія ведаюць, чым жа прыцягвае гэта прылада пакупнікоў. Мадэль з'яўляецца хуткай і змяшчае ў саб...

Брандмаўэр - што гэта? Стандартны абаронца ПК

Брандмаўэр - што гэта? Стандартны абаронца ПК

Брандмаўэр – што гэта такое? Карысная функцыя ў аперацыйнай сістэме або малаэфектыўныя сродак абароны? Перш чым адказаць на гэтае пытанне, нам трэба высветліць, што робіць кампутар і як правільна яго наладзіць.Агульныя звесткіДля паспяховай пра...

"Аблівіян": праходжанне гульні. Кіраўніцтва і парады па праходжанні гульні "Аблівіян"

The Elder Scrolls IV: Oblivion — ролевая гульня ад кампаніі Bethesda Games Studios. Адразу ж пасля рэлізу у 2006 годзе яна стала вельмі папулярнай. Сюжэт заснаваны на супрацьстаянні галоўнага героя і культу Прынца Разбурэння, які плануе адкрыць...

Віды канструкцый для аб'яднання

mysql join

Калі праграмісту неабходна сабраць выбарку з некалькіх табліц і ён ведае, якія ключавыя поля ў іх, і якія менавіта дадзеныя неабходныя для справаздачы, то можна скарыстацца адной з асноўных канструкцый аб'яднання, для дасягнення жаданага выніку. Асноўных канструкцый (для аб'яднання табліц) чатыры:

  1. Inner join.
  2. Cross Join.
  3. Left join.
  4. Right Join.

У залежнасці ад пастаўленай задачы, кожная з стандартных канструкцый будзе даваць розныя вынікі, што дазволіць атрымліваць справаздачы па розных параметрах у кароткі тэрміны.

Стварэнне і запаўненне табліц для далейшага выкарыстання

Перад тым як пачаць, напрыклад, разглядаць механізмы працы з канструкцыямі аб'яднання дадзеных, варта падрыхтаваць некалькі табліц, з якімі мы будзем у далейшым працаваць. Гэта дапаможа наглядна паказаць усе прынцыпы працы аператараў, акрамя таго, такім чынам пачаткоўцы лягчэй засвояць ўсе асновы праграмавання табліц.

У першай табліцы будуць апісаны некаторыя прадметы, з якімі чалавек пастаянна сустракаецца на працягу свайго жыцця.

mysql join

У другой табліцы апішам некаторыя ўласцівасці аб'ектаў з першай табліцы, каб можна было ў далейшым з імі працаваць.

left join mysql

У цэлым двух табліц будзе дастаткова, каб на прыкладзе паказаць іх працу. Вось зараз можна прыступаць да практычнага разгляду нашых канструкцый.

Выкарыстанне Inner Join

Пры выкарыстанні канструкцыі MySQL – Join Ineer варта ўлічваць некаторыя яе асаблівасці. Дадзеная канструкцыя дазволіць выбраць з абедзвюх табліц толькі тыя запісы, якія ёсць і ў першай, і ў другой табліцы. Як гэта працуе? У першай табліцы ў нас ёсць галоўны ключ – ID, які паказвае на парадкавы нумар запісаў у табліцы.

Пры стварэнні другой табліцы, гэты жа ключ выкарыстоўваецца як парадкавы нумар, прыклад можна паглядзець на малюнках. Пры выбары дадзеных аператар Select вызначыць у выніку толькі тыя запісы, парадкавыя нумары якіх супадаюць - значыць, яны ёсць і ў першай, і ў другой табліцы.

Пры выкарыстанні канструкцыі трэба разумець, якія менавіта дадзеныя неабходна атрымаць. Самая распаўсюджаная памылка, асабліва ў пачаткоўца праграміста баз дадзеных, гэта нерацыянальнае і няправільнае выкарыстанне канструкцыі Inner Join. Як прыклад, MySQL Inner Join, можна разгледзець скрыпт, які верне нам з раней апісаных і запоўненых табліц інфармацыю аб прадметах і іх уласцівасцях. Але і тут можа быць некалькі спосабаў выкарыстання канструкцыі. У гэтым плане My SQL вельмі гнуткі мову. Такім чынам, можна разгледзець прыклады выкарыстання MySQL Inner Join.

Аб'яднанне табліц без ўказанні, якіх-небудзь параметраў. У гэтым выпадку мы атрымаем вынік такога плана:

mysql inner join

Калі пакажам праз службовае слова Using, што абавязкова трэба ўлічваць галоўныя ключы запісаў ў табліцах, то вынік выбаркі кардынальна зменіцца. У гэтым выпадку мы атрымаем выбарку, якая верне толькі тыя радкі, якія маюць аднолькавыя галоўныя ключы.

mysql join прыклады

Магчымы яшчэ і трэці варыянт выкарыстання канструкцыі, калі ў запыце праз слова «на» паказваюцца поля, па якім павінна адбывацца аб'яднанне табліц. У такім выпадку выбарка верне наступныя дадзеныя:

mysql join select

Асаблівасці выкарыстання Left Join

Калі разглядаць яшчэ адзін спосаб аб'яднання табліц з дапамогай канструкцыі MySQL – Join, можназаўважыць розніцу ў дадзеных, якія выводзяцца. Такім механізмам з'яўляецца канструкцыя Left.

Выкарыстанне канструкцыі Left Join MySQL мае некаторыя асаблівасці і, як і Inner, патрабуе выразнага разумення выніку, які неабходна атрымаць.

У дадзеным выпадку спачатку будуць абраныя усе запісы з першай табліцы, а ў далейшым да іх будуць далучаны запісы з другой табліцы уласцівасцяў. Пры гэтым, калі ў першай табліцы ёсць запіс, напрыклад, "зэдлік", а ў другой табліцы няма ні аднаго ўласцівасці для яе, то аператар Left выведзе насупраць гэтай запісу значэнне null, што кажа праграмісту аб тым, што прыкмет па гэтаму віду прадмета няма.

Выкарыстанне гэтай канструкцыі дазволяць вызначаць, па якіх палях або, напрыклад, тавараў у краме не выстаўленая цана, гарантыйны тэрмін і гэтак далей.

Прыклад выкарыстання Left

Для разгляду на практыцы аператара канструкцыі Left Join MySQL выкарыстоўваем раней апісаныя табліцы. Скажам, неабходна выбраць ўвесь спіс тавараў, якія ёсць у краме, і праверыць па якім з іх не прастаўленыя прыкметы або ўласцівасці. У такім выпадку выбарка выведзе на экран усе тавары, а па тым, у якіх няма ўласцівасці, будуць прастаўленыя пустыя значэння.

mysql update join

Выкарыстанне Where у канструкцыі Join

Як параметр, аб'яднанне можа ўключаць не толькі ўказанні палёў, па якіх неабходна вырабіць падлучэнне табліц, але можа і ўключаць аператар ўмовы Where.

Для прыкладу разгледзім скрыпт, які павінен вярнуць нам толькі тыя запісы, па якіх не прастаўлены прыкмета. У такім выпадку ў канструкцыю Join неабходна дадаць аператар ўмовы і паказаць, што менавіта трэба вярнуць як вынік.

Пры выкарыстанні ў MySQL Join – Where трэба выразна разумець, што будуць паказаны толькі тыя запісы, да якіх адносіцца паказанае ўмова, і выбарка тады будзе выглядаць наступным чынам:

mysql join where

Такія запыты дазваляюць рабіць выбаркі па канкрэтных дадзеных, якія адносяцца да абранага праграмістам умове. Такіх умоў можна паказваць некалькі, максімальна пры гэтым удакладняючы параметры выбару дадзеных з аб'яднаных табліц.

Выкарыстанне Join для змены дадзеных у табліцах

Канструкцыя Join, па сутнасці, універсальная. Яна дазваляе не толькі рабіць разнастайныя выбаркі, але і падключаць на запыты ад адной да некалькіх табліц, ўводзіць дадатковыя ўмовы ў выбарку. Канструкцыю можна таксама выкарыстоўваць і для іншых аперацый з дадзенымі. Так, Join можна выкарыстоўваць для змены дадзеных у табліцы. Дакладней сказаць, для ўдакладнення умоў у табліцы або жа ў тых выпадках, калі трэба абнавіць дадзеныя ў некалькіх табліцах па адным і тым жа ўмовах.

Для прыкладу разгледзім такую задачу. Дадзена тры табліцы, у якіх маюцца некаторыя дадзеныя. Трэба правесці змена дадзеных у абедзвюх табліцах, выкарыстоўваючы адзін запыт. Як раз для вырашэння такога роду заданняў можна ўжываць у камандзе Update канструкцыю Join. Сам тып канструкцыі Join залежыць, так жа, як і ў выпадку з выбаркай дадзеных, ад выніку, які хоча атрымаць праграміст.

Разгледзім самы просты прыклад. Трэба абнавіць адным запытам дадзеныя па адным і тым жа ўмовах. Такога роду запыты будуюцца для аптымізацыі працы з базай дадзеных. Навошта пісаць розныя запыты для кожнай з табліц, калі можна правесці ўсе маніпуляцыі з дадзенымі адным запытам? Прыклад MySQL Update Join ў нашым выпадку будзе такім:

mysql left join прыклады

Пабудова складаных запытаў

Даволі часта пры працы з базай дадзеных неабходна будаваць запыты не толькі з аб'яднаннем некалькіх табліц, але і з выкарыстаннем подзапросов. Такія задачы даволі складаныя для разумення пачаткоўца праграміста баз дадзеных. Складанасць складаецца ў тым, што даводзіцца прадумваць кожны крок, вызначаць, якія звесткі з якой табліцы або запыту неабходна атрымаць і як у далейшым з імі трэба будзе працаваць.

Для больш канкрэтнага разумення можна разгледзець (у MySQL Join) прыклады складаных запытаў. Калі вы пачатковец і толькі пачынаеце працаваць з базамі дадзеных, то такі трэнінг пойдзе толькі на карысць. Ідэальным варыянтам, будуць MySQL Left Join прыклады.

left join mysql

Дадзены запыт верне нам 58 запісаў аб дагаворах продажу, па якім запоўнены ці існуе баланс грашовых сродкаў на выбраную дату. У дадзеным выпадку гэта бягучая дата. Таксама ў выбарку дададзена ўмова, што ў назве дагавора павінны быць сімвалы - «123». Якая выводзіцца на экран інфармацыя (дадзеныя), будзе мець сартаванне – ўпарадкаванасць па нумары дамовы.

Наступны прыклад выведзе на экран дадзеныя аб усіх плацяжах, у якіх будзе паказаны нумар дагавора.

mysql join

Выкарыстанне подзапросов

Як ужо гаварылася раней, пры працы з базамі дадзеных можна аб'яднаць не толькі табліцы, але і табліцу з запытам. Такая канструкцыя выкарыстоўваецца ў асноўным для паскарэння працы запыту і яго аптымізацыі.

Да прыкладу, калі неабходна з табліцы, якая мае некалькі сот палёў і, скажам, тысячу запісаў, выбраць усяго два поля, то варта выкарыстоўваць запыт, які верне толькі неабходныя палі, і аб'яднаць яго з асноўнай выбаркай дадзеных. Як прыклад MySQL Join Select можна разгледзець запыт такога тыпу:

mysql join

Гэта не ўсе спосабы выкарыстання стандартных канструкцый MySQL, а толькістандартныя. Як выкарыстоўваць канструкцыю Join і ў якіх яе відах, вырашае сам праграміст, але варта памятаць і ўлічваць тое, які вынік трэба атрымаць пры выкананні запыту.


Article in other languages:

AR: https://tostpost.com/ar/computers/1533-mysql-join-description-example-usage-commands-and-recommendations.html

DE: https://tostpost.com/de/computer/2632-mysql-join-beschreibung-beispiel-f-r-die-verwendung-des-befehls-und-em.html

En: https://tostpost.com/computers/6527-mysql-join-description-example-usage-commands-and-recommendations.html

ES: https://tostpost.com/es/los-ordenadores/2637-mysql-join-descripci-n-ejemplo-de-utilizaci-n-del-comando-y-recomendac.html

HI: https://tostpost.com/hi/computers/1533-mysql.html

JA: https://tostpost.com/ja/computers/1532-mysql.html

KK: https://tostpost.com/kk/komp-yuterler/2635-mysql-join-sipattama-mysal-paydalanu-komandalar-men-synystar.html

PL: https://tostpost.com/pl/komputery/2638-mysql-join-opis-przyk-ad-u-ycia-polecenia-i-zalecenia.html

PT: https://tostpost.com/pt/computadores/2635-mysql-join-descri-o-exemplo-de-utiliza-o-do-comando-e-recomenda-es.html

TR: https://tostpost.com/tr/bilgisayarlar/2640-mysql-jo-n-a-klama-rnek-komutunu-kullanmak-ve-neriler.html

UK: https://tostpost.com/uk/komp-yuteri/2637-mysql-join-opis-priklad-vikoristannya-komandi-ta-rekomendac.html

ZH: https://tostpost.com/zh/computers/1648-mysql.html






Alin Trodden - аўтар артыкула, рэдактар
"Прывітанне, Я Алін Тродден. Я пішу тэксты, чытаю кнігі і шукаю ўражанні. І я нядрэнна ўмею распавядаць вам пра гэта. Я заўсёды рады ўдзельнічаць у цікавых праектах."

Заўвага (0)

Гэтая артыкул не мае каментароў, будзьце першым!

Дадаць каментар

Навіны

Як напісаць праграму ў Нататніку

Як напісаць праграму ў Нататніку

Што рабіць пачаткоўцу праграмісту, калі для стварэння кода ў яго пад рукой няма нічога? Ну, ці амаль нічога, бо сам кампутар з усталяванай на ім аперацыйнай сістэмай мы ў разлік не бярэм. Вам скажуць, што тут дапаможа Нататнік (No...

Гульня

Гульня "Агонь і Вада: Лясныя храмы"

У цяперашні час кампутарныя гульні выходзяць з неверагоднай частатой - кожны дзень можна прачытаць пра рэлізе таго ці іншага праекта. Натуральна, не ўсе яны набываюць папулярнасць і становяцца вядомымі, але факт застаецца фактам -...

Skype: памылка kernell32.dll. Як выправіць?

Skype: памылка kernell32.dll. Як выправіць?

Праграма для відэапаведамлення Skype лічыцца найбольш папулярнай сярод усіх прыкладанняў такога напрамку. Да жаль, досыць часта многія карыстальнікі сутыкаюцца з праблемай з'яўлення збояў у модулі kernell32.dll (памылка «Ска...

Што такое інфаграфіка? Вызначэнне і прыклады

Што такое інфаграфіка? Вызначэнне і прыклады

З развіццём інтэрнэт-тэхналогій у сеткі з'яўляецца так шмат новых метадаў прыцягнення, што не паспяваеш ўсачыць за ўсімі. Сотні тысяч людзей працуюць над стварэннем якаснага кантэнту. Блогі дапаўняюць выявай і відэа. Але што такое...

Віды відэакарт. Дыскрэтная відэакарта або інтэграваная - што лепш

Віды відэакарт. Дыскрэтная відэакарта або інтэграваная - што лепш

Відэакарты ўжо даўно сталі неад'емнай часткай любога хатняга кампутара. Яны выкарыстоўваюцца ў тэлефонах, планшэтах і іншых графічных прыладах. Але з часам губляюць свой патэнцыял, патрабуючы замены на больш свежы прадукт. Якія іс...

Прылады вываду і ўводу. Асноўныя прылады ўводу/вываду інфармацыі

Прылады вываду і ўводу. Асноўныя прылады ўводу/вываду інфармацыі

Кожны дзень, сядаючы за сваё працоўнае месца ў офісе, чалавек бярэ ў адну руку мышку і пачынае выконваць свае абавязкі. Ён ведае, для чаго яму патрэбна клавіятура, прынтэр, сканер, аднак нават не ўяўляе, што ў іх ёсць сваё афіцыйн...