Sunteți pe pagina 1din 17

ACADEMIA DE STUDII ECONOMICE BUCUREŞTI

FACULTATEA DE CIBERNETICĂ, STATISTICĂ ŞI INFORMATICĂ ECONOMICĂ

BAZE DE DATE
LIMBAJUL SQL

Conf.univ.dr. IULIANA BOTHA (ȘIMONCA)


iuliana.botha@ie.ase.ro

BUCUREŞTI
2022-2023
Limbajul SQL

SQL (Structured Query Language) este un limbaj standard de


interogare a bazelor de date implementat în majoritatea
sistemelor de gestiune a bazelor de date relaţionale.

2
Noțiuni fundamentale

▪ Tipuri de date SQL


▪ Restricții de integritate asociate coloanelor
▪ Operatori SQL
▪ Comenzi SQL

3
Tipuri de date SQL
TIP Caracteristici
CHAR(dim) Șir de caractere de lungime fixă
VARCHAR2(dim)
Șir de caractere de lungime variabilă
NUMBER(p,s) Numeric: p (precizie) = 1..38, s (scală) =-84..127
DATE Dată calendaristică (date-time)
TIMESTAMP Dată calendaristică (date-time în format extins)

Lista completă a tipurilor de date SQL-Oracle:


4
https://docs.oracle.com/en/database/oracle/oracle-database/12.2/sqlrf/Data-Types.html#GUID-A3C0D836-BADB-44E5-A5D4-265BA5968483
Restricţiile de integritate
▪ Cheie primară: PRIMARY KEY
▪ Cheie externă: FOREIGN KEY
▪ Unicitate: UNIQUE
▪ Obligativitate introducere valoare: NOT NULL
▪ Comportament: CHECK

5
Operatori SQL
Operator Caracteristici
+, -, *, / operatori aritmetici
<, >, =, >=, <=, <>, != operatori de comparație
AND, OR, NOT operatori logici
BETWEEN ... AND ... între două valori (inclusiv)
IN (listă) egal cu oricare valoare din listă
LIKE similar cu un şablon
% - oricâte caractere; _ - un caracter;

IS compară cu valoarea NULL

6
Comenzi SQL
1. Comenzi LDD (Limbaj de Definire a Datelor - Data Definition Language)
2. Comenzi LMD (Limbaj de Manipulare a Datelor - Data Manipulation
Language)
3. Comenzi LPT (Limbaj pentru Procesarea Tranzactiilor – Transaction
Processing Language)
4. Comenzi LCD (Limbaj de Control al Datelor - Data Control Language)

7
Comenzi SQL.
Comenzi LDD

CREATE Creează un obiect nou (tabelă, utilizator, rol etc.)

ALTER Modifică o parte dintre proprietățile unui obiect

DROP Elimină un obiect din baza de date

8
Comenzi SQL.
Comenzi LMD

SELECT Regasește înregistrări în tabele


DELETE Șterge înregistrări din tabele
INSERT Adaugă o nouă înregistrare în tabela
UPDATE Modifică valorile unor înregistrări din tabele

9
Comenzi SQL.
Comenzi LPT

COMMIT Finalizează o tranzacție


ROLLBACK Anulează o tranzacție
SAVEPOINT Definește un punct de salvare în locul în care tranzacția
salvează toate operațiile efectuate până în momentul
respectiv, înainte de a continua următorul set de
modificări efectuate în baza de date.

10
Comenzi SQL.
Comenzi LCD

GRANT Acordă utilizatorilor drepturile necesare pentru accesul


și manipularea obiectelor din baza de date
REVOKE Anulează anumite drepturi ale utilizatorilor

11
ABONAȚI
NrAbonat CNP Nume Prenume Adresa Localitate
123 234567.. Ionescu Ioana Str.Sforii Brasov
654 123456... Popescu George Calea Mosilor Bucuresti
890 256789... Pop Ana Bld.Magheru Bucuresti
FIȘE_ÎMPRUMUTURI
NrFisa DataImprumut NrAbonat
1:n
1 16.08.2020 123
2 01.09.2020 654
3 10.09.2020 123
DETALII_FIȘE
ISBN NrFisa DataRetur
1:n
123-123 1 26.08.2020
123-124 1 06.09.2020
123-125 1
CĂRȚI
214-111 2 16.09.2020
ISBN Carte Autor 214-111 1
123-123 O calatorie spre centrul Pamantului Jules Verne
123-124 Ocolul Pamantului in 80 de zile Jules Verne
123-125 SQL pentru incepatori A, B, C
1:n
214-111 Programare in Python A, B, C

Atenție! Schema de mai sus este construită pentru exemplificarea noțiunilor de bază (precum tabele, legături, chei), însă nu este normalizată
12
corespunzător!
Comanda CREATE TABLE

13
Comanda CREATE TABLE
Restricțiile de integritate pot fi specificate:
➢in-line (la nivel de coloană – imediat după indicarea tipului de dată al
coloanei):
✓sumar: direct prin tipul lor
(ex: id_abonat NUMBER PRIMARY KEY,...)
✓complet: de forma CONSTRAINT denumire_restrictie TIP_RESTRICTIE
(ex: id_abonat NUMBER CONSTRAINT pk_abonati PRIMARY KEY,...)
➢out-of-line (la nivel de tabelă – după indicarea întregii liste a coloanelor):
necesită indicarea coloanei care va avea atașată restricția:
✓sumar: direct prin tipul lor TIP_RESTRICTIE (coloana)
(ex: PRIMARY KEY(id_abonat))
✓complet: de forma CONSTRAINT denumire_restrictie TIP_RESTRICTIE
(coloana)
(ex: CONSTRAINT pk_abonati PRIMARY KEY (id_abonat))
14
Comanda CREATE TABLE
Restricția de integritate de tip NOT NULL poate fi specificată astfel:
➢in-line (la nivel de coloană – imediat după indicarea tipului de dată al
coloanei):
✓sumar (ex: nume VARCHAR2(20) NOT NULL)
✓complet: de forma CONSTRAINT denumire_restrictie NOT NULL
(ex: nume VARCHAR2(20) CONSTRAINT nn_nume NOT NULL)
➢out-of-line (la nivel de tabelă – după indicarea întregii liste a coloanelor):
NU se pot defini prin tipul NOT NULL, ci doar prin CHECK
✓sumar (ex: CHECK (nume IS NOT NULL))
✓complet: de forma CONSTRAINT denumire_restrictie CHECK (coloana IS
NOT NULL)
(ex: CONSTRAINT nn_nume CHECK (nume IS NOT NULL))

15
Comanda CREATE TABLE
Restricția de integritate de tip FOREIGN KEY poate fi specificată astfel (exemplul poate fi
utilizat la crearea tabelei Fișe_împrumuturi):
➢in-line (la nivel de coloană – imediat după indicarea tipului de dată al coloanei; în acest caz
lipsește sintagma cheie FOREIGN KEY și se va indica direct legătura către tabela părinte):
✓sumar (ex: id_abonat NUMBER REFERENCES abonati (id_abonat))
✓complet: de forma CONSTRAINT denumire_restrictie REFERENCES
tabela_parinte(coloana_cheie_primara_din_parinte)
(ex: id_abonat NUMBER CONSTRAINT fk_abonati
REFERENCES abonati (id_abonat),...)
➢out-of-line (la nivel de tabelă – după indicarea întregii liste a coloanelor):
✓sumar (ex: FOREIGN KEY(id_abonat) REFERENCES abonati (id_abonat))
✓complet: de forma CONSTRAINT denumire_restrictie FOREIGN KEY (coloana)
REFERENCES tabela_parinte(coloana_cheie_primara_din_parinte)
(ex: CONSTRAINT fk_abonati FOREIGN KEY (id_abonat) REFERENCES abonati
(id_abonat),...)
16
TEMĂ
Creați și restul tabelelor din schema BD anterioară:
- Cărți
- Fișe_împrumuturi
- Detalii_fișe

Comenzile le veți încărca pe platforma online, în secțiunea dedicată


deschisă la nivelul săptămânii curente.

17

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