Comenzi SQL: DQL, DDL, DML, DCL și TCL cu exemple

⚡ Rezumat inteligent

Comenzile SQL sunt grupate în cinci sublimbaje care gestionează o bază de date relațională. DDL definește structura, DML modifică datele, DCL controlează accesul, TCL gestionează tranzacțiile, iar DQL preia date, fiecare cu propriul set de instrucțiuni și sintaxă.

  • 🏗️ DDL: CREATE, DROP, ALTER și TRUNCATE definesc și modifică schema tabelelor și bazelor de date.
  • ✏️ DML: INSERT, UPDATE și DELETE modifică rândurile conținute într-un tabel.
  • 🔑 DCL: GRANT și REVOKE acordă și elimină privilegii de acces asupra obiectelor bazei de date.
  • 🔄 TCL: COMMIT, ROLLBACK și SAVEPOINT controlează modul în care tranzacțiile sunt salvate sau anulate.
  • 🔍 DQL: SELECT preia rânduri, filtrate de clauza WHERE.
  • 🗄️ Limbaj standard: Fiecare RDBMS major, de la MySQL la Oracle și SQL Server, utilizează SQL.
  • ⚠️ Contrast cheie: TRUNCATE și DELETE șterg ambele rânduri, dar TRUNCATE este DDL și nu este rând cu rând.

Comenzi SQL DQL DDL DML DCL TCL

Ce este SQL?

SQL este un limbaj de bază de date conceput pentru regăsirea și gestionarea datelor dintr-o bază de date relațională.

SQL este limbajul standard pentru gestionarea bazelor de date. Toate sistemele RDBMS ca MySQL, MS Access, OracleSybase, Postgres și SQL Server folosesc SQL ca limbaj standard pentru baze de date. Limbajul de programare SQL utilizează diverse comenzi pentru diferite operațiuni. Vom învăța despre comenzile DCL, TCL, DQL, DDL și DML în SQL cu exemple.

De ce să folosiți SQL?

Iată câteva motive importante pentru utilizarea SQL:

  • Acesta ajută utilizatorii să acceseze datele din Sistem RDBMS.
  • Te ajută să descrii datele.
  • Vă permite să definiți datele într-o bază de date și să manipulați acele date specifice.
  • Cu ajutorul comenzilor SQL, puteți crea și elimina baze de date și tabele.
  • SQL vă permite să utilizați funcții într-o bază de date și să creați vizualizări și proceduri stocate.
  • Puteți seta permisiuni pentru tabele, proceduri și vizualizări.

Scurt istoric al SQL

Iată repere importante din istoricul SQL:

  • 1970 – Dr. Edgar F. „Ted” Codd a descris un model relațional pentru baze de date.
  • 1974 – A apărut limbajul de interogare structurat, denumit inițial SEQUEL la IBM.
  • 1979 - Oracle a lansat prima bază de date SQL disponibilă comercial, bazată pe IBMPrototipul de cercetare System R al lui .
  • 1986 – ANSI a publicat primul standard SQL, SQL-86.
  • 1989 – SQL-89 a apărut ca prima revizuire a standardului.
  • 1992 – SQL-92 (SQL2) a devenit principala bază de date la care fac referire și astăzi majoritatea bazelor de date.
  • 1999 – A fost lansat SQL:1999 (SQL3) cu funcții precum declanșatoare, interogări recursive și orientare pe obiecte.
  • 2003 – SQL:2003 a adăugat funcții de fereastră, generatoare de secvențe și caracteristici legate de XML.
  • 2006 – SQL:2006 a adăugat suport pentru XML Query Language (XQuery).
  • 2008 – SQL:2008 a introdus instrucțiunea TRUNCATE și declanșatoarele INSTEAD OF.
  • 2011 – SQL:2011 a îmbunătățit suportul pentru bazele de date temporale.
  • 2016 – SQL:2016 a adăugat suport JSON și potrivirea modelelor de rânduri (MATCH_RECOGNIZE).
  • 2019 – SQL/MDA (Partea 15) a adăugat standardului suport pentru matrice multidimensionale.
  • 2023 – SQL:2023 a adăugat un tip de date JSON nativ și interogări de tip grafic de proprietăți (SQL/PGQ).
  • 2024 – GQL, primul limbaj ISO nou pentru baze de date de la SQL încoace, a fost publicat ca standard complementar pentru interogările grafice.
  • 2026 – SQL:2023 rămâne standardul actual, următoarea revizuire fiind în curs de dezvoltare la ISO/IEC.

Tipuri de comenzi SQL

Iată cinci tipuri de comenzi SQL utilizate pe scară largă:

  • Data Definition Language (DDL)
  • Manipularea datelor (DML)
  • Limba de control a datelor (DCL)
  • Limbajul de control al tranzacțiilor (TCL)
  • Limbajul de interogare a datelor (DQL)
Tipuri de comenzi SQL
Tipuri de SQL

Tabelul de mai jos prezintă un rezumat al celor cinci categorii înainte de a prezenta fiecare în detaliu.

Categorii Scop Comenzile principale
DDL Definiți structura CREAȚI, ȘTERGEȚI, MODIFICAȚI, TRUNCIAȚI
DML Modificați datele INSERT, UPDATE, DELETE
DCL Controlează accesul ACORDA, REVOCA
TCL Gestionați tranzacțiile VALIDARE, REVERSARE, PUNCT DE SALVARE
DQL Preluați datele SELECT

Ce este DDL?

Limbajul de definire a datelor (DDL) vă ajută să definiți structura sau schema bazei de date. Să învățăm despre comenzile DDL și sintaxa lor. Principalele comenzi DDL în SQL sunt CREATE, DROP, ALTER și TRUNCATE.

CREATE

Instrucțiunea CREATE este utilizată pentru a defini structura sau schema bazei de date:

Sintaxă:

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

De exemplu:

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

CĂDERE BRUSCA

Comanda DROP elimină tabelele și bazele de date din RDBMS.

Sintaxă:

DROP TABLE ;

De exemplu:

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

MODIFICA

Comanda ALTER permite modificarea structurii bazei de date.

Sintaxă: pentru a adăuga o nouă coloană în tabel:

ALTER TABLE table_name ADD column_name COLUMN-definition;

Pentru a modifica o coloană existentă în tabel:

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

De exemplu:

Alter table guru99 add subject varchar;

TRUNCHIA

Această comandă este folosită pentru a șterge toate rândurile din tabel și pentru a elibera spațiul care conține tabelul.

Sintaxă:

TRUNCATE TABLE table_name;

Exemplu:

TRUNCATE table students;

Ce este limbajul de manipulare a datelor?

Limbajul de Manipulare a Datelor (DML) vă permite să modificați instanța bazei de date prin inserarea, modificarea și ștergerea datelor acesteia. Este responsabil pentru efectuarea tuturor tipurilor de modificări ale datelor într-o bază de date. Comenzile DML importante în SQL sunt:

  • INSERT
  • UPDATE
  • DELETE

INSERT

Această instrucțiune este utilizată pentru a insera date în rândurile unui tabel.

Sintaxă:

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

De exemplu:

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

UPDATE

Această comandă este utilizată pentru a actualiza sau modifica valoarea unei coloane din tabel.

Sintaxă:

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

De exemplu:

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

DELETE

Această comandă este folosită pentru a elimina unul sau mai multe rânduri dintr-un tabel.

Sintaxă:

DELETE FROM table_name [WHERE condition];

De exemplu:

DELETE FROM students
WHERE FirstName = 'Jhon';

Ce este DCL?

DCL (Data Control Language - Limbaj de control al datelor) include comenzi precum GRANT și REVOKE, care sunt utile pentru acordarea de drepturi și permisiuni. Alte comenzi controlează parametrii sistemului de baze de date.

Grant

Această comandă este utilizată pentru a acorda unui utilizator privilegii de acces la o bază de date.

Sintaxă:

GRANT SELECT, UPDATE ON MY_TABLE TO SOME_USER, ANOTHER_USER;

De exemplu:

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

Revbine

Această comandă este utilă pentru a recupera permisiunile utilizatorului.

Sintaxă:

REVOKE privilege_nameON object_nameFROM {user_name |PUBLIC |role_name}

De exemplu:

REVOKE SELECT, UPDATE ON student FROM BCA, MCA;

Ce este TCL?

Limbajul de control al tranzacțiilor, sau comenzile TCL, se ocupă de tranzacțiile din baza de date. Acestea lucrează direct cu stările descrise la managementul tranzacțiilor.

Comite

Această comandă este folosită pentru a salva toate tranzacțiile în baza de date.

Sintaxă:

Commit;

De exemplu:

DELETE FROM Students
WHERE RollNo =25;
COMMIT;

Rollback

Comanda Rollback vă permite să anulați tranzacțiile care nu au fost deja salvate în baza de date.

Sintaxă:

ROLLBACK;

Exemplu:

DELETE FROM Students
WHERE RollNo =25;

PUNT DE SALVARE

Această comandă vă ajută să setați un punct de salvare în cadrul unei tranzacții.

Sintaxă:

SAVEPOINT SAVEPOINT_NAME;

Exemplu:

SAVEPOINT RollNo;

Ce este DQL?

Limbajul de interogare a datelor (DQL) este utilizat pentru a prelua date din baza de date. Folosește o singură comandă, SELECT.

SELECT

Această comandă vă ajută să selectați atributele pe baza condiției descrise de clauza WHERE.

Sintaxă:

SELECT expressions
FROM TABLES
WHERE conditions;

De exemplu:

SELECT FirstName
FROM Student
WHERE RollNo > 15;

ȘTERGERE vs. TRUNCARE vs. REDUCERE

Aceste trei comenzi elimină date, dar diferă prin ceea ce elimină și dacă acțiunea poate fi anulată. Confuzia lor este o greșeală frecventă la începători.

Aspect DELETE TRUNCHIA CĂDERE BRUSCA
Categorii DML DDL DDL
Îndepărtează Rânduri selectate Toate rândurile Întreaga masă
clauza WHERE Permis Nu sunt permise Nu se aplică
Rollback Posibil De obicei nu Nu este posibil
Structura păstrată Da Da Nu

Pe scurt, utilizați DELETE pentru a elimina anumite rânduri, TRUNCATE pentru a goli rapid un tabel și DROP pentru a elimina complet tabelul.

Întrebări frecvente

DELETE este o comandă DML care elimină rândurile selectate și poate fi anulată. TRUNCATE este o comandă DDL care elimină toate rândurile simultan, este mai rapidă și, de obicei, nu poate fi anulată.

Acestea aparțin limbajului de control al datelor sau DCL. GRANT oferă unui utilizator privilegii asupra unui obiect al bazei de date, iar REVOKE îi ia aceste privilegii, care împreună controlează accesul și securitatea.

Da. Modelele text-SQL transformă o cerere în limbaj natural într-o instrucțiune SELECT sau altă instrucțiune pe o schemă cunoscută. Verificați întotdeauna interogarea generată înainte de a o rula pe datele de producție.

Da. Citind planul de execuție, inteligența artificială poate sugera un index, o joncțiune rescrisă sau o modificare WHERE care reduce costul. Sugestia ar trebui testată, deoarece cel mai rapid plan depinde de date.

DDL definește sau modifică structura bazei de date, cum ar fi tabelele și coloanele. DML modifică datele conținute în acea structură, prin INSERT, UPDATE și DELETE. Diferența cheie este între structură și conținut.

Rezumați această postare cu: