logo

SQL OPERACIJOS

SQL operacija yra vienos ar kelių SQL operacijų seka (pvz.INSERT UPDATE DELETE) atliekamas kaip vienas darbo vienetas. Operacijos užtikrina, kad visos operacijos būtų sėkmingos arba netaikoma nė viena, išlaikant duomenų vientisumą.

Pagrindinės SQL operacijų savybės: ACID

SQL operacijų vientisumą reguliuoja ACID savybės, kurios garantuoja patikimas duomenų bazės operacijas. Šios keturios savybės veikia kartu, kad užtikrintų duomenų bazės nuoseklumą ir patikimumą.

  • Atomiškumas: Sandorio rezultatas gali būti visiškai sėkmingas arba visiškai nesėkmingas. Visa operacija turi būti atšaukta, jei viena jo dalis nepavyksta.
  • Nuoseklumas: Sandoriai palaiko vientisumo apribojimus, perkeldami duomenų bazę iš vienos galiojančios būsenos į kitą.
  • Isolation: Vienu metu vykdomos operacijos yra izoliuotos viena nuo kitos, užtikrinant duomenų tikslumą.
  • Patvarumas: Įvykdžius operaciją, jos pakeitimai lieka galioti net ir sistemos gedimo atveju.

SQL operacijų valdymo komandos

SQL operacijų valdymo komandos valdo SQL operacijų vykdymas, užtikrinantis duomenų bazės operacijų vientisumą ir patikimumą. Šios komandos padeda valdyti duomenų bazėje atliktų pakeitimų pradžią ir grąžinimą. Toliau pateikiamos pagrindinės SQL operacijų valdymo komandos, paaiškintos kiekvienos iš jų sintaksė ir pavyzdžiai.



1. BEGIN TRANSACTION komanda

TheBEGIN TRANSACTIONkomanda žymi naujos operacijos pradžią. Visi SQL sakiniai, kurie seka šią komandą, bus tos pačios operacijos dalis iki aCOMMIT arba ROLLBACK yra susidurta. Ši komanda nedaro jokių duomenų bazės pakeitimų, ji tik pradeda operaciją.

Sintaksė:

BEGIN TRANSACTION transaction_name ;

SQL operacijos su banko pavedimo scenarijumi pavyzdys

Pažvelkime į banko pavedimo tarp dviejų sąskaitų pavyzdį. Šis pavyzdys parodo kelių užklausų naudojimą vienoje operacijoje.

BEGIN TRANSACTION;  

-- Deduct 0 from Account A
UPDATE Accounts
SET Balance = Balance - 150
WHERE AccountID = 'A';

-- Add 0 to Account B
UPDATE Accounts
SET Balance = Balance + 150
WHERE AccountID = 'B';

-- Commit the transaction if both operations succeed
COMMIT;

Jei įvyksta kokia nors klaida, pvz., problema suUPDATEužklausa, kurią galite naudotiROLLBACKNorėdami anuliuoti visus operacijos metu atliktus pakeitimus:

ROLLBACK;

Taip užtikrinama, kad sistema nepatektų į nenuoseklią būseną, pvz., nuskaičiuotų pinigų iš vienos sąskaitos nepridedant jų į kitą.

BEGIN TRANSACTION TransferFunds;

2. COMMIT komanda

TheCOMMITkomanda naudojama visiems dabartinės operacijos metu atliktiems pakeitimams įrašyti į duomenų bazę. Įvykdžius sandorį, pakeitimai yra nuolatiniai. 

Sintaksė:

COMMIT;

Pavyzdys

Štai pavyzdysStudentlentelė, kuri bus naudojama šio pavyzdžio operacijoms atlikti. Šioje lentelėje pateikiama pagrindinė informacija apie mokinį, pvz., asmens tapatybės vardo amžius ir kita svarbi informacija, kuria bus galima manipuliuoti naudojant įvairias operacijų valdymo komandos.

išvestis' title=Studentų stalas

Toliau pateikiamas pavyzdys, kuris iš lentelės ištrins tuos įrašus, kurių amžius = 20, o tada PATIKO pakeitimus duomenų bazėje. 

DELETE FROM Student WHERE AGE = 20;  
COMMIT;

Išvestis

išvestis' loading='lazy' title=išvestis

3. ROLLBACK komanda

TheROLLBACKkomanda naudojama atšaukti visus dabartinės operacijos pakeitimus. Jis naudojamas, kai įvyksta klaida arba kai nepavyksta atlikti norimų pakeitimų. Duomenų bazė grįš į būseną, kuri buvo prieš BEGIN TRANSACTION buvo įvykdyta mirties bausmė.

Sintaksė:

ROLLBACK;

Pavyzdys

Iš lentelės ištrinkite tuos įrašus, kurių amžius = 20, ir ATGALINTI duomenų bazės pakeitimus. Šiuo atveju DELETE operacija anuliuojama, o duomenų bazės pakeitimai neišsaugomi.

DELETE FROM Student WHERE AGE = 20;  
ROLLBACK;

Išvestis:

išvestis' loading='lazy' title=išvestis

4. SAVEPOINT komanda

ASAVEPOINTnaudojamas kuriant a patikros punktas sandorio metu. Galime grįžti prie konkretausSAVEPOINTužuot atšaukę visą sandorį. Tai leidžia mums anuliuoti dalį operacijos, o ne visą sandorį.

Sintaksė:

SAVEPOINT SAVEPOINT_NAME;

Pavyzdys

SAVEPOINT SP1;  
//Savepoint created.
DELETE FROM Student WHERE AGE = 20;
//deleted
SAVEPOINT SP2;
//Savepoint created.

Išvestis:

išvestis' loading='lazy' title=išvestis

Paaiškinimas:

Iš anksčiau pateikto pavyzdžio Pavyzdinė lentelė 1 Iš lentelės ištrinkite tuos įrašus, kurių amžius = 20, tada GRĄŽINKITE duomenų bazės pakeitimus išsaugodami išsaugojimo taškus. Čia SP1 yra pirmasis SAVEPOINT, sukurtas prieš ištrinant. Šiame pavyzdyje buvo atliktas vienas ištrynimas. Ištrynus vėl sukuriamas SAVEPOINT SP2. 

5. GRĮŽIMAS Į SAVEPOINT

TheROLLBACK TO SAVEPOINTkomanda leidžia grąžinti operaciją į konkretų išsaugojimo tašką, veiksmingai anuliuojant po to atliktus pakeitimus.

Sintaksė:

ROLLBACK TO SAVEPOINT SAVEPOINT_NAME;

Pavyzdys

Ištrynimas buvo atliktas, tarkime, kad persigalvojome ir nusprendėme GRĮŽTI į SAVEPOINT, kurį nustatėme kaip SP1, kuris yra prieš ištrynimą. Taigi šiuo atvejuDELETEoperacija anuliuojama ir operacija grąžinama į tokią būseną, kurioje ji buvoSP1išsaugojimo taškas.

ROLLBACK TO SP1;  
//Rollback completed

Išvestis:

išvestis' loading='lazy' title=išvestis

6. PALEISKITE SAVEPOINT komandą

Ši komanda naudojama norint pašalinti SAVEPOINT, kurį sukūrėme. Kai SAVEPOINT bus išleistas, nebegalime naudoti ROLLBACK komanda anuliuoti operacijas, atliktas nuo paskutinio SAVEPOINT. Jis naudojamas duomenų bazės transakcijai inicijuoti ir sekančios operacijos charakteristikoms nurodyti. 

Sintaksė:  

RELEASE SAVEPOINT SAVEPOINT_NAME;

Pavyzdys

Kartą išsaugojimo taškasSP2yra paleistas, nebegalime prie jo grįžti.

RELEASE SAVEPOINT SP2; -- Release the second savepoint.

Kodėl bankininkystėje naudoti operacijas?

Tokiu atveju be operacijos rizikuojate scenarijus, kai pinigai nurašomi iš vienos sąskaitos, bet nepridedami prie kitos, todėl sistema yra nenuosekli. Sandoriai užtikrina, kad tokių problemų būtų išvengta, užtikrinant, kad abi operacijos bus sėkmingos arba nepavyks kartu.

SQL operacijų tipai

Yra įvairių tipų operacijos, atsižvelgiant į jų pobūdį ir konkrečias jų atliekamas operacijas:

  • Skaityti Sandoriai : naudojamas tik duomenims skaityti paprastai naudojant SELECT užklausų.
  • Rašyti sandorius : Tai apima duomenų keitimą duomenų bazėje naudojant INSERT UPDATEarbaDELETEoperacijos.
  • Paskirstytos operacijos : šios operacijos apima kelias duomenų bazes ir užtikrina jų nuoseklumą.
  • Netiesioginiai sandoriai : automatiškai paleidžiamas SQL serverio tam tikroms operacijoms atlikti.
  • Aiškūs sandoriai : rankiniu būdu valdomos operacijos, kai vartotojas pradeda ir baigia operaciją naudodamasBEGIN TRANSACTION COMMITirROLLBACK.

SQL operacijų stebėjimas ir optimizavimas

Norėdami išlaikyti našumą ir išvengti problemų, apsvarstykite šiuos metodus:

1. Monitoriaus užraktai : Stebėkite užrakinimo elgesį ir koreguokite užklausas, kad sumažintumėte užrakinimo konfliktus.

2. Apriboti sandorio apimtį : apribokite operacijų paveiktų eilučių arba įrašų skaičių, kad pagreitintumėte apdorojimą.

3. Naudokite paketinį apdorojimą : jei tvarkote didelius duomenų kiekius, operacijas suskaidykite į mažesnes operacijas arba paketus, kad neapkrautumėte sistemos.

Siūloma viktorina Redaguoti viktoriną 5 klausimai

Kuris iš toliau pateiktų scenarijų geriausiai apibūdina ACID ypatybės „Isolation“ pažeidimą?

  • A

    Operacija palieka duomenų bazę tokioje būsenoje, kuri pažeidžia pirminio rakto apribojimą.

  • B

    Dvi operacijos, vykdomos vienu metu, nuskaito ir rašo tuos pačius duomenis, todėl gaunami nenuoseklūs rezultatai.

  • C

    Vartotojas sėkmingai atnaujina įrašą, bet sistemos gedimas ištrina pakeitimą.

  • D

    Sandoris nepavyksta įpusėjus ir visi jo pakeitimai grąžinami.

Paaiškinimas:

Tai klasikinis izoliacijos pažeidimo pavyzdys, kai vienos operacijos tarpinė būsena matoma kitam.

Banko paraiškoje lėšų pervedimas apima vienos sąskaitos nurašymą ir kitos kreditavimą. Kuri ACID savybė užtikrina, kad abi operacijos bus baigtos, arba nė viena neįvyksta?

  • A

    Isolation

  • B

    Atomiškumas

  • C

    Patvarumas

  • D

    Nuoseklumas

Paaiškinimas:

Atomiškumas užtikrina, kad visos operacijos operacijos būtų sėkmingai užbaigtos; kitu atveju visas sandoris atšaukiamas.

Sandoris įvykdomas ir išduodamas „COMMIT“. Iš karto po to, kai dingsta elektros tiekimas. Kuri ACID ypatybė garantuoja, kad operacijos atlikti pakeitimai išliks ir po sistemos paleidimo iš naujo?

  • A

    Nuoseklumas

  • B

    Atomiškumas

  • C

    Patvarumas

  • D

    Isolation

Paaiškinimas:

Patvarumas – tai savybė, užtikrinanti, kad atlikus sandorį jis toks išliks net ir dingus maitinimui ar sistemos gedimui.

Koks yra pagrindinis komandos „SAVEPOINT“ tikslas atliekant operaciją?

  • A

    Įsipareigoti dalį sandorio.

  • B

    Norėdami pažymėti operacijos tašką, į kurį vėliau galėsite grįžti atgal.

  • C

    Norėdami visam laikui išsaugoti operacijos būseną.

  • D

    Norėdami užbaigti operaciją ir padaryti visus pakeitimus visam laikui.

    pd sujungti
Paaiškinimas:

„SAVEPOINT“ leidžia iš dalies atšaukti operaciją.

Apsvarstykite šią operaciją: „PRADĖTI SANDORIĄ; Įterpti ...; SAVEPOINT A; ATNAUJINTI...; SAVEPOINT B; IŠTRINTI...; GRĮŽIMAS Į IŠSAUGOJIMO TAŠKĄ A;' Kokia yra operacijos būsena po komandos 'ROLLBACK'?

  • A

    Visas sandoris atšaukiamas.

  • B

    Anuliuojamas tik „DELETE“.

  • C

    Įvyko klaida, nes negalite grįžti į išsaugojimo tašką, kuris nėra naujausias.

  • D

    „Įterpti“ yra išsaugotas, bet „UPDATE“ ir „DELETE“ anuliuojami.

Paaiškinimas:

Grįžus į „SAVEPOINT A“, anuliuojami visi pakeitimai, atlikti po to išsaugojimo taško, ty „ATNAUJINTI“ ir „IŠTRINTI“.

SQL OPERACIJOSViktorina sėkmingai atlikta jūsų balas:  2/5Tikslumas: 0 %Prisijunkite, kad pamatytumėte paaiškinimą 1/5 1/5 < Previous Kitas >