Începând cu SQL Server: 1. Simple SELECT Queries

În această serie de lecții veți învăța cum să interogați Microsoft SQL Server folosind instrucțiunea SQL SELECT. După ce ați citit această lecție veți fi capabil să:

  • Identificați toate tabelele dintr-o bază de date SQL Server SSMS (SQL Server Management Studio).
  • Înțelegeți cum să listați coloanele unei tabele.
  • Pentru a vizualiza coloanele, pentru a crea rezultate text și matematice și pentru a seta valori distincte, utilizați instrucțiunea SQL SELECT.
  • Învățați câteva tehnici de depanare a comenzilor și de reparare a greșelilor.

Important! Vă rugăm să urmați exemplele din baza de date și să le faceți. Dacă nu ați făcut-o deja, înscrieți-vă la Ghidul meu de inițiere în SQL Server. Puteți primi îndrumări privind descărcarea software-ului gratuit și a bazei de date de exemplu.

Înțelegerea bazei dvs. de date

O simplă instrucțiune select este formată din două părți. Prima parte descrie ce coloane dorim să vizualizăm și a doua parte care este tabela pe care o vizualizăm. O instrucțiune select arată astfel:

SELECT LastName FROM Person.Person

În acest exemplu, LastName este coloana și Person este tabelul. Coloanele vin după cuvântul cheie SELECT; în timp ce tabelul este precedat de FROM.

Denumirea tabelelor

S-ar putea să vă întrebați de ce tabelul Person este denumit Person. Person în declarația de mai sus. Acest lucru are legătură cu modul în care sunt organizate obiectele pe server. Baza de date poate fi privită ca o serie de containere imbricate. Containerele sunt:

  • Server/Instanța – Instanța de SQL Server care rulează pe calculator.
  • Baze de date – Una sau mai multe baze de date create pe instanță.
  • Scheme – O modalitate de a grupa logic tabelele și alte obiecte ale bazei de date.

Numele complet calificat pentru o tabelă este ….. Deci, dacă am vrea să fim cu adevărat expliciți, am putea folosi ceva de genul

SELECT LastName FROM ...

pentru a face o interogare. Din fericire, de obicei scriem interogări în contextul unei singure baze de date, așa că trebuie doar să specificăm Schema și TableName, astfel:

SELECT LastName FROM Person.Person

Dar cum rămâne cu parantezele ? Acestea sunt folosite în cazul în care tabelul dvs. are un spațiu în nume. Deci

SELECT Last NameFROM Person.Person Table

ar da eroare

SELECT FROM Person.

Este în regulă. Sfatul meu? Dacă ajungeți să vă denumiți propriile tabele, nu folosiți spații, parantezele sunt urâte! Dacă trebuie, faceți ca cei de la Oracle și folosiți underscore. Person_Table este mult mai ușor de citit decât , personal prefer PersonTable.

Utilizarea Object Explorer

Pentru a scrie interogări trebuie să știți ce tabele și coloane sunt disponibile în bazele de date. Atunci când folosiți SSMS (SQL Server Management Studio) puteți pur și simplu să extindeți folderul Tables al bazei de date pentru a lista toate tabelele care se găsesc în baza dvs. de date. Odată ce găsiți o tabelă despre care doriți să aflați mai multe, dați pur și simplu clic pe numele tabelei pentru a o extinde, iar apoi pe folderul columns pentru a lista toate coloanele.

Executarea interogărilor în SSMS

Înainte de a merge prea departe, permiteți-mi să vă arăt cum să executați o interogare în SSMS. De fapt, este foarte ușor. După ce ați lansat SQL Server Management Studio, veți dori să vă selectați baza de date. Apoi faceți clic pe butonul New Query (Interogare nouă) situat în bara de instrumente de sus. Acest lucru afișează o fereastră de interogare în dreapta. Puteți tasta orice doriți în această fereastră, deoarece este practic un editor de text. Tăiați și lipiți sau tastați o instrucțiune SQL, apoi faceți clic pe Executare pentru a rula instrucțiunea. Rezultatele sunt afișate în partea de jos a ferestrei, iar orice mesaj, cum ar fi erorile, se afișează în fila messages.

Select Multiple Columns

Pentru a selecta mai multe coloane, trebuie doar să le separați cu o virgulă. De exemplu,

SELECT FirstName, LastNameFROM Person.Person

reprezintă ca rezultat atât numele cât și prenumele. În cazul în care vă întrebați că puteți amesteca cazurile atunci când scrieți interogări. Adică

SELECT FirstName, LastNameFROM Person.Person

Funcționează la fel de bine ca

select FirstName, LastNamefrom Person.Person

Tip! O convenție comună este de a scrie cu majuscule toate cuvintele cheie. Unii DBA consideră că este mai ușor de citit comenzile scrise în acest fel. Personal, eu nu fac acest lucru, dar pentru acest blog VOI ÎNCERCA. 🙂

Renumiți coloanele SQL

Puteți redenumi coloanele care rezultă din instrucțiunile select. Pentru a face acest lucru folosiți instrucțiunea AS astfel:

SELECT LastName as SirNameFROM Person.Person

Aceasta afișează rezultatul ca „SirName” în loc de „LastName”. Aceasta este o caracteristică plăcută din punct de vedere al vanității, dar este utilă și atunci când dorim să returnăm un rezultat de calcul și trebuie să îi dăm un nume. De exemplu, să presupunem că doriți să returnați LastName cu majuscule. Ați putea scrie

SELECT UPPER(LastName) AS SirNameFROM Customers

UPPER este cunoscută ca o funcție. SQL Server are multe funcții pe care le puteți utiliza pentru a efectua multe tipuri de calcule. Le vom examina pe toate mai târziu, dar deocamdată, să știți că puteți înșira mai multe funcții împreună pentru a crea o expresie complexă pentru a ieși datele în modul în care aveți nevoie să faceți acest lucru.

Expresii complexe de coloane

Tabela noastră de angajați conține câmpuri separate pentru nume și prenume. Să presupunem că departamentul de resurse umane are nevoie să vadă un nume complet cu majuscule. Cum ați putea face acest lucru? Simplu! Ați putea scrie

SELECT UPPER(FirstName) + ' ' + UPPER(LastName) AS FullNameFROM Person.Person

Această instrucțiune poate părea complicată, dar odată ce o descompunem, veți vedea că este alcătuită dintr-o grămadă de elemente simple.

  • După cum tocmai ați învățat, UPPER este folosit pentru a returna majuscula unei coloane.
  • Cel cu + îi spune lui SQL să combine două valori împreună.

Ceea ce se află între ghilimele simple (‘) este literalmente afișat ca atare. În cazul nostru, ‘ ‘ înseamnă să se afișeze un singur spațiu. Dacă citiți expresia noastră, în limba engleză, ar suna astfel: „Luați majuscula de la FirstName combinați-o cu un spațiu și apoi adăugați-i majuscula de la LastName.”

Faceți matematică cu SQL!

De asemenea, puteți face ca SQL să facă trucuri matematice pentru dumneavoastră. Poate face niște aritmetică destul de complicată dacă îi permiteți să facă acest lucru. Pentru astăzi, vă voi arăta cum să înmulțiți două numere, dar puteți la fel de ușor să adăugați, să scădeți sau să împărțiți. Mai târziu vom face lucrurile mai complicate, astfel încât să vă puteți retrăi zilele de Algebră II. 🙂 Iată câțiva operatori matematici obișnuiți pe care îi puteți folosi în SQL:

  • * Multiply
  • / Divide
  • + Add
  • – Subtract

Vom folosi tabelul OrderDetails și vom calcula prețul total prin înmulțirea prețului unitar cu cantitatea.

SELECT UnitPrice, OrderQty, UnitPrice * OrderQty AS TotalFROM Purchasing.PurchaseOrderDetail

Bit-ul ” UnitPrice * OrderQty” spune că trebuie să înmulțim prețul unitar cu cantitatea.

Să fim distinși și să depanăm

Până acum am folosit instrucțiunea select pentru a prelua toate înregistrările dintr-un tabel indiferent dacă unele valori se repetă sau nu. Dacă doriți, puteți utiliza cuvântul cheie DISTINCT pentru a elimina dublurile din rezultate. De exemplu, dacă ați dori să returnați doar o listă unică de titluri ale angajaților, ați folosi această instrucțiune SQL:

SELECT DISTINCT JobTitleFROM HumanResources.Employee

Instrucțiunea DISTINCT funcționează, de asemenea, pe mai multe coloane. Dacă doriți, ați putea obține o listă distinctă de titluri de locuri de muncă și genuri prin tastarea

SELECT DISTINCT JobTitle, GenderFROM HumanResources.Employee

!Trivia: Cuvântul cheie ALL este omologul lui DISTINCT și este comportamentul implicit. Acesta este motivul pentru care nu îl scriem în declarațiile noastre.

Descoperirea și corectarea erorilor

Mai devreme sau mai târziu veți tasta greșit o declarație select în linia de comandă și computerul va țipa la dumneavoastră – „Eroare de sintaxă!” sau „Invalid Column Name” Ce trebuie să faceți? Amintiți-vă doar că instrucțiunea select este alcătuită din două părți principale: porțiunea SELECT și porțiunea FROM. În general, baza de date se uită mai întâi să vadă dacă aceste cuvinte cheie sunt prezente, iar dacă nu sunt, declanșează o eroare de sintaxă.

Aceasta este doar o expresie fantezistă pentru „ați scris greșit un cuvânt cheie sau îl aveți în ordine greșită” (de exemplu, aveți Distinct înainte de Select ca în DISTINCT SELECT). După ce cuvintele cheie sunt verificate, declarația este inspectată pentru a se asigura că ați specificat un tabel. Odată ce tabelul este cunoscut, se pot verifica coloanele. Așadar, ordinea este de a verifica mai întâi cuvintele cheie, apoi tabelele și, în cele din urmă, coloanele corecte. Ori de câte ori este afișată o eroare, citiți-o cu atenție. Sunt șanse să fi scris ceva greșit. Calculatorul vă va spune ce ați scris greșit între ghilimele; este treaba dumneavoastră să găsiți apoi greșeala de ortografie și să o corectați.

SQL Select Exercises

Este important să exersați! Folosiți baza de date de exemplu pentru a răspunde la aceste întrebări.

  1. Cum puteți găsi toate numele tabelelor din baza de date AdventureWorks2012?
  2. Care sunt două modalități de a obține numele tuturor coloanelor din Person.Person?
  3. Selectați JobTitle și BirthDate pentru toți angajații.
  4. Cum ar fi UnitPrice al fiecărui articol PurchaseOrderDetail dacă ar exista o reducere la jumătate?

Răspunsurile sunt aici

Felicitări! Tocmai ați învățat cum să utilizați comanda select pentru a interoga o bază de date. Vor urma mai multe tutoriale, iar în acestea ne vom scufunda în unele dintre domeniile pe care le-am trecut în revistă astăzi, cum ar fi operatorii matematici și funcțiile. Nu uitați! Vreau să vă reamintesc tuturor că, dacă aveți alte întrebări la care vreți să vi se răspundă, atunci postați un comentariu sau trimiteți-mi un mesaj pe Twitter. Sunt aici pentru a vă ajuta.

.

Lasă un răspuns

Adresa ta de email nu va fi publicată.