top 90 sql interview questions
Cele mai populare 90 de întrebări și răspunsuri la interviul SQL:
Acestea sunt cele mai frecvente și utile întrebări ale interviului SQL atât pentru cei mai noi cât și pentru candidații cu experiență. Bazele conceptelor avansate de SQL sunt prezentate în acest articol.
Consultați aceste întrebări pentru o revizuire rapidă a conceptelor majore SQL înainte de a vă prezenta la un interviu.
Cele mai bune întrebări pentru interviul SQL
Să începem.
Q # 1) Ce este SQL?
Răspuns: Structured Query Language SQL este un instrument de bază de date care este utilizat pentru a crea și accesa baza de date pentru a sprijini aplicațiile software.
Q # 2) Ce sunt tabelele în SQL?
Răspuns: Tabelul este o colecție de înregistrări și informațiile sale într-o singură vizualizare.
Q # 3) Care sunt diferitele tipuri de declarații acceptate de SQL?
Răspuns:
Există 3 tipuri de instrucțiuni SQL:
a) DDL (Limbajul de definire a datelor): Este folosit pentru a defini structura bazei de date, cum ar fi tabelele. Acesta include trei declarații, cum ar fi CREATE, ALTER și DROP.
Citiți și = >> Tutorial MySQL Create Table
Unele dintre comenzile DDL sunt enumerate mai jos:
CREA : Este folosit pentru crearea tabelului.
CREATE TABLE table_name column_name1 data_type(size), column_name2 data_type(size), column_name3 data_type(size),
VÂRSTĂ: Tabelul ALTER este utilizat pentru modificarea obiectului de tabel existent în baza de date.
ALTER TABLE table_name ADD column_name datatype
SAU
ALTER TABLE table_name DROP COLUMN column_name
b) DML (Limbajul de manipulare a datelor): Aceste declarații sunt utilizate pentru a manipula datele din înregistrări. Instrucțiunile DML utilizate în mod obișnuit sunt INSERT, UPDATE și DELETE.
Instrucțiunea SELECT este utilizată ca o instrucțiune DML parțială, utilizată pentru a selecta toate sau înregistrările relevante din tabel.
c) DCL (Limbajul de control al datelor): Aceste declarații sunt folosite pentru a seta privilegii, cum ar fi permisiunea de acces GRANT și REVOKE la baza de date pentru utilizatorul specific .
Q # 4) Cum folosim instrucțiunea DISTINCT? La ce folosește?
Răspuns: Instrucțiunea DISTINCT este utilizată împreună cu instrucțiunea SELECT. Dacă înregistrarea conține valori duplicate, atunci instrucțiunea DISTINCT este utilizată pentru a selecta valori diferite dintre înregistrările duplicate.
Sintaxă:
SELECT DISTINCT column_name(s) FROM table_name;
Q # 5) Care sunt diferitele Clauze utilizate în SQL?
Răspuns:
Clauza unde: Această clauză este utilizată pentru a defini condiția, extrage și afișa numai acele înregistrări care îndeplinesc condiția dată.
Sintaxă:
SELECT column_name(s) FROM table_name WHERE condition;
GRUPA CU Clauza: Se folosește cu instrucțiunea SELECT pentru a grupa rezultatul interogării executate folosind valoarea specificată în aceasta. Se potrivește valoarea cu numele coloanei din tabele și grupează rezultatul final în consecință.
Lecturi suplimentare => MySQL Group By Tutorial
Sintaxă:
SELECT column_name(s) FROM table_name GROUP BY column_name;
Având clauza: Această clauză este utilizată în asociere cu clauza GROUP BY. Se aplică fiecărui grup de rezultate sau întregului rezultat ca un singur grup. Este mult similar cu clauza WHERE, dar singura diferență este că nu o puteți folosi fără clauza GROUP BY
Sintaxă:
SELECT column_name(s) FROM table_name GROUP BY column_name HAVING condition;
Clauza ORDER BY: Această clauză este utilizată pentru a defini ordinea ieșirii interogării fie în ascendent (ASC), fie în descendent (DESC). Ascendent (ASC) este setat ca implicit, dar descendent (DESC) este setat explicit.
Sintaxă:
SELECT column_name(s) FROM table_name WHERE condition ORDER BY column_name ASC|DESC;
Clauza de UTILIZARE: Clauza USING este utilizată în timp ce lucrați cu SQL JOIN. Este folosit pentru a verifica egalitatea pe baza coloanelor atunci când tabelele sunt unite. Poate fi folosit în locul clauzei ON din JOIN.
Sintaxă:
SELECT column_name(s) FROM table_name JOIN table_name USING (column_name);
Q # 6) De ce folosim constrângerile SQL? Ce constrângeri putem folosi în timp ce creăm o bază de date în SQL?
Răspuns: Constrângerile sunt folosite pentru a seta regulile pentru toate înregistrările din tabel. Dacă se constată încălcarea oricăror constrângeri, atunci poate anula acțiunea care a provocat-o.
Constrângerile sunt definite la crearea bazei de date în sine cu instrucțiunea CREATE TABLE sau chiar după ce tabela este creată o dată cu instrucțiunea ALTER TABLE.
Există 5 constrângeri majore care sunt utilizate în SQL, cum ar fi
- NU NUL: Asta indică faptul că coloana trebuie să aibă o anumită valoare și nu poate fi lăsată NULL.
- UNIC: Această constrângere este utilizată pentru a se asigura că fiecare rând și coloană are o valoare unică și că nici o valoare nu se repetă în niciun alt rând sau coloană.
- CHEIA PRINCIPALA: Această constrângere este utilizată în asociere cu constrângeri NOT NULL și UNIQUE, cum ar fi pe una sau combinația de mai multe coloane pentru a identifica înregistrarea specială cu o identitate unică.
- CHEIE EXTERNĂ: Este utilizat pentru a asigura integritatea referențială a datelor din tabel. Se potrivește valoarea dintr-un tabel cu alta folosind CHEIA PRIMARĂ.
- VERIFICA: Acesta asigură dacă valoarea din coloane îndeplinește condiția specificată.
Q # 7) Care sunt diferitele JOINS utilizate în SQL?
Răspuns:
Se utilizează 4 tipuri majore de Joins în timp ce se lucrează la mai multe tabele în bazele de date SQL:
ÎNREGISTRARE INTERIORĂ: Este, de asemenea, cunoscut sub numele de SIMPLE JOIN, care returnează toate rândurile din ambele tabele atunci când are cel puțin o coloană potrivită.
Sintaxă:
SELECT column_name(s) FROM table_name1 INNER JOIN table_name2 ON column_name1=column_name2;
De exemplu,
În acest exemplu, avem un tabel Angajat cu următoarele date:
Numele celui de-al doilea tabel este Alăturarea.
Introduceți următoarea instrucțiune SQL:
SELECT Employee.Emp_id, Joining.Joining_Date FROM Employee INNER JOIN Joining ON Employee.Emp_id = Joining.Emp_id ORDER BY Employee.Emp_id;
Vor fi 4 înregistrări selectate. Rezultatele sunt:
Angajat și Comenzi mesele au o potrivire Număr de înregistrare client valoare.
ÎNREGISTRARE ÎN STÂNGA (ÎNREGISTRARE ÎN EXTERIE): Această îmbinare returnează toate rândurile din tabelul STÂNGA și rândurile potrivite dintr-un tabel DREAPTA .
Sintaxă:
SELECT column_name(s) FROM table_name1 LEFT JOIN table_name2 ON column_name1=column_name2;
De exemplu,
În acest exemplu, avem un tabel Angajat cu următoarele date:
Numele celui de-al doilea tabel este Alăturarea.
Introduceți următoarea instrucțiune SQL:
SELECT Employee.Emp_id, Joining.Joining_Date FROM Employee LEFT OUTER JOIN Joining ON Employee.Emp_id = Joining.Emp_id ORDER BY Employee.Emp_id;
Vor fi 4 înregistrări selectate. Veți vedea următoarele rezultate:
ÎNREGISTRARE DREPTĂ (ÎNREGISTRARE EXTERNĂ DREPT): Aceasta se alătură returnează toate rândurile din tabela DREAPTA și rândurile potrivite din tabela STÂNGA .
Sintaxă:
SELECT column_name(s) FROM table_name1 RIGHT JOIN table_name2 ON column_name1=column_name2;
De exemplu,
În acest exemplu, avem un tabel Angajat cu următoarele date:
Numele celui de-al doilea tabel este Alăturarea.
Introduceți următoarea instrucțiune SQL:
SELECT Employee.Emp_id, Joining.Joining_Date FROM Employee RIGHT JOIN Joining ON Employee.Emp_id = Joining.Emp_id ORDER BY Employee.Emp_id;
Ieșire:
Emp_id | Data_înscriere |
---|---|
E0012 | 18/04/2016 |
E0013 | 19.04.2016 |
E0014 | 01.05.2016 |
FULL JOIN (FULL OUTER JOIN): Această alăturare returnează toate rezultatele atunci când există o potrivire fie în tabelul DREAPTA, fie în tabelul STÂNGA .
Sintaxă:
SELECT column_name(s) FROM table_name1 FULL OUTER JOIN table_name2 ON column_name1=column_name2;
De exemplu,
În acest exemplu, avem un tabel Angajat cu următoarele date:
Numele celui de-al doilea tabel este Alăturarea.
Introduceți următoarea instrucțiune SQL:
SELECT Employee.Emp_id, Joining.Joining_Date FROM Employee FULL OUTER JOIN Joining ON Employee.Emp_id = Joining.Emp_id ORDER BY Employee.Emp_id;
Vor fi 8 înregistrări selectate. Acestea sunt rezultatele pe care ar trebui să le vedeți.
LA Citeste si => Tutorial MySQL Join
Q # 8) Ce sunt tranzacțiile și controalele acestora?
Răspuns: O tranzacție poate fi definită ca sarcina de secvență care se efectuează pe baze de date într-un mod logic pentru a obține anumite rezultate. Operațiuni precum Crearea, actualizarea, ștergerea înregistrărilor efectuate în baza de date provin din tranzacții.
În cuvinte simple, putem spune că o tranzacție înseamnă un grup de interogări SQL executate în înregistrările bazei de date.
Există 4 controale de tranzacție, cum ar fi
- COMITEAZA : Este folosit pentru a salva toate modificările făcute prin tranzacție.
- REALIZARE : Este folosit pentru a reveni la tranzacție. Toate modificările efectuate de tranzacție sunt returnate înapoi și baza de date rămâne la fel ca înainte.
- SETAȚI TRANZACȚIA : Setați numele tranzacției.
- SAVEPOINT: Este folosit pentru a seta punctul în care tranzacția urmează să fie reluată.
Q # 9) Care sunt proprietățile tranzacției?
Răspuns: Proprietățile tranzacției sunt cunoscute sub numele de proprietăți ACID. Acestea sunt:
- Atomicitate : Asigură integralitatea tuturor tranzacțiilor efectuate. Verifică dacă fiecare tranzacție este finalizată cu succes sau nu. Dacă nu, tranzacția este întreruptă la punctul de eșec și tranzacția anterioară este revenită la starea inițială, deoarece modificările sunt anulate.
- Coerență : Asigură că toate modificările efectuate prin tranzacții reușite sunt reflectate corect în baza de date.
- Izolare : Asigură că toate tranzacțiile sunt efectuate independent și că modificările făcute de o tranzacție nu se reflectă asupra altora.
- Durabilitate : Asigură că modificările făcute în baza de date cu tranzacțiile angajate persistă, așa cum se întâmplă chiar și după o defecțiune a sistemului.
Q # 10) Câte funcții Agregate sunt disponibile în SQL?
Răspuns: Funcțiile SQL Aggregate determină și calculează valori din mai multe coloane dintr-un tabel și returnează o singură valoare.
Există 7 funcții agregate în SQL:
- AVG (): Returnează valoarea medie din coloanele specificate.
- NUMARA(): Returnează numărul de rânduri de tabel.
- MAX (): Returnează cea mai mare valoare dintre înregistrări.
- MIN (): Returnează cea mai mică valoare dintre înregistrări.
- SUMĂ(): Returnează suma valorilor de coloană specificate.
- PRIMUL(): Returnează prima valoare.
- ULTIMUL(): Returnează ultima valoare.
Q # 11) Care sunt funcțiile Scalar în SQL?
Răspuns: Funcțiile scalare sunt utilizate pentru a returna o singură valoare pe baza valorilor de intrare.
Funcțiile scalare sunt după cum urmează:
- UCASE (): Convertește câmpul specificat cu majuscule.
- CLASE (): Convertește câmpul specificat cu litere mici.
- MID (): Extrage și returnează caracterul din câmpul de text.
- FORMAT(): Specifică formatul de afișare.
- LEN (): Specifică lungimea câmpului de text.
- RUNDĂ(): Rotunjește valoarea câmpului zecimal la un număr.
Q # 12) Ce sunt factorii declanșatori ?
Răspuns: Declanșatoarele în SQL sunt un fel de proceduri stocate utilizate pentru a crea un răspuns la o acțiune specifică efectuată pe masă, cum ar fi INSERT, UPDATE sau DELETE. Puteți invoca declanșatorii în mod explicit pe tabelul din baza de date.
Acțiunea și evenimentul sunt două componente principale ale declanșatoarelor SQL. Când se efectuează anumite acțiuni, evenimentul are loc ca răspuns la acțiunea respectivă.
Sintaxă:
CREATE TRIGGER name BEFORE (event (OR..)} ON table_name (FOR (EACH) ROW) EXECUTE PROCEDURE functionname {arguments}
Q # 13) Ce este View în SQL?
Răspuns: O vizualizare poate fi definită ca un tabel virtual care conține rânduri și coloane cu câmpuri de la unul sau mai multe tabele.
S yntax:
CREATE VIEW view_name AS SELECT column_name(s) FROM table_name WHERE condition
Q # 14) Cum putem actualiza vizualizarea?
Răspuns: SQL CREATE și REPLACE pot fi utilizate pentru actualizarea vizualizării.
Executați interogarea de mai jos pentru a actualiza vizualizarea creată.
Sintaxă:
CREATE OR REPLACE VIEW view_name AS SELECT column_name(s) FROM table_name WHERE condition
Q # 15) Explicați funcționarea privilegiilor SQL?
Răspuns: Comenzile SQL GRANT și REVOKE sunt utilizate pentru a implementa privilegii în medii SQL cu mai mulți utilizatori. Administratorul bazei de date poate acorda sau revoca privilegii către sau de la utilizatorii obiectelor bazei de date utilizând comenzi precum SELECT, INSERT, UPDATE, DELETE, ALL etc.
Comanda GRANT : Această comandă este utilizată pentru a oferi acces la baza de date pentru alți utilizatori decât administratorul.
Sintaxă:
GRANT privilege_name ON object_name TO PUBLIC (WITH GRANT OPTION);
În sintaxa de mai sus, opțiunea GRANT indică faptul că utilizatorul poate acorda acces și altui utilizator.
Comanda REVOKE : Această comandă este utilizată pentru a oferi refuzarea bazei de date sau pentru a elimina accesul la obiectele bazei de date.
Sintaxă:
REVOKE privilege_name ON object_name FROM PUBLIC;
Q # 16) Câte tipuri de privilegii sunt disponibile în SQL?
Răspuns: Există două tipuri de privilegii utilizate în SQL, cum ar fi
- Privilegiu de sistem: Privilegiile de sistem se ocupă de obiectul unui anumit tip și oferă utilizatorilor dreptul de a efectua una sau mai multe acțiuni asupra acestuia. Aceste acțiuni includ efectuarea de sarcini administrative, ALTER ORICE INDEX, ALTER ORICE CACHE GROUP CREATE / ALTER / DELETE TABLE, CREATE / ALTER / DELETE VIEW etc.
- Privilegiul obiectului: Aceasta permite efectuarea de acțiuni asupra unui obiect sau obiect al altui utilizator, respectiv. tabel, vizualizare, indexuri etc. Unele dintre privilegiile de obiect sunt EXECUTE, INSERT, UPDATE, DELETE, SELECT, FLUSH, LOAD, INDEX, REFERENCES etc.
Q # 17) Ce este SQL Injection?
Răspuns: SQL Injection este un tip de tehnică de atac al bazei de date în care instrucțiunile SQL rău intenționate sunt inserate într-un câmp de intrare al bazei de date într-un mod în care odată ce este executată, baza de date este expusă unui atacator pentru atac. Această tehnică este de obicei utilizată pentru atacarea aplicațiilor bazate pe date pentru a avea acces la date sensibile și pentru a efectua sarcini administrative pe baze de date.
De exemplu,
SELECT column_name(s) FROM table_name WHERE condition;
Q # 18) Ce este SQL Sandbox în SQL Server?
Răspuns: SQL Sandbox este un loc sigur în mediul serverului SQL în care sunt executate scripturi de încredere. Există 3 tipuri de sandbox SQL:
- Sandbox cu acces sigur: Aici un utilizator poate efectua operațiuni SQL, cum ar fi crearea de proceduri stocate, declanșatoare etc., dar nu poate avea acces la memorie și nu poate crea fișiere.
- Sandbox cu acces extern: Utilizatorii pot accesa fișiere fără a avea dreptul să manipuleze alocarea memoriei.
- Sandbox cu acces nesigur: Acesta conține coduri de încredere în care un utilizator poate avea acces la memorie.
Q # 19) Care este diferența dintre SQL și PL / SQL?
Răspuns: SQL este un limbaj de interogare structurat pentru a crea și accesa baze de date, în timp ce PL / SQL vine cu concepte procedurale de limbaje de programare.
Q # 20) Care este diferența dintre SQL și MySQL?
Răspuns: SQL este un limbaj de interogare structurat care este utilizat pentru manipularea și accesarea bazei de date relaționale. Pe de altă parte, MySQL în sine este o bază de date relațională care folosește SQL ca limbaj standard al bazei de date.
Q # 21) La ce folosește funcția NVL?
Răspuns: Funcția NVL este utilizată pentru a converti valoarea nulă la valoarea sa reală.
Q # 22) Care este produsul cartezian al tabelului?
Răspuns: Rezultatul Cross Join se numește produs cartezian. Returnează rânduri care combină fiecare rând din primul tabel cu fiecare rând al celui de-al doilea tabel. De exemplu, dacă unim două tabele având 15 și 20 de coloane, produsul cartezian din două tabele va fi 15 × 20 = 300 de rânduri.
Q # 23) Ce vrei să spui prin Subinterogare?
Răspuns: Interogarea dintr-o altă interogare se numește subinterogare. O subinterogare se numește interogare interioară care returnează ieșirea care urmează să fie utilizată de o altă interogare.
cum se instalează pluginul svn în eclipsă
Q # 24) Câți operatori de comparație de rânduri sunt folosiți în timp ce lucrați cu o subinterogare?
Răspuns: Există operatori de comparație pe 3 rânduri care sunt folosiți în subinterogări precum IN, ANY și ALL.
Q # 25) Care este diferența dintre indexurile grupate și cele ne-grupate?
Răspuns: Diferențele dintre cele două sunt următoarele:
- Un tabel poate avea un singur index grupat, dar mai mulți indici non-grupați.
- Indicii grupați pot fi citiți mai degrabă decât indicii ne-grupați.
- Indicii clusterizați stochează datele fizic în tabel sau vizualizare, în timp ce indexurile non-cluster nu stochează date în tabel, deoarece are o structură separată de rândul de date.
Q # 26) Care este diferența dintre ȘTERGERE și TRUNCARE?
Răspuns: Diferențele sunt:
- Diferența de bază în ambele este comanda DELETE este comanda DML și comanda TRUNCATE este DDL.
- Comanda DELETE este utilizată pentru a șterge un anumit rând din tabel, în timp ce comanda TRUNCATE este utilizată pentru a elimina toate rândurile din tabel.
- Putem folosi comanda DELETE cu clauza WHERE dar nu putem folosi comanda TRUNCATE cu ea.
Q # 27) Care este diferența dintre DROP și TRUNCATE?
Răspuns: TRUNCATE elimină toate rândurile din tabel care nu pot fi recuperate înapoi, DROP elimină întregul tabel din baza de date și, de asemenea, nu poate fi recuperat înapoi.
Q # 28) Cum se scrie o interogare pentru a arăta detaliile unui student din tabelul Studenți al cărui
numele începe cu K?
Răspuns: Interogare:
SELECT * FROM Student WHERE Student_Name like ‘K%’;
Aici operatorul „like” este folosit pentru a efectua potrivirea modelelor.
Q # 29) Care este diferența dintre subinterogarea imbricată și subinterogarea corelată?
Răspuns: Subinterogarea dintr-o altă subinterogare se numește Subinterogare imbricată. Dacă ieșirea unei subinterogări depinde de valorile coloanei din tabelul de interogare părinte, atunci interogarea se numește Subinterogare corelată.
SELECT adminid(SELEC Firstname+' '+Lastname FROM Employee WHERE empid=emp. adminid)AS EmpAdminId FROM Employee;
Rezultatul interogării este detaliile unui angajat din tabelul Angajați.
Î. 30) Ce este normalizarea? Câte forme de normalizare există?
Răspuns: Normalizarea este utilizată pentru a organiza datele în așa fel încât redundanța datelor să nu apară niciodată în baza de date și să evite inserarea, actualizarea și ștergerea anomaliilor.
Există 5 forme de normalizare:
- Prima formă normală (1NF): Elimină toate coloanele duplicate din tabel. Acesta creează un tabel pentru datele conexe și identifică valorile unice ale coloanei.
- Prima formă normală (2NF): Urmărește 1NF și creează și plasează subseturi de date într-un tabel individual și definește relația dintre tabele utilizând cheia primară.
- A treia formă normală (3NF): Urmărește 2NF și elimină acele coloane care nu sunt legate prin cheia primară.
- A patra formă normală (4NF): Urmărește 3NF și nu definește dependențe cu mai multe valori. 4NF este, de asemenea, cunoscut sub numele de BCNF.
Î. 31) Ce este o relație? Câte tipuri de relații există?
Răspuns: Relația poate fi definită ca conexiunea dintre mai multe tabele din baza de date.
Există 4 tipuri de relații:
- Relația unu la unu
- Mulți la o relație
- Relație între mulți și mulți
- Relație între mulți
Q # 32) Ce vrei să spui prin proceduri stocate? Cum îl folosim?
Răspuns: O procedură stocată este o colecție de instrucțiuni SQL care pot fi utilizate ca o funcție de acces la baza de date. Putem crea aceste proceduri stocate mai devreme înainte de ao utiliza și le putem executa ori de câte ori este necesar, aplicându-i o logică condițională. Procedurile stocate sunt, de asemenea, utilizate pentru a reduce traficul de rețea și pentru a îmbunătăți performanța.
Sintaxă:
CREATE Procedure Procedure_Name ( //Parameters ) AS BEGIN SQL statements in stored procedures to update/retrieve records END
Q # 33) Afirmați câteva proprietăți ale bazelor de date relaționale?
Răspuns: Proprietățile sunt după cum urmează:
- În bazele de date relaționale, fiecare coloană ar trebui să aibă un nume unic.
- Secvența rândurilor și coloanelor din bazele de date relaționale este nesemnificativă.
- Toate valorile sunt atomice și fiecare rând este unic.
Q # 34) Ce sunt declanșatoarele imbricate?
Răspuns: Declanșatoarele pot implementa logica de modificare a datelor prin utilizarea instrucțiunilor INSERT, UPDATE și DELETE. Acești declanșatori care conțin logică de modificare a datelor și găsesc alți declanșatori pentru modificarea datelor se numesc Declanșatoare imbricate.
Q # 35) Ce este un cursor?
Răspuns: Un cursor este un obiect de bază de date care este utilizat pentru a manipula datele într-un mod rând-la-rând.
Cursorul urmează pașii de mai jos:
- Declarați cursorul
- Deschideți cursorul
- Recuperați rândul din Cursor
- Procesați rândul
- Închideți cursorul
- Alocați cursorul
Î. 36) Ce este Colationarea?
Răspuns: Colacționarea este un set de reguli care verifică modul în care datele sunt sortate comparându-le. De exemplu, datele despre caractere sunt stocate utilizând secvența corectă de caractere împreună cu sensibilitatea la majuscule, tipul și accentul.
Î # 37) Ce trebuie să verificăm în Testarea bazei de date?
Răspuns: În testarea bazei de date, următorul lucru este necesar pentru a fi testat:
- Conectivitatea bazei de date
- Verificarea constrângerii
- Câmpul de aplicare obligatoriu și dimensiunea acestuia
- Preluarea și prelucrarea datelor cu operațiuni DML
- Proceduri stocate
- Fluxul funcțional
Î. 38) Ce este testarea cutiei albe a bazei de date?
Răspuns: Testarea cutiei albe a bazei de date implică:
- Consistența bazei de date și proprietățile ACID
- Declanșatoare de baze de date și vizualizări logice
- Acoperirea deciziilor, acoperirea stării și acoperirea declarațiilor
- Tabelele bazei de date, modelul de date și schema bazei de date
- Reguli de integritate referențială
Î. 39) Ce este testarea cutiei negre a bazei de date?
Răspuns: Testarea cutiei negre a bazei de date implică:
- Cartografierea datelor
- Date stocate și recuperate
- Utilizarea tehnicilor de testare a cutiei negre, cum ar fi partiționarea echivalenței și analiza valorii limită (BVA)
Q # 40) Ce sunt indexurile în SQL?
Răspuns: Indexul poate fi definit ca modalitatea de a prelua datele mai rapid. Putem defini indexuri folosind instrucțiuni CREATE.
Sintaxă:
CREATE INDEX index_name ON table_name (column_name)
Mai mult, putem crea și un index unic folosind următoarea sintaxă:
CREATE UNIQUE INDEX index_name ON table_name (column_name)
ACTUALIZAȚI: Am mai adăugat câteva întrebări scurte pentru practică.
Q # 41) Ce înseamnă SQL?
Răspuns: SQL înseamnă Limbaj de interogare structurat .
Q # 42) Cum se selectează toate înregistrările din tabel?
Răspuns: Pentru a selecta toate înregistrările din tabel, trebuie să folosim următoarea sintaxă:
Select * from table_name;
Q # 43) Definiți asocierea și denumiți diferite tipuri de asocieri?
Răspuns: Cuvântul cheie Join este folosit pentru a prelua date din două sau mai multe tabele conexe. Returnează rânduri în care există cel puțin o potrivire în ambele tabele incluse în alăturare. Citiți mai multe aici .
Tipul de asocieri sunt:
ce să faci cu fișierele .torrent
- Alăturați-vă drept
- Alăturare exterioară
- Alăturați-vă complet
- Alăturați-vă încrucișat
- Unirea de sine.
Q # 44) Care este sintaxa pentru a adăuga o înregistrare la un tabel?
Răspuns: Pentru a adăuga o înregistrare într-un tabel se utilizează sintaxa INSERT.
De exemplu,
INSERT into table_name VALUES (value1, value2..);
Q # 45) Cum adăugați o coloană la un tabel?
Răspuns: Pentru a adăuga o altă coloană în tabel, utilizați următoarea comandă:
ALTER TABLE table_name ADD (column_name);
Lectură recomandată = >> Cum se face adăugați o coloană la un tabel în MySQL
Q # 46) Definiți instrucțiunea SQL DELETE.
Răspuns: DELETE este folosit pentru a șterge un rând sau rânduri dintr-un tabel pe baza condiției specificate.
Sintaxa de bază este după cum urmează:
DELETE FROM table_name WHERE
Q # 47) Definiți COMMIT?
Răspuns: COMMIT salvează toate modificările făcute de instrucțiunile DML.
Q # 48) Care este cheia primară?
Răspuns: O cheie primară este o coloană ale cărei valori identifică în mod unic fiecare rând dintr-un tabel. Valorile cheie primare nu pot fi refolosite niciodată.
Q # 49) Ce sunt cheile străine?
Răspuns: Când câmpul cheie primar al unui tabel este adăugat la tabelele conexe pentru a crea câmpul comun care leagă cele două tabele, acesta a numit o cheie străină în alte tabele. Constrângerile cheii străine impun integritatea referențială.
Q # 50) Ce este CHECK Constraint?
Răspuns: O constrângere CHECK este utilizată pentru a limita valorile sau tipul de date care pot fi stocate într-o coloană. Acestea sunt utilizate pentru a impune integritatea domeniului.
Î # 51) Este posibil ca un tabel să aibă mai multe chei străine?
Răspuns: Da, un tabel poate avea multe chei străine, dar numai o cheie principală.
Q # 52) Care sunt valorile posibile pentru câmpul de date BOOLEAN?
Răspuns: Pentru un câmp de date BOOLEAN, sunt posibile două valori: -1 (adevărat) și 0 (fals).
Q # 53) Ce este o procedură stocată?
Răspuns: O procedură stocată este un set de interogări SQL care pot prelua intrarea și trimite înapoi ieșirea.
Q # 54) Ce este identitatea în SQL?
Răspuns: O coloană de identitate în care SQL generează automat valori numerice. Putem defini o valoare de pornire și de creștere a coloanei de identitate.
Q # 55) Ce este normalizarea?
Răspuns: Procesul de proiectare a tabelelor pentru minimizarea redundanței datelor se numește normalizare. Trebuie să împărțim o bază de date în două sau mai multe tabele și să definim relația dintre ele.
Q # 56) Ce este un declanșator?
Răspuns: Declanșatorul ne permite să executăm un lot de cod SQL atunci când apare evenimentul tabelului (comenzile INSERT, UPDATE sau DELETE sunt executate pe un anumit tabel).
Q # 57) Cum se selectează rânduri aleatorii dintr-un tabel?
Răspuns: Folosind o clauză SAMPLE putem selecta rânduri aleatorii.
De exemplu,
SELECT * FROM table_name SAMPLE(10);
Q # 58) Ce port TCP / IP rulează SQL Server?
Răspuns: În mod implicit, SQL Server rulează pe portul 1433.
Q # 59) Scrieți o interogare SQL SELECT care returnează fiecare nume doar o singură dată dintr-un tabel?
Răspuns: Pentru a obține rezultatul ca fiecare nume o singură dată, trebuie să folosim cuvântul cheie DISTINCT.
SELECT DISTINCT name FROM table_name;
Q # 60) Explicați DML și DDL?
Răspuns: DML înseamnă Limbajul de manipulare a datelor. INSERT, UPDATE și DELETE sunt instrucțiuni DML.
DDL înseamnă Limbajul de definire a datelor. CREATE, ALTER, DROP, RENAME sunt instrucțiuni DDL.
Q # 61) Putem redenumi o coloană în rezultatul interogării SQL?
Răspuns: Da, folosind următoarea sintaxă putem face acest lucru.
SELECT column_name AS new_name FROM table_name;
Q # 62) Dați ordinea SQL SELECT?
Răspuns: Ordinea clauzelor SQL SELECT este: SELECT, FROM, WHERE, GROUP BY, HAVING, ORDER BY. Doar clauzele SELECT și FROM sunt obligatorii.
Q # 63) Să presupunem că o coloană Student are două coloane, Nume și Marcaje. Cum să obțineți numele și notele primilor trei studenți.
Răspuns: SELECT Nume, marchează FROM Student s1 unde 3<= (SELECT COUNT(*) FROM Students s2 WHERE s1.marks = s2.marks)
Q # 64) Ce sunt comentariile SQL?
Răspuns: Comentariile SQL pot fi inserate prin adăugarea a două cratime consecutive (-).
Q # 65) Diferența dintre comenzile TRUNCATE, DELETE și DROP?
Răspuns:
- ȘTERGE elimină unele sau toate rândurile dintr-un tabel pe baza condiției. Poate fi rulat înapoi.
- TRUNCHIA elimină TOATE rândurile dintr-un tabel prin alocarea paginilor de memorie. Operațiunea nu poate fi derulată înapoi
- CĂDERE BRUSCA comanda elimină complet un tabel din baza de date.
Q # 66) Care sunt proprietățile unei tranzacții?
Răspuns: În general, aceste proprietăți sunt denumite proprietăți ACID. Sunt:
- Atomicitate
- Coerență
- Izolare
- Durabilitate.
Q # 67) Ce vrei să spui prin ROWID?
Răspuns: Este o pseudo coloană lungă de 18 caractere atașată la fiecare rând al unui tabel.
Î # 68) Definiți UNION, MINUS, UNION ALL, INTERSECT?
Răspuns:
- MINUS - returnează toate rândurile distincte selectate de prima interogare, dar nu de a doua.
- UNIUNE - returnează toate rândurile distincte selectate de oricare dintre interogări
- UNION TOATE - returnează toate rândurile selectate de oricare dintre interogări, inclusiv toate duplicatele.
- INTERSECT - returnează toate rândurile distincte selectate de ambele interogări.
Q # 69) Ce este o tranzacție?
Răspuns: O tranzacție este o secvență de cod care rulează împotriva unei baze de date. Acesta duce baza de date de la o stare consecventă la alta.
Q # 70) Care este diferența dintre constrângerile UNIQUE și PRIMARY KEY?
Răspuns: Diferențele sunt după cum urmează:
- Un tabel poate avea o singură CHEIE PRIMARĂ, în timp ce poate exista orice număr de chei UNICE.
- Cheia primară nu poate conține valori nule, în timp ce cheia unică poate conține valori nule.
Q # 71) Ce este o cheie primară compusă?
Răspuns: Cheia primară creată în mai multe coloane se numește cheie primară compusă.
Q # 72) Ce este un index?
Răspuns: Un index este o structură specială asociată cu un tabel pentru a accelera performanța interogărilor. Indexul poate fi creat pe una sau mai multe coloane ale unui tabel.
Q # 73) Ce este interogarea?
Răspuns: O Subinterogare este un subset de instrucțiuni selectate ale căror valori de returnare sunt utilizate în condițiile de filtrare ale interogării principale.
Q # 74) Ce vrei să spui prin optimizarea interogărilor?
Răspuns: Optimizarea interogării este un proces în care un sistem de baze de date compară diferite strategii de interogare și selectează interogarea cu cel mai mic cost.
Q # 75) Ce este Colationarea?
Răspuns: Set de reguli care definesc modul în care sunt stocate datele, modul în care pot fi tratate sensibilitatea la majuscule și minuscule și caracterul Kana etc.
Q # 76) Ce este integritatea referențială?
Răspuns: Set de reguli care restricționează valorile uneia sau mai multor coloane ale tabelelor pe baza valorilor cheii primare sau a cheii unice a tabelului de referință.
Q # 77) Care este funcția Case?
Răspuns: Case facilitează tipul de logică if-then-else în SQL. Evaluează o listă de condiții și returnează una dintre multiplele expresii de rezultate posibile.
Q # 78) Definiți un tabel temporar?
Răspuns: O tabelă temporară este o structură de stocare temporară pentru stocarea temporară a datelor.
Q # 79) Cum putem evita duplicarea înregistrărilor într-o interogare?
Răspuns: Prin utilizarea cuvântului cheie DISTINCT, duplicarea înregistrărilor într-o interogare poate fi evitată.
Q # 80) Explicați diferența dintre Redenumire și Alias?
Răspuns: Redenumirea este un nume permanent dat unei tabele sau coloane, în timp ce Alias este un nume temporar dat unei tabele sau coloane.
Q # 81) Ce este o vizualizare?
Răspuns: O vizualizare este un tabel virtual care conține date de la unul sau mai multe tabele. Vizualizările restricționează accesul la date al tabelului selectând numai valorile necesare și facilitează interogările complexe.
Q # 82) Care sunt avantajele Vizualizărilor?
Răspuns: Avantajele vizualizărilor sunt:
- Vizualizările restricționează accesul la date, deoarece vizualizarea poate afișa coloane selective din tabel.
- Vizualizările pot fi folosite pentru a face interogări simple pentru a extrage rezultatele interogărilor complicate. De exemplu, vizualizările pot fi utilizate pentru interogarea informațiilor din mai multe tabele fără ca utilizatorul să știe.
Q # 83) Enumerați diferitele privilegii pe care le poate acorda un utilizator altui utilizator?
Răspuns: SELECTAȚI, CONECTAȚI-VĂ, RESURSE.
Q # 84) Ce este schema?
Răspuns: O schemă este o colecție de obiecte de baze de date ale unui utilizator.
Q # 85) Ce este un tabel?
Răspuns: Un tabel este unitatea de bază de stocare a datelor în sistemul de gestionare a bazelor de date. Datele din tabel sunt stocate în rânduri și coloane.
Q # 86) Vizualizarea conține date?
Răspuns: Nu, Vizualizările sunt structuri virtuale.
Q # 87) Poate o vizualizare bazată pe o altă vizualizare?
Răspuns: Da, o vizualizare se bazează pe o altă vizualizare.
Q # 88) Care este diferența dintre clauza HAVING și clauza WHERE?
Răspuns: Ambele specifică o condiție de căutare, dar clauza Have este utilizată numai cu instrucțiunea SELECT și de obicei este utilizată cu clauza GROUP BY.
Dacă clauza GROUP BY nu este utilizată, atunci după ce s-a comportat doar ca clauza WHERE.
Q # 89) Care este diferența dintre tabelele temporare locale și globale?
Răspuns: Dacă este definită în interiorul unei instrucțiuni compuse, o tabelă temporară locală există doar pe durata acelei instrucțiuni, dar o tabelă temporară globală există permanent în DB, dar rândurile sale dispar când conexiunea este închisă.
Q # 90) Ce este CTE?
Răspuns: O expresie CTE sau tabelă comună este o expresie care conține un set de rezultate temporare care este definit într-o instrucțiune SQL.
Concluzie
SQL este o componentă esențială a sistemului de baze de date. A avea cunoștințe bine versate despre baza de date împreună cu concepte SQL va fi cu siguranță benefică pentru a sparge interviul pentru profilul în cauză.
În afară de unele concepte majore, există câteva fapte ascunse care rămân nevăzute și vă afectează performanța în interviu. În acest tutorial, am încercat să amintesc câteva dintre acele concepte care par mici, dar nu trebuie neglijate.
Sper că în acest articol veți găsi răspunsuri la cele mai frecvente întrebări de interviu SQL. Cunoașterea SQL este o necesitate pentru orice tester și acest articol vă va ajuta în pregătirea interviului.
Lecturi suplimentare => Totul despre testarea bazelor de date
Lectură recomandată
- Întrebări și răspunsuri la interviu
- Top Oracle Interview Questions: Oracle Basic, SQL, PL / SQL Questions
- 30 Cele mai importante întrebări și răspunsuri la interviu PL / SQL în 2021
- Întrebări și răspunsuri la interviuri de testare ETL
- Întrebări și răspunsuri de top pentru interviu Teradata
- Câteva întrebări și răspunsuri dificile de testare manuală
- Cele mai bune 25 de întrebări și răspunsuri de interviu pentru testarea agilă
- Întrebări de interviu cu răspunsuri Spock (Cele mai populare)