SQL Server, de la zero Lecția 2 / 40

Instalarea SQL Server și conectarea cu SSMS

Developer Edition pe Windows, Docker pe Mac sau Linux și cum alegi între SSMS și Azure Data Studio. Setup-ul de 20 de minute pe care-l vei folosi tot restul cursului.

Cea mai rapidă cale să nu ajungi nicăieri cu SQL Server e să sari peste instalare. Poți citi zece mii de cuvinte despre indexuri, dar dacă nu poți rula SELECT 1 pe propria mașină, nimic nu se prinde. Așa că astăzi instalăm SQL Server Developer Edition, alegem un client și verificăm că totul funcționează.

Lecția asta e singura din curs unde instrucțiunile se ramifică după sistemul de operare. Alege-ți platforma, urmează pașii, și la final vei avea o instanță SQL Server care rulează și un client care poate vorbi cu ea. Total: aproximativ 20 de minute dacă internetul nu se bosumflă.

O busolă rapidă

Ai nevoie de două lucruri: un server (motorul care stochează și rulează query-uri) și un client (programul în care scrii query-urile). Instalăm întâi serverul, apoi clientul.

  • Opțiuni de server: SQL Server Developer Edition pe Windows, sau SQL Server în Docker pe orice OS, sau Azure SQL Database în cloud.
  • Opțiuni de client: SSMS (doar Windows, full-featured), Azure Data Studio (orice OS, modern și ușor), VS Code cu extensia mssql (orice OS, cel mai ușor dintre toate).

Recomandările mele, într-o singură răsuflare: dacă ești pe Windows, instalează Developer Edition nativ și folosește SSMS. Dacă ești pe Mac sau Linux, rulează SQL Server în Docker și folosește Azure Data Studio. Dacă vrei doar un setup exclusiv cloud, creează un Azure SQL Database pe nivelul gratuit și conectează-te din Azure Data Studio. Oricare din aceste trei va merge pentru tot cursul.

Traseul A — Windows: Developer Edition + SSMS

Dacă ești pe Windows 10 sau 11, ăsta e drumul prietenos.

Pasul 1: Descarcă Developer Edition

Mergi pe microsoft.com/sql-server/sql-server-downloads și click pe „Download now” sub Developer. Vei primi un installer micuț numit cam așa: SQL2022-SSEI-Dev.exe. Rulează-l.

Pasul 2: Instalare Basic

Când installer-ul te întreabă de tipul instalării, alege Basic. „Custom” e pentru oamenii care deja știu exact ce funcționalități vor. „Basic” instalează motorul cu setări implicite rezonabile, ceea ce e exact ce vrei.

Acceptă acordul de licență. Alege o locație pentru instalare (cea implicită e ok). Click Install. Du-te să-ți faci o cafea. Când te întorci, vei vedea un ecran de succes cu:

  • Instance name: MSSQLSERVER (e instanța implicită)
  • Connection string: Server=localhost;Database=master;Trusted_Connection=True;
  • Versiunea SQL Server: ceva de genul Microsoft SQL Server 2022 (16.x)

Ăsta e serverul tău. Rulează. Ascultă. Bine.

Dacă la un moment dat installer-ul zice „a previous installation has started but not completed, and you need to reboot” — restartează. Mesajul ăsta nu e o sugestie. SQL Server poartă pică până-și primește restartul.

Pasul 3: Instalează SSMS

SSMS vine de la SQL Server Management Studio. E un download separat de motor. Aceeași pagină, scroll mai jos. Click pe „Download SSMS” sau direct la aka.ms/ssmsfullsetup. Rulează installer-ul. Click next, next, gata.

Pasul 4: Conectează-te

Lansează SSMS. Apare dialogul „Connect to Server”. Completează:

  • Server type: Database Engine
  • Server name: localhost (sau . sau .\MSSQLSERVER)
  • Authentication: Windows Authentication (fără username/parolă dacă ai instalat ca tine însuți)

Click Connect. Dacă Object Explorer-ul din stânga se umple cu un arbore care începe cu numele serverului tău, ești gata. Ai SQL Server pornit și SSMS conectat.

Pasul 5: Rulează primul tău query

Click pe butonul „New Query” din toolbar. Se deschide un tab. Scrie:

SELECT @@VERSION;

Apasă F5 ca să rulezi. Apare o grilă de rezultate jos cu un șir lung care începe cu Microsoft SQL Server 2022 (RTM) sau ceva similar. Felicitări. Rulezi acum SQL Server.

Traseul B — Mac sau Linux: Docker + Azure Data Studio

SQL Server nu se instalează nativ pe Mac. Pe Linux poți instala nativ, dar Docker e mai ușor și-ți dă același mediu ca toți ceilalți. Traseul ăsta merge identic pe ambele.

Pasul 1: Instalează Docker Desktop

Ia Docker Desktop de pe docker.com dacă nu-l ai deja. Pornește-l. Acceptă setările implicite. Așteaptă ca iconița balenei din menu bar să nu mai sară.

Pasul 2: Pull și rulează imaginea SQL Server

Deschide un terminal și rulează:

docker pull mcr.microsoft.com/mssql/server:2022-latest

docker run -e "ACCEPT_EULA=Y" \
           -e "MSSQL_SA_PASSWORD=YourStrong!Passw0rd" \
           -p 1433:1433 \
           --name sqlserver \
           -d mcr.microsoft.com/mssql/server:2022-latest

Atât. Acum ai un container SQL Server 2022 care rulează în fundal, ascultând pe portul 1433 al localhost-ului tău. Parola SA („system administrator”) e YourStrong!Passw0rd — schimb-o cu ceva ce-ți vei aminti, dar trebuie să respecte politica de parole a SQL Server (cel puțin 8 caractere, un mix de majuscule, minuscule, cifre, simboluri). Parolele prea slabe eșuează silențios și vei petrece 20 de minute întrebându-te de ce nu te poți conecta.

Verifică că containerul rulează:

docker ps

Ar trebui să vezi o linie care menționează sqlserver cu un status Up X seconds.

Pasul 3: Instalează Azure Data Studio

Descarcă Azure Data Studio de pe azure.microsoft.com/products/data-studio. E un editor gratuit, bazat pe Electron, în stilul VS Code, pentru SQL Server. Merge pe Mac, Linux și Windows. Instalează-l în mod normal.

Pasul 4: Conectează-te

Lansează Azure Data Studio. Click pe „New Connection” în sidebar. Completează:

  • Server: localhost,1433
  • Authentication type: SQL Login
  • User name: sa
  • Password: YourStrong!Passw0rd (sau ce-ai setat tu)
  • Database: lasă gol (ne conectăm la master implicit)
  • Name (optional): „Local Docker SQL Server”

Click Connect. Ar trebui să vezi un dashboard „Home” care se umple cu un badge verde „Connected”.

Pasul 5: Rulează primul tău query

Click „New Query.” Se deschide un tab. Scrie:

SELECT @@VERSION;

Apasă F5 sau click pe butonul Run. Apare un rezultat care arată Microsoft SQL Server 2022 (RTM-CU...) și un șir Linux. E de așteptat — containerul rulează SQL Server pe Linux. Același motor, host diferit.

Traseul C — Cloud: Azure SQL Database nivel gratuit

Dacă preferi să nu instalezi nimic local, Microsoft are un Azure SQL Database pe nivelul gratuit care e cu adevărat gratuit-pentru-totdeauna (până la 100.000 vCore-secunde pe lună, mult mai mult decât vei folosi pentru cursul ăsta). E o opțiune decentă dacă laptopul tău e vechi sau vrei să exersezi conectarea la o bază de date din cloud.

Schiță rapidă: creează un cont Azure gratuit (necesită card de credit pentru identitate, fără taxe pentru utilizarea pe nivel gratuit), mergi la Azure Portal, caută „Azure SQL”, creează o bază de date nouă, alege „Free” ca nivel de preț, notează numele serverului și credențialele admin, apoi conectează-te cu Azure Data Studio. Asta durează cam 15 minute dacă e prima dată și 5 minute dacă ai mai folosit Azure.

Nu trec aici prin UI-ul Azure pas-cu-pas pentru că Microsoft îl schimbă cam la fiecare șase luni și orice screenshot pe care l-aș include va fi greșit până în februarie. Dar dacă cauți „Azure SQL Database free tier quickstart”, documentația curentă te va ghida curat.

Pentru restul cursului voi presupune că ai ceva SQL Server cu care să vorbești și voi semnala când o funcționalitate nu există specific pe Azure SQL Database (câteva lecții despre SQL Agent și First Responder Kit cad în categoria asta).

SSMS vs Azure Data Studio, singura alegere reală

Doi clienți, ambii gratuiți, ambii de la Microsoft. Pe care să-l folosești?

SSMS, dacă ești pe Windows, e încă cea mai puternică unealtă pentru lucrul cu SQL Server. Object Explorer complet cu fiecare acțiune posibilă pe right-click. Diagrame de bază de date. Designer de planuri de mentenanță. Profiler. Activity Monitor. Integrare SSRS și SSIS. Inspecție profundă a planurilor de execuție. Dacă ai de gând să fii DBA full-time, vei locui în SSMS.

Azure Data Studio, pe de altă parte, e editorul cross-platform modern. Arată și se comportă ca VS Code. Are taburi, teme, integrare cu git, terminal încorporat, notebook-uri în stil Jupyter și un ecosistem de pluginuri. Pentru scrierea cotidiană de query-uri și DBA ușor, e mai plăcut decât SSMS. Îi lipsesc niște unelte profunde de DBA (fără profiler, fără designer de planuri de mentenanță), dar nu sunt lucruri care-ți vor lipsi până târziu în cariera de DBA.

Sfatul meu: dacă ești pe Windows, instalează-le pe ambele și folosește-l pe care ți se potrivește în starea actuală. Pentru curs, majoritatea screenshot-urilor vor fi din SSMS pentru că asta arată majoritatea tutorialelor SQL Server, dar fiecare exemplu de cod merge în oricare dintre ele.

Baza de date demo AdventureWorks

La un moment dat în următoarea lecție sau două vom dori o bază de date pre-populată cu care să ne jucăm. Cele două canonice sunt AdventureWorks (o bază OLTP de magazin de biciclete) și Northwind (o companie comercială străveche, mult mai mică). Vom folosi AdventureWorks.

Ca s-o instalezi: mergi la github.com/Microsoft/sql-server-samples, descarcă fișierul AdventureWorks2022.bak, pune-l într-un folder pe care SQL Server îl poate citi, și fă restore:

RESTORE DATABASE AdventureWorks2022
FROM DISK = N'C:\path\to\AdventureWorks2022.bak'
WITH MOVE N'AdventureWorks2022'
        TO N'C:\SQLData\AdventureWorks2022.mdf',
     MOVE N'AdventureWorks2022_log'
        TO N'C:\SQLData\AdventureWorks2022_log.ldf',
     REPLACE;

Dacă rulezi Docker, copiază fișierul .bak în container întâi cu docker cp și ajustează căile la ceva sub /var/opt/mssql/data/. Vom acoperi backup și restore ca lumea în lecția 31; pentru moment, comanda asta e suficientă.

Verificări de sănătate: cele patru query-uri de rulat acum

Odată conectat, lipește aceste patru query-uri într-o fereastră nouă și rulează-le. Dacă toate patru returnează rezultate rezonabile, instalarea ta e gata pentru restul cursului.

-- 1. Versiune și ediție
SELECT @@VERSION AS version_string,
       SERVERPROPERTY('Edition')          AS edition,
       SERVERPROPERTY('ProductVersion')   AS product_version,
       SERVERPROPERTY('ProductLevel')     AS product_level;

-- 2. Listează bazele de date de sistem
SELECT name, database_id, create_date
FROM sys.databases
ORDER BY database_id;

-- 3. Cine sunt, ce sesiune sunt?
SELECT SUSER_SNAME()    AS login_name,
       USER_NAME()      AS user_name,
       @@SPID           AS session_id,
       HOST_NAME()      AS client_host;

-- 4. Un mic query de calcul
SELECT 1 + 1 AS two_plus_two,
       GETDATE() AS server_time;

Query 1 îți spune cu ce vorbești. Query 2 ar trebui să-ți arate master, tempdb, model și msdb cel puțin — cele patru baze de date de sistem de care SQL Server are nevoie ca să ruleze. Query 3 îți spune cine crede SQL Server că ești. Query 4 e testul de fum. Dacă returnează 2 și data de azi, ești bine.

Ce faci dacă ceva n-a mers?

Top trei erori la prima instalare:

  • „Cannot connect to server, error 40.” Serviciul SQL Server nu rulează, sau TCP/IP nu e activat. Deschide SQL Server Configuration Manager (Windows), expandează „SQL Server Network Configuration” → „Protocols for MSSQLSERVER” și asigură-te că TCP/IP e Enabled. Restartează serviciul SQL Server.
  • „Login failed for user ‘sa’.” Pe instalări locale Windows, login-ul SA e dezactivat implicit și ar trebui să folosești Windows Authentication. Pe Docker, verifică de două ori că folosești parola SA pe care ai setat-o în comanda docker run.
  • „The password didn’t meet complexity requirements.” Fă-ți parola de cel puțin 8 caractere, cu cel puțin o majusculă, o minusculă, o cifră și un simbol. SQL Server respinge silențios parolele mai slabe și mesajul de eroare nu e mereu de ajutor.

Dacă chiar ești blocat, docker logs sqlserver (Docker) sau SQL Server Configuration Manager (Windows) îți va spune ce-a mers prost. De nouă ori din zece e una din cele de mai sus.

Lecția următoare: baze de date, scheme, tabele — păpușile rusești. Adu-ți baza de date demo, cafeaua și curiozitatea.

Caută