ساندانكى جەدۋەللەر ئارا ئۇلىنىش مۇناسىۋەتلىرى ھەققىدە جۆيلۈمىلەر

ئاۋۋال ساندان ئۇقىمىغا ئېنىقلىما بەرسەك: چايدان-چاي ساقلايدىغان يەر، كۈلدان-كۈل ساقلايدىغان يەر، مۇشۇ بويىچە سۈزلىسەك ساندان شۇ سانلىق-مەلۇماتلارنى ساقلايدىغان يەر. خەنچىدە 数据库 ئىنگىلىزچىدە database ديمىز.


سانداندىكى جەدۋەللەر ئارا ئۇلىنىش مۇناسىۋەتلىرى ھەققىدە 

سانلىق مەلۇماتلار ئارا ئۆزئارا مۇناسىۋەت بولمىسا بۇ سانلىق مەلۇماتنىڭ مەۋجۇت بولىشىنىڭ ئەھمىيىتى قالمايدۇ. مەسلەن ئاددىي مىسالدىن بىرنى ئالساق. بىر ئوقۇغۇچى بار، بۇ ئوقۇغۇچى مەلۇم بىر سىنىپ (مەكتەپ)قا تەۋە، بۇ ئوقۇغۇچى بىر كۈندە 8سائەتتە 8خىل دەرىس ئوقۇيدۇ. ھەپتىنىڭ ھەر بىر كۈنىدە ئوقۇيدىغان دەرىس سېتكىسى ئوخشىمايدۇ دىگەندەك. مانا بۇلار سانلىق مەلۇماتلار ئارىسىدىكى مۇناسىۋەت.


سانلىق-مەلۇماتلار ئارىسىدىكى مۇناسىۋەتنىڭ تۈزۈلىشى.

سانلىق-مەلۇماتلار ئوتتۇرىسىدىكى مۇناسىۋەت ئادەتتە ئالاقە مودىلى ئارقىلىق ئەمەلگە ئاشىدۇ. ئەمدى بۇ يەردىكى ئالاقە مودىلى دىگىنىمىز ھەقىيقى ئوبىكىت (entity) ۋە مۇناسىۋەت (relationship) دىن ئىبارەت ئىككى نۇقتا ئارقىلىق ئەمەلگە ئاشىدۇ. ئوبىكىتلارنىڭ ئ‍ۆزىنىڭ خاسلىقلىرى بولىدۇ.مۇناسىۋەت دەل ئوبىكىتلار ئارىسىدىكى ئالاقىنى بەلگىلەيدۇ.

مەسىلەن يۇقاردىكى مىسالنى تېخىمۇ ئىنچىكىرەك ئوپراتسىيە قىلساق. مەلۇم بىر ئوقۇغۇچى پەقەت ۋە پەقەت بىرلا سىنىپ(مەكتەپ) كە تەۋە، بۇ ئوقۇغۇچى كۈندە ئوخشىمىغان دەرىس ئوقۇيدۇ. ئۇ ئوقۇغۇچى كۈندە كۆپلىگەن ئوقۇتقۇچىلارنىڭ دەرىسىنى ئاڭلايدۇ. ئوقۇتقۇچىلارمۇ كۆپلىگەن سىنىپلارغا دەرىس بېرىدۇ.


بۇلار ئارىسىدىكى مۇناسىۋەت

ئوقۇغۇچى-سىنىپ(مەكتەپ) : بىرمۇ-بىر مۇناسىۋەت.

ئوقۇغۇچى- دەرىس تۈرى: بىرنىڭ كۆپكە بولغان مۇناسىۋەت.

ئوقۇتقۇچى-ئ‍وقۇغۇچى: كۆپنىڭ كۆپكە بولغان مۇناسىۋەت.


MySQL دىكى joinجۈملىسى

كۆپىنچىمىز mysqlساندانى ئىشلىتىمىز. joinجۈملىسىمۇ كۆپ ئۇچرايدۇ. mysqlدىكى joinجۈملىسى دەل سانداندىكى جەدۋەللەر ئارا مۇناسىۋەتنى بىر تەرەپ قىلىدىغان ھالقىلىق مىخانىزىمدىن ئىبارەت.

 

ساندىكى جەدۋەللەرنىڭ ئۇلىنىشى ئادەتتە تۆۋەندىكىدەك بىر قانچە تۈرلۈك بولىدۇ.

ئىچكى ئۇلىنىش- 内连接 inner join 

سىرتقى ئۇلىنىش- 外连接 outer join

سول ئۇلىنىش- 左连接 left join

ئوڭ ئۇلىنىش- 右连接 right join

تولۇق ئۇلىنىش- 全连接 full join


رەسىملىك كۆرسەتمە





ئەمەلىيەتتە بۇ يەردىكى ئاتالمىش جەدۋەللەر ئارا ئۇلىنىش نەق ئىككى جەدۋەلدىكى ئۆز ئارا باغلىنىشى بار ئىككى كالمۇن ئارقىلىق ئورتاقلىققا ئىگە بولغان سانلىق مەلۇمات توپلىمىغا ئېرىشىش دىگەنلىكتۈر. خۇددى بىز تولۇقسىز ماتىماتىكىسىدا ئۆگەنگەن كېسىشمە توپلام، بېرىكمە توپلام، بالا توپلام، ئانا توپلام دىگەندەكلەرگە ئوخشاش ئۇقۇم.


تەييارلىق

بۇ يەردە مەن 3 تال جەدىۋەل تەييارلىدىم. ئوقۇغۇچى ئۇچۇرى جەدۋىلى(students)، سىنىپ ئۇچۇرى جەدۋىلى(classroom) ۋە ئوقۇغۇچىلارنىڭ سىنىپقا بۆلۈنۈش ئەھۋالى جەدۋىلى(student_classroom). بۇ جەدۋەلدىكى ئۇچۇرلارنىڭ ئەھۋالى تۆۋەندىكىدەك.



تەجرىبە

ئىچكى ئۇلىنىش

 يەنى inner joinپەقەت A ۋە B دىن ئىبارەت ئىككى جەدۋەلنىڭ ئورتاق قىسمىنى تەكشۈرۈپ چىقىدۇ. مەسىلەن mysqlدا inner join جۈملىسىدىن بىرنى مىسال ئالايلى.



ئوڭ ئۇلىنىش

 يەنى right joinبولسا A ۋە B دىن ئىبارەت ئىككى جەدۋەلنىڭ ئورتاق قىسمى ۋە A جەدۋەلدىكى بارلىق ئۇچۇرنى تەكشۈرۈپ چىقىدۇ. مەسىلەن mysqlدا right join جۈملىسىدىن بىرنى مىسال ئالايلى.


سول ئۇلىنىش

 يەنى left joinبولسا ئوڭ ئۇلىنىش يەنى right joinنىڭ دەل ئەكسى. ئوڭ ئۇلىنىش  A ۋە B دىن ئىبارەت ئىككى جەدۋەلنىڭ ئورتاق قىسمى ۋە B جەدۋەلدىكى بارلىق ئۇچۇرنى تەكشۈرۈپ چىقىدۇ. مەسىلەن mysqlدا left join جۈملىسىدىن بىرنى مىسال ئالايلى.


تولۇق ئۇلىنىش 

يەنى full join بۇ ئەڭ ئاددىيىسى. تولۇق ئۇلىنىش A ۋە B دىن ئىبارەت ئىككى جەدۋەلدىكى بارلىق ئۇچۇرنى تەكشۈرۈپ چىقىدۇ. مەسىلەن mysqlدا full join جۈملىسىدىن بىرنى مىسال ئالايلى.


گېرەلەشمە ئۇلىنىش


06.png

يەنە بىر ئالاھىدىرەك ئۇلىنىش شەكلى- گېرەلەشمە ئۇلىنىش (cross join)مۇ بار بولۇپ، A جەدۋەلدە nدانە سانلىق-مەلۇمات، Bجەدۋەلدە mدانە سانلىق مەلۇمات بار دىسەك، ئىككى جەدۋەلنى گېرەلەشمە ئۇلىنىش (cross join) بويىچە بىر تەرەپ قىلغاندىن كىيىن n*m يەنى (n ۋە m نىڭ كۆپەيتىلمىسى) دانە نەتىجە چىقىدۇ. 


خۇلاسە


05.jpg


ئاخىرىدا

يېزىپ يېزىپ ئۆزەمنىڭ كاللامۇ قېيىپ كەتتى ھىي، يازمامدا يىتەرسىزلىكلەر بولسا سىلەرمۇ جۆيلۈپ باقمامسىلەر.