Documente Academic
Documente Profesional
Documente Cultură
PROGRAMMING
Inserarea liniilor – Comanda
INSERT
Comanda INSERT permite inserarea unor linii într-
un tabel.
Comanda INSERT aparţine grupului de comenzi
pentru tranzacţii, la fel ca şi Update, Delete şi
Merge.
Efectul acestei comenzi nu este ireversibil (nu are
“commit” automat) ci se poate reveni la starea
anterioară a tabelei cu o comandă de tip“ rollback ”.
Sintaxa comenzii INSERT este:
1 CLIENT_NUMBER Number 5 0
FIRST_NAME Varchar2 25
LAST_NAME Varchar2 30
PHONE Number 15 0
EMAIL Varchar2 50
1 CLIENT_NUMBER Number 5 0
FIRST_NAME Varchar2 25
LAST_NAME Varchar2 30
PHONE Number 15 0
EMAIL Varchar2 50
UPDATE persons
SET last_name = ‘Sam’
WHERE id = 105;
Modificarea coloanei folosind Subquery
Pentru a modifica doua coloane folosind o singura comanda
UPDATE, se pot folosi doua subquery, cate unul pentru fiecare
coloana.
In urmatorul exemplu se modifica valorile pentru coloanele
salariu si staff_type ale angajatului cu ID = 12 cu valorile
introduse pentru angajatul cu ID=9 :
UPDATE copy_f_staffs
SET salary =
(SELECT salary FROM copy_f_staffs
WHERE id = 9),
staff_type = (SELECT staff_type
FROM copy_f_staffs
WHERE id = 9)
WHERE id = 12;
Modificarea randurilor dintr-o tabela cu valori din
alta tabela
Un subquery poate extrage informatii dintr-o tabela
care este apoi folosita pentru modificarea datelor
din alta tabela.
In exemplul de mai jos, mai intai se creaza o copie a tabelei
f_staffs.
Apoi datele din tabela f_staffs sunt extrase,
copiate si folosite pentru a completa cu date tabela copie.
UPDATE copy_f_staffs
SET salary = (SELECT salary FROM f_staffs
WHERE id = 9)
WHERE id = 9;
Observaţii la comanda UPDATE
În cazul în care avem deja creată o legătură între
tabele, nu vom putem modifica o valoare a unei
“primary key” ce corespunde unei “foreign key”
deoarece:
Orice valoare a unei valoare a unei “foreign key”
trebuie să se regăsească între valorile unei
“primary key” ;
Dacă totuşi dorim să modificăm sau să ştergem o
astfel de valoare, trebuie să ştergem întâi valoarea
din “foreign key”, după care putem modifica
valoarea corespunzătoare din “primary key” .
Comanda DELETE
• Se foloseşte pentru a şterge linii dintr-un
tabel.
• Are următoarea sintaxă:
UPDATE persons
SET last_name = ‘Sam’
WHERE id = 105;
Exercitiu
TIPURI DE DATE SQL
• Varchar2 – şir de caractere de lungime
variabilă de max. 4000 caractere; se
precizează obligatoriu lungimea şirului;
Ex: varchar2(80)
• Char – şir de caractere de lungime fixă
până la 2000 de caractere; dacă utilizatorul
furnizează mai puţine caractere, se adaugă
blank- uri la stânga.
• Number – număr real de până la 38 cifre
– Ex: NUMBER(10,2) – partea întreagă formată
din 8 cifre, iar partea zecimală din 2. Punctul
zecimal nu se numără.
DEPART
FIRST_NAME LAST_NAME SALARY HIRE_DATE JOB_ID MENT_ID
Steven King 24000 17.iun.87 AD_PRES 90
Lex De Haan 17000 13.ian.93 AD_VP 90
Alexander Hunold 9000 03.ian.90 IT_PROG 60
Bruce Ernst 6000 21.mai.91 IT_PROG 60
Diana Lorentz 4200 07.feb.99 IT_PROG 60
Kevin Mourgos 5800 16.nov.99 ST_MAN 50
Randall Matos 2600 15.mar.98 ST_CLERK 50
Peter Vargas 2500 09.iul.98 ST_CLERK 50
Eleni Zlotkey 10500 29.ian.00 SA_MAN 80
DEPART
FIRST_NAME LAST_NAME SALARY HIRE_DATE JOB_ID MENT_ID
Steven King 24000 17.iun.87 AD_PRES 90
Lex De Haan 17000 13.ian.93 AD_VP 90
Alexander Hunold 9000 03.ian.90 IT_PROG 60
Bruce Ernst 6000 21.mai.91 IT_PROG 60
Diana Lorentz 4200 07.feb.99 IT_PROG 60
Kevin Mourgos 5800 16.nov.99 ST_MAN 50
Randall Matos 2600 15.mar.98 ST_CLERK 50
Peter Vargas 2500 09.iul.98 ST_CLERK 50
Eleni Zlotkey 10500 29.ian.00 SA_MAN 80
DEPART
FIRST_NAME LAST_NAME SALARY HIRE_DATE JOB_ID MENT_ID
Steven King 24000 17.iun.87 AD_PRES 90
Lex De Haan 17000 13.ian.93 AD_VP 90
Alexander Hunold 9000 03.ian.90 IT_PROG 60
Bruce Ernst 6000 21.mai.91 IT_PROG 60
Diana Lorentz 4200 07.feb.99 IT_PROG 60
Kevin Mourgos 5800 16.nov.99 ST_MAN 50
Randall Matos 2600 15.mar.98 ST_CLERK 50
Peter Vargas 2500 09.iul.98 ST_CLERK 50
Eleni Zlotkey 10500 29.ian.00 SA_MAN 80