SQL
SQL | |
SQL | |
Extensii fișiere | sql |
---|---|
Paradigmă | Multi-paradigmă |
Apărut în | 1974 |
Proiectat de | Donald D. Chamberlin Raymond F. Boyce |
Dezvoltator | ISO/IEC |
Ultima versiune | SQL:2023[1] SQL (de la numele englez Structured Query Language - limbaj de interogare structurat - care se pronunță [es kiu el]) este un limbaj de programare specific pentru manipularea datelor în sistemele de manipulare a bazelor de date relaționale (RDBMS), iar la origine este un limbaj bazat pe algebra relațională. Acesta are ca scop inserarea datelor, interogații, actualizare și ștergere, modificarea și crearea schemelor, precum și controlul accesului la date. A devenit un standard în domeniu (standardizat ANSI-ISO), fiind cel mai popular limbaj utilizat pentru crearea, modificarea, regăsirea și manipularea datelor de către SGBD-urile (Sistemele de Gestiune a Bazelor de Date) relaționale. Pe lângă versiunile standardizate ale limbajului, există o mulțime de dialecte și variante, unele proprietare, fiind specifice anumitor SGBD-uri și de asemenea conținând extensii pentru a suporta SBD-urile (Sistemele de Baze de Date) obiectuale (obiectual-relaționale). SQL permite atât accesul la conținutul bazelor de date, cât și la structura acestora. IstoricSQL a fost inițial dezvoltat la compania IBM de către Donald D. Chamberlin și Raymond F. Boyce în anul 1974. Inițial numele era SEQUEL (tot de la Structured Query Language) și avea ca scop manipularea și regăsirea datelor stocate în bazele de date relaționale IBM. [4] La sfârșitul anilor '70, compania Relational Software, Inc. (în prezent Oracle Corporation) a văzut potențialul acestor concepte descrise de Codd, Chamberlin și Boyce, și a dezvoltat propriul SQL RDBMS cu aplicații la U.S. Navy, Central Intelligence Agency și U.S. government. În iunie 1979, Relational Software a introdus prima implementare comercială disponibilă de SQL, Oracle. După testarea SQL, au apărut implementări ale acestui limbaj și din partea firmei IBM: SQL/DS și DB2. [5] Elementele limbajului SQLLimbajul SQL este divizat în următoarele elemente:
Tipuri de date în SQLOricărei coloane (sau câmp) dintr-un tabel SQL îi este asignat un tip de dată, la fel ca în toate celelalte limbaje de programare. Tipurile de date sunt următoarele:
Funcția sistem NOW întoarce data și ora curentă. InterogăriCea mai des utilizată instrucțiune în SQL este instrucțiunea SELECT. [7] [8] SELECT [ALL | DISTINCT] coloana1 [,coloana2] [INTO fișier] FROM tabel1 [,tabel2] [WHERE condiție] [ AND|OR condiție...] [GROUP BY listă-coloane] [HAVING condiții] [ORDER BY listă-coloane [ASC | DESC] ]
Exemplu: Maximul populației tuturor orașelor americane din statul Indiana: SELECT MAX(population) FROM citylist WHERE state = 'Indiana';
Exemple: 1. Selectarea tuturor cărților din tabela Book, având prețul mai mare decât 100.00, în ordinea crescătoare a titlurilor: SELECT * FROM Book WHERE price>100.00 ORDER BY title; 2. Selectarea tuturor titlurilor cărților din tabelele Book și a autorilor cărților citiți din tabela Authors: SELECT Book.title, Authors.name FROM Book INNER JOIN Authors ON Book.author = Authors.id GROUP BY Book.title; Logica ternară (3VL)Ideea a fost introdusă în SQL pentru a asigna valoarea Null înregistrărilor vide și informațiilor care lipsesc dintr-un câmp. [9] [10] [11] [12] Manipularea datelorLimbajul de manipulare a datelor (DML) este un subset al SQL utilizat pentru a adăuga, actualiza sau șterge date. Instrucțiunile limbajului de manipulare a datelor
INSERT INTO tabel (câmp1, câmp2, ...) VALUES (valoare1, valoare2, ...);
UPDATE tabel SET câmp = valoare [WHERE condiție];
DELETE FROM tabel [WHERE condiție]; TranzacțiiTranzacțiile sunt utilizate pentru a controla în ce condiții se desfășoară o succesiune a instrucțiunilor de manipulare a datelor. Instrucțiuni:
Instrucțiunile COMMIT și ROLLBACK termină tranzacția curentă și deblochează datele. Exemple: 1. CREATE TABLE tbl_1(id int); INSERT INTO tbl_1(id) VALUES(1); INSERT INTO tbl_1(id) VALUES(2); COMMIT; UPDATE tbl_1 SET id=200 WHERE id=1; SAVEPOINT id_1upd; UPDATE tbl_1 SET id=1000 WHERE id=2; ROLLBACK to id_1upd; SELECT id from tbl_1; 2. START TRANSACTION; UPDATE Account SET amount=amount-200 WHERE account_number=1234; UPDATE Account SET amount=amount+200 WHERE account_number=2345; IF ERRORS=0 COMMIT; IF ERRORS<>0 ROLLBACK; Limbajul de definire a datelorLimbajul de definire a datelor (DDL) gestionează structura datelor și indexului. Instrucțiuni
CREATE TABLE tabel( câmp1 tip1, câmp2 tip2, ... PRIMARY KEY (index1, index2, ...) ); Exemplu: CREATE TABLE My_table( my_field1 INT, my_field2 VARCHAR(50), my_field3 DATE NOT NULL, PRIMARY KEY (my_field1, my_field2) );
[13] Redenumirea unui tabel ALTER TABLE tabel RENAME TO nume_nou_tabel; Adăugarea de câmpuri noi ALTER TABLE table_name ADD ( câmp1 def1, col2 def2, ... ); Exemplu: ALTER TABLE supplier ADD (supplier_name varchar2(50), city varchar2(45)); Modificarea structurii unui câmp ALTER TABLE table_name MODIFY (câmp1 tip1, câmp2 tip2, ... ); Exemplu: ALTER TABLE supplier MODIFY ( supplier_name varchar2(100) not null, city varchar2(75)); Ștergerea unui câmp ALTER TABLE tabel DROP COLUMN câmp; Exemplu: ALTER TABLE supplier DROP COLUMN supplier_name; Redenumirea unui câmp ALTER TABLE tabel RENAME COLUMN nume_vechi TO nume_nou; Exemplu: ALTER TABLE supplier RENAME COLUMN supplier_name to sname;
TRUNCATE TABLE tabel;
DROP TABLE tabel; Drepturi ale utilizatorilor SQL în rețeaLimbajul de control al datelor (DCL) autorizează utilizatorii și grupurile care lucrează cu o anumită bază de date. Instrucțiuni
Exemple: 1. GRANT SELECT, UPDATE ON My_table TO some_user, another_user; 2. REVOKE SELECT, UPDATE ON My_table FROM some_user, another_user; Legături externe
Note
|