Documente Academic
Documente Profesional
Documente Cultură
CREATE DATABASE,
DROP DATABASE,
CREATE TABLE,
ALTER TABLE,
DROP TABLE.
CREATE TABLE VANZARI(Nr Number, Cod_m Number, Data_v Date NOT NULL, Localit
Char)
Pentru modificarea structurii unui tabel se utilizeaz comanda ALTER TABLE cu urmtoarea
sintax (simplificat):
ALTER TABLE nume_tabela ADD nume_cmp tip_data.
n aceast variant se adaug n structura tabelei cmpul specificat n comanda.
Exemplu: Se adaug n tabela Personal_Vnzare un nou cmp numit Telefon:
ALTER TABLE PERSONAL_VANZARE ADD Telefon Integer.
Comanda
DROP TABLE nume_tabela
este folosita pentru a sterge complet o tabela dintr-o baza de date (structura i valorile asociate).
INCARCAREA SI ACTUALIZAREA DATELOR CU COMENZI SQL
Actualizarea datelor se refer la adugarea unor noi rnduri ntr-o tabel (cu comanda
INSERT), la modificarea valorilor uneia sau mai multor valori dintr-un rnd (cu comanda
UPDATE) i la tergerea unui rnd dintr-o tabel (cu comanda DELETE).
n vederea adugarii unor rnduri noi ntr-o tabel sau ntr-o viziune se utilizeaz
comanda:
INSERT INTO nume-tabel [(nume-col1,nume-col2,...)] {VALUES (valoare
1,valoare2,...)};
Pentru nume-col1,nume-col2... precizate n paranteze vor fi furnizate valorile
corespunztoare, iar coloanelor nespecificate le sunt ataate valori nule. Coloanele pot fi
precizate n orice ordine, ns trebuie asigurat corespondena ntre numele coloanelor i valorile
furnizate.
n cazul n care anumite coloane nu sunt specificate explicit se impune ca ordinea n care
apar valorile n comanda INSERT s coincid cu cea n care coloanele au fost definite la crearea
tabelei.
Dac nu se mai cunoate ordinea de declarare a coloanelor se folosete comanda
DESCRIBE care va afia lista coloanelor definite pentru tabela respectiv, tipul i lungimea lor.
Prin forma INSERT...VALUES se introduce n tabel un singur rnd. Cu ajutorul valorii
NULL se pot introduce valori nule. Pentru a furniza valori pentru o coloan de tip dat
calendaristic se poate folosi funcia TO_DATE sau cuvntul cheie SYSDATE.
Funcia TO_DATE permite furnizarea valorilor ntr-un format diferit de cel standard.
Specificarea cererii din comanda INSERT determin copierea unor date dintr-o tabel n
alta pe attea rnduri cte au rezultat din cererea SQL.
Exemple:
2
Pentru a insera in tabela nou_profesor, avand coloanele cod, nume, prenume si data_nastere,
inregistrarile din tabela profesor care au gradul didactic de asistent se poate folosi urmatoarea
instructiune:
SQL> INSERT INTO nou_profesor(cod, nume, prenume, data_nastere)
prenume, data nast FROM profesor WHERE grad='ASIST';
2 records deleted.
3) S se scrie comanda pentru tergerea datelor despre salariatul VLAD VASILE. tergerile s nu
fie efectuate imediat ci ulterior.
SQL> SET AUTOCOMMIT OFF
SQL> DELETE FROM SALARIAI WHERE NUME='VLAD VASILE';
1 record deleted.
SQL> COMMIT ;
4) S se tearg datele salariailor care au aceeai funcie cu a lui PAUL TEFAN. tergerile s
nu fie realizate imediat. Ulterior s se renune la aceste tergeri.
SQL> SET AUTOCOMMIT OFF
SQL> DELETE FROM SALARIAI WHERE FUNCT IN (SELECT FUNCT
FROM SALARIAI WHERE NUME='PAUL TEFAN');
5 records deleted.
Lista_selectie cuprinde toate cmpurile care vor aparea n tabela cu rezultatele interogarii.
Cmpurile adaugate n rndul Field din grila Query a machetei grafice QBE, care au marcata
caseta de validare Show, sunt aceleasi cu cele mentionate n lista de selectie.n scrierea
5
interogarilor de selectie simple SQL ACCESS este posibila si folosirea functiilor totalizatoare.
Cele mai importante functii din aceasta categorie sunt:
COUNT : returneaza numarul de nregistrari care respecta conditiile stabilite prin clauza
WHERE,
SUM : reda suma tuturor valorilor dintr-un cmp; opereaza numai cu valori numerice,
MIN : duce la obtinerea celei mai mici valori a unui cmp ramne valabila si aici
restrictia privind clauza WHERE.
n cadrul listei de selecie se pot defini i alias-uri. Acestea reprezint un pseudonim (nume)
asociat unui cmp astfel : cmp AS alias. functiei agregat
Clauza FROM Specifica numele tabelei sau tabelelor care vor forma suportul interogarii. Daca n
lista_selectie se includ cmpuri din mai multe tabele, n fata numelui acestora trebuie precizata
tabela din care fac parte. Asa cum aratam la regulile de sintaxa, pentru separarea numelor de
tabele, se utilizeaza semnul , (virgula). Trebuie sa precizam faptul ca n cadrul acestei clauze se
pot mentiona pe lnga tabele, ca surse de informatii pentru interogarile SQL, si interogari care au
fost deja create.
Clauza WHERE Face interogarile mai selective, specificnd faptul ca vor fi afisate numai
nregistrarile care ndeplinesc criteriul descris. Parametrul criteriul de selectie este o expresie
care contine un operator de tip text (sir) sau numeric, n functie de tipul cmpului. Clauza
WHERE este optionala si nu opereaza cu functii totalizatoare. n cadrul condiiei din clauza
WHERE apar pot fi utilizai operatorii : AND, OR, NOT, IN, BETWEEN, LIKE. Apelnd la
acestia, este posibil construirea unor condiii mai complexe.
Clauza ORDER BY Utilizata atunci cnd se doreste ca rezultatele interogarii sa fie ordonate n
mod crescator (ASC) sau descrescator (DESC). Sortarea este optionala si se poate realiza dupa
unul sau mai multe cmpuri_criteriu (definite drept chei de sortare). Componenta BY a clauzei
nu poate sa lipseasca atunci cnd se doreste sortarea rezultatelor interogarii SQL ACCESS !
Clauza GROUP BY Precizeaza cmpul sau cmpurile pe baza carora se va efectua gruparea
nregistrarilor. n acelasi timp, prin intermediul acestei clauze, se pot executa functiile agregate
descrise n lista de selectie pentru fiecare dintre grupari (constituite pe baza cmpurilor de
grupare). Echivalentul acestei clauze n macheta grafica QBE de constructie a interogarii l
reprezinta rndul Total.
Clauza HAVING Se refera la criteriul care va fi aplicat cmpului-definit ca argument al functiei
agregat. Altfel spus, cnd se foloseste clauza GROUP BY si este necesara si o conditie, se va
utiliza clauza HAVING. Spre deosebire de WHERE, care actioneaza nainte de a se efectua
gruparea nregistrarilor, HAVING va opera dupa definirea acesteia. De remarcat faptul ca se
6
admite utilizarea unei functii agregat care nu apare n lista de selectie, precum si apelarea la mai
multe criterii de grupare.
Cereri de interogare imbricate
Scrierea unei interogari n cadrul alteia duce la aparitia unei subinterogari; setul de rezultate
obtinut de la o interogare va constitui argument pentru o alta. Utilizatorul poate astfel sa creeze
legaturi ntre mai multe interogari SQL ACCESS, pe baza unor cmpuri unice, cu rol de cautare
n structura tabelelor. Subinterogarile nlocuiesc interogarile imbricate din versiunile precedente,
cu performante mult mbunatatite. Pot fi construite si prin varianta de lucru a machetei grafice
QBE Access.
Cea mai simpla subinterogare are sintaxa urmatoare:
SELECT * FROM Tabela1
WHERE Tabela1.nume_ cmp =
(SELECT nume_cmp FROM Tabela2 WHERE criteriul_de_selectie);
Tabela1 si Tabela2 vor avea un cmp comun (nume_cmp) care va reprezenta de fapt cmpul de
legatura ce sta la baza construirii subinterogarii. Clauza SELECT din subinterogare va avea
acelasi numar de cmpuri si de natura similara cu cele din clauza WHERE a interogarii
externe.