50 najčastejších otázok týkajúcich sa rozhovorov so serverom SQL Server Odpovede

Anonim

Stiahnite si PDF

1. Aké sú dva režimy overovania na serveri SQL Server?

Existujú dva režimy autentifikácie -

  • Režim Windows
  • Zmiešaný režim

Režimy je možné zmeniť výberom ponuky nástrojov vo vlastnostiach konfigurácie servera SQL Server a výberom stránky zabezpečenia.

2. Čo je to SQL Profiler?

SQL Profiler je nástroj, ktorý umožňuje správcovi systému monitorovať udalosti na serveri SQL. Používa sa hlavne na zachytenie a uloženie údajov o každej udalosti súboru alebo tabuľky na analýzu.

3. Čo je rekurzívna uložená procedúra?

SQL Server podporuje rekurzívnu uloženú procedúru, ktorá volá sama. Rekurzívnu uloženú procedúru možno definovať ako metódu riešenia problému, pri ktorej sa riešenie prijíma opakovane. Môže hniezdiť až na 32 úrovniach.

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. Aké sú rozdiely medzi miestnymi a globálnymi dočasnými tabuľkami?

  • Miestne dočasné tabuľky sú viditeľné, keď existuje pripojenie, a odstránia sa, keď je pripojenie ukončené.
CREATE TABLE #
  • Globálne dočasné tabuľky sú viditeľné pre všetkých používateľov a odstránia sa, keď sa uzavrie pripojenie, ktoré ich vytvorilo.
CREATE TABLE ##

5. Čo je to CHECK obmedzenie?

Na stĺpec v tabuľke je možné použiť obmedzenie CHECK, aby sa obmedzili hodnoty, ktoré je možné do stĺpca umiestniť. Obmedzením kontroly je vynútenie integrity.

6. Môžu byť servery SQL prepojené s inými servermi?

SQL server je možné pripojiť k akejkoľvek databáze, ktorá má poskytovateľa OLE-DB na vytvorenie odkazu. Príklad: Spoločnosť Oracle má poskytovateľa OLE-DB, ktorý má odkaz na spojenie so skupinou serverov SQL.

7. Čo je vedľajší dotaz a jeho vlastnosti?

Poddotaz je dotaz, ktorý je možné vnoriť do hlavného dotazu, ako sú výpisy na výber, aktualizáciu, vloženie alebo odstránenie. Toto je možné použiť, keď je povolený výraz. Vlastnosti čiastkového dotazu je možné definovať ako

  • Podotázka by nemala mať poradie podľa klauzúl
  • Podotázka by mala byť umiestnená na pravej strane operátora porovnania hlavného dotazu
  • Podotázka by mala byť uzavretá v zátvorkách, pretože je potrebné ju vykonať najskôr pred hlavným dotazom
  • Môže byť zahrnutých viac ako jeden čiastkový dopyt

8. Aké sú typy čiastkových dotazov?

Existujú tri typy čiastkových dotazov -

  • Podotázka s jedným riadkom, ktorá vracia iba jeden riadok
  • Viacriadkový podotázka, ktorá vracia viac riadkov
  • Podotázka s viacerými stĺpcami, ktorá vráti viac stĺpcov k hlavnému dotazu. S týmto výsledkom vedľajšieho dotazu sa vykoná hlavný dopyt.

9. Čo je agent servera SQL?

Agent servera SQL Server hrá zásadnú úlohu pri každodenných úlohách správcu servera SQL (DBA). Účelom serverového agenta je ľahko implementovať úlohy pomocou plánovacieho modulu, ktorý umožňuje našim úlohám bežať v naplánovanom dátume a čase.

10. Čo sú naplánované úlohy na serveri SQL Server?

Naplánované úlohy alebo úlohy sa používajú na automatizáciu procesov, ktoré je možné spustiť v naplánovanom čase v pravidelnom intervale. Toto plánovanie úloh pomáha znižovať ľudský zásah počas noci a kŕmenie je možné vykonať v konkrétnom čase. Užívateľ si môže tiež objednať úlohy, v ktorých má byť vygenerovaný.

11. Čo je COALESCE na serveri SQL Server?

COALESCE sa používa na vrátenie prvého nenulového výrazu v rámci argumentov. Táto funkcia sa používa na vrátenie nenulovej hodnoty z viac ako jedného stĺpca v argumentoch.

Príklad -

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

12. Ako je možné vybaviť výnimky v programovaní servera SQL Server?

Výnimky sa vybavujú pomocou konštrukcií TRY ---- CATCH a riešia sa tak, že sa do bloku TRY zapisujú skripty a v bloku CATCH sa spracovávajú chyby.

13. Aký je účel funkcie PODLAHA?

Funkcia FLOOR sa používa na zaokrúhlenie neceločíselnej hodnoty na predchádzajúce najmenšie celé číslo. Je uvedený príklad

FLOOR(6.7)

Vráti 6.

14. Môžeme skontrolovať zámky v databáze? Ak je to tak, ako môžeme vykonať túto kontrolu zámky?

Áno, môžeme skontrolovať zámky v databáze. To sa dá dosiahnuť použitím zabudovanej uloženej procedúry s názvom sp_lock.

15. Na čo sa používa funkcia SIGN?

Funkcia SIGN sa používa na určenie, či je zadané číslo kladné, záporné a nulové. Takto sa vráti +1, -1 alebo 0.

Príklad -

SIGN(-35) returns -1

16. Čo je spúšťač?

Spúšťače sa používajú na vykonanie dávky kódu SQL, keď sa v prípade tabuľky alebo tabuľky vykonajú príkazy na vloženie alebo aktualizáciu alebo odstránenie. Spúšťače sa automaticky spustia alebo vykonajú pri zmene údajov. Môže sa vykonať automaticky pri operáciách vloženia, odstránenia a aktualizácie.

17. Aké sú typy spúšťačov?

Existujú štyri typy spúšťačov a sú to:

  • Vložte
  • Odstrániť
  • Aktualizácia
  • Namiesto

18. Čo je stĺpec IDENTITY vo výpisoch vloženia?

Stĺpec IDENTITY sa v stĺpcoch tabuľky používa na to, aby sa tento stĺpec označil ako prírastkové číslo Auto alebo ako náhradný kľúč.

19. Čo je to Bulkcopy v SQL?

Hromadná tlač je nástroj používaný na kopírovanie veľkého množstva údajov z tabuliek. Tento nástroj sa používa na načítanie veľkého množstva údajov na serveri SQL Server.

20. Aký dotaz sa použije na získanie zoznamu spúšťačov v databáze?

Dotaz na získanie zoznamu spúšťačov v databáze -

Select * from sys.objects where

21. Aký je rozdiel medzi UNION a UNION ALL?

  • UNION: Na výber súvisiacich informácií z dvoch tabuliek sa používa príkaz UNION. Je to podobné ako príkaz JOIN.
  • UNION All: Príkaz UNION ALL sa rovná príkazu UNION, s tým rozdielom, že UNION ALL vyberie všetky hodnoty. Neodstráni duplicitné riadky, namiesto toho získa všetky riadky zo všetkých tabuliek.

22. Ako sú zastúpené globálne dočasné tabuľky a aký je ich rozsah?

Globálne dočasné tabuľky sú pred názvom tabuľky zastúpené znakom ##. Rozsah bude mimo relácie, zatiaľ čo miestne dočasné tabuľky sú v relácii. ID relácie nájdete pomocou adresy @@ SPID.

23. Aké sú rozdiely medzi uloženou procedúrou a dynamickým SQL?

Uložená procedúra je sada príkazov, ktorá je uložená v kompilovanej podobe. Dynamic SQL je sada príkazov, ktoré sa dynamicky konštruujú za behu modulu a nebudú uložené v databáze a jednoducho sa vykonávajú počas behu programu.

24. Čo je triedenie?

Zoradenie je definované na určenie poradia zoradenia v tabuľke. Existujú tri typy zoradenia -

  1. Rozlišujú sa veľké a malé písmená
  2. Nerozlišujú sa malé a veľké písmená
  3. Binárne

25. Ako môžeme zistiť počet záznamov v tabuľke?

Nasledujúce dotazy možno použiť na získanie počtu záznamov v tabuľke -

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

26. Aký príkaz sa použije na získanie verzie servera SQL Server?

Select SERVERPROPERTY('productversion')

sa používa na získanie verzie servera SQL Server.

27. Čo je príkaz UPDATE_STATISTICS?

Príkaz UPDATE_STATISTICS sa používa na aktualizáciu indexov v tabuľkách, ak je v indexoch veľké množstvo odstránení alebo úprav alebo hromadného kopírovania.

28. Na čo slúži vyhlásenie SET NOCOUNT ON / OFF?

Predvolene je NOCOUNT nastavený na OFF a vráti počet ovplyvnených záznamov vždy, keď sa vykoná príkaz. Pokiaľ užívateľ nechce zobraziť počet dotknutých záznamov, môže byť explicitne nastavený na ON- (SET NOCOUNT ON).

29. Ktorá tabuľka servera SQL sa používa na uchovávanie skriptov uložených procedúr?

Sys.SQL_Modules je tabuľka servera SQL používaná na ukladanie skriptu uloženej procedúry. Názov uloženej procedúry je uložený v tabuľke s názvom Sys.Procedures.

30. Čo sú to Magic Tables na serveri SQL Server?

Počas operácií DML, ako sú vloženie, odstránenie a aktualizácia, SQL Server vytvára magické tabuľky, ktoré uchovávajú hodnoty počas operácií DML. Tieto magické tabuľky sa používajú vo vnútri spúšťačov dátových transakcií.

31. Aký je rozdiel medzi SUBSTR a CHARINDEX na serveri SQL Server?

Funkcia SUBSTR sa používa na vrátenie konkrétnej časti reťazca v danom reťazci. Funkcia CHARINDEX poskytuje pozíciu znaku v danom zadanom reťazci.

SUBSTRING('Smiley',1,3)

Dáva výsledok ako Smi

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

Dáva 3 ako výsledok, keď sa objavím na 3. pozícii reťazca

32. Ako si môžete vytvoriť prihlásenie?

Na vytvorenie prihlásenia môžete použiť nasledujúci príkaz

CREATE LOGIN MyLogin WITH PASSWORD = '123';

33. Čo je operátor ISNULL ()?

Funkcia ISNULL sa používa na kontrolu, či je daná hodnota na serveri sql NULL alebo nie NULL. Táto funkcia tiež umožňuje nahradiť hodnotu NULL.

34. Na čo sa používa klauzula FOR?

Klauzula FOR sa používa hlavne pre možnosti XML a prehľadávača. Táto klauzula sa používa hlavne na zobrazenie výsledkov dotazu vo formáte XML alebo v prehliadači.

35. Aký bude maximálny počet indexov na tabuľku?

Pre SQL Server 2008 100 možno použiť index ako maximálny počet na tabuľku. 1 Na serveri SQL Server je možné použiť zoskupený index a 999 neuskupených indexov na tabuľku.

Ako maximálny počet na tabuľku je možné použiť 1 000 indexov. 1 Na serveri SQL Server je možné použiť zoskupený index a 999 neuskupených indexov na tabuľku.

1 Na serveri SQL Server je možné použiť zoskupený index a 999 neuskupených indexov na tabuľku.

36. Aký je rozdiel medzi COMMIT a ROLLBACK?

Každý príkaz medzi BEGIN a COMMIT sa pri vykonaní COMMIT stane trvalým pre databázu. Každý príkaz medzi BEGIN a ROOLBACK sa vráti do stavu, keď bol vykonaný ROLLBACK.

37. Aký je rozdiel medzi typmi varchar a nvarchar?

Varchar a nvarchar sú rovnaké, ale jediný rozdiel je v tom, že nvarhcar možno použiť na ukladanie znakov Unicode pre viac jazykov a v porovnaní s varchar tiež zaberá viac miesta.

38. Na čo slúži @@ SPID?

@@ SPID vráti ID relácie procesu aktuálneho používateľa.

39. Aký je príkaz použitý na prekompilovanie uloženej procedúry za behu?

Uloženú procedúru je možné vykonať pomocou kľúčového slova s ​​názvom RECOMPILE.

Príklad

Exe  WITH RECOMPILE

Alebo môžeme zahrnúť WITHRECOMPILE do samotnej uloženej procedúry.

40. Ako odstrániť duplicitné riadky na serveri SQL Server?

Duplicitné riadky je možné odstrániť pomocou funkcií CTE a ROW NUMER servera SQL Server.

41. Kde sú na serveri SQL Server uložené mená a heslá používateľov servera SQL Server?

Mená používateľov a heslá sú uložené v systémoch sys.server_principals a sys.sql_logins. Heslá sa ale neukladajú v normálnom texte.

42. Aký je rozdiel medzi GETDATE a SYSDATETIME?

Oba sú rovnaké, ale GETDATE môže poskytnúť čas až milisekundy a SYSDATETIME môže poskytnúť presnosť až nanosekundy. ČAS SYSDATE je presnejší ako GETDATE.

43. Ako je možné kopírovať údaje z jednej tabuľky do druhej?

VLOŽTE DO VÝBERU

Tento príkaz sa používa na vloženie údajov do už vytvorenej tabuľky.

VYBERTE DO

Tento príkaz sa používa na vytvorenie novej tabuľky a jej štruktúru a údaje je možné kopírovať z existujúcej tabuľky.

44. Čo je TABLESAMPLE?

TABLESAMPLE sa používa na náhodný výber vzorky riadkov, ktoré sú potrebné pre aplikáciu. Zobrané riadky vzoriek sú založené na percentách riadkov.

45. Aký príkaz sa používa pre používateľsky definované chybové správy?

RAISEERROR je príkaz, ktorý sa používa na generovanie a spustenie spracovania chýb pre danú reláciu. Tieto správy definované používateľom sú uložené v tabuľke sys.messages.

46. ​​Čo znamená XML datový typ?

Dátový typ XML sa používa na ukladanie dokumentov XML do databázy servera SQL Server. Stĺpce a premenné sa vytvárajú a ukladajú inštancie XML do databázy.

47. Čo je to CDC?

CDC sa označuje skratkou Change Data Capture, ktorá sa používa na zachytenie údajov, ktoré boli nedávno zmenené. Táto funkcia je k dispozícii v serveri SQL Server 2008.

48. Čo je to SQL injection?

Injekcia SQL je útokom používateľov so zlým úmyslom, pri ktorom je možné škodlivý kód vložiť do reťazcov, ktoré je možné odovzdať inštancii servera SQL na účely analýzy a vykonania. Pri vykonávaní všetkých syntakticky platných dotazov, ktoré prijíma, je potrebné skontrolovať všetky chyby zabezpečenia.

Šikovnými a skúsenými útočníkmi môžu manipulovať dokonca aj parametre.

49. Aké sú metódy používané na ochranu pred útokom SQL injection?

Nasledujú metódy používané na ochranu pred útokom SQL injection:

  • Použite parametre pre uložené procedúry
  • Filtrovanie vstupných parametrov
  • Používajte zhromažďovanie parametrov s dynamickým SQL
  • V obdobnej klauzule užívateľ unikne znakom

50. Čo je filtrovaný index?

Filtrovaný index sa používa na filtrovanie časti riadkov v tabuľke na zlepšenie výkonu dotazov, údržbu indexu a zníženie nákladov na indexové úložisko. Keď sa index vytvorí s klauzulou WHERE, potom sa nazýva Filtrovaný index