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.
Š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)

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.

