පරිගණක, වැඩසටහන්
ක්රියාකරු SQL අභ්යන්තර එක්වන: කාරක රීති උදාහරණ හා විශේෂාංග
ඕනෑම දත්ත ගබඩාව වර්ධනය විවිධ තොරතුරු වගු නිර්මාණය පමණක් නොව, සහ ඉන්ධන පිරවුම්හල්වලට, පමණක් නොව, දත්ත සමඟ තවදුරටත් කටයුතු ඇතුළත් වේ. නිවැරදිව වගු සහ වාර්තා දත්ත තෝරා දී කාර්යයන් විවිධ ඉටු කිරීමට, සම්මත තේරීම් නිර්මාණය භාවිතා කරන්න.
වගු දත්ත බෝගයන්ගේ
අපි දත්ත තෝරා ගැනීමක් හෝ වාර්තාවක් ඉදිකිරීම් ප්රශ්නය සලකා බලන්නේ නම්, ඔබ මෙහෙයුම් සංකීර්ණ මට්ටම හඳුනා ගත හැක. රීතියක් ලෙස, පිහිටුවා ඇති (පරිමාව අනුව) බරපතල දත්ත සමුදායන්, සමඟ කටයුතු කරන විට, උදාහරණයක් ලෙස, සමඟ අමුත්තන් ගබඩා හෝ විශාල සමාගම්, දත්ත තෝරා එකදු වගුව සීමා වේ. රීතියක් ලෙස, නියැදි තම කාර්යභාරය මත පදනම්ව, ගැලීම් සටහන් වන පරිදි සම්බන්ධ වගු පමණක් නොව තරමක් විශාල සංඛ්යාවක්, පමණක් නොව, පිළිතුරු පැතැලිව විමසුම් / උප විමසුම් වලින් විය හැක. එක් වගුවේ නියැදි සඳහා ඉතා සරළ ව්යුහය භාවිතා කළ හැකිය:
| පුද්ගලයා සිට * තෝරන්න |
පුද්ගලයා එහිදී - මේසය නම ඔබ විසින් දත්ත නැවත ලබා ගැනීම සිදු කිරීමට අවශ්ය වන සිට.
නම්, කෙසේ වෙතත්, ඔබ බහු වගු දත්ත තෝරා ගැනීමට අවශ්ය වනු ඇත, සම්මත මෝස්තර එක් බහු වගු එක්වන කිරීම සඳහා භාවිතා කල හැක.
අතිරේක වගු ක්රම සම්බන්ධ
අපි මූලික මට්ටමින් එවැනි ව්යුහ භාවිතය සලකා බලන්නේ නම්, අපි පහත සඳහන් යාන්ත්රණ නියැදි වගු සඳහා අවශ්ය අංකය සම්බන්ධ කිරීමට, එනම්, භාවනා කළ හැකිය:
- ක්රියාකරු ඉනර් සමග එක් වන්න.
- වම් එය දෙවන පටිගත ක්රමය, වම් පිටත එක්වන්න ය එක්වන්න හෝ,.
- හරස් සමග එක් වන්න.
- පූර්ණ හා එක්වන්න.
ප්රායෝගිකව වගු එක්වන ක්රියාකරුවන් භාවිතා කරමින්, ඔබ SQL ප්රකාශ භාවිතය සලකා ඉගෙන ගැනීමට හැකි - ඇතුළත සමග එක් වන්න. එහි භාවිතය පිළිබඳ උදාහරණයක් පහත පරිදි වනු ඇත:
පුද්ගලයා සිට * තෝරන්න අභ්යන්තර Su_Person = Pe_ID මත අනුබෙදුම් එක්වන |
SQL වලට හා ඇතුළු ක්රියාකරු එක්වන්න එක්වන්න විශාල රීතියක් ලෙස, සැලකිය යුතු විශේෂිත, සංකීර්ණ විමසුම ව්යුහයන් ක්රියාත්මක කිරීම වේගවත් කිරීම, දත්ත ගබඩා පරිපාලකයන් වැඩ කිරීමට පහසුකම් සලසන අතර,, වගු දෙකක් හෝ ඊට වැඩි එක් කිරීම සඳහා පමණක් නොව, භාවිතා කළ හැක, පමණක් නොව, වෙනත් උප විමසුම් සම්බන්ධ කිරීමට.
රේඛාව, වගු අනුකූලව දත්ත ඒකාබද්ධ
අපි රේඛාව මගින් තනි වගුවක් පෙල එකලස් උප විමසුම්, සහ දත්ත විශාල සංඛ්යාවක් ඇති සම්බන්ධය සලකා බලන්නේ නම්, ඔබ ද මෙහෙයුම් සංගමය සහ යුනියන් සියලුම භාවිතා කළ හැකිය.
මෙම ව්යුහයන් භාවිතය අරමුණු හා ඔහු අවසානයේ දී සාක්ෂාත් කර ගැනීම අවශ්ය බව ප්රතිඵල සකස් කිරීම සඳහා සංවර්ධක මත රඳා පවතිනු ඇත.
විස්තරය ඉනර් ක්රියාකරු එකතු වන්න
බොහෝ අවස්ථාවල දී, ඇතුළත විසින් භාවිතා කරන SQL භාෂාව බහු වගු ඒකාබද්ධ කිරීමට ක්රියාකරු සමග එක් වන්න. ඉනර් SQL දී එකතු වන්න විස්තරය හුදෙක් දත්ත සමුදායන් තේරුම් ගැනීමට පටන් සිටින සාමාන්ය ක්රමලේඛකයෙක් තේරුම් ගැනීමට ඉතා පහසු වේ. අප මෙම ව්යුහය වැඩ යාන්ත්රණයක් විස්තර සලකා බලන්නේ නම්, අපි පහත දැක්වෙන පින්තූරය ලබා ගන්න. සමස්තයක් ලෙස තර්ක ක්රියාකරු හරස් විමසුම ඇතුළත් වගු එක් එක් වන බව දත්ත පමණක් නියැදීම් හැකියාව මත ඉදිකර ඇත.
අපි ග්රැෆික් අර්ථ අනුව මෙවැනි කාර්යයක් දෙස බලන විට, අප ලබා SQL ඉනර් ක්රියාකරු ව්යුහය, පහත සඳහන් යෝජනා ක්රමය මගින් පෙන්වා ඇත හැකි උදාහරණයක් එකතු වන්න:
උදාහරණයක් ලෙස, අපි එම සංඛ්යාව හි ක්රමානුරූප ලෙස පෙන්වා ඇත වගු දෙකක් තියෙනවා. ඔවුන්, අනෙක් අතට, ඇතුළත් කිරීම් වෙනස් සංඛ්යාවක්. වගු එක් එක් අදාල බව ක්ෂේත්ර ඇත. අපි ඇඳීම පදනම මත ක්රියාකරු වැඩ පැහැදිලි කිරීමට උත්සාහ කරන්නේ නම්, යළි ප්රතිඵලයක් කාමර අන්තර් සම්බන්ධිත ක්ෂේත්ර සමගාමීව කොහෙද දෙකක් වගු, සිට වාර්තා මාලාවක් වනු ඇත. සරලව කිවහොත්, විමසුම සිය දත්ත සංඛ්යාව එක් වගුවේ කරන අයට වාර්තා පමණක් (වගුව අංකය දෙකක්), පැමිණේ.
ද ඉනර් වන කාරක රීති එකතු වන්න
මීට පෙර සඳහන් කළ පරිදි, ක්රියාකරු ඇතුළත එනම් එකතු වන්න, එහි කාරක රීති, අසාමාන්ය ලෙස සරල. තනි නියැදි තුළ වගු අතර සබඳතා සංවිධානය කිරීම වෙනුවෙන්, මෘදුකාංග SQL-කේතය තනි මාර්ගය තුළ නියම කර ඇති ක්රියාකරු, ඉදිකිරීම් කටයුතු පහත සඳහන් ක්රමානුරූප සටහන සටහන මතක තබා ගැනීමට සහ භාවිත කිරීමට එනම් ප්රමාණවත් වනු ඇත:
- අභ්යන්තර [වගුව නම] එකතු වන්න [කරන සම්බන්ධ කිරීමට මේසය ප්රධාන ක්ෂේත්ර] = [වගුවේ pluggable ප්රධාන ක්ෂේත්ර] මත.
මෙම ප්රකාශයේ සන්නිවේදනය සඳහා ප්රධාන වශයෙන් වගු යතුරු භාවිතා කර ඇත. නීතියක් ලෙස, සේවකයන් ගැන තොරතුරු ගබඩා කරන වගු පිරිස, මීට පෙර පුද්ගලයා අනුබෙදුම් විස්තර සහ අවම වශයෙන් එක් සමාන වාර්තාවක් ඇත. ඒ නිසා, සමීප SQL ඇතුළත එකතු වන්න ක්රියාකරු, වන ටිකක් කලින් පෙන්නුම් කර ඇත උදාහරණයක් බලන්න.
ශ්රව්ය ආදර්ශ Table කිරීමට උදාහරණයක් විස්තර හා සම්බන්ධතාවය
අප සමාගම වැඩ සියලුම සේවක පිළිබඳ තොරතුරු ගබඩා කරන, පුද්ගලයෙක් වගුවක්. Pe_ID - යන්තම් මේසය ස්වාමියා ප්රධාන ක්ෂේත්ර බව කරුණාවෙන්. හුදෙක් එය මත හා මිටියක් කරනු ඇත.
දෙවන වගුව අනුබෙදුම් සේවකයින් වැඩ කරන කාර්යාල ගැන තොරතුරු ගබඩා කරනු ඇත. ඇය, අනෙක් අතට, Su_Person ක්ෂේත්රයේ පුද්ගලයා මේසය හරහා සම්බන්ධ වී ඇත. මින් අදහස් කරන්නේ කුමක්ද? දත්ත ක්රමානුරූපය පදනම් වගුවේ සෑම වාර්තාවක් සඳහා මේසය ඒකක "සේවක" ඔවුන් වැඩ කරන දෙපාර්තමේන්තුව ගැන තොරතුරු වනු ඇත බව සඳහන් කල හැකිය. මෙම සන්නිවේදන සඳහා වන අතර, ඇතුළත එකතු වන්න ක්රියාකරු වැඩ කරනු ඇත.
ක්රියාකරු SQL ඇතුළත (එකක් හෝ දෙකක් වගු සඳහා එහි භාවිතය උදාහරණ) සමග එකතු වන්න සලකා වඩාත් ඉවෙන් භාවිතය සඳහා. අපි එම වගුවේ උදාහරණයක් සලකා බලන්නේ නම්, අනතුරුව සියලු තරමක් සරල ය:
පුද්ගලයා සිට * තෝරන්න අභ්යන්තර Su_Person = Pe_ID මත අනුබෙදුම් එක්වන |
උදාහරණයක් මේස දෙකක් හා subquery සම්බන්ධ
ක්රියාකරු SQL ඇතුළත එකතු වන්න, බහු වගු දත්ත ලබා ගැනීමට භාවිතා වන උදාහරණ ඉහත පරිදි කටයුතු සලසා ගත හැකි, එය මූලධර්මය ටිකක් බරපතල වැඩ කර ඇත. වගු දෙක කර්තව්යය අවුල්. උදාහරණයක් ලෙස, අපි බෙදීම් එක් එක් සියලුම දෙපාර්තමේන්තු තොරතුරු ගබඩා බව වගුව පිටත් වෙනවා. මෙම වගුවේ අංශය අංකය සහ සේවක සංඛ්යාව වාර්තා අතර, එක් එක් දෙපාර්තමේන්තුවේ නියැදි දත්ත නම, සීසෑමට කළ යුතුය. ඉදිරියට බලා, එය ඔබ, මෙම ගැටලුව විසඳීම සඳහා ක්රම දෙකක් භාවිතා කළ හැකි බව පවසමින් වටී.
පළමු ක්රමය සාම්පලයක් ලබා ගැනීමට දෙපාර්තමේන්තුව වගුව සම්බන්ධ කිරීමයි. මෙම නඩුවේ ඉල්ලීම පහත සඳහන් පරිදි විය හැක සංවිධානය:
පුද්ගලයා සිට Pe_ID, Pe_Name, Su_Id, Su_Name, Dep_ID, Dep_Name තෝරන්න අභ්යන්තර Su_Person = Pe_ID මත අනුබෙදුම් එක්වන අභ්යන්තර Su_Depart = Dep_ID හා Pe_Depart = Dep_ID දින පිටත් එක්වන |
ගැටළුව විසඳා දෙවන ක්රමය - සියළුම දත්ත දෙපාර්තමේන්තුව වගුව තෝරා ගනු ලැබේ, නමුත් පමණක් අවශ්ය වූ subquery භාවිතා කිරීමයි. මෙය පළමු ක්රමය වෙනස් වන අතර, එය, ඉල්ලීමේ කාලය අඩු වනු ඇත.
පුද්ගලයා සිට Pe_ID, Pe_Name, Su_Id, Su_Name, Dep_ID, Dep_Name තෝරන්න අභ්යන්තර Su_Person = Pe_ID මත අනුබෙදුම් එක්වන අභ්යන්තර Su_Depart = Dep_ID හා Pe_Depart = Dep_ID මත (තේරීම් Dep_ID, Dep_Name, පහව සිට Pe_Depart) ටී ලෙස එක්වන |
එය එවැනි එකඟතාවකට හැම විටම වැඩ ඉල්ලීම වේගවත් නොහැකි බව සඳහන් කිරීම වටිනවා. එය (පරිමාව ඉතා විශාල වේ නම්) තාවකාලික වගුව බවට අතිරේක නියැදි දත්ත භාවිතා කිරීමට අවශ්ය වූ විට සමහර විට එහි නඩු වන අතර, පසුව එය ප්රධාන නියැදි සමඟ ඒකාබද්ධ කරන ලදී.
භාවිතය ඇතුළු උදාහරණයක් වගු විශාල සංඛ්යාවක් සාම්පල ක්රියාකරු එකතු වන්න
ඉදිකිරීම් දත්ත වගු හා subqueries සැලකිය යුතු ප්රමාණයක් එකිනෙකට නියැදි සඳහා සංකීර්ණ විමසුම් කිරීම ඇතුලත් වේ. මෙම අවශ්යතා SQL ඇතුළත කාරක රීති එකතු වන්න තෘප්තිමත් කළ හැකිය. ක්රියාකරු භාවිතය උදාහරණ, මේ අවස්ථාවේ දී පමණක් නොව, පිළිතුරු පැතැලිව subqueries විශාල සංඛ්යාවක් සමග, බොහෝ ගබඩා ස්ථාන සාම්පල පමණක් නොව සංකීර්ණ කළ හැක. කොන්ක්රීට් උදාහරණයක් ලෙස, ඔබ පද්ධතිය වගු (Inner SQL ප්රකාශ එකතු වන්න) ක නියැදියකින් දත්ත ගත හැක. නිදසුන - මේසය 3 - මෙම නඩුවේ චිත්තාවේගයක් ව්යුහය ඇත.
මෙම නඩුව සම්බන්ධ (ප්රාථමික වගුව) තුළ සහ ඒ තුනක් දත්ත තෝරා කොන්දේසි කිහිපයක් තවදුරටත් හඳුන්වා දෙන ලදී.
ද ඉනර් එක්වන්න ක්රියාකරු වඩා සංකීර්න බව විමසුම මතක තබා ගත යුතු භාවිතා කරන විට, දිගු එය ක්රියාත්මක කරනු ඇත, ඒ නිසා ඔබ වඩාත් ඉක්මනින් ප්රශ්නය ඉටු කිරීමට හා විසඳිය හැකි මාර්ග සඳහා අවධානය යොමු කළ යුතුයි.
නිගමනය
අවසානයේ දී, මම එක දෙයක් කියන්න කැමතියි: දත්ත සමුදායන් සමග වැඩ - එය වැඩසටහන් වඩාත් අමාරු දෙයක් නෙවෙයි, ඒ නිසා ඔබ සෑම තනි පුද්ගලයෙකුට දත්ත සමුදා ඉදිකිරීමට දැනුමක් ලබා ගැනීමට, හැකි විය යුතු අතර, කාලයත්, අත්දැකීම් ලබා ඇත අවශ්ය නම්, ඔබ වෘත්තීය මට්ටම මත ඔවුන් සමඟ වැඩ කිරීමට ලබා .
Similar articles
Trending Now