SQL naredbe: DQL, DDL, DML, DCL i TCL s primjerima

โšก Pametni saลพetak

SQL naredbe su grupirane u pet podjezika koji upravljaju relacijskom bazom podataka. DDL definira strukturu, DML mijenja podatke, DCL kontrolira pristup, TCL upravlja transakcijama, a DQL dohvaฤ‡a podatke, svaki sa svojim vlastitim skupom naredbi i sintaksom.

  • ๐Ÿ—๏ธ DDL: CREATE, DROP, ALTER i TRUNCATE definiraju i mijenjaju shemu tablica i baza podataka.
  • โœ๏ธ DML: INSERT, UPDATE i DELETE mijenjaju retke unutar tablice.
  • ๐Ÿ”‘ DCL: GRANT i REVOKE daju i uklanjaju privilegije pristupa objektima baze podataka.
  • ๐Ÿ”„ TCL: COMMIT, ROLLBACK i SAVEPOINT kontroliraju kako se transakcije spremaju ili poniลกtavaju.
  • ๐Ÿ” DQL: SELECT dohvaฤ‡a retke, filtrirane pomoฤ‡u klauzule WHERE.
  • ๐Ÿ—„๏ธ Standardni jezik: Svaki glavni RDBMS, od MySQL do Oracle i SQL Server, koristi SQL.
  • โš ๏ธ Kljuฤni kontrast: TRUNCATE i DELETE obje briลกu retke, ali TRUNCATE je DDL i ne briลกe redak po redak.

SQL naredbe DQL DDL DML DCL TCL

ล to je SQL?

SQL je jezik baze podataka dizajniran za dohvaฤ‡anje i upravljanje podacima u relacijskoj bazi podataka.

SQL je standardni jezik za upravljanje bazom podataka. Svi RDBMS sustavi poput MySQL, MS Access, Oracle, Sybase, Postgres i SQL Server koriste SQL kao standardni jezik za baze podataka. Programski jezik SQL koristi razliฤite naredbe za razliฤite operacije. Uฤit ฤ‡emo o naredbama DCL, TCL, DQL, DDL i DML u SQL-u s primjerima.

Zaลกto koristiti SQL?

Evo vaลพnih razloga za koriลกtenje SQL-a:

  • Pomaลพe korisnicima pristupiti podacima u RDBMS sustav.
  • Pomaลพe vam u opisivanju podataka.
  • Omoguฤ‡uje vam da definirate podatke u bazi podataka i manipulirate tim specifiฤnim podacima.
  • Pomoฤ‡u SQL naredbi moลพete stvarati i brisati baze podataka i tablice.
  • SQL vam omoguฤ‡uje koriลกtenje funkcija u bazi podataka te stvaranje prikaza i pohranjenih procedura.
  • Moลพete postaviti dopuลกtenja za tablice, procedure i poglede.

Kratka povijest SQL-a

Ovdje su vaลพne znamenitosti iz povijest SQL-a:

  • 1970. โ€“ Dr. Edgar F. โ€œTedโ€ Codd opisao je relacijski model za baze podataka.
  • 1974. โ€“ Pojavio se strukturirani jezik za upite, izvorno nazvan SEQUEL. IBM.
  • 1979 - Oracle izdao prvu komercijalno dostupnu SQL bazu podataka, temeljenu na IBMistraลพivaฤki prototip System R.
  • 1986. โ€“ ANSI je objavio prvi SQL standard, SQL-86.
  • 1989. โ€“ SQL-89 stigao je kao prva revizija standarda.
  • 1992. โ€“ SQL-92 (SQL2) postao je glavna osnova na koju se i danas referira veฤ‡ina baza podataka.
  • 1999. โ€“ SQL:1999 (SQL3) pokrenut je sa znaฤajkama poput okidaฤa, rekurzivnih upita i objektne orijentacije.
  • 2003. โ€“ SQL:2003 dodao je prozorske funkcije, generatore nizova i znaฤajke povezane s XML-om.
  • 2006. โ€“ SQL:2006 dodao je podrลกku za XML jezik upita (XQuery).
  • 2008. โ€“ SQL:2008 uveo je naredbu TRUNCATE i okidaฤe INSTEAD OF.
  • 2011. โ€“ SQL:2011 je poboljลกao podrลกku za temporalne baze podataka.
  • 2016. โ€“ SQL:2016 dodao je podrลกku za JSON i usklaฤ‘ivanje uzoraka redaka (MATCH_RECOGNIZE).
  • 2019. โ€“ SQL/MDA (15. dio) standardu je dodao podrลกku za viลกedimenzionalne nizove.
  • 2023. โ€“ SQL:2023 dodao je nativni JSON tip podataka i upite za grafove svojstava (SQL/PGQ).
  • 2024. โ€“ GQL, prvi novi ISO jezik za baze podataka od SQL-a, objavljen je kao standard za upite za grafove.
  • 2026. โ€“ SQL:2023 ostaje trenutni standard, a sljedeฤ‡a revizija je u razvoju u ISO/IEC-u.

Vrste SQL naredbi

Evo pet vrsta ลกiroko koriลกtenih SQL naredbi:

  • Jezik definicije podataka (DDL)
  • Jezik za manipulaciju podacima (DML)
  • Jezik kontrole podataka (DCL)
  • Transaction Control Language (TCL)
  • Jezik upita podataka (DQL)
Vrste SQL naredbi
Vrste SQL-a

Donja tablica saลพima pet kategorija prije nego ลกto se svaka detaljno obradi.

Kategorija Svrha Glavne naredbe
DDL Definiraj strukturu STVORI, ISPUSTI, PROMIJENI, SKRANI
DML Izmijeni podatke UMETNI, AลฝURIRAJ, IZBRIล I
DCL Kontrolirajte pristup ODOBRI, OPOZOVI
TCL Upravljanje transakcijama POTVRDI, VRATI, TOฤŒKA SPREMANJA
DQL Dohvati podatke SELECT

ล to je DDL?

Jezik za definiranje podataka pomaลพe vam definirati strukturu ili shemu baze podataka. Upoznajmo se s DDL naredbama i sintaksom. Glavne DDL naredbe u SQL-u su CREATE, DROP, ALTER i TRUNCATE.

STVORITI

Naredba CREATE koristi se za definiranje strukture ili sheme baze podataka:

Sintaksa:

CREATE TABLE TABLE_NAME (COLUMN_NAME DATATYPES[,....]);

Na primjer:

Create database university;
Create table students;
Create view for_students;

KAP

Naredba DROP uklanja tablice i baze podataka iz RDBMS-a.

Sintaksa:

DROP TABLE ;

Na primjer:

Drop object_type object_name;
Drop database university;
Drop table student;

IZMIJENI

Naredba ALTER omoguฤ‡uje vam promjenu strukture baze podataka.

Sintaksa: za dodavanje novog stupca u tablicu:

ALTER TABLE table_name ADD column_name COLUMN-definition;

Da biste izmijenili postojeฤ‡i stupac u tablici:

ALTER TABLE MODIFY(COLUMN DEFINITION....);

Na primjer:

Alter table guru99 add subject varchar;

SKRATITI

Ova se naredba koristi za brisanje svih redaka iz tablice i oslobaฤ‘anje prostora koji sadrลพi tablicu.

Sintaksa:

TRUNCATE TABLE table_name;

Primjer:

TRUNCATE table students;

ล to je jezik za manipulaciju podacima?

Jezik za manipulaciju podacima (DML) omoguฤ‡uje vam izmjenu instance baze podataka umetanjem, izmjenom i brisanjem njezinih podataka. Odgovoran je za izvoฤ‘enje svih vrsta izmjena podataka u bazi podataka. Vaลพne DML naredbe u SQL-u su:

  • INSERT
  • UPDATE
  • DELETE

INSERT

Ova naredba se koristi za umetanje podataka u retke tablice.

Sintaksa:

INSERT INTO TABLE_NAME (col1, col2, col3,.... col N)
VALUES (value1, value2, value3, .... valueN);
Or
INSERT INTO TABLE_NAME
VALUES (value1, value2, value3, .... valueN);

Na primjer:

INSERT INTO students (RollNo, FIrstName, LastName) VALUES ('60', 'Tom', Erichsen');

UPDATE

Ova se naredba koristi za aลพuriranje ili izmjenu vrijednosti stupca u tablici.

Sintaksa:

UPDATE table_name SET [column_name1= value1,...column_nameN = valueN] [WHERE CONDITION]

Na primjer:

UPDATE students
SET FirstName = 'Jhon', LastName= 'Wick'
WHERE StudID = 3;

DELETE

Ova se naredba koristi za uklanjanje jednog ili viลกe redaka iz tablice.

Sintaksa:

DELETE FROM table_name [WHERE condition];

Na primjer:

DELETE FROM students
WHERE FirstName = 'Jhon';

ล to je DCL?

DCL (Data Control Language) ukljuฤuje naredbe poput GRANT i REVOKE, koje su korisne za dodjeljivanje prava i dozvola. Ostale naredbe kontroliraju parametre sustava baze podataka.

Grant

Ova naredba se koristi za davanje korisniku privilegija pristupa bazi podataka.

Sintaksa:

GRANT SELECT, UPDATE ON MY_TABLE TO SOME_USER, ANOTHER_USER;

Na primjer:

GRANT SELECT ON Users TO'Tom'@'localhost;

Revoke

Ova naredba je korisna za vraฤ‡anje dozvola od korisnika.

Sintaksa:

REVOKE privilege_nameON object_nameFROM {user_name |PUBLIC |role_name}

Na primjer:

REVOKE SELECT, UPDATE ON student FROM BCA, MCA;

ล to je TCL?

Jezik za upravljanje transakcijama ili TCL naredbe obraฤ‘uju transakcije unutar baze podataka. One rade izravno sa stanjima opisanim u nastavku upravljanje transakcijama.

poฤiniti

Ova se naredba koristi za spremanje svih transakcija u bazu podataka.

Sintaksa:

Commit;

Na primjer:

DELETE FROM Students
WHERE RollNo =25;
COMMIT;

povrat na staro

Naredba Rollback omoguฤ‡uje vam poniลกtavanje transakcija koje joลก nisu spremljene u bazu podataka.

Sintaksa:

ROLLBACK;

Primjer:

DELETE FROM Students
WHERE RollNo =25;

TOฤŒKA SPREME

Ova naredba vam pomaลพe postaviti toฤku spremanja unutar transakcije.

Sintaksa:

SAVEPOINT SAVEPOINT_NAME;

Primjer:

SAVEPOINT RollNo;

ล to je DQL?

Jezik za upite podataka (DQL) koristi se za dohvaฤ‡anje podataka iz baze podataka. Koristi samo jednu naredbu, SELECT.

SELECT

Ova naredba vam pomaลพe odabrati atribute na temelju uvjeta opisanog klauzulom WHERE.

Sintaksa:

SELECT expressions
FROM TABLES
WHERE conditions;

Na primjer:

SELECT FirstName
FROM Student
WHERE RollNo > 15;

IZBRIล I vs. SKRATI vs. ISPUSTI

Ove tri naredbe uklanjaju podatke, ali se razlikuju po tome ลกto uklanjaju i moลพe li se radnja poniลกtiti. Njihovo mijeลกanje je ฤesta poฤetniฤka pogreลกka.

Aspekt DELETE SKRATITI KAP
Kategorija DML DDL DDL
Uklanja Odabrani retci Svi retci Cijeli stol
WHERE klauzula dopuลกteno Nije dozvoljeno Nije primjenjivo
povrat na staro Moguฤ‡ Obiฤno ne Nije moguฤ‡e
Struktura saฤuvana Da Da Ne

Ukratko, koristite DELETE za uklanjanje odreฤ‘enih redaka, TRUNCATE za brzo praลพnjenje tablice i DROP za potpuno odbacivanje tablice.

Pitanja i odgovori

DELETE je DML naredba koja uklanja odabrane retke i moลพe se vratiti. TRUNCATE je DDL naredba koja uklanja sve retke odjednom, brลพa je i obiฤno se ne moลพe vratiti.

Pripadaju jeziku za kontrolu podataka ili DCL-u. GRANT daje korisniku privilegije na objektu baze podataka, a REVOKE oduzima te privilegije, ลกto zajedno kontrolira pristup i sigurnost.

Da. Modeli pretvaranja teksta u SQL pretvaraju zahtjev prirodnog jezika u SELECT ili neku drugu naredbu prema poznatoj shemi. Uvijek pregledajte generirani upit prije nego ลกto ga pokrenete na produkcijskim podacima.

Da. ฤŒitanjem plana izvrลกenja, umjetna inteligencija moลพe predloลพiti indeks, prepisani spoj ili promjenu WHERE koja smanjuje troลกkove. Prijedlog treba testirati, buduฤ‡i da najbrลพi plan ovisi o podacima.

DDL definira ili mijenja strukturu baze podataka, kao ลกto su tablice i stupci. DML mijenja podatke koji se nalaze unutar te strukture putem INSERT, UPDATE i DELETE. Struktura naspram sadrลพaja je kljuฤna razlika.

Saลพmite ovu objavu uz: