ecosmak.ru

Տեղադրեք ընտրված oracle շարահյուսության մեջ: SQL հարցում INSERT INTO - լրացրեք տվյալների բազան տեղեկատվությունով

Թիմ աղյուսակում տողեր է ավելացնումկամ հիմնական սեղանի տեսքը:

Sql INSERT Command Syntax

Տեղադրեք հրամանի շարահյուսություն


INSERT հրամանի հիմնական հիմնաբառեր և պարամետրեր
  • սխեման- թույլտվության նույնացուցիչ, որը սովորաբար համընկնում է որոշ օգտվողի անվան հետ
  • սեղանի տեսք- աղյուսակի անվանումը, որի մեջ պետք է տեղադրվեն տողերը. եթե դիտված է, տողերը տեղադրվում են դիտման հիմնական աղյուսակում
  • ենթհարցում_1- ենթահարկ, որը սերվերը մշակում է այնպես, ինչպես դիտումը
  • սյունակ- աղյուսակ կամ դիտման սյունակ, որտեղ մուտքագրվում է բառակապակցության արժեքը յուրաքանչյուր տեղադրված տողի համար ԱՐԺԵՔՆԵՐկամ ենթահարկ; եթե աղյուսակի սյունակներից մեկը բաց է թողնված այս ցանկից, ապա տեղադրված տողի սյունակի արժեքը աղյուսակի ստեղծման ժամանակ սահմանված լռելյայն սյունակի արժեքն է: Եթե ​​սյունակների ցանկն ամբողջությամբ բաց է թողնվել, ապա դրույթը ԱՐԺԵՔՆԵՐկամ հարցումը պետք է որոշի աղյուսակի բոլոր սյունակների արժեքները
  • ԱՐԺԵՔՆԵՐ- սահմանում է արժեքների շարան, որը կտեղադրվի աղյուսակի կամ տեսքի մեջ. իմաստը պետք է սահմանվի նախադասության մեջ ԱՐԺԵՔՆԵՐսյունակների ցանկի յուրաքանչյուր սյունակի համար
  • ենթահարկ_2- ենթահարկ, որը վերադարձնում է աղյուսակում տեղադրված տողերը. այս ենթհարցման ընտրացանկը պետք է ունենա նույն թվով սյունակներ, որքան հայտարարության սյունակների ցանկը

Հայտարարություն արտահայտությամբ ԱՐԺԵՔՆԵՐաղյուսակին ավելացնում է մեկ տող: Այս տողը պարունակում է արտահայտությամբ սահմանված արժեքները ԱՐԺԵՔՆԵՐ.
Հայտարարություն հետ ենթահարկարտահայտության փոխարեն ԱՐԺԵՔՆԵՐաղյուսակում ավելացնում է ենթահարցման կողմից վերադարձված բոլոր տողերը: Սերվերը մշակում է ենթահարկև յուրաքանչյուր վերադարձված տող տեղադրում է աղյուսակի մեջ: Եթե ​​ենթահարկը ոչ մի տող չի ընտրում, ապա սերվերը ոչ մի տող չի տեղադրում աղյուսակի մեջ:
Ենթահարկկարող է մուտք գործել ցանկացած աղյուսակ կամ դիտում, ներառյալ թիրախային պնդումների աղյուսակը . Սերվերը արժեքներ է հատկացնում նոր տողերի դաշտերին՝ ելնելով աղյուսակի սյունակների ներքին դիրքից և արտահայտության արժեքների հերթականությունից: ԱՐԺԵՔՆԵՐկամ հարցումների ընտրության ցանկում: Եթե ​​սյունակների ցանկից որևէ սյուն բացակայում է, ապա սերվերը նրանց վերագրում է աղյուսակի ստեղծման ժամանակ սահմանված լռելյայն արժեքները: Եթե ​​այս սյունակներից որևէ մեկն ունի NOT NULL սահմանափակում, ապա սերվերը վերադարձնում է սխալ, որը ցույց է տալիս, որ սահմանափակումը խախտվել է և ընդհատում է INSERT հայտարարությունը:
Երբ թողարկվում է INSERT հայտարարություն, սեղանի վրա սահմանված INSERT ցանկացած ձգան միացված է:

ՆԵՐԴՐԵԼ Օրինակ 1-ի մեջ

ՄՏՐԵԼ ՄԵՋբաժին ԱՐԺԵՔՆԵՐ(50, «ՊՐՈԴՈՒԿՏՍ», «ՍԱՆ ՖՐԱՆՑԻՍԿՈ»);

ՄՏՐԵԼ ՄԵՋՀաճախորդներ (քաղաք, ազգանուն, ազգանուն) ԱՐԺԵՔՆԵՐ(«Լոնդոն», «Հոֆման», 2001 թ.);

ՆԵՐԴՐԵԼ Օրինակ 2-ի մեջ
Հետևյալ հրամանը բոնուսային աղյուսակում պատճենում է ընկերության աշխատակիցների տվյալները, որոնց միջնորդավճարները գերազանցում են եկամտի 25%-ը.

ՄՏՐԵԼ ՄԵՋբոնուս SELECT ename, job, sal, comm FROM emp WHERE comm > 0.25 * sal;

ՆԵՐԴՐԵԼ Օրինակ 3-ի մեջ
Եթե ​​Ձեզ անհրաժեշտ է տեղադրել ԴԱՏԱՐԿ-արժեք, դուք պետք է նշեք այն որպես նորմալ արժեք հետևյալ կերպ.

ՄՏՐԵԼ ՄԵՋՎաճառողների VALUES (1001,'Peel',NULL,12);

ՆԵՐԴՐԵԼ Օրինակ 4-ի մեջ
Հրամանը կարող է օգտագործվել մի աղյուսակից արժեքներ առբերելու և դրանք մեկ այլ աղյուսակում տեղադրելու համար՝ օգտագործելով հարցում: Դա անելու համար բավական է փոխարինել նախադասությունը ԱՐԺԵՔՆԵՐհամապատասխան խնդրանքով.

ՄՏՐԵԼ ՄԵՋ Londonstaff SELECT * FROM Salespeople WHERE city = 'London';

MySQL INSERT

MySQL տվյալների բազայում նոր տողեր տեղադրելու համար օգտագործեք INSERT հրամանը, հրամանների օրինակներ տրված են ստորև.
ՆԵՐԴՐԵԼ Օրինակ 1-ի մեջ:
Նոր տող զետեղելով աղյուսակի table_name-ում:

ՄՏՐԵԼ ՄԵՋ

ՆԵՐԴՐԵԼ Օրինակ 2-ի մեջ:
Աղյուսակի table_name-ի մեջ նոր տող զետեղելը, որը ցույց է տալիս տվյալների ներդրումը մեզ անհրաժեշտ սյունակներում:

ՄՏՐԵԼ ՄԵՋ table_name VALUES ('1','165','0','name');

Տվյալների բազայում MySQLՀնարավոր է մի քանի նոր տող տեղադրել մեկ հրամանի միջոցով:
ՆԵՐԴՐԵԼ Օրինակ 3-ի մեջ:
Աղյուսակի table_name-ում մի քանի տողերի տեղադրում:

ՄՏՐԵԼ ՄԵՋսեղանի_անուն (tbl_id, chislo, chislotwo, անուն) VALUES ('1','159','34','name1'), ('2','14','61','name2'), ('3 ','356','8','name3');

Այս հայտարարությունը ավելացնում է մեկ կամ մի քանի գրառում աղյուսակում (կատարում է հավելվածի հարցում):

Շարահյուսություն

Բազմաթիվ գրառումներ ավելացնելու խնդրանք.

ՄՏՐԵԼ ՄԵՋ վերջնական_օբյեկտ [(դաշտ 1[, դաշտ 2[, ...]])]
ԸՆՏՐԵԼ [ աղբյուր.]դաշտ 1[, դաշտ 2[, ...]
ԻՑ սեղան_արտահայտություն

Մեկ գրառում ավելացնելու խնդրանք.

ՄՏՐԵԼ ՄԵՋ վերջնական_օբյեկտ [(դաշտ 1[, դաշտ 2[, ...]])]
ԱՐԺԵՔՆԵՐ ( դաշտ 1[, դաշտ 2[, ...])

INSERT INTO հայտարարությունը բաղկացած է հետևյալ տարրերից.

մաս

Նկարագրություն

վերջնական_օբյեկտ

Աղյուսակի կամ հարցման անվանումը, որտեղ ավելացվում են գրառումները:

դաշտ 1, դաշտ 2

Վեճից հետո վերջնական_օբյեկտ- դաշտերի անվանումները, որոնցում ավելացվում են տվյալները. վեճից հետո աղբյուր- այն դաշտերի անունները, որոնցից արդյունահանվում են տվյալները:

արտաքին_տվյալների բազա

Ճանապարհ դեպի արտաքին տվյալների բազա: Ուղու նկարագրության համար տե՛ս IN կետի հոդվածը:

աղբյուր

Աղյուսակի կամ հարցման անվանումը, որտեղից պատճենվում են գրառումները:

սեղան_արտահայտություն

Մեկ կամ մի քանի աղյուսակների անուններ, որոնցից ցանկանում եք առբերել գրառումները: Այս արգումենտը կարող է լինել առանձին աղյուսակի անուն, արդյունքի արտահայտություն, որը կառուցված է ՆԵՐՔԻՆ ՄԻԱՑՈՒՄ, ՁԱԽ ՄԻԱՑՈՒՄ կամ ԱՋ ՄԻԱՑՈՒՄ, կամ պահված հարցում:

արժեքը 1, արժեքը 2

Արժեքներ, որոնք կավելացվեն նոր ռեկորդի կոնկրետ դաշտերում: Յուրաքանչյուր արժեք տեղադրվում է ցանկում իր դիրքին համապատասխան դաշտում. արժեքը 1ավելացվել է դաշտ 1նոր մուտք, արժեքը 2դաշտ 2և այլն: Դուք պետք է առանձնացնեք արժեքները ստորակետով և տեքստային դաշտերը կցեք չակերտների մեջ (" "):

Նշումներ

INSERT INTO հայտարարությունը կարող է աղյուսակում մեկ գրառում ավելացնել՝ օգտագործելով վերը նշված շարահյուսությունը: Այս դեպքում նշում եք գրառումների յուրաքանչյուր դաշտի անուններն ու արժեքները: Գրառման մեջ պետք է նշեք բոլոր այն դաշտերը, որոնց վերագրված են արժեքները և համապատասխան արժեքները: Եթե ​​դաշտի արժեք չնշեք, ապա դրան կհատկացվի լռելյայն արժեքը կամ NULL: Գրառումները ավելացվում են աղյուսակի վերջում:

INSERT INTO հայտարարությունը կարող է օգտագործվել նաև մեկ այլ աղյուսակից կամ հարցումից մի շարք գրառումներ ավելացնելու համար՝ օգտագործելով SELECT... FROM նախադասությունը, ինչպես ցույց է տրված վերևում (տես Հարցման շարահյուսություն՝ բազմակի գրառումներ ավելացնելու համար): Այս դեպքում SELECT կետը նշում է նշված դաշտերին ավելացնելու համար վերջնական_օբյեկտ.

Աղբյուրկամ վերջնական_օբյեկտկարող է լինել աղյուսակ կամ հարցում: Երբ հարցում է տրվում, Microsoft Access տվյալների բազայի շարժիչն ավելացնում է գրառումներ բոլոր աղյուսակներում, որոնք վերադարձնում է:

INSERT INTO հայտարարության օգտագործումը պարտադիր չէ: Եթե ​​նշված է, այն պետք է նախորդի SELECT դրույթին:

Եթե ​​թիրախային աղյուսակը պարունակում է առաջնային բանալի, համոզվեք, որ արժեքները, որոնք ավելացնում եք հիմնական բանալիների մեկ կամ մի քանի դաշտերում, եզակի են և տարբեր: ԴԱՏԱՐԿ; հակառակ դեպքում գրառումները չեն ավելացվի:

Եթե ​​գրառումները ավելացվում են Counter դաշտով աղյուսակում, և դուք ցանկանում եք դրանք վերահամարակալել, հարցման մեջ մի ներառեք Counter դաշտը: Ներառեք Counter դաշտը հարցման մեջ, եթե ցանկանում եք պահպանել բնօրինակ արժեքները դաշտից:

Դուք կարող եք գրառումներ ավելացնել մեկ այլ տվյալների բազայի աղյուսակում՝ օգտագործելով IN կետը:

Աղյուսակ ստեղծելու համար օգտագործեք SELECT... INTO հայտարարությունը աղյուսակը ստեղծելու հարցում հարցում կատարելու համար:

Նախքան ավելացնելու հարցումը գործարկելը, օգտագործեք ընտրված հարցումը նույն ընտրության չափանիշներով, որպեսզի օգտագործեք արդյունքները՝ որոշելու, թե որ գրառումներն են ավելացվելու:

Հավելված հարցումը պատճենում է գրառումները մեկ կամ մի քանի աղյուսակներից մեկ այլ աղյուսակ: Այս դեպքում ավելացված գրառումները պարունակող աղյուսակները մնում են անփոփոխ:

Մեկ այլ աղյուսակից գրառումներ ավելացնելու փոխարեն, դուք կարող եք սահմանել յուրաքանչյուր դաշտի արժեքը առանձին նոր գրառումում՝ օգտագործելով VALUES կետը: Եթե ​​դաշտերի ցանկը բաց է թողնվել, VALUES դրույթը պետք է ներառի համապատասխան արժեքները յուրաքանչյուր աղյուսակի դաշտի համար. հակառակ դեպքում, INSERT գործողությունը չի հաջողվի: Օգտագործեք INSERT INTO հայտարարությունը VALUES կետի հետ միասին յուրաքանչյուր լրացուցիչ գրառումի համար, որը ցանկանում եք ստեղծել:

Բարեւ բոլորին! Այս հոդվածը կքննարկի, թե ինչպես կարող եք ավելացնել տվյալներ աղյուսակում Microsoft SQL Server-ում, եթե արդեն գոնե մի փոքր ծանոթ եք T-SQL լեզվին, ապա հավանաբար հասկացաք, որ այժմ մենք կխոսենք INSERT հայտարարության մասին, ինչպես նաև այն մասին, թե ինչպես կարելի է այն օգտագործել աղյուսակում տվյալներ ավելացնելու համար:

Սկսենք, ինչպես միշտ, մի փոքր տեսությունից։

INSERT հայտարարությունը T-SQL-ում

ՆԵՐԴՐԵԼ T-SQL հրահանգ է, որը նախատեսված է աղյուսակում տվյալներ ավելացնելու համար, այսինքն. ստեղծելով նոր ռեկորդներ. Այս հրահանգը կարող է օգտագործվել ինչպես աղյուսակում մեկ տող ավելացնելու, այնպես էլ զանգվածային տվյալների տեղադրման համար: INSERT հայտարարությունը պահանջում է տվյալներ զետեղելու թույլտվություն ( ՆԵՐԴՐԵԼ) դեպի նպատակային աղյուսակ:

Կան մի քանի եղանակներ օգտագործելու INSERT հայտարարությունը այն տվյալների վրա, որոնք պետք է տեղադրվեն.

  • Տեղադրելու համար հատուկ արժեքների ցուցակագրում;
  • Տվյալների հավաքածուի նշումը որպես SELECT հարցում;
  • Տվյալների հավաքածուի սահմանում ընթացակարգի կանչի տեսքով, որը վերադարձնում է աղյուսակային տվյալները:

Պարզեցված շարահյուսություն

INSERT [աղյուսակ] ( սյունակների ցանկ...) ԱՐԺԵՔՆԵՐ ( արժեքների ցանկ...) Կամ SELECT նմուշի հարցումԿամ ԿԱՏԱՐԵԼ ընթացակարգը

  • INSERT INTO-ն աղյուսակում տվյալներ ավելացնելու հրաման է.
  • Աղյուսակը նպատակային աղյուսակի անվանումն է, որի մեջ ցանկանում եք տեղադրել նոր գրառումներ.
  • Սյունակների ցանկը աղյուսակի սյունակների անունների ցանկն է, որի մեջ կտեղադրվեն տվյալները՝ բաժանված ստորակետերով.
  • VALUES-ը աղյուսակի արժեքի կառուցող է, որով մենք նշում ենք այն արժեքները, որոնք մենք կտեղադրենք աղյուսակում.
  • Արժեքների ցանկը այն արժեքներն են, որոնք կտեղադրվեն՝ բաժանված ստորակետերով: Դրանք թվարկված են այն հերթականությամբ, որով սյունակները հայտնվում են սյունակների ցանկում.
  • SELECT-ը հարցում է, որն ընտրում է տվյալներ՝ աղյուսակում տեղադրելու համար: Արդյունքների հավաքածուն, որը վերադարձնում է հարցումը, պետք է համապատասխանի սյունակների ցանկին.
  • EXECUTE-ը ընթացակարգային զանգ է՝ աղյուսակում տեղադրելու համար տվյալներ ստանալու համար: Արդյունքների հավաքածուն, որը վերադարձնում է պահված ընթացակարգը, պետք է համապատասխանի սյունակների ցանկին:

Մոտավորապես այսպես է թվում INSERT INTO հայտարարության պարզեցված շարահյուսությունը. շատ դեպքերում այս կերպ դուք կավելացնեք նոր գրառումներ աղյուսակներում:

Սյունակների ցանկը, որոնց մեջ դուք կտեղադրեք տվյալները, գրելու կարիք չկա, որի դեպքում դրանց հերթականությունը կորոշվի՝ ելնելով աղյուսակի սյունակների իրական հերթականությունից: Դուք պետք է հիշեք այս կարգը, երբ նշեք արժեքներ՝ տեղադրելու կամ ընտրելու համար հարցում գրելու համար: Անձամբ ես խորհուրդ եմ տալիս դեռ նշել սյունակների ցանկը, որոնցում նախատեսում եք ավելացնել տվյալներ:

Պետք է նաև հիշել, որ սյունակների ցանկը և արժեքների ցանկը, համապատասխանաբար, պետք է պարունակեն այսպես կոչված պահանջվող սյունակներ, դրանք այն սյունակներն են, որոնք չեն կարող պարունակել NULL արժեքը: Եթե ​​դրանք չնշեք, և սյունակը չունի լռելյայն արժեք, սխալ կառաջանա:

Կցանկանայի նաև նշել, որ այն արժեքների տվյալների տեսակը, որը դուք կտեղադրեք, պետք է համապատասխանի սյունակի տվյալների տեսակին, որի մեջ կտեղադրվի այս արժեքը, կամ գոնե աջակցի անուղղակի փոխակերպմանը: Բայց ես ձեզ խորհուրդ եմ տալիս վերահսկել տվյալների տեսակը ( ձևաչափը) արժեքներ, ինչպես արժեքների ցանկում, այնպես էլ SELECT հարցումում:

Բավական է տեսություն, անցնենք պրակտիկային։

Նախնական տվյալներ

Աղյուսակում տվյալներ ավելացնելու համար մեզ անհրաժեշտ է հենց աղյուսակը, ուստի եկեք ստեղծենք այն և փորձենք ավելացնել գրառումներ դրան:

Նշում! Բոլոր օրինակները կգործարկվեն Microsoft SQL Server 2016 Express-ում:

ՍՏԵՂԾԵՔ ՍԵՂԱՆԱԿԻ ԹԵՍՏԱՂՅՈՒՆ (ՆՈՒՅԹ (1,1) ՈՉ ԶԵՐՈՒՅԿ, (100) ՈՉ ԱՆՎԱՐ, ԱՆՎԱՐ)

Մեր փորձարկման աղյուսակը կպարունակի ապրանքների ցանկ՝ գներով:

Նաև օրինակներում մենք կօգտագործենք ընթացակարգ, որը վերադարձնում է աղյուսակի արժեք՝ աղյուսակում տվյալներ ավելացնելու համար, այնպես որ եկեք ստեղծենք նաև այն:

ՍՏԵՂԾԵԼ ԸՆԹԱՑՔԸ TestProcedure AS BEGIN Ընտրեք ապրանքի անվանումը, գինը փորձարկման աղյուսակի վերջից

Օրինակ, այն կվերադարձնի տվյալները նոր ստեղծված TestTable աղյուսակից:

Նշում!

Ինչպես հասկանում եք, այս նյութը կարդալը ենթադրում է որոշակի գիտելիքներ ունենալ T-SQL լեզվի մասին, այնպես որ, եթե ինչ-որ բան ձեզ համար պարզ չէ, խորհուրդ եմ տալիս ծանոթանալ հետևյալ նյութերին.

Օրինակ 1 – Աղյուսակում նոր գրառում ավելացնելը՝ օգտագործելով աղյուսակի արժեքի կառուցողը

Նախ, եկեք փորձենք ավելացնել մեկ ռեկորդ և անմիջապես նայենք արդյունքին, այսինքն. Եկեք խնդրանք գրենք նմուշի համար:

INSERT INTO TestTable(ProductName, Price) VALUES («Computer», 100) GO SELECT * FROM TestTable

Տեսնում եք, որ աղյուսակի անունից հետո մենք թվարկել ենք այն սյունակների անունները, որոնց վրա կավելացնենք տվյալներ՝ բաժանված ստորակետերով, այնուհետև նշել ենք հիմնաբառը. ԱՐԺԵՔՆԵՐև փակագծերում նույնպես, նույն հերթականությամբ, բաժանված ստորակետերով, մենք գրել ենք այն արժեքները, որոնք ցանկանում ենք տեղադրել։

INSERT հայտարարությունից հետո ես գրեցի SELECT հայտարարություն և դրանք առանձնացրի GO հայտարարությամբ:

Հիմա պատկերացնենք, որ պետք է մի քանի տող ավելացնել։ Դրա համար մենք կգրենք հետևյալ խնդրանքը.

INSERT INTO TestTable(ProductName, Price) VALUES ("Computer", 100), ("Skeyboard", 20), ("Monitor", 50) GO SELECT * FROM TestTable


Օրինակ 2 - Սեղանի վրա նոր տողերի ավելացում՝ օգտագործելով SELECT հարցումը

Շատ հաճախ անհրաժեշտություն է առաջանում աղյուսակում շատ տվյալներ ավելացնելու, օրինակ՝ ընտրված հարցման հիման վրա, այսինքն. ԸՆՏՐԵԼ. Դա անելու համար VALUES-ի փոխարեն մենք պարզապես պետք է նշենք հարցումը:

INSERT INTO TestTable(ProductName, Price) SELECT Product Name, Price FROM TestTable WHERE Id >


Այս օրինակում մենք գրել ենք SELECT հարցում, որը վերադարձնում է տվյալները TestTable աղյուսակից, բայց ոչ բոլորը, այլ միայն նրանք, որոնց ID-ն 2-ից մեծ է: Եվ արդյունքը տեղադրվեց նույն TestTable աղյուսակում:

Որպես օրինակ, թե ինչպես կարող եք գրառումներ ավելացնել աղյուսակում՝ առանց սյունակների ցանկ նշելու, եկեք գրենք տվյալների ներդրման մեկ այլ հարցում, որը կկատարի նույն բանը, ինչ վերը նշված հարցումը, միայն այն չի նշի այն սյունակները, որոնք պետք է տեղադրվեն:

INSERT INTO TestTable SELECT Product Name, Price FROM TestTable, WHERE Id > 2 GO SELECT * FROM TestTable


Այս դեպքում մենք վստահ ենք, որ TestTable աղյուսակում առաջին սյունակը ProductName-ն է, իսկ երկրորդը՝ Price, այնպես որ մենք կարող ենք մեզ թույլ տալ այն գրել այդպես։ Բայց, կրկին, գործնականում ավելի լավ է նշել սյունակների ցանկը:

Եթե ​​նկատեցիք, բոլոր օրինակներում ես չեմ նշել Id սյունակը, բայց մենք ունենք, սխալներ տեղի չեն ունեցել, քանի որ այս սյունակը ունի IDENTITY հատկություն, այն ավտոմատ կերպով գեներացնում է նույնացուցիչներ, ուստի նման սյունակում տվյալներ տեղադրելը պարզապես հնարավոր չէ անել:

Օրինակ 3 - Նոր գրառումների ավելացում աղյուսակում՝ օգտագործելով պահպանված ընթացակարգը

Այժմ եկեք մուտքագրենք տվյալները աղյուսակի մեջ, որ պահպանված ընթացակարգը կվերադարձնի մեզ: Այստեղ իմաստը նույնն է՝ VALUES-ի փոխարեն և հարցումի փոխարեն նշում ենք ընթացակարգի կանչ։ Բայց ինչպես հասկանում եք, ընթացակարգով վերադարձված սյունակների հերթականությունը և քանակը պետք է խստորեն համապատասխանի տեղադրվող սյունակների ցանկին ( նույնիսկ եթե սյունակների ցանկը նշված չէ).

INSERT INTO TestTable(ProductName, Price) EXEC TestProcedure GO SELECT * FROM TestTable


Հուսով եմ, որ այս նյութը օգնեց ձեզ հասկանալ հրահանգները: ՄՏՐԵԼ ՄԵՋ, և դա այն ամենն է, ինչ ես ունեմ առայժմ:

Նախորդ բաժիններում մենք դիտարկել ենք նախապես ստեղծված աղյուսակներից տվյալների որոնման աշխատանքը: Այժմ ժամանակն է պարզելու, թե ինչպես կարող ենք ստեղծել/ջնջել աղյուսակներ, ավելացնել նոր գրառումներ և ջնջել հինները: Այս նպատակների համար ներս SQLԿան օպերատորներ, ինչպիսիք են. ՍՏԵՂԾԵԼ- ստեղծում է աղյուսակ, ՓՈՓՈԽԵԼ- փոխում է աղյուսակի կառուցվածքը, ԱՆԿՈՒՄ- ջնջում է աղյուսակը կամ դաշտը, ՆԵՐԴՐԵԼ- ավելացնում է տվյալներ աղյուսակում: Օպերատորների այս խմբին սկսենք ծանոթանալ օպերատորից ՆԵՐԴՐԵԼ.

1. Ամբողջ տողերի ավելացում

Ինչպես անունն է հուշում, օպերատորը ՆԵՐԴՐԵԼօգտագործվում է տվյալների բազայի աղյուսակում տողեր տեղադրելու (ավելացնելու) համար: Ավելացումը կարող է իրականացվել մի քանի եղանակով.

  • - ավելացնել մեկ ամբողջական տող
  • - ավելացնել տողի մի մասը
  • - ավելացնել հարցման արդյունքները:

Այսպիսով, աղյուսակում նոր տող ավելացնելու համար մենք պետք է նշենք աղյուսակի անունը, նշենք սյունակների անունները և նշենք յուրաքանչյուր սյունակի արժեքը՝ օգտագործելով կառուցվածքը: ՄՏՐԵԼ ՄԵՋ աղյուսակի_անուն (դաշտ1, դաշտ2 ...) ԱՐԺԵՔՆԵՐ (արժեք 1, արժեք 2...). Դիտարկենք մի օրինակ։

INSERT INTO Sellers (ID, Հասցե, Քաղաք, Seller_name, Country) VALUES(«6», «1-ին փողոց», «Լոս Անջելես», «Հարի Մոնրո», «ԱՄՆ»)

Կարող եք նաև փոխել սյունակների անունների կարգը, բայց միևնույն ժամանակ անհրաժեշտ է փոխել արժեքների կարգը պարամետրում ԱՐԺԵՔՆԵՐ.

2. Տողերի մի մասի ավելացում

Նախորդ օրինակում՝ օպերատորն օգտագործելիս ՆԵՐԴՐԵԼմենք հստակորեն նշել ենք աղյուսակի սյունակների անվանումները: Օգտագործելով այս շարահյուսությունը, մենք կարող ենք բաց թողնել որոշ սյունակներ: Սա նշանակում է, որ դուք արժեքներ եք մուտքագրում որոշ սյունակների համար, բայց դրանք չեք տրամադրում մյուսների համար: Օրինակ:

INSERT INTO Sellers (ID, City, Seller_name) VALUES(«6», «Լոս Անջելես», «Հարի Մոնրո»)

Այս օրինակում մենք արժեք չենք նշել երկու սյունակների համար ՀասցեԵվ Երկիր. Դուք կարող եք որոշ սյունակներ բացառել հայտարարության մեջ ՄՏՐԵԼ ՄԵՋ, եթե սա թույլ է տալիս աղյուսակի սահմանումը: Այս դեպքում պետք է կատարվի պայմաններից մեկը՝ այս սյունակը սահմանվում է որպես վավեր ԴԱՏԱՐԿ(որևէ արժեքի բացակայություն) կամ աղյուսակի սահմանման մեջ նշված լռելյայն արժեքը: Սա նշանակում է, որ եթե որևէ արժեք նշված չէ, ապա կօգտագործվի լռելյայն արժեքը: Եթե ​​աղյուսակից բացակայում եք սյունակ, որը թույլ չի տալիս արժեքներ հայտնվել իր տողերում ԴԱՏԱՐԿև չունի սահմանված լռելյայն արժեք, DBMS-ը կստեղծի սխալի հաղորդագրություն, և տողը չի ավելացվի:

3. Ընտրված տվյալների ավելացում

Նախորդ օրինակում մենք տվյալները տեղադրեցինք աղյուսակների մեջ՝ դրանք ձեռքով մուտքագրելով հարցումում: Այնուամենայնիվ, օպերատորը ՄՏՐԵԼ ՄԵՋթույլ է տալիս մեզ ավտոմատացնել այս գործընթացը, եթե ցանկանում ենք տվյալներ տեղադրել այլ աղյուսակից: Այս նպատակով SQL-ում կա այնպիսի կառուցվածք, ինչպիսին է ՆԵՐԴՐԵԼ ՄԵՋ ... ԸՆՏՐԵԼ .... Այս դիզայնը թույլ է տալիս միաժամանակ ընտրել տվյալներ մեկ աղյուսակից և տեղադրել այն մյուսի մեջ: Ենթադրենք, որ մենք ունենք մեկ այլ սեղան Sellers_EUԵվրոպայում մեր ապրանքների վաճառողների ցուցակով, և մենք պետք է դրանք ավելացնենք ընդհանուր աղյուսակում Վաճառողներ. Այս աղյուսակների կառուցվածքը նույնն է (նույն թվով սյունակներ և նույն անունները), բայց տվյալները տարբեր են։ Դա անելու համար մենք կարող ենք գրել հետևյալ հարցումը.

INSERT INTO Sellers (ID, Հասցե, Քաղաք, Seller_name, Country) SELECTID, Հասցե, Քաղաք, Seller_name, Country FROM Sellers_EU

Պետք է ուշադրություն դարձնել, որպեսզի ներքին ստեղների արժեքները չկրկնվեն (դաշտ ID), հակառակ դեպքում տեղի կունենա սխալ: Օպերատոր ԸՆՏՐԵԼկարող է ներառել նաև առաջարկություններ ՈՐՏԵՂտվյալների զտման համար: Հարկ է նաև նշել, որ DBMS-ն ուշադրություն չի դարձնում հայտարարության մեջ պարունակվող սյունակների անուններին. ԸՆՏՐԵԼ, նրա համար կարևոր է միայն այն հերթականությունը, որով դրանք դասավորված են։ Հետևաբար, առաջին նշված սյունակի տվյալները, որոնք ընտրվել են շնորհիվ ԸՆՏՐԵԼ, ամեն դեպքում կլրացվի աղյուսակի առաջին սյունակում Վաճառողներ, նշված է օպերատորից հետո ՄՏՐԵԼ ՄԵՋ, անկախ դաշտի անվանումից։

4. Տվյալների պատճենում մի աղյուսակից մյուսը

Հաճախ տվյալների շտեմարանների հետ աշխատելիս անհրաժեշտություն է առաջանում ստեղծել ցանկացած աղյուսակի պատճեններ՝ կրկնօրինակման կամ փոփոխման նպատակով: Աղյուսակի ամբողջական պատճենը պատրաստելու համար SQL-ն տրամադրում է առանձին հայտարարություն ԸՆՏՐԵԼ ՄԵՋ. Օրինակ, մենք պետք է ստեղծենք աղյուսակի պատճենը Վաճառողներ, Ձեզ անհրաժեշտ կլինի հարցումը գրել հետևյալ կերպ.

SELECT * INTO Sellers_new FROM Sellers-ից

Ի տարբերություն նախորդ դիզայնի ՆԵՐԴՐԵԼ ՄԵՋ ... ԸՆՏՐԵԼ ...Երբ տվյալները ավելացվում են գոյություն ունեցող աղյուսակում, դիզայնը պատճենում է տվյալները նոր աղյուսակում: Կարելի է նաև ասել, որ առաջին կոնստրուկցիան ներմուծում է տվյալներ, իսկ երկրորդը՝ արտահանում։ Դիզայնն օգտագործելիս ԸՆՏՐԵԼ ... ՄԵՋ ...Պետք է հաշվի առնել հետևյալը.

  • - Դուք կարող եք օգտագործել ցանկացած նախադասություն օպերատորում ԸՆՏՐԵԼ, ինչպիսիք են ԽՈՒՄԲ ԸՍՏԵվ ՈՒՆԵՑՈՂ
  • - Դուք կարող եք օգտագործել միացում՝ բազմաթիվ աղյուսակներից տվյալներ ավելացնելու համար
  • - տվյալները կարող են ավելացվել միայն մեկ աղյուսակում, անկախ նրանից, թե քանի աղյուսակից է այն վերցված:

Բացի ավելի վաղ քննարկված SELECT հայտարարությունից, Տվյալների մանիպուլյացիայի լեզուն (DML) պարունակում է երեք այլ հայտարարություններ՝ INSERT, UPDATE և DELETE: Ինչպես SELECT դրույթը, այս երեք հայտարարությունները գործում են կամ աղյուսակների կամ դիտումների վրա: Այս հոդվածը քննարկում է INSERT հայտարարությունը, իսկ մյուս երկու հայտարարությունները քննարկվում են հաջորդ հոդվածում:

INSERT հայտարարությունտեղադրում է տողեր (կամ տողերի մասեր) աղյուսակի մեջ: Այս հրահանգի երկու տարբեր ձև կա.

ՆԵՐԴՐԵՔ ներդիրի_անունը [(col_list)] ԼՐԱՌՎԱԾ ԱՐԺԵՔՆԵՐ | ԱՐԺԵՔՆԵՐ (( ԼՐԱԴՐՎԱԾ | NULL | արտահայտություն ) [ ,...n]) INSERT INTO tab_name | view_name [(col_list)] (select_statement | execute_statement) Շարահյուսական կոնվենցիաներ

Հրահանգի առաջին ձևը թույլ է տալիս աղյուսակի մեջ տեղադրել մեկ տող (կամ դրա մի մասը): Իսկ INSERT հայտարարության երկրորդ ձևը թույլ է տալիս աղյուսակի մեջ ներդնել SELECT դրույթի արդյունքների հավաքածուն կամ EXECUTE ցուցումով կատարվող պահպանված ընթացակարգը: Պահված ընթացակարգը պետք է վերադարձնի աղյուսակում տեղադրվող տվյալները: Երբ օգտագործվում է INSERT հայտարարության հետ, SELECT դրույթը կարող է արժեքներ ընտրել տարբեր կամ միևնույն աղյուսակից, որտեղ տվյալները տեղադրվում են, քանի դեռ համապատասխան սյունակների տվյալների տեսակները համատեղելի են:

Երկու ձևերի համար էլ յուրաքանչյուր ներդրված արժեքի տվյալների տեսակը պետք է համապատասխանի աղյուսակի համապատասխան սյունակի տվյալների տեսակին: Բոլոր տողերը և ժամանակավոր տվյալները պետք է փակցվեն չակերտների մեջ. Թվային արժեքները չպետք է փակվեն չակերտների մեջ:

Մեկ շարքի տեղադրում

INSERT հայտարարության երկու ձևերի համար էլ սյունակների ցանկի հստակ նշումը պարտադիր չէ: Սյունակները չցուցակելը նույնն է, ինչ աղյուսակի բոլոր սյունակները նշելը:

DEFAULT VALUES պարամետրտեղադրում է լռելյայն արժեքներ բոլոր սյունակների համար: TIMESTAMP տվյալների տեսակը կամ IDENTITY հատկությունը ունեցող սյունակները լռելյայն տեղադրվում են արժեքներով, որոնք ավտոմատ կերպով ստեղծվում են համակարգի կողմից: Տվյալների այլ տեսակների սյունակների համար տեղադրվում է համապատասխան ոչ զրոյական լռելյայն արժեքը, եթե առկա է, կամ NULL այլ կերպ: Եթե ​​սյունակը թույլ չի տալիս զրոյական արժեքներ և չունի սահմանված լռելյայն արժեք, INSERT հայտարարությունը ձախողվում է և ցուցադրվում է հաղորդագրություն:

Ստորև բերված օրինակը տողեր է տեղադրում SampleDb տվյալների բազայի Employee աղյուսակում՝ ցույց տալով INSERT հայտարարության օգտագործումը տվյալների բազայում փոքր քանակությամբ տվյալների տեղադրման համար.

ՕԳՏԱԳՈՐԾԵԼ SampleDb; INSERT INTO Employee VALUES (34990, «Andrey», «Batonov», «d1»); INSERT INTO Employee VALUES (38640, «Alexey», «Vasin», «d3»);

Արժեքները նոր տողում տեղադրելու երկու տարբեր եղանակ կա: Ստորև բերված օրինակում INSERT հայտարարությունը բացահայտորեն օգտագործում է NULL հիմնաբառը և տեղադրում է NULL արժեքը համապատասխան սյունակում.

ՕԳՏԱԳՈՐԾԵԼ SampleDb; INSERT INTO Employee VALUES (34991, «Andrey», «Batonov», NULL);

Աղյուսակի որոշ (բայց ոչ բոլոր) սյունակներում արժեքներ տեղադրելու համար սովորաբար անհրաժեշտ է հստակորեն նշել այդ սյունակները: Չճշտված սյունակները կամ պետք է թույլ տան NULL արժեքներ, կամ ունենան սահմանված լռելյայն արժեք:

ՕԳՏԱԳՈՐԾԵԼ SampleDb; INSERT INTO Employee (Id, FirstName, LastName) VALUES (34992, «Andrey», «Batonov»);

Նախորդ երկու օրինակները համարժեք են։ Employee աղյուսակում միակ սյունակը, որը թույլ է տալիս NULL արժեքներ, դա DepartmentNumber սյունակն է, իսկ մյուս բոլոր սյունակները անջատվել են CREATE TABLE հայտարարության NOT NULL կետով:

Արժեքների կարգը VALUES առաջարկ INSERT հայտարարությունները կարող են տարբերվել CREATE TABLE հայտարարության մեջ նշված հերթականությունից: Այս դեպքում դրանց հերթականությունը պետք է համապատասխանի այն հերթականությանը, որով համապատասխան սյունակները նշված են սյունակների ցանկում: Ստորև բերված է բնօրինակից տարբեր հերթականությամբ տվյալների տեղադրման օրինակ.

ՕԳՏԱԳՈՐԾԵԼ SampleDb; INSERT INTO Employee (DepartamentNumber, Last Name, Id, First Name) VALUES («d1», «Batonov», 34993, «Andrey»);

Մի քանի տողերի տեղադրում

INSERT հայտարարության երկրորդ ձևը աղյուսակում զետեղում է ենթհարցման կողմից ընտրված մեկ կամ մի քանի տող: Ստորև բերված օրինակը ցույց է տալիս, թե ինչպես կարելի է տողեր տեղադրել աղյուսակում՝ օգտագործելով INSERT հայտարարության երկրորդ ձևը: Այս դեպքում հարցում է կատարվում՝ Մոսկվայում տեղակայված բաժինների համարներն ու անունները ընտրելու համար, և արդյունքում ստացված արդյունքը բեռնվում է ավելի վաղ ստեղծված նոր աղյուսակում:

Վերևի օրինակում ստեղծված նոր MoscowDepartment աղյուսակը ունի նույն սյունակները, ինչ առկա բաժնի աղյուսակը, բացառությամբ բացակայող Location սյունակի: INSERT հայտարարության ենթահարկն ընտրում է Դեպարտամենտի աղյուսակի բոլոր տողերը, որոնց համար Location սյունակի արժեքը «Մոսկվա» է, որոնք այնուհետև տեղադրվում են հարցման սկզբում ստեղծված նոր աղյուսակում:

Ստորև բերված օրինակը ցույց է տալիս աղյուսակում տողեր մտցնելու ևս մեկ եղանակ՝ օգտագործելով INSERT հայտարարության երկրորդ ձևը: Այս դեպքում հարցում է կատարվում՝ ընտրելու անձնակազմի համարները, ծրագրի համարները և ծրագրի մեկնարկի ամսաթվերը բոլոր այն աշխատակիցների համար, ովքեր ունեն «Մենեջեր» պաշտոնը, ովքեր աշխատում են p2 նախագծի վրա, և այնուհետև ստացված արդյունքը բեռնում է նոր աղյուսակում, որը ստեղծվել է սկզբում: հարցումը:

ՕԳՏԱԳՈՐԾԵԼ SampleDb; CREATE TABLE ManagerTeam (EmpId INT NOT NULL, ProjectNumber CHAR (4) NOT NULL, EnterDate DATE); INSERT INTO ManagerTeam (EmpId, ProjectNumber, EnterDate) SELECT EmpId, ProjectNumber, EnterDate FROM Works_on WHERE Job = "Manager";

Նախքան INSERT հայտարարությունը օգտագործելով տողեր տեղադրելը, MoscowDepartment և ManagerTeam աղյուսակները (վերևի օրինակներում) դատարկ էին: Եթե ​​աղյուսակն արդեն գոյություն ուներ և պարունակում էր տվյալներ ունեցող տողեր, ապա դրան կավելացվեն նոր տողեր։

Բեռնվում է...