Documente Academic
Documente Profesional
Documente Cultură
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
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:
(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 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 dreapta nu este mai mic (a !> b)ne va
!>
decat operandul din stanga. returna true
Operatori Logici:
Operator Descriere
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 verificarea unei valori daca este NULL
IS NULL
(Atentie: NULL 0 si NULL ).
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 +----+----------+--------+-----------+-----------+
2 +----+----------+--------+-----------+-----------+
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 +---------------------+
3 | Current_Timestamp |
4 +---------------------+
5 | 2015-26-03 10:43:27 |
6 +---------------------+
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;
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 |
+--------------------+
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 |
+--------------------+
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 | |
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 );
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 +----+----------+--------+--------------+-----------+
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
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;
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 |
+----+----------+--------+-----------+----------+
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]