SQL මූලධර්ම

DDL, DML සහ JOIN ගැන ඉගෙන ගන්න

ව්යුහගත විමසුම් භාෂාව නූතන දත්ත ගබඩාවේ මූලික ගොඩනැඟිලි එකකි. සියළුම ප්රධාන වේදිකාවන් මත සම්බන්ධතා දත්ත ගබඩාවන් නිර්මාණය කිරීම සහ භාවිතා කිරීමට භාවිතා කරන ක්රමවේදයන් SQL නිර්වචනය කරයි. මුලින්ම බැලූ බැල්මට භාෂාව බියකරු හා සංකීර්ණ විය හැකිය, නමුත් එය දුෂ්කර නොවේ.

SQL පිටුපස මූලධර්මයට මෙම හැඳින්වීම දත්ත සමුදා නිර්මාණය සහ වෙනස් කිරීම සඳහා භාවිතා කරන ප්රධාන විධානයන් කිහිපයක් කෙටියෙන් දැක්වේ.

SQL ගැන

SQL නිවැරදිව උච්චාරණය කිරීම දත්ත සමුදායේ ප්රජාව තුළ විවාදත්මක ප්රශ්නයක්. එහි SQL සම්මතයේ දී, ඇමරිකානු ජාතික ප්රමිති ආයතනය ප්රකාශයට පත්කරන ලද නිල උච්චාරණය "es queue el." කෙසේ වෙතත්, බොහෝ දත්ත සමුදායන් වෘත්තිකයන් විසින් නාට්යය "නාට්යය" වෙත ගෙන ගොස් ඇත. තේරීම ඔබේ ය.

SQL බොහෝ රස වලින් යුක්ත වේ. Oracle දත්ත සමුදායන් එහි හිමිකාර PL / SQL භාවිතා කරයි. Microsoft SQL Server Transact-SQL භාවිතා කරයි. සියලුම විචල්යයන් පාදක වන්නේ ANSI SQL කර්මාන්තයේ ප්රමිතිය මත ය. මෙම හැඳින්වීම ANSI-අනුකූල SQL විධානයන් භාවිතා කරන ඕනෑම නවීන තාර්කික දත්ත සමුදා පද්ධතියක් භාවිතා කරයි.

DDL සහ DML

SQL විධානය ප්රධාන උප භාෂාවන් දෙකකට බෙදිය හැකිය. දත්ත අර්ථ දැක්වීමේ භාෂාව (DDL) දත්ත සමුදා සහ දත්තගබඩා වස්තු සෑදීමට හා විනාශ කිරීමට භාවිතා කරන විධානයන් අඩංගු වේ. දත්ත සමුදාය ව්යුහය DDL සමග අර්ථ දැක්වීමෙන් පසු, දත්ත සමුදා පරිපාලකයන් සහ පරිශීලකයින්ට දත්ත ගබඩා කිරීමේ භාෂා (DML) භාවිතා කළ හැක, එය ඇතුලත්ව ඇති දත්ත ඇතුල් කිරීම, නැවත ලබා ගැනීම සහ වෙනස් කිරීම සිදු කළ හැකිය.

දත්ත අර්ථ දැක්වීම් භාෂා විධානයන්

දත්තගබඩා භාශාව දත්ත සමුදා සහ දත්තගබඩා වස්තු නිර්මාණය කිරීම හා විනාශ කිරීම සඳහා භාවිතා කරයි. දත්ත සමුදාය ව්යාපෘතියේ ස්ථාපනය සහ ඉවත් කිරීමේ අවධියේදී මෙම විධානයන් ප්රධාන වශයෙන් භාවිතා කරන්නේ පරිපාලකවරුන් විසින්ය. මෙහි ඇති ව්යුහය හා මූලික DDL විධානයන් හතරක් බලන්න:

නිර්මාණය කරන්න. පරිගණකයේ දත්ත සමුදා කළමණාකරන පද්ධතියක් ස්ථාපනය කිරීම මඟින් ස්වාධීන දත්ත සමුදාය සෑදීම සහ කළමනාකරණය කිරීමට ඔබට ඉඩ සලසයි. නිදසුනක් වශයෙන්, ඔබේ මානව සම්පත් දෙපාර්තමේන්තුවේ කාර්ය මණ්ඩල දත්ත ගබඩාව පවත්වාගෙන යාම සඳහා ඔබේ ගනුදෙනුකරුවන්ගේ සම්බන්ධතා දත්ත ගබඩාව පවත්වාගෙන යාම සඳහා ඔබට අවශ්ය විය හැකිය. CREATE විධානය භාවිතා කරනුයේ මෙම එක් එක් දත්ත සමුදාය ඔබේ වේදිකාව මත ස්ථාපනය කිරීමයි. උදාහරණයක් ලෙස, විධානය:

DATABASE සේවකයින් නිර්මාණය කරන්න

ඔබගේ DBMS මත "සේවකයින්" නම් හිස් දත්ත ගබඩාවක් නිර්මාණය කරයි. දත්ත සමුදාය නිර්මාණය කිරීමෙන් අනතුරුව ඊළඟ පියවර වන්නේ දත්ත අඩංගු වගු නිර්මාණය කිරීමයි. CREATE විධානයේ තවත් ප්රභේදයක් මේ සඳහා භාවිතා කළ හැකිය. විධානය:

TABLE නිර්මාණය කරන්න personal_info (first_name char (20) null, last_name char (20) null, employee_id int null)

වත්මන් දත්ත සමුදාය තුළ "personal_info" යනුවෙන් වගුවක් ස්ථාපිත කරයි. උදාහරණයේදී, වගු තුනෙහි ගුණාංග ඇත: පළමු_name, last_name සහ employee_id සහ අමතර තොරතුරු.

භාවිත. USE විධානය මඟින් ඔබගේ DBMS තුල වැඩ කිරීමට අවශ්ය දත්ත ගබඩාව නියම කිරීමට ඔබට ඉඩ දෙයි. උදාහරණයක් ලෙස, ඔබ දැනට විකුණුම් දත්ත සමුදායෙහි වැඩ කරමින් සිටින අතර, සේවක දත්ත සමුදායට බලපාන සමහර විධාන නිකුත් කිරීමට අවශ්ය නම්, පහත දැක්වෙන SQL විධානය සමඟ ඒවා පූර්වදර්ශනය කරන්න:

භාවිතා කරන්නන්

දත්ත භාවිතා කළ හැකි SQL විධානයන් නිකුත් කිරීමට පෙර ඔබ වැඩ කරන දත්ත ගබඩාව ගැන සැමවිටම සැලකිලිමත් විය යුතුය.

ඇල්ටර්. ඔබ දත්ත සමුදායක් තුළ වගුවක් නිර්මාණය කළ පසු, එහි අර්ථ දැක්වීම වෙනස් කිරීමට ඔබට අවශ්ය විය හැකිය. ALTER විධානය මඟින් එය මැකීමට සහ නැවත සකස් කිරීමකින් තොරව මේසයේ ව්යුහයට වෙනස්කම් සිදුකිරීමට ඉඩ ලබා දේ. පහත දැක්වෙන විධානය බලන්න:

ALTER TABLE personal_info ADD වැටුප් මුදල නිෂ්කාශනය කිරීම

මෙම උදාහරණ පුද්ගලික ආදාන වගුව වෙත නව සලකුණක් එක් සේවක වැටුපකි. "මුදල්" තර්කය මඟින් සේවක වැටුප ඩොලර් සහ ශත හැඩතලය භාවිතා කර ඇත. අවසාන වශයෙන්, "null" ප්රධාන පදය ඕනෑම සේවකයෙකු සඳහා කිසිදු වටිනාකමක් නොලැබෙන බව මෙම දත්ත සමුදාය දත්ත ගබඩාවට කියයි.

ඩ්රොප් දත්ත අර්ථ දැක්වීමේ භාෂාවෙහි අවසාන විධානය, DROP, අපගේ දත්ත ගබඩාවේ සිට සම්පූර්ණ දත්තගබඩා වස්තූන් ඉවත් කිරීමට අපට ඉඩ සලසයි. උදාහරණයක් ලෙස, අප විසින් නිර්මාණය කරන ලද personal_info වගුව සදහටම ඉවත් කිරීමට අවශ්ය නම්, පහත දැක්වෙන විධානය භාවිතා කරනු ඇත:

DROP TABLE personal_info

එලෙසම, පහත දැක්වෙන විධානය සමස්ත සේවක දත්ත සමුදාය ඉවත් කිරීම සඳහා භාවිතා කරනු ඇත:

DROP DATABASE සේවකයින්

මෙම විධානය සැලකිලිමත් වන්න. DROP විධානය මඟින් ඔබේ දත්ත සමුදාය සම්පූර්ණ දත්ත ව්යුහයන් ඉවත් කරයි. එක් එක් දත්ත ඉවත් කිරීමට ඔබට අවශ්ය නම්, දත්ත හැසිරවීමේ භාෂාවෙහි DELETE විධානය භාවිතා කරන්න.

දත්ත හැසිරවීම භාෂා විධානයන්

දත්ත හැසිරවීමේ භාෂාව (DML) දත්ත සමුදා තොරතුරු ඇතුල් කිරීම, වෙනස් කිරීම සහ වෙනස් කිරීම සඳහා භාවිතා වේ. මෙම විධානයන් දත්ත සමුදා පරිශීලකයන් විසින් රහසිගතව ක්රියාත්මක කරන අතරතුරදී සියළුම දත්ත සමුදා පරිශීලකයන් විසින් භාවිතා කරනු ලැබේ.

ඇතුල් කරන්න. SQL හි INSERT විධානයක් දැනට පවතින වගුවට වාර්තා එකතු කිරීම සඳහා භාවිතා කරයි. පෙර කොටසෙන් පුද්ගලික_ තොරතුරු උදාහරණයට ආපසු පැමිණෙන විට, අපගේ මානව සම්පත් දෙපාර්තමේන්තුව තම දත්ත ගබඩාවට නව සේවකයෙකු එකතු කළ යුතු බව සිතමු. ඔබට මෙම විධානයට සමාන විධානයක් භාවිතා කළ හැකිය:

Personal_info අගයන් ('බාර්ට්', 'සිම්ප්සන්', 12345, $ 45000) ඇතුලත් කරන්න.

වාර්තා සඳහා නිශ්චිතව සතරක් ඇති බව සලකන්න. මේවා අනුපිළිවෙලෙහි ඇති වගු ගුණාංග වලට අනුරූප වේ: first_name, last_name, employee_id සහ වැටුප.

තෝරන්න. SELECT විධානය SQL හි බහුලව භාවිතා වන විධානයයි. මෙහෙයුම් පද්ධතියේ දත්ත ගබඩාව භාවිතා කරන්නන්ට අවශ්ය තොරතුරු ලබා ගැනීම සඳහා දත්ත සමුදා පරිශීලකයන්ට අවසර ලබා දේ. නැවතත් උදාහරණ කිහිපයක් බලන්න, සේවක දත්ත සමුදායෙන් පුද්ගලික_ තොරතුරු වගුව භාවිතයෙන්.

පහත දැක්වෙන විධානය පහත දැක්වෙන්නේ, පෞද්ගලික_ තොරතුරු වගුව තුළ අඩංගු සියලු තොරතුරු ලබා ගැනීමයි. තරු ලකුණ SQL ආදේශකයක් ලෙස භාවිතා කරනු ලැබේ. මෙය වචනානුසාරයෙන්ම කියනුයේ "පුද්ගලික_ තොරතුරු වගුව වෙතින් සියල්ල තෝරන්න".

තෝරන්න * personal_info වෙතින්

විකල්පයක් ලෙස, දත්තගබඩාවෙන් ලබාගන්නා ලද ගුණාංග සීමා කිරීමට පරිශීලකයින්ට අවශ්ය විය හැකිය. උදාහරණයක් ලෙස, මානව සම්පත් දෙපාර්තමේන්තුවට සමාගමේ සියලුම සේවකයන්ගේ අවසන් නම් ලැයිස්තුවක් අවශ්ය විය හැකිය. පහත සඳහන් SQL විධානය එම තොරතුරු පමණක් ලබාගන්නේ නම්:

SELECT last_name personal_info වෙතින්

නිශ්චිත නිර්ණායක සපුරා ඇති අය වෙත ලබා ගන්නා වාර්තා සීමා කිරීම සඳහා WHERE වගන්තිය භාවිතා කළ හැකිය. සියලුම ඉහළ වැටුප් සහිත සේවකයින්ගේ පෞද්ගලික වාර්තා සමාලෝචනය කිරීමට ප්රධාන විධායක නිලධාරියා උනන්දු විය හැකිය. පහත සඳහන් විධානය මඟින් $ 50,000 ට වැඩි වැටුප වටිනාකමක් ඇති වාර්තා සඳහා පෞද්ගලික_info තුළ අඩංගු සියලු දත්ත ලබාගත හැක:

පුද්ගලික_info වෙතින් තෝරාගත් විට WHERE වැටුප> $ 50000

UPDATE. වගුවක අඩංගු තොරතුරු වෙනස් කිරීම සඳහා UPDATE විධානය භාවිතා කළ හැකිය, තනි වශයෙන් හෝ තනි තනිව විය හැකිය. සමාගමේ සෑම වසරකම සිය වැටුපෙන් 3% ක පිරිවැයක් දැරීමට සමාගමට හැකි වේ යැයි අපේක්ෂා කරන්න. දත්ත ගබඩාවේ ගබඩා කර ඇති සියලු සේවකයින් සඳහා ඉක්මන් අයදුම් කිරීම සඳහා පහත දැක්වෙන SQL විධානය භාවිතා කළ හැකිය:

UPDATE personal_info SET වැටුප = වැටුප * 1.03

නව සේවකයා වන බාර්ට් සිම්ප්සන් විසින් කාර්ය සාධනය ඉක්මවා කාර්යසාධනය පෙන්නුම් කරන විට, කළමනාකාරීත්වය සිය $ 5,000 ට ඉහළ ලකුණු සමඟ ඔහුගේ විශිෂ්ඨ ජයග්රහණ හඳුනා ගැනීමට අපේක්ෂා කරයි. මෙම නැගීම සඳහා බාර්ට් තෝරාගැනීම සඳහා WHERE clause භාවිතා කළ හැකිය:

UPDATE personal_info SET වැටුප = වැටුප + $ 5000 WHERE employee_id = 12345

මකා දමන්න. අවසාන වශයෙන්, DELETE විධානය දෙස බලමු. මෙම ආම්පන්නයේ රීතිය අනෙක් DML විධානයන්ට සමාන වේ. අවාසනාවකට මෙන්, අපගේ නවතම සංගත ඉපැයීම් වාර්තාව අපේක්ෂා නොකළ අතර දුප්පත් බාට් ඉවත් කර ඇත. WHERE වගන්තිය සහිත DELETE විධානය personal_info වගුව වෙතින් ඔහුගේ වාර්තාව ඉවත් කිරීමට භාවිතා කල හැක:

Personal_info වෙතින් DELETE WHERE employee_id = 12345

ජොයින්

දැන් ඔබ SQL හි මූලික කරුණු ඉගෙන ගෙන ඇති අතර, භාෂා විසින් ඉදිරිපත් කළ හැකි වඩාත් ප්රබලතම සංකල්පයන් වන JOIN ප්රකාශය වෙත යන්න කාලය එළඹ ඇත. A JOIN ප්රකාශනය මඟින් විශාල දත්ත ප්රමාණයක් කාර්යක්ෂම ලෙස සකසා ගැනීමට විවිධ වගු තුළ දත්ත ඒකාබද්ධ කිරීමට ඉඩ සලසයි. දත්ත සමුදායේ සත්ය බලයක් පවතින්නේ මෙම ප්රකාශයන්ය.

මූලික වගු දෙකක් දත්ත එකතු කිරීම සඳහා මූලික JOIN මෙහෙයුම භාවිතා කිරීම, PERSONAL_INFO වගුව භාවිතා කර ආදර්ශය සමඟ එකතු කිරීම සහ අතිරේක වගුවක් එකතු කරන්න. පහත දැක්වෙන ප්රකාශය සමඟ නිර්මාණය කරන ලද DISCIPLINARY_ACTION ලෙස ඔබට මේසයක් තිබේයයි සිතන්න.

Create TABLE විනයමය_action (action_id int null, employee_id int null, comment char (500))

සමාගම් සේවකයින් සඳහා විනය ක්රියාමාර්ගවල ප්රතිඵල මෙම වගුවෙහි අඩංගු වේ. සේවකයාගේ අංකය හැර සේවකයා පිළිබඳ කිසිදු තොරතුරක් ඔබ නොලැබෙනු ඇත. DISCIPLINARY_ACTION සහ PERSONAL_INFO වගු වලින් තොරතුරු ඒකාබද්ධ කිරීමට බොහෝ අවස්ථාවන් සිතා ගත හැකිය.

40,000 කට වැඩි වැටුපක් සහිත සියලුම සේවකයින්ට එරෙහිව විනයානුකූල පියවර ලැයිස්තුගත කර ඇති වාර්තාවක් ඔබ වෙත පැවරී ඇති බවට සිතන්න. මෙම සිද්ධියේ JOIN මෙහෙයුම භාවිතා කිරීම සරල ය. පහත දැක්වෙන විධානය භාවිතා කර මෙම තොරතුරු ලබාගත හැක:

SELECT personal_info.first_name, personal_info.last_name, disciplinary_action.comments personal_info, disciplinary_action WHERE personal_info.employee_id = disciplinary_action.employee_id සහ personal_info.salary> 40000

මෙම කේතය මගින් වගන්ති වලින් බැඳීමට අවශ්ය වන වගු දෙක දැක්වේ. පසුව WHERE වගන්තියෙහි අන්තර්ගතය සමාන ප්රතිඵල සහිත සේවක හැඳුනුම් පත් වල ප්රතිඵල සීමා කිරීම සඳහා ඩොලර් 40,000 කට වඩා වැඩි වැටුපක් අනුගමනය කර ඇත.