සින්ටැක්ස් වලට ඇතුල් කරන්න. SELECT ප්‍රකාශය තුලට SQL ඇතුලත් කරන්න. MySQL දත්ත ගබඩාවක INSERT INTO sql විමසුමේ උදාහරණ

SQL භාවිතයෙන්, ඔබට එක් වගුවකින් තවත් වගුවකට තොරතුරු පිටපත් කළ හැකිය.

INSERT INTO SELECT ප්‍රකාශය එක් වගුවකින් දත්ත පිටපත් කර පවතින වගුවකට ඇතුල් කරයි.

තේරීම් ප්‍රකාශය තුළට SQL ඇතුළු කරන්න,

INSERT INTO SELECT ප්‍රකාශය එක් වගුවකින් දත්ත තෝරා පවතින වගුවකට ඇතුල් කරයි. ඉලක්ක වගුවේ පවතින පේළි කිසිවක් වෙනස් නොවේ.

SQL SELECT INSERT, Syntax

අපට සියලුම තීරු එක වගුවක සිට තවත් වගුවකට පිටපත් කළ හැකිය, පවතින වගුව:

ඇතුල් කරන්න වගුව 2
තෝරන්න * සිට වගුව 1;

නැතහොත් අපට අවශ්‍ය තීරු පමණක් පවතින වෙනත් වගුවකට පිටපත් කළ හැකිය:

ඇතුල් කරන්න වගුව 2
(තීරු_නම(ය))
තෝරන්න තීරු_නම(ය)
සිට වගුව 1;

දත්ත සමුදායේ ආදර්ශන අනුවාදය

මෙම නිබන්ධනයේදී අපි හොඳින් දන්නා Northwind දත්ත සමුදාය භාවිතා කරමු.

පහත දැක්වෙන්නේ "පාරිභෝගිකයින්" වගුවෙන් තෝරාගැනීමකි:

පරිශීලක IDසේවාදායකයාගේ නමසම්බන්ධතා පුද්ගලයාලිපිනයනගරයතැපැල් කේතයරටක්
1 ඇල්ෆ්‍රඩ්ස් ෆටර්කිස්ටේ මාරියා ඇන්ඩර්ස් Obere Str. 57 බර්ලින් 12209 ජර්මනිය
2 Ana Trujillo Emparedados y helados ඇනා ටෘජිලෝ අව්ඩා. ද ලා ව්‍යවස්ථාව 2222 මෙක්සිකෝ ඩී.එෆ්. 05021 මෙක්සිකෝව
3 Antonio Moreno Taqueria ඇන්ටෝනියෝ මොරෙනෝ මැටඩෙරෝස් 2312 මෙක්සිකෝ ඩී.එෆ්. 05023 මෙක්සිකෝව

සහ "සැපයුම්කරුවන්" වගුවෙන් තේරීම:

SQL SELECT INSERT, උදාහරණ

"සැපයුම්කරුවන්" වෙතින් "පාරිභෝගිකයින්" වෙත තීරු කිහිපයක් පමණක් පිටපත් කිරීම:

ජර්මානු සැපයුම්කරුවන් පමණක් "පාරිභෝගිකයින්" වෙත පිටපත් කිරීම.

දත්ත සමුදා වගුවක් නිර්මාණය කර ඇති විට sql විමසුම INSERT INTO අර්ථවත් කරයි. එනම්, වගුව පවතී, නමක් ඇත, පේළි සහ තීරු නිර්මාණය කර ඇත. වගුව නිර්මාණය කර ඇත්තේ ක්‍රියාකරු විසිනි: , වගුව ක්‍රියාකරු විසින් වෙනස් කරනු ලැබේ.

sql විමසුම INSERT INTO - විමසුම් සින්ටැක්ස්

sql විමසුම INSERT INTO හි පහත වාක්‍ය ඛණ්ඩය ඇත:

වගු_නම ඇතුල් කරන්න (අවශ්‍ය නම්, වරහන් තුළ, ඔබට දත්ත ඇතුළත් කිරීමට අවශ්‍ය තීරු ලැයිස්තුවක් ඇතුළු කරන්න) VALUES දත්ත1, ඇතුළු කළ දත්ත2, ඇතුළු කළ දත්ත3.

ඔබට INSERT සහ INTRO අතර IGNORE විකල්පයක් ඇතුළත් කළ හැක. එය අවශ්ය නොවේ. වගුවක් සංස්කරණය කිරීමේදී ප්‍රාථමික යතුරු ආරක්ෂා කිරීමට අවශ්‍ය වේ. එසේ නොමැති නම්, සංස්කරණය කිරීමේදී ප්‍රාථමික යතුරු අනුපිටපත් කිරීම සිදු වුවහොත්, IGNORE විකල්පය ඇතුළු කරන විට, ප්‍රාථමික යතුර සහිත පළමු පේළිය සංස්කරණය කෙරෙන වගුවේ පවතිනු ඇත. අනෙකුත් ප්‍රාථමික යතුරු මකා දැමෙනු ඇත. පෙරනිමියෙන්, අපි මෙම විකල්පය මඟහරිමු.

විකල්ප විකල්ප LOW_PRIORITY සහ DELAYED ඇත. ඔවුන් දත්ත සමුදායට තොරතුරු එකතු කිරීම සඳහා ප්රමුඛතා තීරණය කරයි. පළමුවැන්න දත්ත සමුදාය මුදා හැරීමට බලා සිටීම නියම කරයි, දෙවැන්න යනු බෆරින් තොරතුරු ය.

විමසුමේ ඇති පේළිය: VALUES වාක්‍ය ඛණ්ඩය සමඟ INSERT ඔබට දත්ත සමුදා වගුවට තනි පේළියක් එක් කිරීමට ඉඩ සලසයි. VALUES වගන්තියේ මෙම දත්තවල අගයන් අඩංගු වේ.

VALUES වාක්‍ය ඛණ්ඩය වෙනුවට උප විමසුම් නියම කළ හැක. උප විමසුමකින් INSERT මඟින් උප විමසුම මඟින් ආපසු ලබා දෙන පේළි වගුවට එක් කරයි. දත්ත සමුදා සේවාදායකය උප විමසුම සකසන අතර ආපසු ලබා දුන් සියලුම පේළි වගුවට ඇතුල් කරයි. උප විමසුම විසින් ඒවා තෝරන්නේ නම් මිස සේවාදායකය පේළි ඇතුල් නොකරයි.

  • subquery_1 - සේවාදායකය දර්ශනය ලෙසම සකසන උප විමසුමකි
  • subquery_2 යනු වගුවට ඇතුළු කළ පේළි ආපසු ලබා දෙන උප විමසුමකි. මෙම උප විමසුමේ ලැයිස්තුවේ INSERT තීරු ලැයිස්තුවට සමාන තීරු සංඛ්‍යාවක් තිබිය යුතුය.

MySQL දත්ත ගබඩාවක උප විමසුම් ප්‍රායෝගිකව භාවිතා නොවේ.

MySQL දත්ත ගබඩාවක INSERT INTO sql විමසුමේ උදාහරණ

අපි INSERT INTRO විධානය භාවිතයෙන් MySQL දත්ත ගබඩාවට නව පේළි ඇතුල් කරන්නෙමු.

පළමු උදාහරණය.

වගුව_නම තුළට නව පේළි ඇතුළු කරන්න.

වගු_නම අගයන් ('2′,'145′,'1′,'නම') තුළට ඇතුළු කරන්න;

මෙයින් අදහස් කරන්නේ අපට වගුව_නම් තීරුවලට 2,145,1, නම ඇතුළත් කිරීමට අවශ්‍ය බවයි. තීරු නියම කර නොමැති බැවින්, වගුවේ සියලුම තීරු වල අගයන් පුරවා ඇත.

උදාහරණ දෙක.

table_name වගුවේ අවශ්‍ය (නිශ්චිත) තීරුවලට තොරතුරු ඇතුල් කරන්න.

වගු_නම ඇතුලත් කරන්න (Client_customer, client_subclient, client_mail) VALUES ('name1','subname1',' [ඊමේල් ආරක්ෂිත]′), (‘නම2′,’subname2′,’ [ඊමේල් ආරක්ෂිත]′), ('name3','subname3',(' [ඊමේල් ආරක්ෂිත]′);

Igor Serov විශේෂයෙන් "" වෙබ් අඩවිය සඳහා.

අවසන් යාවත්කාලීනය: 07/13/2017

දත්ත එකතු කිරීම සඳහා, පහත විධිමත් වාක්‍ය ඛණ්ඩය ඇති INSERT විධානය භාවිතා කරන්න:

වගු_නම ඇතුල් කරන්න [(තීරු_ලැයිස්තුව)] VALUES (අගය1, අගය2, ... අගයN)

මුලින්ම INSERT INTO ප්‍රකාශනය පැමිණේ, පසුව වරහන් තුළ ඔබට දත්ත එකතු කළ යුතු කොමාවෙන් වෙන් කළ තීරු ලැයිස්තුවක් සඳහන් කළ හැකි අතර අවසානයේ VALUES යන වචනයෙන් පසුව තීරු සඳහා එකතු කළ යුතු අගයන් ලැයිස්තුගත කර ඇත. වරහන්.

උදාහරණයක් ලෙස, පහත දත්ත සමුදාය කලින් නිර්මාණය කර ඇතැයි සිතන්න:

DATABASE නිෂ්පාදන DB සාදන්න; නිෂ්පාදන භාවිතා කරන්නdb; වගු නිෂ්පාදන සාදන්න (ID INT IDENTITY ප්‍රාථමික යතුර, නිෂ්පාදන නාමය NVARCHAR(30) NULL නොවේ, නිෂ්පාදක NVARCHAR(20) NULL නොවේ, නිෂ්පාදන ගණන INT පෙරනිමිය 0, මිල මුදල් null නොවේ)

INSERT විධානය භාවිතයෙන් අපි එයට එක් පේළියක් එකතු කරමු:

නිෂ්පාදන අගයන් ඇතුළත් කරන්න ("iPhone 7", "Apple", 5, 52000)

SQL Server Management Studio හි සාර්ථකව ක්‍රියාත්මක කිරීමෙන් පසු, "1 පේළි(s) බලපෑමට ලක්ව ඇත" යන පණිවිඩය පණිවිඩ ක්ෂේත්‍රයේ දිස්විය යුතුය:

VALUES මූල පදයෙන් පසු වරහන් තුළ ඇති තීරු සඳහා අගයන් ඒවා ප්‍රකාශ කරන ලද අනුපිළිවෙලින් සම්මත කර ඇති බව සලකා බැලීම වටී. උදාහරණයක් ලෙස, ඉහත CREATE TABLE ප්‍රකාශයේ, පළමු තීරුව Id බව ඔබට පෙනෙනු ඇත. නමුත් ඒ සඳහා IDENTITY ගුණාංගය නියම කර ඇති බැවින්, මෙම තීරුවේ අගය ස්වයංක්‍රීයව උත්පාදනය වන අතර එය මඟ හැරිය හැක. දෙවන තීරුව ProductName නියෝජනය කරයි, එබැවින් පළමු අගය වන "iPhone 7" තන්තුව එම තීරුවට යවනු ලැබේ. දෙවන අගය - "ඇපල්" නූල් තුන්වන තීරු නිෂ්පාදකයා වෙත යවනු ලැබේ. එනම්, අගයන් පහත පරිදි තීරු වෙත යවනු ලැබේ:

    නිෂ්පාදනයේ නම: "iPhone 7"

    නිෂ්පාදකයා: "ඇපල්"

එසේම, අගයන් ඇතුළත් කිරීමේදී, අගයන් එකතු කරන ක්ෂණික තීරු ඔබට නියම කළ හැකිය:

නිෂ්පාදන තුළට ඇතුළු කරන්න (නිෂ්පාදන නාමය, මිල, නිෂ්පාදකයා) අගයන් ("iPhone 6S", 41000, "Apple")

මෙහි අගය සඳහන් කර ඇත්තේ තීරු තුනකට පමණි. එපමණක් නොව, දැන් අගයන් තීරු අනුපිළිවෙලට සම්ප්රේෂණය වේ:

    නිෂ්පාදනයේ නම: "iPhone 6S"

    නිෂ්පාදකයා: "ඇපල්"

සඳහන් නොකළ තීරු සඳහා (මෙම අවස්ථාවෙහි නිෂ්පාදන ගණන), DEFAULT උපලක්ෂණය සඳහන් කර ඇත්නම් හෝ NULL අගයක් නම් පෙරනිමි අගයක් එකතු වේ. කෙසේ වෙතත්, නිශ්චිතව දක්වා නොමැති තීරු අවලංගු කළ හැකි හෝ DEFAULT උපලක්ෂණයක් තිබිය යුතුය.

අපට එකවර පේළි කිහිපයක් එකතු කළ හැකිය:

නිෂ්පාදන අගයන් ඇතුළත් කරන්න ("iPhone 6", "Apple", 3, 36000), ("Galaxy S8", "Samsung", 2, 46000), ("Galaxy S8 Plus", "Samsung", 1, 56000)

මෙම අවස්ථාවේදී, මේසයට පේළි තුනක් එකතු කරනු ලැබේ.

එසේම, එකතු කිරීමේදී, DEFAULT මූල පදය භාවිතයෙන් තීරුවේ පෙරනිමි අගයක් හෝ NULL අගයක් තිබිය යුතු බව අපට සඳහන් කළ හැක:

නිෂ්පාදන තුළට ඇතුළු කරන්න (නිෂ්පාදන නාමය, නිෂ්පාදකයා, නිෂ්පාදන ගණන, මිල) අගයන් ("Mi6", "Xiaomi", DEFAULT, 28000)

මෙම අවස්ථාවේදී, ProductCount තීරුව සඳහා පෙරනිමි අගය භාවිතා කරනු ඇත (එය සකසා ඇත්නම්, එසේ නොවේ නම්, NULL).

සියලුම තීරු වල පෙරනිමි අගයක් සඳහන් කරන DEFAULT ගුණාංගයක් තිබේ නම්, හෝ අවලංගු කළ හැකි නම්, ඔබට සියලු තීරු සඳහා පෙරනිමි අගයන් ඇතුළත් කළ හැක:

නිෂ්පාදන පෙරනිමි අගයන් ඇතුළත් කරන්න

නමුත් අපි නිෂ්පාදන වගුව ගතහොත්, ක්ෂේත්‍ර කිහිපයකට DEFAULT ගුණාංගය නොමැති අතර ඒ සමඟම NULL අගයට ඉඩ නොදෙන බැවින් එවැනි විධානයක් දෝෂයක් සමඟ අසාර්ථක වනු ඇත.

INSERT INTO යනු කුමක්ද?

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

මූලික සින්ටැක්ස්

පහත දැක්වෙන SQL INSERT විධානයේ මූලික වාක්‍ය ඛණ්ඩය දෙස බලමු.

`වගුව_නම` (තීරුව_1, තීරු_2,...) VALUES (අගය_1, අගය_2,...) තුළට ඇතුළු කරන්න;

  • `වගුව_නම` තුළට ඇතුළු කරන්න"table_name" නම් වගුවකට නව පේළියක් එක් කිරීමට MySQL සේවාදායකයට පවසන විධානය වේ.
  • (තීරුව_1,තීරුව_2,...)නව පේළියේ යාවත්කාලීන කළ යුතු තීරු නියම කරයි
  • VALUES (අගය_1,අගය_2,...)නව පේළියට එකතු කළ යුතු අගයන් නියම කරයි

නව වගුවට ඇතුළත් කළ යුතු දත්ත අගයන් සැපයීමේදී, විවිධ දත්ත වර්ග සමඟ කටයුතු කිරීමේදී පහත කරුණු සලකා බැලිය යුතුය.

  • String දත්ත වර්ග- සියලුම තන්තු අගයන් තනි උද්ධෘතවල අමුණා තිබිය යුතුය.
  • සංඛ්‍යාත්මක දත්ත වර්ග- සියලුම සංඛ්‍යාත්මක අගයන් තනි හෝ ද්විත්ව උද්ධෘතවලට ඇතුළත් නොකර සෘජුවම සැපයිය යුතුය.
  • දින දත්ත වර්ග- "YYYY-MM-DD" ආකෘතියේ තනි උද්ධෘතවල දින අගයන් ඇතුළත් කරන්න.

උදාහරණයක්:

දත්ත සමුදායට එක් කළ යුතු නව පුස්තකාල සාමාජිකයින්ගේ පහත ලැයිස්තුව අප සතුව ඇතැයි සිතමු.

සම්පූර්ණ නම් උපන්දිනය ස්ත්රී පුරුෂ භාවය භෞතික ලිපිනය තැපැල් ලිපිනය ඇමතුම් අංකය ඊතැපැල් ලිපිනය
ලෙනාඩ් හොෆ්ස්ටැඩර් පිරිමි වුඩ්ක්රෙස්ට් 0845738767
ෂෙල්ඩන් කූපර් පිරිමි වුඩ්ක්රෙස්ට් 0976736763
රාජේෂ් කූත්‍රප්පලි පිරිමි Fairview 0938867763
ලෙස්ලි වින්කල් 14/02/1984 පිරිමි 0987636553
හොවාර්ඩ් වොලොවිට්ස් 24/08/1981 පිරිමි දකුණු උද්යානය තැ.කා.සි. කොටුව 4563 0987786553

අපි "දත්ත එකින් එක ඇතුළු කරමු. අපි Leonard Hofstadter සමඟින් ආරම්භ කරමු. අපි සම්බන්ධතා අංකය සංඛ්‍යාත්මක දත්ත වර්ගයක් ලෙස සලකමු සහ තනි උද්ධෘතවල අංකය නො සකසන්නෙමු.

`සාමාජිකයින්` වෙත ඇතුළු කරන්න (`සම්පූර්ණ_නම්`,`ලිංගභේදය`,`භෞතික_ලිපිනය`,`සම්බන්ධතා_අංක`) අගයන් ("ලෙනාඩ් හොෆ්ස්ටැටර්","පුරුෂ","වුඩ්ක්‍රෙස්ට්",0845738767);

ඉහත ස්ක්‍රිප්ට් එක ක්‍රියාත්මක කිරීමෙන් ලෙනාඩ්ගේ සම්බන්ධතා අංකයෙන් 0 පහත වැටේ. මෙයට හේතුව එම අගය සංඛ්‍යාත්මක අගයක් ලෙස සලකනු ලබන අතර එය සැලකිය යුතු නොවන බැවින් ආරම්භයේ ඇති ශුන්‍යය (0) පහත හෙලන බැවිනි.

එවැනි ගැටළු මඟහරවා ගැනීම සඳහා, පහත පෙන්වා ඇති පරිදි අගය තනි උද්ධෘතවල ඇතුළත් කළ යුතුය -

`සාමාජිකයින්` (`සම්පූර්ණ_නම්`,`ලිංගභේදය`,`භෞතික_ලිපිනය`,`සම්බන්ධතා_අංක`) අගයන් ("ෂෙල්ඩන් කූපර්","පිරිමි","වුඩ්ක්‍රෙස්ට්", "0976736763") ඇතුළු කරන්න;

ඉහත අවස්ථාවෙහි , ශුන්‍ය(0) පහත වැටෙන්නේ නැත

නිවැරදි අගයන් නිවැරදි තීරු වෙත සිතියම්ගත කර ඇති තාක්, තීරු අනුපිළිවෙල වෙනස් කිරීම INSERT විමසුමට බලපාන්නේ නැත.

පහත දැක්වෙන විමසුම ඉහත කරුණ පෙන්නුම් කරයි.

`සාමාජිකයින්` (`සම්බන්ධතා_අංක`,`ලිංගභේදය`,`සම්පූර්ණ_නම්`,`භෞතික_ලිපිනය`)ඇතුළු කරන්න ("0938867763","පුරුෂ","රාජේෂ් කූත්‍රප්පලි","වුඩ්ක්‍රෙස්ට්");

ඉහත විමසුම් උපන්දින තීරුව මඟ හරින ලදී, පෙරනිමියෙන් MySQL විසින් INSERT විමසුමේ මඟ හරින ලද තීරු වල NULL අගයන් ඇතුළත් කරනු ඇත.

අපි දැන් ලෙස්ලිගේ උපන්දිනය සපයා ඇති වාර්තාව ඇතුළු කරමු. දින අගය "YYYY-MM-DD" ආකෘතිය භාවිතා කර තනි උද්ධෘතවල ඇතුළත් කළ යුතුය.

`සාමාජිකයින්` (`සම්පූර්ණ_නම්`,`උපන්_දිනය`,`ලිංගය`,`භෞතික_ලිපිනය`,`සම්බන්ධතා_අංක`) අගයන් ("ලෙස්ලි වින්කල්","1984-02-14","පුරුෂ","වුඩ්ක්‍රෙස්ට්"," ඇතුළු කරන්න 0987636553");

ඉහත සියලු විමසුම් තීරු සඳහන් කර ඒවා ඇතුළු කිරීමේ ප්‍රකාශයේ අගයන් වෙත සිතියම්ගත කර ඇත. අපි වගුවේ ඇති සියලුම තීරු සඳහා අගයන් සපයන්නේ නම්, අපට ඇතුල් කිරීමේ විමසුමෙන් තීරු ඉවත් කළ හැකිය.

'සාමාජිකයින්ගේ' අගයන් ඇතුලත් කරන්න (9,"Howard Wolowitz","පුරුෂ","1981-08-24","SouthPark","P.O. Box 4563", "0987786553", "lwolowitzemail.me");

සාමාජිකයන් වගුවේ ඇති සියලුම පේළි බැලීමට අපි දැන් SELECT ප්‍රකාශය භාවිතා කරමු.SELECT * 'සාමාජිකයින්' වෙතින්;

සාමාජික අංකයසම්පූර්ණ_නම්ස්ත්රී පුරුෂ භාවයඋපන්දිනයභෞතික_ලිපිනයතැපැල් ලිපිනයසම්බන්ධතා_අංකයවිද්යුත් තැපෑල
1 ජැනට් ජෝන්ස්ගැහැණු21-07-1980 පළමු වීදි බිම් කොටස අංක 4පුද්ගලික බෑගය0759 253 542 මෙම විද්‍යුත් තැපැල් ලිපිනය spambots ගෙන් ආරක්ෂා කර ඇත. එය බැලීම සඳහා ඔබට JavaScript සක්රීය කිරීම අවශ්ය වේ.
2 ජැනට් ස්මිත් ජෝන්ස්ගැහැණු23-06-1980 මෙල්රෝස් 123NULLNULLමෙම විද්‍යුත් තැපැල් ලිපිනය spambots ගෙන් ආරක්ෂා කර ඇත. එය බැලීම සඳහා ඔබට JavaScript සක්රීය කිරීම අවශ්ය වේ.
3 රොබට් ෆිල්පිරිමි12-07-1989 3 වන වීදිය 34NULL12345 මෙම විද්‍යුත් තැපැල් ලිපිනය spambots ගෙන් ආරක්ෂා කර ඇත. එය බැලීම සඳහා ඔබට JavaScript සක්රීය කිරීම අවශ්ය වේ.
4 ග්ලෝරියා විලියම්ස්ගැහැණු14-02-1984 2 වන වීදිය 23NULLNULLNULL
5 ලෙනාඩ් හොෆ්ස්ටැටර්පිරිමිNULLවුඩ්ක්රෙස්ට්NULL845738767 NULL
6 ෂෙල්ඩන් කූපර්පිරිමිNULLවුඩ්ක්රෙස්ට්NULL976736763 NULL
7 රාජේෂ් කූත්‍රප්පලිපිරිමිNULLවුඩ්ක්රෙස්ට්NULL938867763 NULL
8 ලෙස්ලි වින්කල්පිරිමි14-02-1984 වුඩ්ක්රෙස්ට්NULL987636553 NULL
9 හොවාර්ඩ් වොලොවිට්ස්පිරිමි24-08-1981 සවුත් පාර්ක්තැ.කා.සි. කොටුව 4563987786553 මෙම විද්‍යුත් තැපැල් ලිපිනය spambots ගෙන් ආරක්ෂා කර ඇත. එය බැලීම සඳහා ඔබට JavaScript සක්රීය කිරීම අවශ්ය වේ.

Leonard Hofstadter සඳහා සම්බන්ධතා අංකය සම්බන්ධතා අංකයෙන් බිංදුව (0) වැටී ඇති බව සලකන්න. අනෙක් සම්බන්ධතා අංක ආරම්භයේදී බිංදුව (0) වැටී නැත.

වෙනත් වගුවකින් වගුවකට ඇතුල් කිරීම

INSERT විධානය වෙනත් වගුවකින් වගුවකට දත්ත ඇතුළු කිරීමට ද භාවිතා කළ හැක. මූලික වාක්‍ය ඛණ්ඩය පහත පරිදි වේ.

වගුවට ඇතුළු කරන්න_1 තෝරන්න * වගුවෙන්_2;

අපි දැන් ප්‍රායෝගික උදාහරණයක් බලමු, අපි චිත්‍රපට කාණ්ඩ සඳහා ව්‍යාජ වගුවක් නිර්මාණය කරමු. අපි නව ප්‍රවර්ග වගුව වර්ග_ සංරක්ෂිත ලෙස හඳුන්වමු. පහත දැක්වෙන ස්ක්‍රිප්ට් එක මඟින් වගුව නිර්මාණය කරයි.

වගුව සාදන්න `ප්‍රවර්ග_සංරක්ෂිතය` (`category_id` int(11) AUTO_INCREMENT, `category_name` varchar(150) DEFAULT NULL, `remarks` varchar(500) DEFAULT NULL, PRIMARY_idcate`)

වගුව සෑදීමට ඉහත ස්ක්‍රිප්ට් එක ක්‍රියාත්මක කරන්න.

අපි දැන් ප්‍රවර්ග වගුවේ ඇති සියලුම පේළි ප්‍රවර්ග සංරක්ෂිත වගුවට ඇතුල් කරමු.පහත පෙන්වා ඇති ස්ක්‍රිප්ට් එක අපට එය සාක්ෂාත් කර ගැනීමට උපකාරී වේ.

'ප්‍රවර්ග_සංරක්ෂිතය' ට ඇතුල් කරන්න තෝරන්න * 'ප්‍රවර්ග' වෙතින්;

ඉහත ස්ක්‍රිප්ටය ක්‍රියාත්මක කිරීමෙන් ප්‍රවර්ග වගුවේ ඇති සියලුම පේළි ප්‍රවර්ග සංරක්ෂිත වගුවට ඇතුල් කරයි. ස්ක්‍රිප්ටය ක්‍රියා කිරීමට වගු ව්‍යුහයන් සමාන විය යුතු බව සලකන්න. වඩාත් ශක්තිමත් ස්ක්‍රිප්ට් එකක් යනු ඇතුළු කිරීමේ වගුවේ ඇති තීරු නාම දත්ත අඩංගු වගුවේ ඇති ඒවාට සිතියම්ගත කරන එකකි.

පහත දැක්වෙන විමසුම එහි භාවිතය පෙන්නුම් කරයි.

'ප්‍රවර්ග_සංරක්ෂිතය' (ප්‍රවර්ග_අයිඩී, ප්‍රවර්ග_නම, ප්‍රකාශයන්) වෙත ඇතුළත් කරන්න, 'ප්‍රවර්ග' වෙතින් ප්‍රවර්ග_අයිඩී, ප්‍රවර්ග_නම, ප්‍රකාශයන් තෝරන්න;

SELECT විමසුම ක්‍රියාත්මක කිරීම

තෝරන්න * 'categories_archive' වෙතින්

පහත දැක්වෙන පහත දැක්වෙන ප්රතිඵල ලබා දෙයි.

category_idකාණ්ඩය_නමඅදහස්
1 විකටහාස්‍යය සහිත චිත්‍රපට
2 රොමෑන්තිකආදර කතා
3 එපික්පුරාණ චිත්‍රපට කථා
4 භීෂණයNULL
5 විද්යා ප්රබන්ධයNULL
6 ත්‍රාසජනකNULL
7 කටයුතුNULL
8 රොමෑන්ටික විකටNULL
9 කාටූන්NULL
10 කාටූන්NULL

සාරාංශය

  • වගුවකට නව දත්ත එක් කිරීමට INSERT විධානය භාවිතා කරයි
  • දිනය සහ තන්තු අගයන් තනි උද්ධෘතවල අමුණා තිබිය යුතුය.
  • සංඛ්‍යාත්මක අගයන් උපුටා දැක්වීම් වලට ඇතුළත් කිරීම අවශ්‍ය නොවේ.
  • INSERT විධානය එක් වගුවක සිට තවත් වගුවකට දත්ත ඇතුළු කිරීමට ද භාවිතා කළ හැක.

කලින් සාකච්ඡා කළ SELECT ප්‍රකාශයට අමතරව, දත්ත හැසිරවීමේ භාෂාව (DML) හි තවත් ප්‍රකාශ තුනක් අඩංගු වේ: INSERT, UPDATE සහ DELETE. SELECT ප්‍රකාශය මෙන්, මෙම ප්‍රකාශ තුන වගු හෝ දර්ශන මත ක්‍රියාත්මක වේ. මෙම ලිපියෙන් INSERT ප්‍රකාශය සාකච්ඡා කෙරෙන අතර අනෙක් ප්‍රකාශ දෙක ඊළඟ ලිපියෙන් සාකච්ඡා කෙරේ.

ප්රකාශය ඇතුල් කරන්නවගුවකට පේළි (හෝ පේළි කොටස්) ඇතුල් කරයි. මෙම උපදෙස් වල විවිධ ආකාර දෙකක් තිබේ:

tab_name [(col_list)] DEFAULT VALUES | ඇතුළු කරන්න අගයන් (( පෙරනිමිය | ශුන්‍ය | ප්‍රකාශනය ) [ ,...n]) ටැබ්_නම ඇතුල් කරන්න | බලන්න_නම [(col_list)] (select_statement | execute_statement) සින්ටැක්ස් සම්මුති

උපදෙස් වල පළමු ආකෘතිය ඔබට එක් පේළියක් (හෝ එහි කොටසක්) මේසයට ඇතුල් කිරීමට ඉඩ සලසයි. සහ INSERT ප්‍රකාශයේ දෙවන ආකාරය මඟින් ඔබට SELECT ප්‍රකාශයක ප්‍රතිඵල කට්ටලයක් හෝ EXECUTE ප්‍රකාශයක් මඟින් ක්‍රියාත්මක කරන ලද ගබඩා කර ඇති ක්‍රියා පටිපාටියක් වගුවකට ඇතුළු කිරීමට ඉඩ සලසයි. ගබඩා කර ඇති ක්‍රියා පටිපාටිය වගුවට ඇතුළු කිරීමට දත්ත ආපසු ලබා දිය යුතුය. INSERT ප්‍රකාශයක් සමඟ භාවිතා කරන විට, SELECT ප්‍රකාශයකට අදාළ තීරු වල දත්ත වර්ග ගැළපෙන තාක්, දත්ත ඇතුළත් කරන වෙනත් හෝ එකම වගුවකින් අගයන් තෝරාගත හැක.

ආකෘති දෙකම සඳහා, එක් එක් ඇතුළත් කළ අගයේ දත්ත වර්ගය අනුරූප වගු තීරුවේ දත්ත වර්ගයට අනුකූල විය යුතුය. සියලුම තන්තු සහ තාවකාලික දත්ත උපුටා දැක්වීම් තුළ අමුණා තිබිය යුතුය; සංඛ්‍යාත්මක අගයන් උද්ධෘත ලකුණුවල ඇතුළත් කිරීම අවශ්‍ය නොවේ.

තනි පේළියක් ඇතුල් කිරීම

INSERT ප්‍රකාශයේ ආකාර දෙකටම, තීරු ලැයිස්තුව පැහැදිලිව සඳහන් කිරීම විකල්පමය වේ. තීරු ලැයිස්තුගත නොකිරීම වගුවේ ඇති සියලුම තීරු නියම කිරීමට සමාන වේ.

DEFAULT VALUES පරාමිතියසියලුම තීරු සඳහා පෙරනිමි අගයන් ඇතුළත් කරයි. TIMESTAMP දත්ත වර්ගය හෝ IDENTITY ගුණය සහිත තීරු පද්ධතිය මඟින් ස්වයංක්‍රීයව ජනනය වන අගයන් සමඟ පෙරනිමියෙන් ඇතුළු කෙරේ. වෙනත් දත්ත වර්ගවල තීරු සඳහා, තිබේ නම්, අනුරූප-ශුන්‍ය නොවන පෙරනිමි අගය ඇතුළත් කරනු ලැබේ, නැතහොත් NULL එසේ නොවේ. තීරුවක් ශුන්‍ය අගයන්ට ඉඩ නොදෙන්නේ නම් සහ පෙරනිමි අගයක් අර්ථ දක්වා නොමැති නම්, INSERT ප්‍රකාශය අසාර්ථක වන අතර පණිවිඩයක් දර්ශනය වේ.

පහත උදාහරණය මගින් නියැදි ඩීබී දත්ත ගබඩාවේ සේවක වගුව වෙත පේළි ඇතුල් කරයි, දත්ත ගබඩාවට කුඩා දත්ත ප්‍රමාණයක් ඇතුළු කිරීමට INSERT ප්‍රකාශයක් භාවිතා කිරීම පෙන්නුම් කරයි:

සාම්පල ඩීබී භාවිතා කරන්න; සේවක අගයන් ඇතුළත් කරන්න (34990, "Andrey", "Batonov", "d1"); සේවක අගයන් ඇතුළත් කරන්න (38640, "Alexey", "Vasin", "d3");

දෙකක් තියෙනවා විවිධ ක්රමඅගයන් ඇතුල් කිරීම නව මාර්ගය. පහත උදාහරණයේ INSERT ප්‍රකාශය පැහැදිලිවම NULL මූල පදය භාවිතා කරන අතර අනුරූප තීරුවට NULL අගයක් ඇතුල් කරයි:

සාම්පල ඩීබී භාවිතා කරන්න; සේවක අගයන් ඇතුලත් කරන්න (34991, "Andrey", "Batonov", NULL);

වගුවක සමහර තීරු (නමුත් සියල්ලම නොවේ) අගයන් ඇතුළත් කිරීමට, ඔබ සාමාන්‍යයෙන් එම තීරු පැහැදිලිව සඳහන් කළ යුතුය. නිශ්චිතව දක්වා නොමැති තීරු NULL අගයන්ට ඉඩ දිය යුතුය, නැතහොත් පෙරනිමි අගයක් අර්ථ දක්වා තිබිය යුතුය.

සාම්පල ඩීබී භාවිතා කරන්න; සේවකයාට ඇතුල් කරන්න (Id, Firstname, Last Name) අගයන් (34992, "Andrey", "Batonov");

පෙර උදාහරණ දෙක සමාන වේ. සේවක වගුවේ, NULL අගයන් සඳහා ඉඩ දෙන එකම තීරුව දෙපාර්තමේන්තු අංක තීරුව වන අතර අනෙකුත් සියලුම තීරු CREATE TABLE ප්‍රකාශයේ NOT NULL වගන්තිය මගින් අක්‍රීය කර ඇත.

අගයන් අනුපිළිවෙල VALUES පිරිනැමීම INSERT ප්‍රකාශ CREATE TABLE ප්‍රකාශයේ දක්වා ඇති අනුපිළිවෙලට වඩා වෙනස් විය හැක. මෙම අවස්ථාවෙහිදී, ඔවුන්ගේ ඇණවුම තීරු ලැයිස්තුවේ අනුරූප තීරු ලැයිස්තුගත කර ඇති අනුපිළිවෙලට අනුරූප විය යුතුය. පහත දැක්වෙන්නේ මුල් පිටපතට වඩා වෙනස් අනුපිළිවෙලකට දත්ත ඇතුළත් කිරීමේ උදාහරණයක්:

සාම්පල ඩීබී භාවිතා කරන්න; සේවකයාට ඇතුල් කරන්න (දෙපාර්තමේන්තු අංකය, අවසාන නම, හැඳුනුම්පත, පළමු නම) අගයන් ("d1", "Batonov", 34993, "Andrey");

පේළි කිහිපයක් ඇතුළත් කිරීම

INSERT ප්‍රකාශයේ දෙවන ආකෘතිය උප විමසුමකින් තෝරාගත් පේළි එකක් හෝ කිහිපයක් වගුවට ඇතුල් කරයි. පහත උදාහරණයෙන් දැක්වෙන්නේ INSERT ප්‍රකාශයේ දෙවන ආකාරය භාවිතයෙන් වගුවකට පේළි ඇතුල් කරන ආකාරයයි. මෙම අවස්ථාවෙහිදී, මොස්කව්හි පිහිටා ඇති දෙපාර්තමේන්තු වල අංක සහ නම් තෝරාගැනීම සඳහා විමසුමක් ක්රියාත්මක වන අතර, ප්රතිඵලයක් වශයෙන් ප්රතිඵල කට්ටලය කලින් නිර්මාණය කරන ලද නව වගුවකට පටවනු ලැබේ.

ඉහත උදාහරණයේ නිර්මාණය කරන ලද නව මොස්කව් දෙපාර්තමේන්තු වගුවේ නැතිවූ ස්ථාන තීරුව හැර, පවතින දෙපාර්තමේන්තු වගුවට සමාන තීරු ඇත. INSERT ප්‍රකාශයේ ඇති උප විමසුම මඟින් ස්ථාන තීරු අගය "මොස්කව්" වන දෙපාර්තමේන්තු වගුවේ සියලුම පේළි තෝරා ගනී, පසුව විමසුමේ ආරම්භයේ දී සාදන ලද නව වගුවට ඒවා ඇතුළත් කරනු ලැබේ.

පහත උදාහරණය INSERT ප්‍රකාශයේ දෙවන ආකාරය භාවිතයෙන් වගුවකට පේළි ඇතුළු කිරීමට තවත් ක්‍රමයක් පෙන්වයි. මෙම අවස්ථාවෙහිදී, p2 ව්‍යාපෘතියේ සේවය කරන "කළමනාකරු" තනතුර ඇති සියලුම සේවකයින් සඳහා පුද්ගල අංක, ව්‍යාපෘති අංක සහ ව්‍යාපෘති ආරම්භක දිනයන් තෝරා ගැනීමට විමසුමක් ක්‍රියාත්මක කරනු ලබන අතර එහි ප්‍රතිඵලය ආරම්භයේ දී සාදන ලද නව වගුවකට පැටවීම. විමසුම:

සාම්පල ඩීබී භාවිතා කරන්න; වගු කළමනාකරු කණ්ඩායම සාදන්න (EmpId INT null නොවේ, ProjectNumber CHAR (4) NULL නොවේ, Date DATE ඇතුළත් කරන්න); ManagerTeam වෙත ඇතුළු කරන්න (EmpId, ProjectNumber, EnterDate) රැකියා = "කළමනාකරු" යන ස්ථානයෙන් Works_on EmpId, ProjectNumber, EnterDate තෝරන්න;

INSERT ප්රකාශය භාවිතයෙන් පේළි ඇතුල් කිරීමට පෙර, මොස්කව් දෙපාර්තමේන්තුව සහ කළමනාකරු කණ්ඩායම් වගු (ඉහත උදාහරණවල) හිස් විය. වගුව දැනටමත් පැවතියේ නම් සහ දත්ත සහිත පේළි අඩංගු නම්, එයට නව පේළි එකතු වේ.


ඉහල