Documente Academic
Documente Profesional
Documente Cultură
Cursul 3 - SQL
S.l.dr.ing Radu Parpala
Cuprins
01 SQL
Introducere în limbajul de interogare SQL.
03 DDL
Comenzi SQL – DDL (Data Definition Language)
04 DCL
Comenzi SQL – DCL (Data Control Language)
SQL
SQL – Structured Query Language – este un limbaj de interogare structurat utilizat pentru
manipularea datelor în sistemele de gestiune a bazelor de date relaționale. Este bazat pe algebra
relațională, este primul limbaj care aplica principiile lui Edgar Codd.
Limbajul SQL este utilizat de majoritatea sistemelor de baze de date relaționale, deși este un limbaj
standardizat exista mai multe versiuni (dialecte) disponibile.
DDL – Data Definition Language: Contine comenzi care permit modificarea obiectelor din
baza de date
DCL – Data Control Language: Conține un set de comenzi pentru controlul accesului la baza
de date
DML – Data Manipulation Language: Conține comenzi pentru manipularea datelor
Limbajul de interogare SQL
Prima versiune comercială ANSI
1979 1986
ALTER – Permite modificarea unor obiecte din baza de date ( Tabele, vederi, spații tabel)
Î N B A Z A 010101110001010100010
1000101110101100010011
010011010010000101010
DE DATE 0111101110110110110101
010000111001010110010
101001110101000101010
Spațiu tabel 0010110101101101101001
Index
Tabel
Tabel
Vedere
Tabel
Vedere
• SYSCAT.COLUMNS
• SYSCAT.INDEXES
Obiecte în baza de date - Vederea
• Vederea reprezintă un tabel virtual bazat pe o interogare SQL.
• Vederile nu stochează informații în baza de date.
• O vedere poate include una sau mai multe coloane din unul sau mai multe
tabele salvate în baza de date.
• Vederile pot fi utilizate pentru a restricționa accesul la informațiile stocate în
tabele.
• O vedere este bazată pe o instrucțiune SELECT care este executată de
fiecare dată când vederea este interogată.
Obiecte în baza de date - Indexul
• Un index este o structură de căutare rapidă în baza de date, este folosită automat de sistemul de
gestionare a bazelor de date.
• Sistemul de management al bazelor de date creează automat un index pentru cheia primară din fiecare
tabel.
• Indecșii sunt necesari atunci când se realizează frecvent anumite căutări în bazele de date.
• Orice modificare a unui tabel presupune modificarea indecșilor definiți pe baza acelui tabel.
• Este recomandată folosirea indecșilor pentru coloanele utilizate frecvent în interogări, pentru coloanele
care conțin numeroase valori NULL, pentru tabelele cu foarte multe înregistrări.
SQL – DDL - CREATE
Crearea unei baze de date noi
• CREATE DATABASE
database_name
[BUFFERPOOL bpname]
[CCSID ASCII/EBCDIC/UNICODE]
CREATE TABLE angajat (legitimatie INTEGER, nume VARCHAR (16), prenume VARCHAR(25), department INTEGER);
Optiuni coloană:
NOT NULL
DEFINIȚIE CONSTRÂNGERE
DEFINIȚIE SECVENȚĂ DE GENERARE
DEFINIȚIE Constrângere
PRIMARY KEY
UNIQUE
REFERENCES – FOREIGN KEY
CHECK
SQL – DDL - CREATE
CREATE TABLE angajat (
nr_leg Integer NOT NULL PRIMARY KEY,
prenume varchar (16) NOT NULL,
nume varchar (25),
email varchar(20),
department char(3) DEFAULT 'A00'
REFERENCES department(dep_id) ,
CHECK (email like '%_@%_.%_’));
DEFAULT value
GENERATED ALWAYS / BY DEFAULT FOR EACH ROW ON UPDATE AS ROW CHANGE TIMESTAMP
• Create index
create index radu.empno on radu.empmdc (empno asc);
• Drop index
drop index radu.empno
SQL – DDL – ALTER
ADD COLUMN
alter table department add column locatie varchar(40) default 'iasi’;
ADD CONSTRAINT
alter table angajati add constraint pk_ang primary key (id_angajat);
RENAME COLUMN
alter table department rename column locatie to addresa;
DROP COLUMN
alter table department drop column adresa;
SQL – DDL – ALTER
DROP CONSTRAINT
alter table angajati drop constraint pk_ang;