Podcast
Questions and Answers
Care comandă SQL este folosită exclusiv pentru interogarea datelor, atât a celor create de utilizatori, cât și a celor de sistem?
Care comandă SQL este folosită exclusiv pentru interogarea datelor, atât a celor create de utilizatori, cât și a celor de sistem?
- INSERT
- DELETE
- SELECT (correct)
- UPDATE
Care este semnificația parametrului DISTINCT
în cadrul comenzii SELECT
?
Care este semnificația parametrului DISTINCT
în cadrul comenzii SELECT
?
- Ordonează liniile returnate.
- Returneazăliniile care îndeplinesc o anumită condiție.
- Returnează numai liniile distincte, eliminând duplicatele. (correct)
- Returnează toate liniile simple și duplicate.
Ce reprezintă parametrul schema.table
în sintaxa SQL?
Ce reprezintă parametrul schema.table
în sintaxa SQL?
- Un alias pentru o tabelă.
- Schema de identificare a tabelei, specificată prin user.table_name. (correct)
- O funcție aplicată asupra unei coloane.
- O condiție suplimentară pentru interogare.
Ce rol are clauza WHERE
într-o interogare SQL?
Ce rol are clauza WHERE
într-o interogare SQL?
Care este rolul clauzei HAVING
într-o interogare SQL?
Care este rolul clauzei HAVING
într-o interogare SQL?
Ce fac operatorii UNION
, INTERSECT
și MINUS
în SQL?
Ce fac operatorii UNION
, INTERSECT
și MINUS
în SQL?
Cum se utilizează variabilele substituite în SQL?
Cum se utilizează variabilele substituite în SQL?
Cum pot fi identificate variabilele substituite definite de utilizator în SQL*Plus?
Cum pot fi identificate variabilele substituite definite de utilizator în SQL*Plus?
Ce comandă este folosită pentru a elimina o variabilă definită cu DEFINE
?
Ce comandă este folosită pentru a elimina o variabilă definită cu DEFINE
?
Cum se poate schimba promtul pentru o variabilă substituită în SQL*Plus?
Cum se poate schimba promtul pentru o variabilă substituită în SQL*Plus?
Care este rolul comenzii CONNECT BY
în sintaxa de parcurgere a arborilor din SQL?
Care este rolul comenzii CONNECT BY
în sintaxa de parcurgere a arborilor din SQL?
Care clauză este utilizată pentru a specifica nodul de început al unei interogări arborescente în SQL?
Care clauză este utilizată pentru a specifica nodul de început al unei interogări arborescente în SQL?
În contextul parcurgerii arborilor în SQL, ce reprezintă frunzele arborelui?
În contextul parcurgerii arborilor în SQL, ce reprezintă frunzele arborelui?
Care tabelă este analizată în document pentru a ilustra structura arborescentă a angajaților?
Care tabelă este analizată în document pentru a ilustra structura arborescentă a angajaților?
Cum interpretează baza de date o variabilă substituită definită cu dublu ampersand (&&
)?
Cum interpretează baza de date o variabilă substituită definită cu dublu ampersand (&&
)?
Cum se accesează variabilele de sistem numerice în SQL*Plus?
Cum se accesează variabilele de sistem numerice în SQL*Plus?
Ce condiție trebuie să îndeplinească un angajat SUBALTERN
în raport cu șeful său ȘEF
în tabela EMP
, conform sintaxei de parcurgere a arborilor?
Ce condiție trebuie să îndeplinească un angajat SUBALTERN
în raport cu șeful său ȘEF
în tabela EMP
, conform sintaxei de parcurgere a arborilor?
Care este modalitatea corectă de a include o variabilă definită cu DEFINE
într-un calcul matematic într-o comandă SQL?
Care este modalitatea corectă de a include o variabilă definită cu DEFINE
într-un calcul matematic într-o comandă SQL?
Dacă dorim să creăm o tabelă nouă, angajati_10
, care să conțină doar angajații dintr-un anumit departament și cu o anumită funcție, și folosim variabile substituite pentru a specifica aceste criterii, care ar fi sintaxa corectă?
Dacă dorim să creăm o tabelă nouă, angajati_10
, care să conțină doar angajații dintr-un anumit departament și cu o anumită funcție, și folosim variabile substituite pentru a specifica aceste criterii, care ar fi sintaxa corectă?
Cum am putea să modificăm o interogare SQL astfel încât, în loc să afișăm direct funcția angajatului, să afișăm funcția angajatului concatenată cu poziția sa în firmă, având la dispoziție variabilele substituite definite cu ACCEPT
?
Cum am putea să modificăm o interogare SQL astfel încât, în loc să afișăm direct funcția angajatului, să afișăm funcția angajatului concatenată cu poziția sa în firmă, având la dispoziție variabilele substituite definite cu ACCEPT
?
Flashcards
Ce face DISTINCT în SELECT?
Ce face DISTINCT în SELECT?
Returnează o singură linie dacă cererea returnează linii duplicate.
Ce returnează ALL în SELECT?
Ce returnează ALL în SELECT?
Returnează toate liniile, inclusiv simple și duplicate.
Ce reprezintă schema.table?
Ce reprezintă schema.table?
Identifică schema și tabela (sau view-ul) specificată prin user.table_name.
Ce este expr_alias?
Ce este expr_alias?
Signup and view all the flashcards
Ce reprezintă dblink?
Ce reprezintă dblink?
Signup and view all the flashcards
Ce rol are HAVING condition?
Ce rol are HAVING condition?
Signup and view all the flashcards
Ce face FOR UPDATE OF?
Ce face FOR UPDATE OF?
Signup and view all the flashcards
Ce funcție are NOWAIT?
Ce funcție are NOWAIT?
Signup and view all the flashcards
Ce face SELECT * FROM tabela
?
Ce face SELECT * FROM tabela
?
Signup and view all the flashcards
Ce compară clauza WHERE?
Ce compară clauza WHERE?
Signup and view all the flashcards
Ce este o variabilă ampersand (&)?
Ce este o variabilă ampersand (&)?
Signup and view all the flashcards
Ce e variabila dublu ampersand (&&)?
Ce e variabila dublu ampersand (&&)?
Signup and view all the flashcards
Ce sunt variabilele de sistem (&n)?
Ce sunt variabilele de sistem (&n)?
Signup and view all the flashcards
Ce rol are comanda ACCEPT?
Ce rol are comanda ACCEPT?
Signup and view all the flashcards
Study Notes
Baze de Date - Curs Practic Nr. 2
- Cursul practic nr. 2 acoperă cereri de interogare SQL, inclusiv interogări simple, utilizarea bazei de date a userului SCOTT, clauza WHERE, variabile substituite și sintaxa de parcurgere pe arbori.
Anunț Școala de Vară - Baze de Date
- VLDB Summer School 2025 va avea loc în perioada 28-31 iulie 2025 la Universitatea din Wrocław, Polonia.
- Școala de vară VLDB 2025 se concentrează pe "Trustworthy Processing of Very Large Databases: Foundational Topics, Systems, Reliability & Security, Applications."
- Scopul principal al VLDB Summer School este de a aduce împreună studenți aflați în primele etape ale cercetării și experți internaționali în sistemele de gestionare a bazelor de date, într-un eveniment de mai multe zile.
- Școala de vară are rolul de a educa cu privire la subiecte de ultimă oră în procesarea de încredere a bazelor de date foarte mari, incluzând subiecte fundamentale, sisteme, fiabilitate și securitate, aplicații, dar și de a crea un eveniment de networking.
Cereri de Interogare - Comanda SELECT
- Cererile de interogare SQL folosesc exclusiv comanda SELECT, utilizată pentru interogarea obiectelor create de utilizatori sau ale sistemului.
- Sintaxa generală a comenzii SELECT include clauze optionale precum DISTINCT/ALL, FROM, WHERE, START WITH, CONNECT BY, UNION/INTERSECT/MINUS, GROUP BY, ORDER BY și FOR UPDATE.
DISTINCT
returnează o singură linie dacă cererea are linii duplicate.ALL
returnează toate liniile, inclusiv cele simple și duplicate.schema.table
identifică tabela sau view-ul specificat prinuser.table_name
.expresion
reprezintă un nume de coloană sau o expresie, putând include funcții sistem.- Dacă se folosește
*
ca expresie, vor fi selectate toate coloanele din clauzaFROM
. expr_alias
este un nume alocat unei expresii pentru formatarea coloanei, apărând în antetul listei.dblink
este numele complet sau parțial de identificare a unei baze de date sub formadatabase.domain@connection_qualifier
.table_alias
este un nume alocat unei tabele sau view, folosit în cereri corelate.WHERE condition
este o clauză ce specifică condițiile care trebuie îndeplinite pentru selecția liniilor.START WITH condition
stabilește criteriul de selecție pentru prima linie în sintaxa de parcurgere a arborilor.CONNECT BY condition
stabilește ierarhia de selecție a liniilor în sintaxa de parcurgere a arborilor.GROUP BY expresion
grupează liniile după criteriile specificate, folosind numele coloanelor în criteriul de grupare.HAVING condition
restricționează liniile dintr-un grup pe baza anumitor condiții.UNION,UNION ALL,INTERSECT,MINUS
efectuează operații pe seturi de linii selectate de mai multe comenziSELECT
, aplicând restricții.ORDER BY expresion(position)
ordonează liniile selectate după coloanele din expresie sau după poziția coloanelor specificate.FOR UPDATE OF
blochează (lock) anumite linii pentru modificarea coloanelor.NOWAIT
returnează controlul utilizatorului dacă o comandă așteaptă eliberarea unei linii blocate de un alt utilizator.
Cereri Simple de Interogare
- Pentru a returna toate coloanele și înregistrările dintr-o tabelă:
SQL> SELECT * FROM angajati;
. - Pentru a interoga anumite coloane ale unei tabele:
SQL> SELECT id_dep, den_dep FROM departamente;
. - Pentru a returna calcule pe anumite coloane și a atribui un alias:
SQL> SELECT id_ang ecuson, nume, salariu*12+nvl(comision,0)*12 venit_anual FROM angajati;
. - Pentru a concatena anumite coloane:
SQL> SELECT id_ang||'-'||nume angajat , functie, data_ang FROM angajati;
. - Pentru a adăuga coloane noi:
SQL> SELECT id_ang||'-'||nume angajat, functie, salariu*12+nvl(comision,0) venit_lunar, ' ' semnatura FROM angajati;
.
Baza de Date a Userului SCOTT
- Baza de date a userului SCOTT va fi folosită pentru exercițiile practice.
- Scripturile de instalare sunt disponibile în echipa Baze de Date a Facultății, cu versiuni în română.
- Instalarea poate fi făcută local prin SQLPLUS (varianta recomandată) sau online prin SQL LIVE (necesită cont Oracle).
- Sursele pentru reinstalarea bazei de date SCOTT trebuie menționate.
- Tabelele principale includ DEPT, EMP și SALGRADE.
Cereri cu Clauza WHERE
- Clauza WHERE compară valori de coloane, valori literale sau expresii aritmetice.
- Parametrii clauzei WHERE pot fi: nume de coloană, operator de comparație, operator de negație și liste de valori.
Exemple de Cereri cu Clauza WHERE
- Pentru a lista toate persoanele angajate în 1980:
SQL> SELECT EMPNO, ENAME, HIREDATE, JOB FROM EMP WHERE TO_CHAR(HIREDATE, 'YYYY') LIKE '1980';
- Pentru a lista persoanele al căror nume începe cu litera F și au numele funcției pe 7 caractere:
SQL> SELECT id_ang ecuson, nume, functie, data_ang FROM angajati WHERE nume LIKE 'F%' and functie LIKE '_______';
- Pentru a lista angajații din departamentul 20 care nu au primit comision:
SQL> SELECT EMPNO ecuson, ENAME, JOB, SAL FROM EMP WHERE (COMM=0 OR COMM IS NULL) / Varianta: NVL(COMM, 0)=0 AND DEPTNO=20 ORDER BY ENAME;
- Pentru a lista angajații care au primit comision și nu sunt directori:
SQL> SELECT id_ang ecuson, nume, functie, salariu,comision FROM angajati WHERE (comision IS NOT NULL and comision0) / Varianta: NVL(COMM, 0)!=0 and functie NOT LIKE 'DIRECTOR' ORDER BY nume;
Cereri cu Variabile Substituite
- Cererile SQL pot folosi variabile substituite, parametri ce pot fi introduși la execuție.
- Variabilele ampersand (&nume_variabila) solicită introducerea de la tastatură la fiecare execuție.
- Exemplu:
SQL> SELECT id_ang,nume,functie,salariu FROM angajati WHERE id_sef=&ecuson_sef;
- Variabilele dublu ampersand (&&nume_variabila) sunt stocate și pot fi apelate pe durata sesiunii curente.
- Exemplu:
SELECT nume,functie,&&venit venit_lunar FROM angajati WHERE &venit>2000;
- Comanda
UNDEFINE
resetează o variabilă cu dublu ampersand. - Variabilele de sistem (&n) sunt numerice (1-9), predefinite, funcționând similar cu cele dublu ampersand, fiind apelabile direct dintr-un fișier de comenzi.
- Comanda
@
urmată de calea către fisierul SQL execută comenzi dintr-un fișier. - Comanda
ACCEPT
permite redefinirea promptului pentru o variabilă și ascunderea caracterelor introduse. - Exemplu folosind un fișier:
ACCEPT functie_sef CHAR PROMPT 'Introduceti functia sefului:'; SELECT nume,salariu,comision FROM angajati WHERE functie='&functie_sef'; UNDEFINE functie_sef
- Variabilele definite cu
DEFINE
nu mai afișează promptul și rămân setate până sunt resetate cuUNDEFINE
. -Exemplu:DEFINE procent_prima = 1.15
- Variabilele substituite pot fi folosite în operații DDL sau DML.
- Exemplu:
CREATE TABLE angajati_10 as SELECT nume,functie, data_ang, salariu FROM angajati WHERE id_dep=&depart and functie='&job';
Exemple de Exercitii cu Variabile Substituite
- Pentru a lista angajații angajați înainte de 1982 fără comision:
SQL> SELECT * FROM angajati WHERE data_ang SELECT * FROM angajati WHERE salariu>3000 and id_sef is null ORDER BY id_dep,nume;
- Pentru a lista numele, funcția și venitul anual al angajaților care nu sunt directori pentru un departament introdus de la tastatură:
SQL> SELECT nume, functie, salariu*12+nvl(comision,0)*12 venit_anual FROM angajati WHERE functie not like 'DIRECTOR' and id_dep=&nr_depart;
Sintaxa de Parcurgere pe Arbori
- Comanda SQL
SELECT
de la Oracle include sintaxă specifică pentru parcurgerea arborilor. - Structura tabelei de angajați (EMP) implementează o structură arborescentă a angajaților.
- Arborele începe cu înregistrarea (nodul) care are valoarea
NULL
pe coloanaMGR
(KING). - Legătura dintre un angajat și șeful său se face prin relația
SUBALTERN.MGR=ȘEF.EMPNO
. - Frunzele arborelui sunt angajații fără subalterni, adică
EMPNO
-ul lor nu apare pe coloanaMGR
a vreunui angajat.
Sintaxa de Parcurgere pe Arbori - Exemplu
- Pentru a selecta toți angajații în ordine ierarhică, indicând numele, ID-ul, ID-ul departamentului, funcția și nivelul ierarhic din firmă:
SELECT ENAME, EMPNO, DEPTNO, JOB, LEVEL
FROM EMP
CONNECT BY prior EMPNO=MGR
START WITH MGR IS NULL
ORDER BY LEVEL ASC;
Bibliografie
- Florin Radulescu, Alexandru Boicea, Baze de date online, Editura Oamenilor de Stiinta din Romania, 2011
- Alexandru Boicea, Baze de date – Note de curs practic, Universitatea Politehnica din Bucuresti
- Alexandru Boicea, Oracle SQL, SQL*Plus, Editura Printech, 2007
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.