Cele mai importante 50 de întrebări de interviuri SQL Server & Răspunsuri

Anonim

Descărcați PDF

1. Care sunt cele două moduri de autentificare din SQL Server?

Există două moduri de autentificare -

  • Mod Windows
  • Mod mixt

Modurile pot fi schimbate selectând meniul de instrumente din proprietățile de configurare SQL Server și alegând pagina de securitate.

2. Ce este SQL Profiler?

SQL Profiler este un instrument care permite administratorului de sistem să monitorizeze evenimentele din serverul SQL. Acesta este utilizat în principal pentru a captura și a salva date despre fiecare eveniment al unui fișier sau al unui tabel pentru analiză.

3. Ce este procedura stocată recursiv?

SQL Server acceptă procedura stocată recursivă care apelează de la sine. Procedura stocată recursivă poate fi definită ca o metodă de rezolvare a problemelor în care soluția se ajunge repetitiv. Poate cuibări până la 32 de niveluri.

CREATE PROCEDURE [dbo].[Fact](@Number Integer,@RetVal Integer OUTPUT)ASDECLARE @In IntegerDECLARE @Out IntegerIF @Number != 1BEGINSELECT @In = @Number - 1EXEC Fact @In, @Out OUTPUT - Same stored procedure has been called again(Recursively)SELECT @RetVal = @Number * @OutENDELSEBEGINSELECT @RetVal = 1ENDRETURNGO

4. Care sunt diferențele dintre tabelele temporare locale și globale?

  • Tabelele temporare locale sunt vizibile atunci când există o conexiune și sunt șterse când conexiunea este închisă.
CREATE TABLE #
  • Tabelele temporare globale sunt vizibile pentru toți utilizatorii și sunt șterse când conexiunea care a creat-o este închisă.
CREATE TABLE ##

5. Ce este constrângerea CHECK?

O constrângere CHECK poate fi aplicată unei coloane dintr-un tabel pentru a limita valorile care pot fi plasate într-o coloană. Verificarea constrângerii este de a impune integritatea.

6. Serverele SQL pot fi conectate la alte servere?

Serverul SQL poate fi conectat la orice bază de date care are furnizor OLE-DB pentru a da un link. Exemplu: Oracle are furnizor OLE-DB care are legătură pentru conectarea cu grupul de servere SQL.

7. Ce este interogarea secundară și proprietățile sale?

O interogare secundară este o interogare care poate fi imbricată în interiorul unei interogări principale precum instrucțiunile Select, Update, Insert sau Delete. Aceasta poate fi utilizată atunci când expresia este permisă. Proprietățile subinterogării pot fi definite ca

  • O interogare secundară nu ar trebui să aibă ordine prin clauză
  • O interogare secundară trebuie plasată în partea dreaptă a operatorului de comparație a interogării principale
  • O interogare secundară ar trebui să fie inclusă între paranteze, deoarece trebuie executată mai întâi înainte de interogarea principală
  • Pot fi incluse mai multe subinterogări

8. Care sunt tipurile de subinterogare?

Există trei tipuri de interogări secundare -

  • Subinterogare cu un singur rând care returnează un singur rând
  • Subinterogare pe mai multe rânduri care returnează mai multe rânduri
  • Subinterogare cu coloane multiple care returnează mai multe coloane la interogarea principală. Cu acel rezultat al interogării secundare, interogarea principală va fi executată.

9. Ce este agentul server SQL?

Agentul SQL Server joacă un rol vital în sarcinile zilnice ale administratorului de server SQL (DBA). Scopul agentului server este de a implementa sarcinile cu ușurință cu motorul planificatorului, care permite lucrărilor noastre să ruleze la data și ora programate.

10. Care sunt sarcinile programate în SQL Server?

Sarcinile sau joburile programate sunt utilizate pentru automatizarea proceselor care pot fi rulate la o oră programată la un interval regulat. Această programare a sarcinilor ajută la reducerea intervenției umane în timpul nopții, iar hrana se poate face la un anumit moment. Utilizatorul poate comanda, de asemenea, sarcinile în care trebuie generat.

11. Ce este COALESCE în SQL Server?

COALESCE este folosit pentru a returna prima expresie non-nulă în cadrul argumentelor. Această funcție este utilizată pentru a returna un non-nul din mai multe coloane din argumente.

Exemplu -

Select COALESCE(empno, empname, salary) from employee;

12. Cum pot fi tratate excepțiile în programarea SQL Server?

Excepțiile sunt tratate utilizând construcții TRY ---- CATCH și sunt gestionate prin scrierea de scripturi în blocul TRY și gestionarea erorilor în blocul CATCH.

13. Care este scopul funcției FLOOR?

Funcția FLOOR este utilizată pentru rotunjirea unei valori care nu sunt întregi la cel mai mic întreg anterior. Este dat un exemplu

FLOOR(6.7)

Returnează 6.

14. Putem verifica blocările în baza de date? Dacă da, cum putem face această verificare a blocării?

Da, putem verifica blocările din baza de date. Poate fi realizat utilizând procedura stocată încorporată numită sp_lock.

15. La ce folosește funcția SIGN?

Funcția SIGN este utilizată pentru a determina dacă numărul specificat este pozitiv, negativ și zero. Aceasta va reveni la + 1, -1 sau 0.

Exemplu -

SIGN(-35) returns -1

16. Ce este un declanșator?

Declanșatoarele sunt utilizate pentru a executa un lot de cod SQL atunci când comenzile de inserare sau actualizare sau ștergere sunt executate pe un tabel. Declanșatoarele sunt declanșate sau executate automat atunci când datele sunt modificate. Poate fi executat automat la operațiile de inserare, ștergere și actualizare.

17. Care sunt tipurile de declanșatoare?

Există patru tipuri de declanșatoare și acestea sunt:

  • Introduce
  • Șterge
  • Actualizați
  • In loc de

18. Ce este o coloană IDENTITY în declarațiile insert?

Coloana IDENTITATE este utilizată în coloanele tabelului pentru a face acea coloană ca număr incremental automat sau o cheie surogat.

19. Ce este Bulkcopy în SQL?

Bulkcopy este un instrument utilizat pentru a copia o cantitate mare de date din tabele. Acest instrument este utilizat pentru a încărca o cantitate mare de date în SQL Server.

20. Ce va fi interogarea utilizată pentru a obține lista declanșatoarelor dintr-o bază de date?

Interogare pentru a obține lista declanșatoarelor din baza de date-

Select * from sys.objects where

21. Care este diferența dintre UNION și UNION ALL?

  • UNION: Pentru a selecta informațiile conexe din două tabele se utilizează comanda UNION. Este similar cu comanda JOIN.
  • UNION All: comanda UNION ALL este egală cu comanda UNION, cu excepția faptului că UNION ALL selectează toate valorile. Nu va elimina rândurile duplicate, ci va prelua toate rândurile din toate tabelele.

22. Cum sunt reprezentate tabelele temporare globale și domeniul său de aplicare?

Tabelele temporare globale sunt reprezentate cu ## înainte de numele tabelei. Domeniul de aplicare va fi exteriorul sesiunii, în timp ce tabelele temporare locale se află în interiorul sesiunii. ID-ul sesiunii poate fi găsit folosind @@ SPID.

23. Care sunt diferențele dintre procedura stocată și SQL-ul dinamic?

Procedura stocată este un set de instrucțiuni stocate într-o formă compilată. SQL dinamic este un set de instrucțiuni care sunt construite dinamic în timpul rulării și nu vor fi stocate într-o bază de date și se execută pur și simplu în timpul rulării.

24. Ce este Colationarea?

Colaționarea este definită pentru a specifica ordinea de sortare într-un tabel. Există trei tipuri de ordine de sortare -

  1. Caz sensibil
  2. Insensibil la majuscule
  3. Binar

25. Cum putem calcula numărul de înregistrări dintr-un tabel?

Următoarele sunt interogările care pot fi utilizate pentru a obține numărul de înregistrări dintr-un tabel -

Select * from 
 Select count(*) from 
 Select rows from sysindexes where id=OBJECT_ID(tablename) and indid<2

26. Care este comanda utilizată pentru a obține versiunea SQL Server?

Select SERVERPROPERTY('productversion')

este folosit pentru a obține versiunea SQL Server.

27. Ce este comanda UPDATE_STATISTICS?

Comanda UPDATE_STATISTICS este utilizată pentru a actualiza indexurile de pe tabele atunci când există o cantitate mare de ștergeri sau modificări sau au apărut copii în bloc în indexuri.

28. La ce folosește declarația SET NOCOUNT ON / OFF?

În mod implicit, NOCOUNT este setat la OFF și returnează numărul de înregistrări afectate ori de câte ori comanda este executată. Dacă utilizatorul nu dorește să afișeze numărul de înregistrări afectate, acesta poate fi setat în mod explicit la ON- (SET NOCOUNT ON).

29. Ce tabel server SQL este utilizat pentru a păstra scripturile de proceduri stocate?

Sys.SQL_Modules este un tabel SQL Server utilizat pentru a stoca scriptul procedurii stocate. Numele procedurii stocate este salvat în tabelul numit Sys.Procedures.

30. Ce sunt tabelele magice din SQL Server?

În timpul operațiilor DML, cum ar fi Insert, Delete și Update, SQL Server creează tabele magice pentru a păstra valorile în timpul operațiilor DML. Aceste tabele magice sunt utilizate în interiorul declanșatoarelor pentru tranzacția de date.

31. Care este diferența dintre SUBSTR și CHARINDEX în SQL Server?

Funcția SUBSTR este utilizată pentru a returna porțiuni specifice de șir într-un șir dat. Dar, funcția CHARINDEX oferă poziția caracterului într-un șir specificat.

SUBSTRING('Smiley',1,3)

Dă rezultat ca Smi

CHARINDEX('i', 'Smiley',1)

Dă 3 ca rezultat pe măsură ce apare în poziția a 3 - a a șirului

32. Cum puteți crea o autentificare?

Puteți utiliza următoarea comandă pentru a crea o autentificare

CREATE LOGIN MyLogin WITH PASSWORD = '123';

33. Ce este operatorul ISNULL ()?

Funcția ISNULL este utilizată pentru a verifica dacă valoarea dată este NULL sau nu NULL în serverul sql. Această funcție prevede, de asemenea, înlocuirea unei valori cu NULL.

34. La ce folosește clauza FOR?

Clauza FOR este utilizată în principal pentru opțiunile XML și browser. Această clauză este utilizată în principal pentru a afișa rezultatele interogării în format XML sau în browser.

35. Care va fi numărul maxim de indici pe tabel?

Pentru SQL Server 2008 100 Indexul poate fi utilizat ca număr maxim pe tabel. 1 Index clusterizat și 999 indexuri non-clusterizați pe tabelă pot fi folosiți în SQL Server.

1000 Index poate fi utilizat ca număr maxim pe tabel. 1 Index clusterizat și 999 indexuri non-clusterizați pe tabelă pot fi folosiți în SQL Server.

1 Index clusterizat și 999 indexuri non-clusterizate pe tabelă pot fi utilizate în SQL Server.

36. Care este diferența dintre COMMIT și ROLLBACK?

Fiecare declarație între BEGIN și COMMIT devine persistentă în baza de date atunci când este executat COMMIT. Fiecare declarație între BEGIN și ROOLBACK este readusă la starea când ROLLBACK a fost executat.

37. Care este diferența dintre tipurile de varchar și nvarchar?

Varchar și nvarchar sunt aceleași, dar singura diferență este că nvarhcar poate fi utilizat pentru a stoca caractere Unicode pentru mai multe limbi și, de asemenea, necesită mai mult spațiu în comparație cu varchar.

38. La ce folosește @@ SPID?

A @@ SPID returnează ID-ul sesiunii procesului curent al utilizatorului.

39. Care este comanda utilizată pentru a recompila procedura stocată în timpul rulării?

Procedura stocată poate fi executată cu ajutorul cuvântului cheie numit RECOMPILE.

Exemplu

Exe  WITH RECOMPILE

Sau putem include WITHRECOMPILE în procedura stocată în sine.

40. Cum se șterg rânduri duplicate din SQL Server?

Rândurile duplicate pot fi șterse utilizând caracteristica CTE și ROW NUMER din SQL Server.

41. Unde sunt stocate numele de utilizator și parolele SQL Server în SQL Server?

Numele utilizatorului și parolele sunt stocate în sys.server_principals și sys.sql_logins. Dar parolele nu sunt stocate în text normal.

42. Care este diferența dintre GETDATE și SYSDATETIME?

Ambele sunt aceleași, dar GETDATE poate da timp până la milisecunde, iar SYSDATETIME poate da precizie până la nanosecunde. SYSDATE TIME este mai precis decât GETDATE.

43. Cum pot fi copiate datele dintr-un tabel în alt tabel?

INSERAȚI ÎN SELECT

Această comandă este utilizată pentru a insera date într-un tabel deja creat.

Selectați în

Această comandă este utilizată pentru a crea un nou tabel, iar structura și datele sale pot fi copiate din tabelul existent.

44. Ce este TABLESAMPLE?

TABLESAMPLE este utilizat pentru a extrage în mod aleatoriu eșantion de rânduri care sunt toate necesare pentru aplicație. Eșantionul rândurilor luate se bazează pe procentul de rânduri.

45. Ce comandă este utilizată pentru mesajele de eroare definite de utilizator?

RAISEERROR este comanda utilizată pentru a genera și iniția procesarea erorilor pentru o sesiune dată. Aceste mesaje definite de utilizator sunt stocate în tabelul sys.messages.

46. ​​Ce înseamnă prin tip de date XML?

Tipul de date XML este utilizat pentru a stoca documente XML în baza de date SQL Server. Coloanele și variabilele sunt create și stochează instanțe XML în baza de date.

47. Ce este CDC?

CDC este abreviat ca Change Data Capture care este utilizat pentru a captura datele care au fost modificate recent. Această caracteristică este prezentă în SQL Server 2008.

48. Ce este injecția SQL?

Injecția SQL este un atac al utilizatorilor rău intenționați în care codul rău intenționat poate fi inserat în șiruri care pot fi transmise către o instanță a serverului SQL pentru analiză și execuție. Toate declarațiile trebuie verificate pentru vulnerabilități, deoarece execută toate interogările valide din punct de vedere sintactic pe care le primește.

Chiar și parametrii pot fi manipulați de atacatorii calificați și experimentați.

49. Care sunt metodele utilizate pentru a proteja împotriva atacului de injecție SQL?

Următoarele sunt metodele utilizate pentru a proteja împotriva atacului de injecție SQL:

  • Utilizați parametrii pentru procedurile stocate
  • Filtrarea parametrilor de intrare
  • Utilizați colecția de parametri cu Dynamic SQL
  • În aceeași clauză, utilizatorul scapă de caractere

50. Ce este indexul filtrat?

Indexul filtrat este utilizat pentru a filtra unele porțiuni de rânduri dintr-un tabel pentru a îmbunătăți performanța interogării, întreținerea indexului și reduce costurile de stocare a indexului. Când indexul este creat cu clauza WHERE, atunci se numește Index filtrat