SQL a fost initial dezvoltat de IBM de catre Donald D.
Chamberlin si Raymond F. Boyce in annul 1974, initial,
numele era SEQUEL, avea ca scop manipularea si regasirea datelor stocate in bazele de date relationale IBM. La sfarsitul anilor 70, Relational Software, in prezent Oracle Corporation a vazut potentialul acestor concept descries de Codd, Chamberlin si Boyce, si a dezvoltat propriul SQL RDBMS cu aplicatii la U.S. Navy, Central Intelligence Agency si U.S. government. In iunie 1979, Relational Software, Inc. a introdus prima implementare comerciala disponibila de SQL, Oracle. Dupa testarea SQL, au aparut implementari ale acestui limbaj si din partea firmei IBM: SQL/DS si DB2. SELECT CompanyName, Country FROM Customers WHERE Country <> USA Company Country Island Trading US Galeria del gastronomo Spain Laughing Bacchus Wine Cellars Canada Paris specialites France Simons bistro Denmark Wolski Zajazd Poland SQL este un limbaj standard pentru accesarea si manipularea bazelor de date SQL- Structured Query Language SQL este un standard ANSI (American National Standards Institute) SQL poate executa interogari la baza de date; SQL poate extrage date din baza de date; SQL poate insera inregistrari in baza de date; SQL poate actualiza inregistrari in baza de date; SQL poate sterge inregistrari din baza de date; SQL poate crea noi baze de date; SQL poate crea noi tabele in baza de date; SQL poate crea procedure stocate, functii, triggere; SQL poate crea vizualizari in baza de date SQL poate stabili permisiuni asupra entitatilor din baza de date Cu toate ca SQL este un standard ANSI, exista mai multe versiuni ale limbajului SQL; Totusi, cel putin comenzile principale (SELECT, UPDATE, INSERT, DELETE) sunt premise intr-un mod aproape unitary de toate implementarile, pentru compatibilitate. Avem nevoie de un system de gestiune a bazelor de date Microsoft SQL Server MySQL Oracle IBM DB2 Microsoft Access Limbajul SQL este divizat in urmatoarele elemente: Clauze care sunt component ale instructiunilor si interogarilor; Expresii al caror effect este producerea de valori scalare sau tabele; Predicatele pot specifica conditii care sunt evaluate de SQL conform logicii ternare sau logicii booleene, in scopul limitarii efectelor instructiunilor, sau pentru a influenta cursul programului; Interogarile au ca scop regasirea datelor dupa criteria specifice; Instructiunile pot avea un effect persistent asupra datelor sau structurii datelor, sau pot controla tranzactiile, conexiunile sau cursul programului. Oricarei coloane dintr-un tabel SQL ii este asignat un tip de data, la fel ca in toate celelalte limbaje de programare. Tipurile de date sunt urmatoarele: CHARACTER (sau CHAR) - sir de caractere; INTEGER (sau SMALLINT) - numar intreg; FLOAT, REAL sau DOUBLE PRECISION - numar real; NUMERIC(precision, scale) sau DECIMAL(precision, scale) - numar zecimal , unde precision inseamna numarul de cifre din partea intreaga, scale inseamna numarul de zecimale; DATE - data zilei; TIME - ora.
O baza de date contine cel putin o tabela identificata prin nume Tabelele contin inregistrari cu date
3 inregistrari, 5 campuri (coloane) P_Id LastName FirsName Address City 1 Hansen Ola Timoteivn 10 Sandnes 2 Svendson Tove Borgvn 23 Sandnes 3 Pettersen Kari Storgt 20 Stavager Majoritatea operatiilor effectuate asupra bazelor de date se fac cu comenzi/instructiuni SQL SELECT*FROM Persons SQL nu tine cont de diferenta dintre litere mari si mici Unele SGBD-uri necesita caracterul ; dupa instructiuni. Astfel se separa instructiunile SQL pentru ca sa se poata executa mai multe instructiuni una dupa alta intr-un singur batch. DML Data Manipulation Language comenzile pentru extragere si actualizare SELECT extrage date din baza de date UPDATE actualizeaza date in baza de date DELETE sterge inregistrari din baza de date INSERT INTO insereaza date noi in baza de date DDL Data Definition Language comenzi pentru creare/modificare baza de date, tabele, indecsi, stabilire legaturi intre tabele, constrangeri. CREATE DATABASE ALTER DATABASE CREATE TABLE ALTER TABLE DROP TABLE CREATE INDEX DROP INDEX