Întrebări de top pentru interviuri Oracle: Întrebări Oracle Basic, SQL, PL/SQL

Cele mai frecvente întrebări și răspunsuri la interviurile Oracle:

Top 40 de întrebări de interviu Oracle împreună cu răspunsuri care acoperă aproape toate conceptele de bază ale Oracle.

Aceasta este o serie aprofundată care acoperă aproape toate întrebările de interviu Oracle:

Partea #1: Întrebări Oracle Basic, SQL, PL/SQL (acest articol)

Partea a doua: Întrebări despre Oracle DBA, RAC și tuning de performanță

Partea a 3-a: Oracle Forms and Reports Întrebări de interviu

Partea a 4-a: Întrebări tehnice de interviu Oracle Apps și Oracle SOA

Să începem cu primul articol din această serie.

Tipuri de întrebări acoperite în acest articol:

  • Întrebări de bază pentru interviuri Oracle
  • Întrebări de interviu Oracle SQL
  • Întrebări de interviu Oracle PL/SQL

Veți găsi elementele de bază ale Oracle explicate cu exemple simple pentru a fi înțelese. Dacă intenționați să vă prezentați la un interviu Oracle, aceste seturi de întrebări acoperite în acest articol vă vor fi cu siguranță de mare ajutor.

Să mergem înainte!!!

Lista de întrebări de top pentru interviuri Oracle

Î #1) Ce este Oracle și care sunt diferitele sale ediții?

Răspuns: Oracle este una dintre bazele de date populare furnizate de Oracle Corporation, care funcționează pe baza conceptelor de gestionare relațională și, prin urmare, este denumită și Oracle RDBMS. Este utilizată pe scară largă pentru procesarea tranzacțiilor online, pentru depozitarea datelor și pentru calculul grilă al întreprinderilor.

Î #2) Cum veți identifica versiunea de software Oracle Database?

Răspuns: Oracle urmează o serie de formate pentru fiecare versiune.

De exemplu ,

Versiunea 10.1.0.1.1.1 poate fi denumită:

10: Numărul versiunii majore a DB

1: Numărul versiunii de întreținere DB

0: Numărul de versiune al serverului de aplicații

1: Numărul de eliberare specific componentei

1: Numărul de versiune specific platformei

Q #3) Cum veți face diferența între VARCHAR & VARCHAR2?

Răspuns: Atât VARCHAR & VARCHAR2 sunt tipuri de date Oracle care sunt utilizate pentru a stoca șiruri de caractere de lungime variabilă. Diferențele dintre ele sunt:

  • VARCHAR poate stoca caractere de până la 2000 de octeți, în timp ce VARCHAR2 poate stoca până la 4000 de octeți.
  • VARCHAR va păstra spațiul pentru caracterele definite în timpul declarării, chiar dacă nu sunt folosite toate, în timp ce VARCHAR2 va elibera spațiul nefolosit.

Î #4) Care este diferența dintre comenzile TRUNCATE & DELETE?

Răspuns: Ambele comenzi sunt utilizate pentru a elimina date din baza de date.

Diferențele dintre cele două includ:

  • TRUNCATE este o operațiune DDL, în timp ce DELETE este o operațiune DML.
  • TRUNCATE elimină toate rândurile, dar lasă structura tabelului intactă. Nu poate fi reluată, deoarece emite COMMIT înainte și după executarea comenzii, în timp ce comanda DELETE poate fi reluată.
  • Comanda TRUNCATE va elibera spațiul de stocare al obiectului, în timp ce comanda DELETE nu va face acest lucru.
  • TRUNCATE este mai rapid în comparație cu DELETE.

Î #5) Ce se înțelege prin tip de date RAW?

Răspuns: Tipul de date RAW este utilizat pentru a stoca date binare de lungime variabilă sau șiruri de octeți.

Diferența dintre tipul de date RAW & VARCHAR2 constă în faptul că PL/SQL nu recunoaște acest tip de date și, prin urmare, nu poate efectua nicio conversie atunci când datele RAW sunt transferate către sisteme diferite. Acest tip de date poate fi doar interogat sau inserat într-un tabel.

Sintaxă: RAW (precizie)

Î #6) Ce se înțelege prin îmbinări? Enumerați tipurile de îmbinări.

Răspuns: Îmbinările sunt utilizate pentru a extrage date din mai multe tabele folosind anumite coloane sau condiții comune.

Există diferite tipuri de îmbinări, după cum se enumeră mai jos:

  • INNER JOIN
  • OUTER JOIN
  • JOINTS CROSS sau PRODUS CARTESIAN
  • EQUI JOIN
  • ANTI JOIN
  • SEMI JOIN

Q #7) Care este diferența dintre funcțiile SUBSTR & INSTR?

Răspuns:

  • Funcția SUBSTR returnează subpartea identificată prin valori numerice din șirul furnizat.
    • De exemplu , [SELECT SUBSTR ('India este țara mea, 1, 4) din dual] va returna "Indi".
  • INSTR va returna numărul de poziție al subșirului în cadrul șirului.
    • De exemplu , [SELECT INSTR ('India este țara mea, 'a') din dual] va returna 5.

Î #8) Cum putem afla valorile duplicate într-un tabel Oracle?

Răspuns: Putem utiliza exemplul de interogare de mai jos pentru a prelua înregistrările duplicate.

 SELECT EMP_NAME, COUNT (EMP_NAME) FROM EMP GROUP BY EMP_NAME HAVING COUNT (EMP_NAME)> 1; 

Q #9) Cum funcționează instrucțiunea ON-DELETE-CASCADE muncă?

Răspuns: Utilizarea ON DELETE CASCADE va șterge automat o înregistrare din tabelul copil atunci când aceasta este ștearsă din tabelul părinte. Această instrucțiune poate fi utilizată cu chei străine.

Putem adăuga opțiunea ON DELETE CASCADE la un tabel existent folosind setul de comenzi de mai jos.

Sintaxă:

 ALTER TABLE CHILD_T1 ADD CONSTRAINT CHILD_PARENT_FK REFERENCES PARENT_T1 (COLUMN1) ON DELETE CASCADE; 

Î #10) Ce este o funcție NVL? Cum poate fi utilizată?

Răspuns: NVL este o funcție care ajută utilizatorul să înlocuiască valoarea în cazul în care se întâlnește valoarea nulă pentru o expresie.

Acesta poate fi utilizat conform sintaxei de mai jos.

 NVL (Value_In, Replace_With) 

Q #11) Care este diferența dintre o cheie primară și o cheie unică?

Răspuns: Cheia primară este utilizată pentru a identifica în mod unic fiecare rând din tabel, în timp ce o cheie unică previne duplicarea valorilor într-o coloană a tabelului.

Mai jos sunt prezentate câteva diferențe:

  • Cheia primară poate fi una singură în tabel, în timp ce cheile unice pot fi multiple.
  • Cheia primară nu poate conține deloc o valoare nulă, în timp ce cheia unică permite mai multe valori nule.
  • Cheia primară este un indice grupat, în timp ce o cheie unică este un indice neaglomerat.

Q #12) Cum diferă comanda TRANSLATE de REPLACE?

Răspuns: Comanda TRANSLATE traduce caracterele unul câte unul din șirul furnizat cu caracterul de substituție. Comanda REPLACE va înlocui un caracter sau un set de caractere cu un șir de substituție complet.

De exemplu:

 TRANSLATE ('Missisippi','is','15) => M155151pp1 REPLACE ('Missisippi','is','15) => M15s15ippi 

Î #13) Cum putem afla data și ora curentă în Oracle?

Răspuns: Putem afla data curentă & ora folosind comanda SYSDATE în Oracle.

Sintaxă:

 SELECT SYSDATE into CURRENT_DATE from dual; 

Î #14) De ce folosim funcția COALESCE în Oracle?

Răspuns: Funcția COALESCE este utilizată pentru a returna prima expresie care nu este nulă din lista de argumente furnizate în expresie. O expresie trebuie să conțină cel puțin două argumente.

Sintaxă:

 COALESCE (expr 1, expr 2, expr 3...expr n) 

Î #15) Cum veți scrie o interogare pentru a obține studenții din tabelul STUDENT_REPORT cu rangul 5?

Răspuns: Interogarea va fi următoarea:

 SELECT TOP 1 RANK FROM (SELECT TOP 5 RANK FROM STUDENT_REPORT ORDER BY RANK DESC) AS STUDENT ORDER BY RANK ASC; 

Î #16) Când folosim clauza GROUP BY în SQL Query?

Răspuns: Clauza GROUP BY este utilizată pentru a identifica și grupa datele în funcție de una sau mai multe coloane în rezultatele interogării. Această clauză este adesea utilizată cu funcții agregate precum COUNT, MAX, MIN, SUM, AVG etc.

Sintaxă:

 SELECT COLUMN_1, COLUMN_2 FROM TABLENAME WHERE [condition] GROUP BY COLUMN_1, COLUMN_2 

Î #17) Care este cea mai rapidă modalitate de a prelua datele dintr-un tabel?

Răspuns: Cel mai rapid mod de a prelua datele ar fi să folosiți ROWID în interogarea SQL.

Î #18) Unde folosim declarațiile DECODE și CASE?

Răspuns: Ambele declarații DECODE & CASE vor funcționa ca și declarațiile IF-THEN-ELSE și sunt alternative una pentru cealaltă. Aceste funcții sunt utilizate în Oracle pentru a transforma valorile datelor.

De exemplu:

Funcția DECODE

 Selectați ORDERNUM, DECODE (STATUS,'O', 'ORDERED','P', 'PACKED,'S','SHIPPED','A','ARRIVED') FROM ORDERS; 

CAZ Funcția

 Select ORDERNUM , CASE (WHEN STATUS ='O' then 'ORDERED' WHEN STATUS ='P' then PACKED WHEN STATUS ='S' then 'SHIPPED' ELSE 'ARRIVED') END FROM ORDERS; 

Ambele comenzi vor afișa numerele de comandă cu starea lor respectivă, astfel,

Dacă,

Statut O= Comandat

Stare P= Ambalat

Stare S= Livrat

Stare A= Sosit

Î #19) De ce avem nevoie de constrângeri de integritate într-o bază de date?

Răspuns: Constrângerile de integritate sunt necesare pentru a aplica regulile de afaceri, astfel încât să se mențină integritatea bazei de date și să se prevină introducerea de date invalide în tabele. Cu ajutorul constrângerilor menționate mai jos, se pot menține relațiile dintre tabele.

Sunt disponibile diverse constrângeri de integritate, printre care Primary Key, Foreign Key, UNIQUE KEY, NOT NULL & CHECK.

Q #20) Ce înseamnă MERGE în Oracle și cum putem fuziona două tabele?

Răspuns: Instrucțiunea MERGE este utilizată pentru a fuziona datele din două tabele. Aceasta selectează datele din tabelul sursă și le introduce/actualizează în celălalt tabel pe baza condiției furnizate în interogarea MERGE.

Sintaxă:

 UNIFICAȚI ÎN TARGET_TABLE_1 FOLOSIND SOURCE_TABLE_1 PE SEARCH_CONDITION CÂND SE POTRIVEȘTE ATUNCI INTRODUCEȚI (COL_1, COL_2...) VALORI (VAL_1, VAL_2...) UNDE  ATUNCI CÂND NU SE POTRIVESC, ATUNCI ACTUALIZEAZĂ SET COL_1=VAL_1, COL_2=VAL_2... ATUNCI CÂND  

Q #21) Care este utilizarea funcțiilor de agregare în Oracle?

Răspuns: Funcțiile de agregare efectuează operații de rezumat asupra unui set de valori pentru a furniza o singură valoare. Există mai multe funcții de agregare pe care le folosim în codul nostru pentru a efectua calcule. Acestea sunt:

  • AVG
  • MIN
  • MAX
  • COUNT
  • SUM
  • STDEV

Q #22) Ce sunt operatorii de set UNION, UNION ALL, MINUS & INTERSECT?

Răspuns: Operatorul de set facilitează utilizatorului preluarea datelor din două sau mai mult de două tabele deodată, dacă coloanele și tipurile de date aferente sunt aceleași în tabelele sursă.

  • UNION operatorul returnează toate rândurile din ambele tabele, cu excepția rândurilor duplicate.
  • UNION ALL returnează toate rândurile din ambele tabele împreună cu rândurile duplicate.
  • MINUS returnează rânduri din primul tabel, care nu există în al doilea tabel.
  • INTERSECT returnează numai rândurile comune din ambele tabele.

Î ntrebare #23) Putem converti o dată în char în Oracle și, dacă da, care ar fi sintaxa?

Răspuns: Putem utiliza funcția TO_CHAR pentru a face conversia de mai sus.

Sintaxă:

 SELECT to_char (to_date ('30-01-2018', 'DD-MM-YYYY'), 'YYYY-MM-DD') FROM dual; 

Q #24) Ce înseamnă o tranzacție de bază de date & ce declarații TCL sunt disponibile în Oracle?

Răspuns: Tranzacția apare atunci când un set de instrucțiuni SQL sunt executate dintr-o singură dată. Pentru a controla executarea acestor instrucțiuni, Oracle a introdus TCL, adică instrucțiuni de control al tranzacției care utilizează un set de instrucțiuni.

Setul de declarații include:

  • COMITET: Se utilizează pentru a face o tranzacție permanentă.
  • ROLLBACK: Utilizat pentru a întoarce starea BD la ultimul punct de confirmare.
  • SAVEPOINT: Ajută la specificarea unui punct de tranzacție la care se poate face ulterior o revenire.

Q #25) Ce înțelegeți prin obiect de bază de date? Puteți să enumerați câteva dintre ele?

Răspuns: Obiectul utilizat pentru a stoca datele sau referințele la date într-o bază de date este cunoscut sub numele de obiect de bază de date. Baza de date este formată din diferite tipuri de obiecte de baze de date, cum ar fi tabele, vizualizări, indici, constrângeri, proceduri stocate, declanșatori etc.

Î #26) Ce este un tabel imbricate și care este diferența față de un tabel normal?

Răspuns: Un tabel imbricate este un obiect de colecție de baze de date, care poate fi stocat ca o coloană într-un tabel. În timp ce se creează un tabel normal, un întreg tabel imbricate poate fi menționat într-o singură coloană. Tabelele imbricate au o singură coloană, fără restricții privind numărul de rânduri.

De exemplu:

 CREATE TABLE EMP ( EMP_ID NUMĂR, EMP_NAME NUME_TIP_DENUMIRE) 

Aici, creăm un tabel normal ca EMP și facem referire la un tabel imbricate TYPE_NAME ca o coloană.

Î #27) Putem salva imagini într-o bază de date și dacă da, cum?

Răspuns: BLOB înseamnă Binary Large Object (Obiect binar de mari dimensiuni), care este un tip de date utilizat în general pentru a stoca imagini, fișiere audio & fișiere video sau unele executabile binare. Acest tip de date are capacitatea de a stoca date de până la 4 GB.

Î #28) Ce înțelegeți prin schemă de bază de date și ce conține aceasta?

Răspuns: Schema este o colecție de obiecte ale bazei de date deținute de un utilizator al bazei de date care poate crea sau manipula noi obiecte în cadrul acestei scheme. Schema poate conține orice obiecte ale bazei de date, cum ar fi tabele, vizualizări, indici, clustere, procese stocate, funcții etc.

Î #29) Ce este un dicționar de date și cum poate fi creat?

Răspuns: Ori de câte ori este creată o nouă bază de date, sistemul creează un dicționar de date specific bazei de date. Acest dicționar este deținut de utilizatorul SYS și păstrează toate metadatele legate de baza de date. Acesta are un set de tabele și vizualizări numai pentru citire și este stocat fizic în tablespace-ul SYSTEM.

Î #30) Ce este un View și care este diferența față de un tabel?

Răspuns: Vizualizarea este un obiect de bază de date definit de utilizator care este utilizat pentru a stoca rezultatele unei interogări SQL, la care se poate face referire ulterior. Vizualizările nu stochează aceste date fizic, ci ca o tabelă virtuală, de aceea poate fi denumită tabel logic.

Vizualizarea este diferită de tabel:

  • Un tabel poate conține date, dar nu și rezultatele unei interogări SQL, în timp ce View poate salva rezultatele interogării, care pot fi utilizate în cadrul unei alte interogări SQL ca întreg.
  • Tabelul poate fi actualizat sau șters, în timp ce Vizualizările nu pot fi actualizate sau șterse.

Î #31) Ce se înțelege prin situație de blocaj?

Răspuns: Un blocaj este o situație în care doi sau mai mulți utilizatori așteaptă simultan date care sunt blocate de fiecare dintre ei, ceea ce duce la blocarea tuturor sesiunilor utilizatorilor.

Î #32) Ce se înțelege prin index?

Răspuns: Un index este un obiect de schemă, care este creat pentru a căuta datele în mod eficient în cadrul tabelului. De obicei, indexurile sunt create pe anumite coloane ale tabelului, care sunt accesate cel mai des. Indexurile pot fi grupate sau neaglomerate.

Î#33) Ce este un ROLE în baza de date Oracle?

Răspuns: Acordarea accesului la obiecte individuale unor utilizatori individuali este o sarcină administrativă dificilă. Pentru a ușura această sarcină, se creează un grup de privilegii comune într-o bază de date, cunoscut sub numele de ROLE. Odată creat, ROLE-ul poate fi atribuit sau revocat de la utilizatori prin utilizarea comenzii GRANT & REVOKE.

Sintaxă:

 CREATE ROLE READ_TABLE_ROLE; GRANT SELECT ON EMP TO READ_TABLE_ROLE; GRANT READ_TABLE_ROLE TO USER1; REVOCATE READ_TABLE_ROLE FROM USER1; 

Q #34) Care sunt atributele care se găsesc într-un CURSOR?

Răspuns: Un CURSOR are diferite atribute, după cum se menționează mai jos:

(i) %FOUND :

  • Returnează INVALID_CURSOR în cazul în care cursorul a fost declarat, dar închis.
  • Returnează NULL dacă nu s-a efectuat o preluare, dar cursorul este deschis.
  • Returnează TRUE dacă rândurile sunt preluate cu succes și FALSE dacă nu se returnează niciun rând.

(ii) NU SE GĂSEȘTE :

  • Returnează INVALID_CURSOR în cazul în care cursorul a fost declarat, dar închis.
  • Returnează NULL dacă nu s-a efectuat o preluare, dar cursorul este deschis.
  • Returnează FALSE, dacă rândurile sunt preluate cu succes și TRUE dacă nu se returnează niciun rând.

(iii) %ISOPEN : Returnează TRUE, dacă cursorul este OPEN, altfel FALSE

(iv) %ROWCOUNT : Returnează numărul de rânduri preluate.

Î #35) De ce folosim %ROWTYPE & %TYPE în PLSQL?

Răspuns: %ROWTYPE & %TYPE sunt atributele din PL/SQL care pot moșteni tipurile de date ale unui tabel definit într-o bază de date. Scopul utilizării acestor atribute este de a asigura independența și integritatea datelor.

În cazul în care oricare dintre tipurile de date sau precizia se modifică în baza de date, codul PL/SQL este actualizat automat cu tipul de date modificat.

%TYPE este utilizat pentru a declara o variabilă care trebuie să aibă același tip de date ca și o coloană de tabel.

În timp ce %ROWTYPE va fi utilizat pentru a defini un rând complet de înregistrări având o structură similară cu cea a unui tabel.

Q #36) De ce creăm proceduri stocate și funcții în PL/SQL și cum diferă acestea?

Răspuns: O procedură stocată este un set de instrucțiuni SQL care sunt scrise pentru a efectua o sarcină specifică. Aceste instrucțiuni pot fi salvate ca un grup în baza de date cu un nume atribuit și pot fi partajate cu diferite programe, dacă există permisiuni de acces la acestea.

Funcțiile sunt, din nou, subprograme care sunt scrise pentru a îndeplini sarcini specifice, dar există diferențe între ele.

Proceduri stocate Funcții

Procedurile stocate pot sau nu să returneze o valoare și pot returna, de asemenea, mai multe valori. Funcția va returna întotdeauna o singură valoare.
Procedurile stocate pot include instrucțiuni DML precum insert, update & delete. Nu putem utiliza instrucțiuni DML într-o funcție.
Procedurile stocate pot apela funcții. Funcțiile nu pot apela proceduri stocate.
Procedurile stocate suportă gestionarea excepțiilor folosind blocul Try/Catch. Funcțiile nu acceptă blocul Try/Catch.

Î #37) Care sunt parametrii pe care îi putem trece printr-o procedură stocată?

Răspuns: Putem trece parametrii IN, OUT & INOUT printr-o procedură stocată, iar aceștia ar trebui să fie definiți în timpul declarării procedurii în sine.

Î #38) Ce este un declanșator și care sunt tipurile sale?

Răspuns: Un declanșator este un program stocat care este scris în așa fel încât să fie executat automat la apariția unui eveniment. Acest eveniment poate fi orice operațiune DML sau DDL.

PL/SQL acceptă două tipuri de declanșatori:

  • Nivelul rândului
  • Nivelul declarației

Q #39) Cum veți distinge o variabilă globală de o variabilă locală în PL/SQL?

Răspuns: Variabila globală este cea care este definită la începutul programului și supraviețuiește până la sfârșit. Ea poate fi accesată de orice metodă sau procedură din cadrul programului, în timp ce accesul la variabila locală este limitat la procedura sau metoda în care este declarată.

Q #40) Ce sunt pachetele în PL SQL?

Răspuns: Un pachet este un grup de obiecte de baze de date conexe, cum ar fi procese stocate, funcții, tipuri, declanșatori, cursoare etc. care sunt stocate în baza de date Oracle. Este un fel de bibliotecă de obiecte conexe care pot fi accesate de mai multe aplicații, dacă sunt permise.

Structura pachetului PL/SQL este formată din 2 părți: specificația pachetului & corpul pachetului.

Concluzie

Sper că setul de întrebări de mai sus v-a ajutat să vă faceți o idee despre ce înseamnă Oracle.

Chiar dacă aveți cunoștințe temeinice despre toate conceptele de bază, contează foarte mult modul în care le prezentați la interviu. Prin urmare, păstrați-vă calmul și înfruntați interviul cu încredere, fără nicio ezitare.

Citiți URMĂTOR Partea 2: Întrebări despre Oracle DBA, RAC și tuning de performanță

Vă dorim mult succes!!

Lecturi recomandate

    Derulați în sus