Sunteți pe pagina 1din 14

Toate lectiile SQL

Introducere in SQL
Concepte SGBD
Despre Bazele de date
Sintaxa SQL
Tipuri de date SQL
Operatori SQL
Expresii
Stergerea unei baze de date
Crearea unei baze de date
Selectarea unei baze de date
Crearea unui tabel
Stergerea unui tabel
Inserare de informatii (INSERT INTO)
Selectia
Modificarea de informatii Update
Clauza WHERE

Operatori SQL
postat acum 2 ani de Stefanescu Mihai in categorie SQL
Un operator este un cuvant/simbol rezervat folosit intr-o expresie pentru a
indeplini anumite operatii
Operatori Aritmetici
Operatori de comparatie
Operatori Logici

Operatori Aritmetici:
Pentru tabelul de mai jos am sa presupun ca avem doua variabile, a si b, ce au
valorile 5 si 10

Operator Denumire Exemplu

a + b ne va da
+ Adunare
15

Scadere a b ne va da
-5

a * b ne va da
* Inmultire
50

b / a ne va da
/ Impartire
2

b % a ne va da
% Modul
0

Operatori de comparatie:
Din nou, preseupunem ca avem aceleasi variabile, a si b, cu valorile 5 si 10:

Operator Descriere Exemplu

(a = b) ne va
= Verifica daca valorile a doi operanzi sunt egale.
da false

(a != b) ne va
!= Verifica daca valorile a doi operanzi nu sunt egale.
da true

(a <> b) ne va
<> Verifica daca valorile a doi operanzi nu suntegale.
da true

Verifica daca operandul din stanga este mai mare (a > b) ne va


>
decat cel din dreapta. returna false

Verifica daca operandul din dreapta este mai mare (a < b)ne va
<
decat cel din stanga. returna true

Verifica daca operandul din stanga este mai mare sau (a >= b) ne va
>=
egal decat cel din dreapta. returnafalse

Verifica daca operandul din dreapta este mai mare sau (a <= b)ne va
<=
egal decat cel din stanga. returna true

Verifica daca operandul din stanga nu este mai mic (a !< b) ne va


!<
decat operandul din dreapta. returnafalse

Verifica daca operandul din dreapta nu este mai mic (a !> b)ne va
!>
decat operandul din stanga. returna true
Operatori Logici:
Operator Descriere

Acest operator este folosit pentru a compara o valoare cu toate


ALL
valorile dintr-un set.

Acest operator permite existenta mai multor conditii intr-o interogare


AND
SQL in interiodul conditiei WHERE.

Acest operator este folosit la compararea unei valori cu orice valoare


ANY
potrivita dintr-o lista data conform unei conditii.

Acest operator este folosit la cautarea unei valori ce se regaseste


BETWEEN
intr-un anumit interval caruia ii este dat un minim si un maxim.

Acest operator este folosit pentru a cauta un rand din tabel ce


EXISTS
indeplineste anumite conditii.

Acest operator este folosit la compararea unei valori cu o lista de


IN
valori specificate.

Acest operator este folosit la compararea unei anumite valori cu valori


LIKE
similare din baza de date.

Acest operator schimba sensul oricarui operator atunci cand este pus in
NOT
fata lui, de exemplu NOT EXISTS, NOT BETWEEN, NOT IN, s.a.m.d.

Acest operator este folosit la combinarea mai multo conditii intr-o


OR
interogare SQl in interiorul clauzei WHERE.

Acest operator este folosit la verificarea unei valori daca este NULL
IS NULL
(Atentie: NULL 0 si NULL ).

UNIQUE Acest operator cauta toate randurile (tuplurile) unice.

Expresii
postat acum 2 ani de Stefanescu Mihai in categorie SQL
O expresie este o combinatie de valori, operatori si funtii SQL ce returneaza o
valoare.
Expresiile SQL sunt similare formulelor si sunt folosite pentru a returna anumite
date dintr-o baza de date.SintaxaMai jos am scris o interograde SELECT:
?
1 SELECT coloana1, coloana2, coloanaN

2 FROM numele_tabelului

3 WHERE [Contitie|Expresie];

Expresie Booleana
Acest tip de expresie returneaza datele ce se potrivesc unei anumite valori.
Pentru acest exemplu presupunem ca avem urmatorul tabel de angajati:
?
1
SQL> SELECT * FROM angajati;
2
+----+----------+--------+-----------+-----------+
3
| ID | NUME | VARSTA | ADRESA | SALARIU |
4 +----+----------+--------+-----------+-----------+

5 | 1 | Ramesh | 32 | Ahmedabad | 2000.00 |

6 | 2 | Khilan | 25 | Delhi | 1500.00 |

7 | 3 | kaushik | 23 | Kota | 2000.00 |

8 | 4 | Chaitali | 25 | Mumbai | 6500.00 |

9 | 5 | Hardik | 27 | Bhopal | 8500.00 |


| 6 | Komal | 22 | MP | 4500.00 |
10
| 7 | Muffy | 24 | Indore | 10000.00 |
11
+----+----------+--------+-----------+-----------+
12

Iata si un exemplu de interogare ce na va returna randul ce se potriveste unui


singure conditii:
?
1 SQL> SELECT * FROM angajati WHERE salariu = 10000;

2 +----+----------+--------+-----------+-----------+

3 | ID | NUME | VARSTA | ADRESA | SALARIU |

4 +----+----------+--------+-----------+-----------+
5 | 7 | Muffy | 24 | Indore | 10000.00 |

6 +----+----------+--------+-----------+-----------+

Expresie numerica
Acest tip de expresie poate fi folosita la rezolvarea unei operatii matematice in
orice interogare.
?
1 SQL> SELECT (7 + 9) AS Adunare

2 +----------+

3 | Adunare |

4 +----------+

5| 16 |

6 +----------+

Pentru acest tip de expresii exista o intraga serie de functii predefinite precum
avg(), sum(), count(), s.a.m.d.
?
1 SQL> SELECT COUNT(*) AS "Numar Angajati" FROM angajati;

2 +----------------+

3 | Numar Angajati |

4 +----------------+

5| 7|

6 +----------------+

Data Curenta
Acest tip de expresii returneaza data curenta setata in sistemul pe care ruleaza
serverul.
?
1 SQL> SELECT CURRENT_TIMESTAMP;

2 +---------------------+

3 | Current_Timestamp |

4 +---------------------+
5 | 2015-26-03 10:43:27 |

6 +---------------------+

Iata inca un mod de a afisa data curenta:


?
1 SQL> SELECT GETDATE();
2 +---------------------+

3 | Current_Timestamp |
4 +---------------------+

5 | 2015-26-03 10:43:27 |

6 +---------------------+

Stergerea unei baze de date


postat acum 2 ani de Stefanescu Mihai in categorie SQL
Pentru a sterge o baza de date folosim comanda DROP.
DROP DATABASE nume_baza_de_date;

De exemplu, daca dorim s stergem baza de date creata anterior, bdTest folosim
urmatoarea comanda:
DROP DATABASE bdTest;

NOTA: Mare atentie la folosirea acestei comenzi pentru ca stergerea unei baze de
date duce la pierderea tuturor informatiilor stocate in aceasta.
Pentru a putea sterge o baza de date trebuie sa aveti drepturi de admin.
O data ce o baza de date a fost stearsa se poate verifica existenta ei in lista cu
bazele de date astfel:
SQL> SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| information_schema |
| ShopFirst |
| Invata-Programare |
| forumPluginDev |
| WordPressDev |
Crearea unei baze de date
postat acum 2 ani de Stefanescu Mihai in categorie SQL
Sintaxa de creare a unei noi baze de date este foarte simpla:
CREATE DATABASE numeleBazeiDeDate;

Numele unei baze de date trebuie sa fie unic in SGBD.


Sa luam urmatorul exemplu, dorim sa cream o noua baza de date numita bdTest, codul
va fi urmatorul:
SQL> CREATE DATABASE bdTest;

Atentie, trebuie sa aveti drepturi de admin pentru a putea crea o baza de date. O
data ce baza de date a fost creata puteti verifica daca apare in lista de baze de
date in modul urmator:
SQL> SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| information_schema |
| ShopFirst |
| Invata-Programare |
| forumPluginDev |
| WordPressDev |
| testDB |
+--------------------+

Selectarea unei baze de date


postat acum 2 ani de Stefanescu Mihai in categorie SQL
Atunci cand avem mai multe baze de date trebuie sa selctam una dintre acestea
inainte de a incepe sa efectuam diferite operatii pe ea.
Pentru a face acest lucru folosim comanda USE.
USE bdTest;

Daca nu stii numele exact al bazei de date pe care doresti sa o folosesti poti
folosi comanda SHOW pentru a afisa toate bazele de date disponibile:
SQL> SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| information_schema |
| ShopFirst |
| Invata-Programare |
| forumPluginDev |
| WordPressDev |
| bdTest |
+--------------------+

Crearea unui tabel


postat acum 2 ani de Stefanescu Mihai in categorie SQL
Crearea unei tabele implica denumirea acesteia, definirea coloanelor si tipurilor
de date stocate in aceste coloane.
Pentru a crea o noua tabela SQL folosim comanda CREATE TABLE astfel:
CREATE TABLE nume_tabel(
Coloana1 tip_de_date,
Coloana2 tip_de_date,
Coloana3 tip_de_date,
.....
ColoanaN tip_de_date,
PRIMARY KEY( una sau mai multe coloane)
);

CREATE TABLE este cuvantul cheie ce ii spune bazei de date ce doresti sa faci. In
acest caz vrei sa creezi un nou tabel. Imediat dupa cuvantul cheie CREATE TABLE
este pus un nume unic pe care doresti sa-l dai tabelei.
Apoi, in paranteze punem lista cu coloanele si tipul lor de date.
Exemplu
Mai jos vom scrie codul pentru tabelul angajati cu coloana ID ca fiind cheie
primara.
SQL> CREATE TABLE angajati(
ID INT NOT NULL,
Nume VARCHAR (20) NOT NULL,
Varsta INT NOT NULL,
Adresa CHAR (25) ,
Salariu DECIMAL (18, 2),
PRIMARY KEY (ID)
);

Dupa ce ati creat tabela puteti observa structura acesteia folosind comanda DESC:
DESC angajati;
+---------+---------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+---------------+------+-----+---------+-------+
| ID | int(11) | NO | PRI | | |
| Nume | varchar(20) | NO | | | |
| Varsta | int(11) | NO | | | |
| Adresa | varchar(255) | YES | | NULL | |
| Salariu | decimal(18,2) | YES | | NULL | |

Stergerea unui tabel


postat acum 2 ani de Stefanescu Mihai in categorie SQL
Comanda SQl DROP TABLE este folosita pentru a sterge un tabel impreuna cu toate
datele din el .
Sintaxa de baza a acestei comenzi este urmatoarea:
DROP TABLE numeTabel;

Daca va amintiti din lectia precedenta, am creat tabelul angajati care arata in
felul urmator:
DESC angajati;
+---------+---------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+---------------+------+-----+---------+-------+
| ID | int(11) | NO | PRI | | |
| Nume | varchar(20) | NO | | | |
| Varsta | int(11) | NO | | | |
| Adresa | varchar(255) | YES | | NULL | |
| Salariu | decimal(18,2) | YES | | NULL | |
+---------+---------------+------+-----+---------+-------+

Deci, am folosit comanda DESC pentru a vedea ca tabelul angajati inca mai este pe
server, iar acum putem da comanda de stergere.
DROP TABLE angajati;

Acum, daca incercam iar sa dam comanda DESC pe tabelul angajati primim urmatoarea
eroare:
SQL> DESC angajati;
ERROR 1146 (42S02): Table 'bdTest.angajati' doesn't exist
Inserare de informatii (INSERT INTO)
postat acum 2 ani de Stefanescu Mihai in categorie SQL
Comanda INSERT INTO este folosita la inserarea de noi informatii (randuri sau
tupluri) intr-un anumit tabel al bazei de date.

Sintaxa
Exista doua sintaxe pentru inserarea de informatii:
INSERT INTO numeTabel (Coloana1, Coloana2, Coloana3,...ColoanaN)]
VALUES (Valoare1, Valoare2, Valoare3,...ValoareN);

Aici, Coloana1, Coloana2, ColoanaN sunt numele date coloanelor cand ati creat
tabelul.
Sintaxa de mai sus se foloseste atunci cand doriti sa adaugati informatii decat in
anumite coloane din tabel si sa le omiteti pe altele.
Asigurativa ca datele din sectiunea VALUES() sunt trecuta in ordinea coloanelor din
INSERT INTO.Sintaxa de mai jos se foloseste atunci cand doriti sa completati toate
coloanele tabelei:
INSERT INTO numeTabel VALUES (Valoare1,Valoare2,Valoare3,...ValoareN);

Exemplu
Iata un exemplu concret de INSERT:
INSERT INTO angajati (ID, Nume , Varsta, Adresa, Salariu)
VALUES (1, 'Mihai', 22, 'Bucuresti str. xxx', 5000.00 );

INSERT INTO angajati (ID, Nume , Varsta, Adresa, Salariu)


VALUES (2, 'Alex', 27, 'Bucuresti str. yyy', 2000.00 );

Puteti adauga informatii in baza de date si cu cealalta sintaxa:


INSERT INTO angajati
VALUES (2, 'Alex', 27, 'Bucuresti str. yyy', 2000.00 );

Codurile de mai sus au adaugat urmatoarele date in tabelul angajati:


SQL> SELECT * FROM angajati
+----+----------+--------+--------------------+----------+
| ID | Nume | Varsta | Adresa | Salariu |
+----+----------+--------+--------------------+----------+
| 1 | Mihai | 22 | Bucuresti str. xxx | 5000.00 |
| 2 | Alex | 27 | Bucuresti str. yyy | 2000.00 |
+----+----------+--------+--------------------+----------+

Inserarea in tabel a informatiilor din alt tabel


Se poate sa inserati date dintr-un tabel in altul cu un simplu INSERT ca in
exemplul de mai jos:
INSERT INTO primulTabel [(Coloana1, Coloana2, ... ColoanaN)]
VALUES(SELECT Coloana1, Coloana2, ...ColoanaN FROM alDoileaTabel WHERE conditie)

Selectia
postat acum 2 ani de Stefanescu Mihai in categorie SQL
Comanda SELECT este folosita pentru a afisa informatiile stocate intr-un tabel
dintr-o baza de date. Acest rezultat returnat se numeste set de rezultate (result-
set).
?
1 SELECT Coloana1, Coloana2, ColoanaN FROM numeTabel;

In exemplul de mai sus vor fi afisate decat valorile coloanelor trecute in select.
Daca doriti sa afisati toate datele din tabel folositi urmatoarea sintaxa:
?
1 SELECT * FROM numeTabel;

Exemplu
Presupunem ca avem urmatorul tabel angajati cu aceste informatii:
?
1
+----+----------+--------+--------------+-----------+
2 | ID | NUME | VARSTA | ADRESA | SALARIU |
3 +----+----------+--------+--------------+-----------+

4 | 1 | Mihai | 22 | Bucuresti | 10000.00 |

5 | 2 | Alex | 25 | Pitesti | 1500.00 |

6 | 3 | George | 23 | Cluj | 2000.00 |

7 | 4 | Mircea | 25 | Iasi | 6500.00 |


+----+----------+--------+--------------+-----------+
8

Mai jos am scris o interogare ce va selecta decat coloanele ID, Nume si Salariu din
tabelul angajati:
?
1 SELECT ID, NUME, SALARIU FROM angajati

Acest cod va avea urmatorul rezultat:


?
1
+----+----------+-----------+
2 | ID | NUME | SALARIU |
3 +----+----------+-----------+

4 | 1 | Mihai | 10000.00 |

5 | 2 | Alex | 1500.00 |

6 | 3 | George | 2000.00 |

7 | 4 | Mircea | 6500.00 |
+----+----------+-----------+
8

Daca doriti sa selctati toate coloanele din tabelul angajati folositi urmatoarea
interogare:
?
1 SELECT * FROM angajati;

Modificarea de informatii Update


postat acum 2 ani de Stefanescu Mihai in categorie SQL
Comanda UPDATE este folosita pentru a modifica datele deja existente in baza de
date.
Puteti folosi comanda UPDATE impreuna cu clauza WHERE pentru a modifica o anumita
inregistrare din baza de date.

Sinataxa
Sintaxa de baza a acesteio comenzi este aceasta (impreuna cu clauza WHERE):
UPDATE nume_tabel
SET coloana1 = valoare1, coloana2 = valoare2...., coloanaN = valoareN
WHERE [conditia];

Exemplu:
Consideram urmatoprul tabel cu angajati drep exemplu:
+----+----------+--------+-----------+----------+
| ID | NUME | VARSTA | ADRESA | SALARIU |
+----+----------+--------+-----------+----------+
| 1 | Ion | 32 | Bucuresti | 4000.00 |
| 2 | Mircea | 25 | Giurgiu | 2500.00 |
| 3 | Vlad | 23 | Sibiu | 1000.00 |
| 4 | Daniel | 25 | Cluj | 3500.00 |
| 5 | David | 27 | Chisiumau | 4500.00 |
| 6 | Gheorghe | 22 | Alexandria| 2500.00 |
| 7 | Alex | 24 | Iasi | 11000.00 |
+----+----------+--------+-----------+----------+

Mai jos am scris un query ce va updata inregistrarea cu ID-ul 6:


UPDATE angajati SET ADRESA = 'Buzau' WHERE ID = 6;

Daca vrei sa faci update tuturor adreselor si salariilor din tabel codul tau SQL va
avea forma:
UPDATE angajati SET ADRESA = 'Bucuresti', SALARIU = 100000.00;

Clauza WHERE
postat acum 2 ani de Stefanescu Mihai in categorie SQL
Clauza WHERE este folosita pentru a specifica o anumita conditie la selectarea
datelor dintr-un tabel sau mai multe.
Daca este satisfacuta conditia data in clauza WHERE atunci sunt afisate rezultatele
respective din tabel.
Aceasta clauza WHERE nu poate fi folosita doar in SELECT ci si in UPDATE, DETELE,
etc pe care le vom discuta in articolele ce urmeaza.Sintaxa de baza a clauzei WHERE
SELECT Coloana1, Coloana2, ColoanaN
FROM numeTabel
WHERE [conditie]

Consideram ca avem urmatorul tabel cu angajati:


+----+----------+--------+--------------+-----------+
| ID | NUME | VARSTA | ADRESA | SALARIU |
+----+----------+--------+--------------+-----------+
| 1 | Mihai | 22 | Bucuresti | 10000.00 |
| 2 | Alex | 25 | Pitesti | 1500.00 |
| 3 | George | 23 | Cluj | 2000.00 |
| 4 | Mircea | 25 | Iasi | 6500.00 |
+----+----------+--------+--------------+-----------+

Mai jos am scris o interogare ce va selecta decat angajati ce au un salariu mai


mare de 2000:
SQL> SELECT ID, Nume, Salariu
FROM angajati
WHERE Salariu > 2000;
Va fi afisat urmatorul rezultat:
+----+----------+-----------+
| ID | NUME | SALARIU |
+----+----------+-----------+
| 1 | Mihai | 10000.00 |
| 4 | Mircea | 6500.00 |
+----+----------+-----------+

Mai jos am scris o interogare ce va selecta o singura inregistrare din tabel, si


anume inregistrarea care are o anumita valoare in campul Nume.
SQL> SELECT ID, Nume, Salariu
FROM angajati
WHERE Nume = 'Mihai';

Aceasta interogare va avea urmatorul rezultat:


+----+----------+-----------+
| ID | NUME | SALARIU |
+----+----------+-----------+
| 1 | Mihai | 10000.00 |
+----+----------+-----------+

S-ar putea să vă placă și