SQL Tutorial

28
SQL I. Ce este SQL? SQL ( Structured Query Language – Limbag Structurat de Interogare) – este un limbaj de programare specific pentru manipularea datelor in sistemele de manipulare a bazelor de date relationale (RDBMS). SQL este standardizat ANSI(American National Standards Institute). SQL permite accesul si manipularea bazelor de date. II. Ce poate face SQL? SQL poate executa interogari contra bazelor de date. SQL poate extrage date din baza de date. SQL poate insera inregistrari in baza de date. SQL poate updata inregistrarile dintr-o baza de date. SQL poate sterge inregistrari dintr-o baza de date. SQL poate creea o noua baza de date. SQL poate creea un tabel nou intr-o baza de date. SQL poate creea proceduri stocate intr-o baza de date. SQL poate creea vizualizari intr-o baza de date. III. Tabelele bazei de date. O baza de date reprezinta o modalitate de stocare a unor informatii si date pe un support extern (un dispozitiv de stocare), cu posibilitatea extinderii usoare si a regasirii rapide a acestora. Bazele de date sunt manipulate cu ajutorul SGDB-urilor (sistemelor de gestiune a bazelor de date.

description

SQL Tutorial

Transcript of SQL Tutorial

SQLI. Ce este SQL?SQL ( Structured Query Language Limbag Structurat de Interogare) este un limbaj de programare specific pentru manipularea datelor in sistemele de manipulare a bazelor de date relationale (RDBMS).SQL este standardizat ANSI(American National Standards Institute).

SQL permite accesul si manipularea bazelor de date.

II. Ce poate face SQL?SQL poate executa interogari contra bazelor de date.

SQL poate extrage date din baza de date.

SQL poate insera inregistrari in baza de date.

SQL poate updata inregistrarile dintr-o baza de date.

SQL poate sterge inregistrari dintr-o baza de date.SQL poate creea o noua baza de date.

SQL poate creea un tabel nou intr-o baza de date.

SQL poate creea proceduri stocate intr-o baza de date.

SQL poate creea vizualizari intr-o baza de date.

III. Tabelele bazei de date.

O baza de date reprezinta o modalitate de stocare a unor informatii si date pe un support extern (un dispozitiv de stocare), cu posibilitatea extinderii usoare si a regasirii rapide a acestora.

Bazele de date sunt manipulate cu ajutorul SGDB-urilor (sistemelor de gestiune a bazelor de date.

Cel mai raspandit tip de baze de date este cel relational, in care datele sunt memorate in tabele ( pe langa tabele o baza de date relationala mai poate contine indecsi, proceduri de stocare, declansatori, tipuri de date etc.)

O baza de date contine de cele mai multe ori un tabel sau mai multe. Fiecare tabel este identificat cu ajutorul unui nume (EX: Persoane, Distribuitori, Elevi etc.). Ficare tabel contine inregistrari (coloane) cu date.IV. Declaratii SQLUrmatoarea declaratie SQL va selecta toate inregistrarile din tabelul Nume_Tabel:

SELECT * FROM Nume_Tabel

Dupa fiecare declaratie SQL trebuie sa punem ;

SQL DML si DDL

SQL poate fi divizat in doaua parti:

DML (Limbajul de Manipulare a Datelor Data Manipulation Language) DDL (Data Definition Language)

Comenzile de actualizare si interogare din partea DML:

-SELECT - extrage date din baza de date.

-UPDATE actualizeaza date din baza de date.

-DELETE sterge date dintr-o baza de date.

-INSERT INTO insereaza noi date intr-o baza de date.

Cele mai importante declaratii DDL in SQL sunt:-CREATE DATABASES creeaza o noua baza de date.

-ALTER DATABASES permite modificarea bazei de date.

-CREATE TABLE creeaza un tabel nou.

-ALTER TABLE modifica un tabel.

-DROP TABLE sterge un tabel.

-CREATE INDEX creeaza un index ( cheie de cautare).

-DROP INDEX sterge un index.

Declaratia SQL SELECT

Declaratia SELECT este utilizata pentru selectarea datelor din baza de date.

Declaratia SELECT are urmatoarea sintaxa:

SELECT column_name(s)

FROM table_namesi

SELECT * FROM table_name

Cea de-a doua declaratie SELECT va selacta toate randurile din tabelul nume_tabel.

Declaratia SQL SELECT DISTINCTSintaxa declaratiei SELECT DISTINCT este urmatoarea:

SELECT DISTINCT nume_coloana

FROM nume_tabel;

Intr-un tabel unele coloane pot contine valori duplicate (care se repeta).(Tabela Angajati)IdNumePrenumeVarstaSalariuAdresa

1ManditaCiprian251200Bucuresti

2IonMarian364500Bucuresti

3IonescuMarcel261000Arad

4IonescuMarcel34800Buzau

5ValentinRamurica56750Barlad

6IonelAlexandru408000Bucuresti

Dupa cum se observa in coloana Adresa avem valoarea care se repeta Bucuresti.

Dupa folosirea declaratiei:SELECT DISTINCT Adresa

FROM Angajati;Vom avea rezultatul:Adresa

Bucuresti

Arad

Buzau

Barlad

Clauza SQL WHERE

Clauza WHERE este folosita pentru a filtra inregistrarile. Este folosita pentru a extrage doar acele inregistrari care indeplinesc criterii specificate.Sintaxa SQL WHERE:

SELECT Nume_coloana

FROM Nume_tabel

WHERE Nume_coloana operator valoare;

Exemplu: Sa spune ca vrem sa afisam toti angajatii care au adresa in Bucuresti.

SELECT * FROM Angajati

WHERE Adresa=Bucuresti;Dupa aceasta declaratie se va afisa rezultatul:

IdNumePrenumeVarstaSalariuAdresa

1ManditaCiprian251200Bucuresti

2IonMarian364500Bucuresti

6IonelAlexandru408000Bucuresti

Operatori permisi de clauza WHERE

Clauza WHERE permite folosirea urmatorilor operatori:OperatorDescriere

=Egal

Nu e egal

>Mai mare ca

=Mai mare sau egal

0)

);SQL Server / Oracle / MS Access:CREATE TABLE cursuri(

ID int not null auto_increment primary key CHECK (ID>0),

Nume varchar (255),

CNP_prof int FOREIGN KEY REFERENCES profesori (CNP_prof)

);Sau dupa ce tabelul a fost creat cu declaratia ALTER:

ALTER TABLE cursuri

ADD CHECK (ID>0);Pentru a sterge o restrictie CHECK:ALTER TABLE cursuri

DROP CONSTRAIN chk_cursuri;Declaratia SQL CREATE INDEXDeclaratia CREATE INDEX este folosita pentru a crea indexuri intr-un tabel.

Indexurile permit bazei de date sa gaseasca datele foarte repede, fara a citi intregul tabel. Utilizatorii nu pot vedea indexurile, acestia sunt folositi pentru a marii viteza de cautare/interogare.SINTAXA CREATE INDEX:

Creaza un index intr-un tabel. Valorile duplicat sunt permise:

CREATE INDEX nume_index

ON nume_tabel (nume_coloana);

Creaza un index intr-un tabel. Valorile duplicat nu sunt permise:

CREATE UNIQUE INDEX nume_index

ON nume_tabel (nume_coloana);

EXEMPLU: Pentru a crea un index cu numele NumeINDEX pentru coloana Nume din tabelul Cursuri , folosim urmatoarea declaratie:CREATE INDEX NumeINDEX

ON cursuri (Nume);

SQL DROP INDEX, DROP TABLE, DROP DATABASES.Pentru a sterge un index folosim urmatoarea sintaxa:DROP INDEX nume_index ON nume_tabel; (Pentru MS ACCESS)DROP INDEX nume_tabel.nume_index; (Pentru MS SQL SERVER)DROP INDEX nume_index; (Pentru DB2/ORACLE)ALTER TABLE nume_tabel DROP INDEX nume_index; (Pentru MySQL)

Pentru a sterge un tabel folosim urmatoarea sintaxa:

DROP TABLE nume_tabel;Pentru a sterge o baza de date folosim sintaxa;

DROP DATABASE nume_baza_de_date;Daca dorim sa stergem toate datele dintr-un tabel, nu si tabelul folosim sintaxa:

TRUCATE TABLE nume_tabel;

Declaratia SQL ALTER TABLE.Declartia ALTER TABLE este folosita pentru a adauga, a sterge, a modifica coloane dintr-un tabel existent.SINTAXA:

ALTER TABLE nume_tabel (Pentru a aduga o noua coloana intr-un tabel)ADD nume_coloana tipul datei;

ALTER TABLE nume_tabel (Pentru a sterge o coloana dintr-un tabel)DROP COLUMN nume_coloana;

ALTER TABLE nume_tabel (Pentru a modifica tipul datei dintr-o ALTER COLUMN nume_coloana tipul datei; coloana).