Noțiuni de bază SQL pentru începători cu lecții. Limbajul de programare SQL De ce aveți nevoie

De la autor:Ți-au spus ceainic? Ei bine, asta se poate rezolva! Fiecare samovar a fost cândva un ceainic! Sau fiecare profesionist a fost cândva un samovar? Nu, ceva nu este în regulă din nou! În general, MySQL este pentru începători.

De ce au nevoie de MySQL neobișnuiții?

Dacă plănuiți serios să vă conectați viața cu Internetul, atunci chiar de la primii pași în „web” veți întâlni acest SGBD. MySQL poate fi numit cu ușurință sistemul de gestionare a bazelor de date „tot-Internet”. Nicio resursă mai mult sau mai puțin serioasă nu poate face fără ea; este prezentă în panoul de administrare al fiecărei găzduiri. Și mai ales CMS populare și chiar motoare „de casă” sunt construite cu participarea sa.

În general, nu te poți descurca fără această platformă. Dar pentru a-l studia veți avea nevoie și de abordarea potrivită, de instrumentele potrivite și, cel mai important, de dorință și răbdare. Sper că ai destule ultimele ingrediente. Și fiți pregătiți pentru ca creierul să fiarbă și să se scurgă abur din cap, ca dintr-un fierbător adevărat

Dar MySQL este atât de dificil pentru nenorociri doar dacă începi să-l înveți incorect. Tu și cu mine nu vom face o astfel de greșeală și vom începe cunoașterea acestei tehnologii de la bun început.

Noțiuni de bază

Mai întâi, să trecem peste conceptele de bază pe care le vom aminti în această publicație:

Baza de date (DB) este unitatea componentă principală a unui SGBD. Baza de date include tabele care constau din coloane și înregistrări (rânduri). Celulele formate la intersecție conțin date structurate de un anumit tip.

DBMS (sistemul de management al bazelor de date) este un set de toate modulele software pentru administrarea bazelor de date.

SQL este un limbaj de interogare structurat cu care dezvoltatorul „comunica” cu nucleul DBMS (server). Ca orice limbaj de programare, SQL are propria sa sintaxă, un set de comenzi și operatori și tipuri de date acceptate.

Cred că cunoştinţele teoretice sunt suficiente pentru a începe. Vom „colora” golurile lipsă în teorie cu practică. Acum tot ce mai rămâne este să alegeți instrumentul software potrivit.

Selectarea instrumentului potrivit

După ce am scotocit prin întreaga gamă de shell-uri MySQL pentru începători, mi-am dat seama că pur și simplu nu există. Toate produsele software pentru administrarea DBMS necesită un server de baze de date deja instalat. În general, am decis încă o dată să nu inventez „scooterul” și am optat pentru pachetul intern Denwer. Îl puteți descărca de pe site-ul oficial.

Acesta include deja toate componentele unui DBMS, permițând unui începător să înceapă o cunoaștere practică cu MySQL imediat după o instalare simplă și simplă. În plus, Denwer include mai multe instrumente necesare unui dezvoltator începător: server local, PHP.

Primii pasi

Nu voi descrie procesul de instalare a setului „domnului”, deoarece totul se întâmplă automat acolo. După lansarea instalării, aveți timp doar să apăsați tastele necesare. Exact ceea ce aveți nevoie în versiunea MySQL pentru manechine.

Când procesul de instalare este finalizat, porniți serverul local, așteptați câteva secunde. După aceea, tastați localhost în bara de adrese a browserului dvs.

Pe pagina „Ura, funcționează!” urmați unul dintre linkurile prezentate în imagine. După care veți fi dus la phpMyAdmin - un shell pentru administrarea bazelor de date.

Urmând linkul http://downloads.mysql.com/docs/world.sql.zip, veți descărca un exemplu de bază de date de testare de pe site-ul oficial MySQL. Accesați din nou phpMyAdmin, în meniul principal din partea de sus, accesați fila „Import”. În fereastra Import în curent, în prima secțiune (Fișier de import), setați valoarea la Răsfoiți computerul.

În fereastra Explorer, selectați arhiva cu exemplul de bază de date descărcată. Nu uitați să faceți clic pe „Ok” în partea de jos a ferestrei principale.

Vă sfătuiesc să nu modificați valorile parametrilor specificate pentru moment. Acest lucru poate duce la afișarea incorectă a datelor sursă importate. Dacă sistemul phpMyAdmin generează o eroare prin care nu poate recunoaște algoritmul de comprimare a bazei de date, atunci dezarhivați-l și repetați întregul proces de import de la început.

Dacă totul a mers bine, atunci va apărea un mesaj de program în partea de sus că importul a avut succes, iar în stânga în lista de baze de date va mai fi unul (cuvânt).

Să ne uităm la structura sa din interior, astfel încât să vă puteți imagina mai clar cu ce aveți de a face.

Faceți clic pe numele bazei de date MySQL pentru începători. Sub ea va fi afișată o listă de tabele din care constă. Faceți clic pe una dintre ele. Apoi accesați elementul din meniul de sus „Structură”. Zona principală de lucru va afișa structura tabelului: numele tuturor coloanelor, tipurile de date și toate atributele.

Bun venit la dezvoltarea bazelor de date folosind limbajul standard de interogare SQL. Sistemele de gestionare a bazelor de date (DBMS) au multe instrumente care rulează pe o mare varietate de platforme hardware.

  • Baze de date relaționale

    În acest capitol... | Organizarea informațiilor | Ce este o bază de date | Ce este un SGBD | Compararea modelelor de baze de date | Ce este o bază de date relațională

  • Bazele SQL

    În acest capitol... | Ce este SQL | Concepții greșite SQL | O privire asupra diferitelor standarde SQL | Introducere în comenzile SQL standard și cuvintele rezervate | Reprezentând numere, simboluri, date, ore și alte tipuri de date | Valori și restricții nedefinite

  • Componente SQL

    În acest capitol... | Crearea bazelor de date | Prelucrarea datelor | Protecția bazei de date | SQL este un limbaj special conceput pentru a crea și menține date în baze de date relaționale. Și deși companiile care furnizează sisteme pentru gestionarea unor astfel de baze de date oferă propriile implementări de SQL, dezvoltarea limbajului în sine este determinată și controlată de standardul ISO/ANSI.

  • Crearea și întreținerea unei baze de date simple

    În acest capitol... | Creați, modificați și ștergeți un tabel dintr-o bază de date folosind instrumentul RAD. | Creați, modificați și ștergeți un tabel dintr-o bază de date folosind SQL. | Transferarea unei baze de date într-un alt SGBD.

  • Crearea unei baze de date relaționale cu mai multe tabele

    În acest capitol... | Ce ar trebui să fie în baza de date | Definirea relatiilor intre elementele bazei de date | Conectarea tabelelor folosind cheile | Design de integritate a datelor | Normalizare baze de date | Acest capitol va prezenta un exemplu de creare a unei baze de date cu mai multe tabele.

  • Manipularea datelor din baza de date

    În acest capitol... | Lucrul cu date | Obținerea datelor necesare din tabel | Afișarea informațiilor selectate dintr-unul sau mai multe tabele | Actualizarea informațiilor din tabele și vizualizări | Adăugarea unui nou rând la un tabel

  • Definirea Valorilor

    În acest capitol... | Utilizarea variabilelor pentru a reduce codificarea redundantă | Preluarea informațiilor solicitate frecvent aflate într-un câmp de tabel al bazei de date | Combinarea valorilor simple pentru a crea expresii compuse | Această carte subliniază continuu cât de importantă este structura unei baze de date pentru menținerea integrității unei baze de date.

  • Expresii complexe cu sens

    În acest capitol... | Folosind instrucțiuni condiționale | Conversia unui element de date dintr-un tip de date în altul | Salvați timpul de introducere a datelor cu expresii cu valoare de înregistrare | În capitolul 2, SQL a fost numit un sublimbaj de date.

  • „Direcționarea” către datele necesare

    În acest capitol... | Specificarea tabelelor necesare | Separarea liniilor necesare de toate celelalte | Crearea de clauze unde eficiente | Cum se lucrează cu valori nule | Crearea expresiilor compuse cu conexiuni logice | Rezultatul interogării de grupare a rezultatelor după coloană

  • Operatori Relaționali

    În acest capitol... | Unirea tabelelor care au o structură similară | Îmbinarea tabelelor care au structuri diferite | Obținerea datelor de care aveți nevoie din mai multe tabele | SQL este un limbaj de interogare folosit în bazele de date relaționale.

  • Folosind interogări imbricate

    În acest capitol... | Preluarea datelor din mai multe tabele cu o singură instrucțiune SQL | Găsirea elementelor de date comparând o valoare dintr-un tabel cu un set de valori dintr-un altul | Găsirea elementelor de date prin compararea unei valori dintr-un tabel cu o singură valoare selectată folosind o instrucțiune select din altul

  • Interogări recursive

  • Securizarea bazei de date

    În acest capitol... | Controlul accesului la tabelele bazei de date | Decizia dacă se acordă acces | Acordarea permisiunilor de acces | Revocarea autorității de acces | Prevenirea încercărilor de acces neautorizat

  • Protejarea datelor

    În acest capitol... | Cum să evitați coruperea bazei de date | Probleme cauzate de operațiuni simultane | Rezolvarea acestor probleme folosind motoarele SQL | Setarea nivelului de securitate necesar folosind comanda set transaction

  • Utilizarea SQL în aplicații

    În acest capitol... | SQL în aplicație | Partajarea SQL cu limbaje procedurale | Cum să evitați incompatibilitățile | Cod SQL încorporat în codul de procedură | Apelarea modulelor SQL din Codul de procedură | Apelarea SQL dintr-un instrument RAD | În capitolele anterioare, ne-am uitat în principal la comenzile SQL individual, adică. Sarcina de prelucrare a datelor a fost formulată și a fost creată o interogare SQL pentru aceasta.

  • ODBC și JDBC

    În acest capitol... | Definiție ODBC | Descrierea pieselor ODBC | Utilizarea ODBC într-un mediu client/server | Utilizarea ODBC pe Internet | Utilizarea ODBC în rețelele locale | Folosind JDBC | În fiecare an, computerele unei organizații sau mai multor organizații diferite sunt din ce în ce mai conectate între ele. Prin urmare, este necesar să se stabilească acces partajat la bazele de date prin rețea.

  • SQL:2003 și XML

    În acest capitol... | Utilizarea SQL cu XML | XML, baze de date și Internet | Una dintre cele mai semnificative caracteristici noi ale SQL:2003 este suportul pentru fișierele XML (Extensible Markup Language), care devin din ce în ce mai mult un standard universal pentru schimbul de date între platforme disparate.

  • Cursore

    În acest capitol... | Definirea domeniului de aplicare al cursorului în instrucțiunea declare | Deschiderea cursorului | Eșantionarea datelor rând cu rând | Închiderea cursorului | SQL diferă de majoritatea celor mai populare limbaje de programare prin faptul că efectuează operații asupra datelor tuturor rândurilor unui tabel simultan, în timp ce limbajele procedurale procesează datele rând cu rând.

  • Astăzi, cursurile SQL „pentru manechin” devin din ce în ce mai populare. Acest lucru poate fi explicat foarte simplu, deoarece în lumea modernă puteți găsi tot mai des așa-numitele servicii web „dinamice”. Se disting printr-un shell destul de flexibil și se bazează pe Toți programatorii începători care decid să dedice site-uri web, în ​​primul rând să se înscrie la cursuri SQL „pentru manechin”.

    De ce să înveți această limbă?

    În primul rând, SQL este predat pentru a crea în continuare o mare varietate de aplicații pentru unul dintre cele mai populare motoare de blog din ziua de azi - WordPress. După finalizarea câtorva lecții simple, veți putea crea interogări de orice complexitate, ceea ce nu face decât să confirme simplitatea acestui limbaj.

    Ce este SQL?

    Sau un limbaj de interogare structurat, a fost creat cu un singur scop: să le determine, să le ofere acces și să le proceseze în perioade destul de scurte de timp. Dacă cunoașteți semnificația SQL, atunci veți înțelege că acest server este clasificat ca un așa-numit limbaj „non-procedural”. Adică, capacitățile sale includ doar o descriere a oricăror componente sau rezultate pe care doriți să le vedeți în viitor pe site. Dar când nu indică exact ce rezultate vor fi obținute. Fiecare cerere nouă în această limbă este ca o „suprastructură” suplimentară. Interogările vor fi executate în ordinea în care sunt introduse în baza de date.

    Ce proceduri pot fi efectuate folosind acest limbaj?

    În ciuda simplității sale, baza de date SQL vă permite să creați o mare varietate de interogări. Deci, ce poți face dacă înveți acest limbaj de programare important?

    • creați o mare varietate de tabele;
    • primirea, stocarea și modificarea datelor primite;
    • schimbați structurile mesei la discreția dvs.;
    • combinați informațiile primite în blocuri individuale;
    • calculați datele primite;
    • asigura o protectie completa a informatiilor.

    Ce comenzi sunt cele mai populare în această limbă?

    Dacă decideți să urmați un curs SQL for Dummies, atunci veți primi informații detaliate despre comenzile care sunt utilizate în crearea interogărilor folosindu-l. Cele mai comune astăzi sunt:

    1. DDL este o comandă care definește datele. Este folosit pentru a crea, modifica și șterge o mare varietate de obiecte din baza de date.
    2. DCL este o comandă care manipulează datele. Este folosit pentru a oferi diferiților utilizatori acces la informațiile din baza de date, precum și pentru a folosi tabele sau vizualizări.
    3. TCL este o echipă care gestionează o varietate de tranzacții. Scopul său principal este de a determina progresul unei tranzacții.
    4. DML - manipulează datele primite. Sarcina sa este de a permite utilizatorului să mute diverse informații din baza de date sau să le introducă acolo.

    Tipuri de privilegii care există pe acest server

    Privilegiile se referă la acele acțiuni pe care un anumit utilizator le poate efectua în conformitate cu statutul său. Cel mai minim, desigur, este o autentificare obișnuită. Desigur, privilegiile se pot schimba în timp. Cele vechi vor fi șterse și altele noi vor fi adăugate. Astăzi, toți cei care urmează cursuri SQL Server „pentru manechin” știu că există mai multe tipuri de acțiuni permise:

    1. Tip obiect - utilizatorul are voie să execute orice comandă numai în legătură cu un anumit obiect care se află în baza de date. În același timp, privilegiile diferă pentru diferite obiecte. Ele sunt, de asemenea, legate nu numai de un anumit utilizator, ci și de mese. Dacă cineva, folosindu-și capacitățile, a creat un tabel, atunci el este considerat proprietarul acesteia. Prin urmare, el are dreptul de a atribui noi privilegii altor utilizatori legate de informațiile din acesta.
    2. Tipul de sistem este așa-numitul drept de autor al datelor. Utilizatorii care au primit astfel de privilegii pot crea diverse obiecte în baza de date.

    Istoria SQL

    Acest limbaj a fost creat de IBM Research Laboratory în 1970. La vremea respectivă, numele său era puțin diferit (SEQUEL), dar după câțiva ani de utilizare a fost schimbat, scurtându-l puțin. În ciuda acestui fapt, chiar și astăzi mulți experți în programare de renume mondial încă pronunță numele în mod demodat. SQL a fost creat cu un singur scop - de a inventa un limbaj care să fie atât de simplu încât chiar și utilizatorii obișnuiți de Internet l-ar putea învăța fără probleme. Un fapt interesant este că la acea vreme SQL nu era singurul astfel de limbaj. În California, un alt grup de specialiști a dezvoltat un Ingres similar, dar nu s-a răspândit niciodată. Înainte de 1980, existau mai multe variante de SQL care erau doar puțin diferite unele de altele. Pentru a preveni confuzia, în 1983 a fost creată o versiune standard, care este încă populară și astăzi. Cursurile SQL „pentru manechin” vă permit să aflați mult mai multe despre serviciu și să îl studiați complet în câteva săptămâni.

    Limbajul de interogare structurat sau SQL este un limbaj de programare declarativ pentru utilizarea în baze de date cvasi-relaționale. Multe dintre caracteristicile originale ale SQL au fost preluate din calculul tuplilor, dar extensiile recente la SQL includ din ce în ce mai multă algebră relațională.
    SQL a fost creat inițial de IBM, dar mulți furnizori și-au dezvoltat propriile dialecte. A fost adoptat ca standard de Institutul Național American de Standarde (ANSI) în 1986 și ISO în 1987. În standardul limbajului de programare SQL, ANSI a declarat că pronunția oficială a SQL este „es q el”. Cu toate acestea, mulți specialiști în baze de date au folosit pronunția „slang” „Sequel”, care reflectă numele inițial al limbii, Sequel, care a fost schimbat ulterior din cauza unui conflict de mărci comerciale și de nume cu IBM. Programare pentru incepatori.
    Limbajul de programare SQL a fost revizuită în 1992 și această versiune este cunoscută ca SQL-92. 1999 a fost apoi revizuit din nou pentru a deveni SQL:1999 (AKA SQL3). Programare pentru manechini. SQL 1999 acceptă obiecte care nu erau acceptate anterior în alte versiuni, dar de la sfârșitul anului 2001, doar câteva sisteme de gestionare a bazelor de date acceptau implementări SQL: SQL 1999.
    SQL, deși este definit ca ANSI și ISO, are multe variații și extensii, dintre care majoritatea au propriile caracteristici, cum ar fi implementarea „PL/SQL” a Oracle Corporation sau implementarea Sybase și Microsoft numită „Transact-SQL”, care poate fi confuză pentru cei familiarizați cu elementele de bază ale programării. De asemenea, nu este neobișnuit ca implementările comerciale să omite suportul pentru principalele caracteristici ale standardului, cum ar fi tipuri de date precum data și ora, preferând unele dintre propriile variante. Ca rezultat, spre deosebire de ANSI C sau ANSI Fortran care pot fi portate de obicei de la platformă la platformă fără modificări structurale majore, interogările limbajului de programare SQL pot fi rareori portate între diferite sisteme de baze de date fără modificări semnificative. Majoritatea oamenilor din industria bazelor de date cred că această lipsă de compatibilitate este intenționată, pentru a oferi fiecărui dezvoltator propriul sistem de gestionare a bazelor de date și a lega cumpărătorul de o anumită bază de date.
    După cum sugerează și numele, limbajul de programare SQL este conceput pentru scopuri specifice, limitate - interogarea datelor conținute într-o bază de date relațională. Ca atare, este un set de instrucțiuni de limbaj de programare pentru crearea de mostre de date, mai degrabă decât un limbaj procedural precum C sau BASIC, care sunt concepute pentru a rezolva o gamă mult mai largă de probleme. Extensiile de limbaj precum „PL/SQL” sunt concepute pentru a rezolva această limitare prin adăugarea de elemente procedurale la SQL, păstrând în același timp beneficiile SQL. O altă abordare este de a încorpora comenzile limbajului de programare procedural în interogările SQL și de a interacționa cu baza de date. De exemplu, Oracle și alții acceptă Java în baza de date, în timp ce PostgreSQL permite ca funcțiile să fie scrise în Perl, Tcl sau C.
    O glumă despre SQL: „SQL nu este nici structurat, nici limbaj”. Ideea glumei este că SQL nu este un limbaj Turing. .

    Selectați * din T
    C1 C2
    1 A
    2 b
    C1 C2
    1 A
    2 b
    Selectați C1 din T
    C1
    1
    2
    C1 C2
    1 A
    2 b
    Selectați * din T unde C1=1
    C1 C2
    1 A

    Având în vedere un tabel T, interogarea Select * din T va afișa toate elementele tuturor rândurilor din tabel.
    Din același tabel, interogarea Select C1 din T va afișa elementele din coloana C1 a tuturor rândurilor din tabel.
    Din același tabel, interogarea Select * din T unde C1=1 va afișa toate elementele tuturor rândurilor unde valoarea coloanei C1 este „1”.

    Cuvinte cheie SQL

    Cuvintele SQL sunt împărțite într-un număr de grupuri.

    Primul este Limbajul de manipulare a datelor sau DML(limbaj de gestionare a datelor). DML este un subset al limbajului folosit pentru a interoga bazele de date și pentru a adăuga, actualiza și șterge date.

    • SELECT este una dintre cele mai frecvent utilizate comenzi DML și permite utilizatorului să specifice o interogare ca o descriere set a rezultatului dorit. Interogarea nu specifică modul în care trebuie aranjate rezultatele - traducerea interogării într-o formă care poate fi executată în baza de date este sarcina sistemului de baze de date, mai precis a optimizatorului de interogări.
    • INSERT este folosit pentru a adăuga rânduri (set formal) la un tabel existent.
    • UPDATE este folosit pentru a modifica valorile datelor dintr-un rând de tabel existent.
    • DELETE specifică rândurile existente care vor fi șterse din tabel.

    Se poate spune că alte trei cuvinte cheie se încadrează în grupul DML:

    • BEGIN WORK (sau START TRANZACȚIA, în funcție de dialectul SQL) poate fi folosit pentru a marca începutul unei tranzacții de bază de date care fie va finaliza totul, fie nu se va executa deloc.
    • COMMIT afirmă că toate modificările de date făcute după efectuarea operațiunilor sunt salvate.
    • ROLLBACK specifică faptul că toate modificările datelor după ultima comitere sau rollback trebuie distruse, până la punctul în care a fost înregistrat în baza de date ca „rollback”.

    COMMIT și ROLLBACK sunt utilizate în domenii precum controlul tranzacțiilor și blocarea. Ambele instrucțiuni completează toate tranzacțiile curente (seturile de operațiuni din baza de date) și elimină toate blocările la modificarea datelor din tabele. Prezența sau absența unei instrucțiuni BEGIN WORK sau similare depinde de implementarea SQL particulară.

    Al doilea grup de cuvinte cheie aparține grupului Data Definition Language sau DDL (Data Definition Language). DDL permite utilizatorului să definească noi tabele și elementele asociate acestora. Majoritatea bazelor de date SQL comerciale au propriile extensii DDL care permit controlul asupra elementelor non-standard, dar de obicei vitale, ale unui anumit sistem.
    Principalele puncte ale DDL sunt comenzile de creare și ștergere.

    • CREATE specifică obiectele (cum ar fi tabelele) care vor fi create în baza de date.
    • DROP specifică ce obiecte existente în baza de date vor fi șterse, de obicei definitiv.
    • Unele sisteme de baze de date acceptă și comanda ALTER, care permite utilizatorului să modifice un obiect existent în diferite moduri, cum ar fi adăugarea de coloane la un tabel existent.

    Al treilea grup de cuvinte cheie SQL este Limbajul de control al datelor sau DCL (Limbajul de control al datelor). DCL este responsabil pentru drepturile de acces la date și permite utilizatorului să controleze cine are acces pentru a vizualiza sau manipula datele din baza de date. Există două cuvinte cheie principale aici.

    În acest material am încercat să combin toate punctele principale Transact-SQL, care îi va ajuta pe programatorii de baze de date începători să stăpânească acest limbaj și să scrie interogări și aplicații în limbajul Transact-SQL.

    Programarea bazelor de date, și mai precis, bazele de date care rulează Microsoft SQL Server, a devenit foarte populară, motiv pentru care am decis să fac un fel de mini carte de referință în care puteți găsi toate punctele principale cu explicații și, bineînțeles, exemple.

    Pentru a exersa scrierea interogărilor SQL sau crearea obiectelor bazei de date, puteți folosi ediția gratuită a SQL Server Express; la momentul întocmirii cărții de referință, cea mai recentă versiune este Microsoft SQL Server 2014 Express.

    Referință Transact-SQL pentru începători - descrierea referinței

    Această carte de referință va arăta așa, mai întâi voi da un mic cuprins cu navigare, apoi va începe cartea de referință în sine, vor fi comentarii, explicații și exemple pentru fiecare articol. De asemenea, dacă am examinat deja în detaliu sau am folosit undeva în materialele de pe site-ul nostru acest sau acel obiect sau acțiune, eu, bineînțeles, vă voi oferi link-uri astfel încât să puteți vedea exemple detaliate sau cum să utilizați această sau acea acțiune în practică .

    Deoarece este pur și simplu imposibil să acoperiți absolut totul, așa că nu vă mirați dacă nu ați găsit ceva aici. Repet încă o dată că această carte de referință a fost creată pentru programatorii începători Transact-SQL, precum și pentru administratorii simpli care au nevoie periodic să descarce unele date de pe un server SQL.

    Pentru un studiu detaliat al limbajului T-SQL, vă recomand să citiți cartea mea „The T-SQL Programmer’s Way. Tutorial despre limbajul Transact-SQL”, în care vorbesc despre limbajul T-SQL cât mai detaliat, cu un număr mare de exemple.

    Bază de date

    Chiar și un programator începător Transact-SQL ar trebui să știe cum să creeze o bază de date sau să-i schimbe proprietățile, așa că înainte de a analiza tabele, vizualizări, funcții și orice altceva, să ne uităm la procesul de creare, modificare și ștergere a unei baze de date Transact-SQL.

    Creare

    Pentru a crea o bază de date, trebuie să rulați următoarea interogare:

    test CREATE DATABASE

    unde test este numele bazei de date.

    Am vorbit mai multe despre crearea unei baze de date pe un server SQL în materialul Cum se creează o bază de date în MS Sql 2008

    Îndepărtarea

    Dacă trebuie să ștergeți o bază de date, puteți utiliza interogarea:

    Testul DROP DATABASE

    Schimbare

    Pentru a modifica parametrii bazei de date, puteți folosi interfața grafică a Management Studio, în care toți parametrii sunt descriși în detaliu, sau puteți trimite interogări ALTER DATABASE, de exemplu, pentru a activa compresia automată a bazei de date de testare, utilizați următoarea interogare

    test ALTER DATABASE SET AUTO_SHRINK ON; --Și pentru a dezactiva testul ALTER DATABASE SET AUTO_SHRINK OFF;

    Sper că este clar, ALTER DATABASE este o comandă de schimbat, test este numele bazei de date care se schimbă, SET este o comandă care indică faptul că vom modifica parametrii bazei de date, AUTO_SHRINK parametrul în sine, ON/OFF valoarea parametrului.

    Tipuri de date

    Cel mai frecvent și mai des folosit

    Cifre exacte

    • tinyint - 1 octet
    • smallint - 2 octeți
    • int - 4 octeți
    • bigint - 8 octeți
    • numerice și zecimale ( tip cu precizie și scară fixă)
    • bani - 8 octeți
    • bani mici - 4 octeți

    Cifre aproximative

    • float [ (n) ] – dimensiunea depinde de n (n poate fi de la 1 la 53, implicit 53)
    • real - 4 octeți

    data si ora

    • data – data
    • timp - timp
    • datetime - o dată care include ora din zi cu fracțiuni de secundă în format de 24 de ore.

    Șiruri de caractere

    • char [ (n) ] – un șir de lungime fixă, unde n este lungimea șirului (de la 1 la 8000). Dimensiunea de stocare este de n octeți.
    • varchar [ (n | max) ] este un șir de lungime fixă, unde n este lungimea șirului (de la 1 la 8000). Dacă specificați max, atunci dimensiunea maximă de stocare va fi de 2^31-1 octeți (2 GB), iar dacă specificați n, atunci lungimea reală a datelor introduse plus 2 octeți.
    • text – date șir de lungime variabilă, dimensiune maximă 2.147.483.647 octeți (2 GB).
    • nchar[(n)] este un șir Unicode de lungime fixă, unde n este lungimea șirului (de la 1 la 4000). Dimensiunea stocării este de două ori mai mare decât valoarea lui n în octeți
    • nvarchar [ (n | max) ] este un șir Unicode cu lungime fixă, unde n este lungimea șirului (de la 1 la 4000). Dacă specificați max, dimensiunea maximă de stocare va fi de 2^31-1 octeți (2 GB), iar dacă n, atunci de două ori lungimea reală a datelor introduse plus 2 octeți.
    • ntext este date de șir de lungime variabilă, cu o lungime maximă de șir de 1.073.741.823 de octeți.

    Date binare

    • binary [ (n) ] - date binare cu o lungime fixă, dimensiune n octeți, unde n este o valoare de la 1 la 8000. Mărimea stocării este de n octeți.
    • varbinary [ (n | max) ] - date binare cu lungime variabilă, unde n poate avea o valoare de la 1 la 8000. Dacă specificați max, dimensiunea maximă de stocare va fi de 2^31-1 octeți (2 GB). Când este specificat n, dimensiunea de stocare este lungimea reală a datelor de intrare plus 2 octeți.
    • imagine - date binare cu lungime variabilă, cu dimensiunea de la 0 la 2^31 - 1 (2.147.483.647) octeți.

    Alte

    • xml – stocarea datelor xml. Am discutat în detaliu în materialul Transact-sql - lucrul cu xml, iar dacă nu știi deloc ce este XML, atunci am vorbit despre asta în articolul Noțiuni de bază XML pentru începători.
    • tabel – stocarea setului de rânduri rezultat.

    Mese

    Există suficiente exemple de creare a tabelelor pe acest site, deoarece în aproape fiecare articol legat de SQL dau un exemplu de creare a unui tabel de testare, dar pentru a consolida cunoștințele, să creăm, să modificăm și să ștergem un tabel de testare. Să ne uităm doar la modul în care tipurile de date ale câmpurilor sunt setate în tabelele Transact-SQL.

    Creare

    CREATE TABLE test_table( IDENTITY(1,1) NOT NULL, --identifier, int întreg, nu sunt permise valori NULL (50) NULL, --nume complet, șir de 50 de caractere, valori NULL permise NULL, -- sumă, valoare numerică aproximativă, valorile NULL sunt permise NULL, --data și ora, valorile NULL sunt permise (100) NULL --șir de 100 de caractere, sunt permise valorile NULL) ON GO

    Adăugarea unei coloane

    ALTER TABLE test_table ADD prosto_pole numeric(18, 0) NULL
    • test_table este numele tabelului;
    • add — comanda de a adăuga;
    • prosto_pole – numele coloanei;
    • pole numeric(18, 0) – tipul de date al noii coloane;
    • NULL – un parametru care înseamnă că o valoare NULL poate fi stocată în acest câmp.

    Schimbarea tipului de date

    Să modificăm tipul de date al noului câmp pe care tocmai l-am creat (prosto_pole) din numeric(18, 0) în bigint și să creștem lungimea câmpului de comentariu la 300 de caractere.

    ALTER TABLE test_table ALTER COLUMN prosto_pole bigint; ALTER TABLE test_table ALTER COLUMN comentariu varchar(300);

    Notă! Serverul SQL nu va putea schimba tipul de date dacă valorile din aceste câmpuri nu pot fi convertite, caz în care va trebui să ștergeți coloana cu toate datele și să adăugați din nou sau să ștergeți toate datele din acest câmp.

    Eliminarea unei coloane

    Pentru a șterge o anumită coloană, utilizați comanda drop, de exemplu, pentru a șterge câmpul prosto_pole, utilizați următoarea interogare

    ALTER TABLE test_table DROP COLUMN prosto_pole

    Ștergerea unui tabel

    Pentru a șterge un tabel, să scriem această interogare simplă, unde test_table este tabelul de șters

    DROP TABLE test_table

    Reprezentare

    Un obiect foarte util din baza de date este o vizualizare (VIEW) sau, în opinia noastră, pur și simplu o vedere. Dacă cineva nu știe, o vizualizare este un fel de interogare stocată care poate fi accesată în același mod ca un tabel. Să creăm o vizualizare bazată pe tabelul de test test_table și să presupunem că foarte des trebuie să scriem o interogare, de exemplu, în funcție de condiție, suma este mai mare de 1000, așa că pentru a nu scrie această interogare de fiecare dată, vom scrie vizualizarea o dată, iar ulterior ne vom referi la el.

    Creare

    CREATE VIEW test_view AS SELECT id, fio, comment FROM test_table WHERE summa > 1000 GO

    Exemplu de accesare a unei vizualizări:

    SELECTAȚI * FROM test_view

    Schimbare

    ALTER VIEW test_view AS SELECT id, fio, comment FROM test_table WHERE summa > 1500 GO

    Îndepărtarea

    DROP VIEW test_view

    Vizualizări de sistem

    SGBD-ul MS SQL Server are obiecte de sistem care uneori pot oferi informații destul de utile, de exemplu, vizualizări ale sistemului. Acum vom analiza câteva astfel de reprezentări. Le puteți accesa în același mod ca vizualizările obișnuite ( de exemplu, selectați * din vizualizarea titlului)

    • sys.all_objects – conține toate obiectele bazei de date, inclusiv parametri precum: nume, tip, data creării și altele.
    • sys.all_columns – returnează toate coloanele de tabele cu caracteristicile lor detaliate.
    • sys.all_views – Returnează toate vizualizările din baza de date.
    • sys.tables – toate tabelele bazei de date.
    • sys.triggers – toate declanșatoarele bazei de date.
    • sys.databases – toate bazele de date de pe server.
    • sys.sysprocesses – procese active, sesiuni în baza de date.

    De fapt, sunt multe, așa că este imposibil să le aranjezi pe toate. Dacă doriți să vedeți cum pot fi folosite în practică, am făcut deja acest lucru, de exemplu, în materiale

    Funcții

    Serverul MS SQL vă permite să creați funcții care vor returna date specifice, cu alte cuvinte, utilizatorul însuși poate scrie o funcție și o poate folosi în viitor, de exemplu, atunci când este necesar să obțineți valori care necesită calcule complexe sau complexe. selectarea datelor. Uneori doar pentru a reduce codul, atunci când un apel de funcție va înlocui valorile frecvent necesare în diferite solicitări și aplicații.

    Creare

    CREATE FUNCTION test_function (@par1 bigint, @par2 float) RETURNS varchar(300) AS BEGIN DECLARE @rezult varchar(300) SELECT @rezult=comment FROM test_table WHERE id = @par1 AND summa > @par2 RETURN @rezult END
    • CREATE FUNCTION – comandă pentru a crea un obiect funcție;
    • test_function – numele noii funcții;
    • @par1 și @par2 – parametrii de intrare;
    • RETURNS varchar(300) – tip de returnare;
    • DECLARE @rezult varchar(300) – declararea unei variabile de tip varchar(300);
    • Instrucțiunea select în cazul nostru este acțiunile funcției;
    • RETURN @rezult – returnează rezultatul;
    • BEGIN și END sunt începutul și, respectiv, sfârșitul codului funcției.

    Un exemplu de utilizare într-o solicitare:

    SELECTează funcția_test(1, 20)

    Schimbare

    ALTER FUNCTION test_function (@par1 bigint, @par2 float) RETURNS varchar(300) AS BEGIN DECLARE @rezult varchar(300) SELECT @rezult=comment FROM test_table_new WHERE id = @par1 AND summa >= @par2 RETURN @rezult END

    Îndepărtarea

    DROP FUNCTION test_function

    Funcții încorporate

    Pe lângă faptul că serverul SQL vă permite să creați funcții personalizate, oferă și posibilitatea de a utiliza funcții încorporate pe care dezvoltatorii DBMS le-au scris deja pentru dvs. Sunt foarte multe, așa că le-am împărțit pe cele mai comune în grupuri și am încercat să le descriu pe scurt.

    Funcțiile sistemului

    Aici voi da câteva exemple de funcții care returnează diverse date de sistem

    • @@VERSION – returnează versiunea serverului SQL;
    • @@SERVERNAME – returnează numele serverului;
    • SUSER_NAME() – numele de conectare al utilizatorului pe server, cu alte cuvinte, sub ce autentificare funcționează acest sau acel utilizator;
    • user_name() – numele utilizatorului bazei de date;
    • @@SERVICENAME – numele serviciului DBMS;
    • @@IDENTITY - ultimul identificator introdus în tabel;
    • db_name() - numele bazei de date curente;
    • db_id() – identificatorul bazei de date.

    Funcții agregate

    Funcții care calculează o valoare pe baza unui set (grup) de valori. Dacă, la apelarea acestor funcții, trebuie să specificați o coloană pentru afișarea rezultatului, atunci trebuie să grupați datele (grupați după) după acest câmp. Am discutat această construcție în detaliu în articolul Transact-SQL Grouping data group by

    • avg – returnează valoarea medie;
    • count – număr de valori;
    • max – valoare maximă;
    • min – valoare minimă;
    • suma – suma valorilor.

    Exemplu de utilizare:

    SELECTARE COUNT(*) ca număr, SUM(summa) ca sumă, MAX(id) ca max, MIN(id) ca min, AVG(summa) ca medie FROM test_table

    Funcții șiruri

    Acest tip de funcție funcționează cu șiruri în consecință.

    Stânga (expresie șir, Personaje) – returnează numărul specificat de caractere dintr-un șir începând din stânga.

    Exemplu

    SELECT LEFT(„Exemplu de funcție rămasă”, 10) --Rezultatul „Exemplu de”

    Dreapta (expresie șir, Personaje) – returnează numărul specificat de caractere dintr-un șir începând din dreapta

    Exemplu

    SELECT Right(„Exemplu al funcției Right”, 10) -- Rezultatul „funcției Right”

    Len (linia) – returnează lungimea șirului.

    Exemplu

    SELECT len ("Exemplu de funcționare a funcției len") --Rezultat 28

    Inferior (linia) – returnează un șir în care toate caracterele sunt convertite în litere mici.

    Exemplu

    SELECT low("Exemplu de funcție inferioară") --Rezultatul "exemplu de funcție inferioară"

    Superior (linia) - returnează un șir în care toate caracterele sunt convertite în majuscule.

    Exemplu

    SELECT Upper(„Exemplu al funcției superioare”) --Rezultatul „EXEMPLU AL FUNCȚIEI SUPERIOARE”

    Ltrim (linia) – returnează un șir cu toate spațiile de început eliminate.

    Exemplu

    SELECT ltrim("Exemplu de funcționare a funcției ltrim") --Rezultatul "Exemplu de funcționare a funcției ltrim"

    Rtrim (linia) – returnează un șir cu toate spațiile din partea dreaptă eliminate

    Exemplu

    SELECT Rtrim („Exemplu de funcționare a funcției Rtrim”) -- Rezultatul „Exemplu de funcționare a funcției Rtrim”

    A inlocui (linia, ce cautam, cu ce il inlocuim?) – înlocuiește într-o expresie șir toate aparițiile specificate în al doilea parametru cu caracterele specificate în al treilea parametru.

    Exemplu

    SELECT Replace ("Exemplu de funcție Replace", "work", "REPLACEMENT") -- Rezultatul "Exemplu de funcție REPLACE a funcției Replace"

    Replica (linia, numărul de repetări) – repetă linia (primul parametru) de câte ori este specificat în al doilea parametru.

    Exemplu

    SELECTARE Replicare („Replicare Exemplu”, 3) -- Rezultat „Replicare Exemplu Replicare Exemplu Replicare Exemplu”

    Verso (linia) – returnează totul în ordine inversă.

    Exemplu

    SELECT Reverse („Exemplu de funcție inversă”) -- Rezultatul „esreveR iitsknuf etobar op remirP”

    Spaţiu (numarul de spatii) – returnează un șir ca număr specificat de spații.

    Exemplu

    SELECTARE Spațiu(10) -- Rezultatul „ ”

    Subșir (linia, pozitia de pornire, câte personaje) – returnează un șir cu lungimea egală cu numărul specificat în al treilea parametru, începând de la caracterul specificat în al doilea parametru.

    Exemplu

    SELECT Substring("Exemplu despre funcționarea funcției Subșir", 11, 14) -- Rezultatul "operației funcției"

    Funcții matematice

    Rundă (număr, precizie de rotunjire) – rotunjește o expresie numerică la numărul de cifre specificat în al doilea parametru

    Exemplu

    SELECT Round(10.4569, 2) -- Rezultat „10.4600”

    Podea (număr) – returnează un număr întreg rotunjit în jos.

    Exemplu

    SELECT Floor(10.4569) -- Rezultatul „10”

    Tavan (număr) – returnează un număr întreg rotunjit în sus.

    Exemplu

    SELECT Ceiling (10.4569) -- Rezultatul „11”

    Putere (număr, grad) — returnează un număr crescut la puterea specificată în al doilea parametru.

    Exemplu

    SELECT Power(5,2) -- Rezultat „25”

    Pătrat (număr) – returnează o valoare numerică la pătrat

    Exemplu

    SELECT Square(5) -- Rezultatul „25”

    Abs (număr) – returnează o valoare pozitivă absolută

    Exemplu

    SELECTAȚI Abs(-5) -- Rezultatul „5”

    Buturuga(număr) – logaritm natural cu virgulă mobilă.

    Exemplu

    SELECT Log(5) -- Rezultat „1.6094379124341”

    Pi- Pi.

    Exemplu

    SELECT Pi() -- Rezultat „3.14159265358979”

    rand– returnează un număr aleator în virgulă mobilă între 0 și 1

    Exemplu

    SELECT rand() -- Rezultat „0,713273187517105”

    Funcții de dată și oră

    Getdate()– returnează data și ora curente

    Exemplu

    SELECT Getdate() -- Rezultat „2014-10-24 16:36:23.683”

    Zi(Data) – returnează ziua de la o dată.

    Exemplu

    SELECT Day(Getdate()) -- Rezultatul „24”

    Lună(data) – returnează numărul lunii dintr-o dată.

    Exemplu

    SELECT Month(Getdate()) -- Rezultatul „10”

    An (Data) – returnează anul de la o dată

    Exemplu

    SELECT year(Getdate()) -- Rezultat „2014”

    DATEPART(secțiunea de date, Data) – returnează secțiunea specificată de la data (ZZ,LL,AAAA etc.)

    Exemplu

    SELECTARE DATEPART(MM,GETDATE()) -- Rezultatul „10”

    Isdate (Data) – verifică expresia introdusă pentru a vedea dacă este o dată

    Exemplu

    SELECT Isdate(GETDATE()) -- Rezultatul „1”

    Funcții de conversie

    Distribuție (expresie ca tip de date) – o funcție pentru conversia unui tip în altul. În exemplu, convertim tipul float în int

    Exemplu

    SELECT CAST(10,54 ca int) --rezultat 10

    Convertit – (tip de date, expresie, format de dată) este o funcție pentru conversia unui tip de date în altul. Foarte des este folosit pentru a converti o dată, folosind un al treilea parametru opțional - formatul datei.

    Exemplu

    SELECTARE GETDATE(), CONVERT(DATE, GETDATE(), 104) --Rezultat --2014-10-24 15:20:45.270 – fără conversie; --2014-10-24 după conversie.

    Funcții de masă

    Sunt create pentru a obține date din ele ca din tabele, dar după diferite tipuri de calcule. Am vorbit în detaliu despre funcțiile de tabel în materialul Transact-sql - Funcții de tabel și tabele temporare

    Creare

    --numele funcției noastre CREATE FUNCTION fun_test_tabl (--parametrii de intrare și tipul lor @id INT) --return value, i.e. table RETURNS TABLE AS --return imediat rezultatul RETURN (--interogarea în sine sau unele calcule SELECT * FROM test_table unde id = @id) GO

    Schimbare

    --numele funcției noastre ALTER FUNCTION fun_test_tabl (--parametrii de intrare și tipul lor @id INT) --valoare de returnare, adică table RETURNS TABLE AS --returnează imediat rezultatul RETURN (--interogarea în sine sau unele calcule SELECT * FROM test_table unde id = @id și summa > 100) GO

    Îndepărtarea

    DROP FUNCTION fun_test_tabl

    După cum puteți vedea, pentru a crea, modifica sau șterge astfel de funcții, se folosesc aceiași operatori ca și pentru funcțiile obișnuite, singura diferență este ce tip returnează funcția.

    Un exemplu de apelare a acestei funcții

    SELECTAȚI * DIN fun_test_tabl(1)

    Proceduri

    Proceduri este un set de instrucțiuni SQL care sunt compilate o singură dată și, ca și funcțiile, pot lua diferiți parametri. Folosit pentru a simplifica calculele și pentru a efectua acțiuni de grup.

    Creare

    CREATE PROCEDURE sp_test_procedure (@id INT) AS --declare variabile DECLARE @sum FLOAT --SQL instrucțiuni SET @sum = 100 UPDATE test_table SET summa = summa + @sum WHERE id = @id GO

    Schimbare

    ALTER PROCEDURE sp_test_procedure (@id int) AS --declare variabile DECLARE @sum float --SQL instrucțiuni SET @sum = 500 UPDATE test_table SET summa = summa + @sum WHERE id = @id GO

    Îndepărtarea

    DROP PROCEDURE sp_test_procedure

    Apelarea unei proceduri

    Îl puteți numi în diferite moduri, de exemplu:

    EXECUTE sp_test_procedure 1 --sau EXEC sp_test_procedure 1

    Unde, EXECUTE și EXEC sunt un apel de procedură, sp_test_procedure, respectiv, numele procedurii noastre, 1 valoare a parametrului

    Proceduri de sistem

    Proceduri de sistem– acestea sunt proceduri pentru efectuarea diferitelor acțiuni administrative atât asupra obiectelor de pe server, cât și asupra configurației serverului în sine. Ele sunt numite în același mod ca procedurile obișnuite, dar în contextul oricărei baze de date.

    Există un număr mare de ele, așa că voi da doar câteva exemple.

    sp_configure– o procedură pentru afișarea și efectuarea modificărilor la configurația kernelului DBMS. Primul parametru este numele parametrului de configurare, al doilea parametru este valoarea.

    Exemplu

    Modificați valoarea parametrului EXEC sp_configure „Interogări distribuite ad-hoc”,1 reconfigureze --aplicați EXEC sp_configure --ar uitați doar prin valorile tuturor parametrilor

    unde, „Interogări distribuite ad-hoc” este numele parametrului, 1 corespunzător valorii în care dorim să o modificăm, reconfigurează va aplica valoarea introdusă.

    În practică, am folosit această procedură în materialul Interdatabase Query în Transact-SQL

    sp_executesql– execută o instrucțiune Transact-SQL sau un set de instrucțiuni care pot fi generate dinamic. Am folosit această procedură în modificările datelor de înregistrare a materialelor într-un tabel utilizând Transact-SQL

    Exemplu

    EXECUTE sp_executesql N"SELECT * FROM test_table WHERE id = @id", N"@id int", @id = 1

    Unde, primul parametru este instrucțiunea sql (un șir în Unicode), al doilea este definiția tuturor parametrilor încorporați în instrucțiunea sql, al treilea este valoarea parametrilor.

    sp_help– returnează informații detaliate despre orice obiect al bazei de date.

    Exemplu

    EXECUTE sp_help „test_table”

    sp_rename– redenumește un obiect din baza de date. Poate fi folosit pentru a redenumi tabele, indecși, nume de coloane din tabele.Nu este recomandat să folosiți această procedură pentru a redenumi procedurile utilizatorului, declanșatoarele, funcțiile.

    Exemplu de redenumire a unui tabel

    EXEC sp_rename „test_table”, „test_table_new”

    unde primul parametru este un obiect cu numele vechi, iar al doilea parametru este noul nume al obiectului.

    Exemplu de redenumire a unei coloane dintr-un tabel

    EXEC sp_rename "test_table.summa", "summa_new", "COLUMN"

    Al treilea parametru indică faptul că coloana este redenumită.

    Declanșatoare

    Trigger este o procedură normală, dar este apelată de un eveniment, nu de utilizator. Un eveniment, de exemplu, ar putea fi inserarea unui rând nou într-un tabel (inserare), actualizarea datelor într-un tabel (actualizare) sau ștergerea datelor dintr-un tabel (ștergerea).

    Creare

    CREATE TRIGGER trg_test_table_update ON test_table for UPDATE --puteți, de asemenea, să ștergeți, să inserați AS BEGIN --sql instrucțiuni în cazul UPDATE END GO

    Schimbare

    ALTER TRIGGER trg_test_table_update ON test_table for insert --puteți, de asemenea, șterge, actualiza AS BEGIN --sql instrucțiuni în cazul inserării END GO

    Îndepărtarea

    DROP TRIGGER trg_test_table_update

    Permite dezactivarea

    --disable DISABLE TRIGGER trg_test_table_update ON test_table; -- activați ENABLE TRIGGER trg_test_table_update ON test_table;

    Am vorbit despre declanșatori în articolul - Cum se creează un declanșator în Transact-SQL.

    Indici

    Acesta este un obiect de bază de date care îmbunătățește performanța de extragere a datelor prin sortarea datelor după un anumit câmp. Dacă facem o analogie, de exemplu, căutarea anumitor informații într-o carte este mult mai ușoară și mai rapidă pe baza cuprinsului acesteia decât dacă acest cuprins nu ar exista. În SGBD-ul MS SQL Server există următoarele tipuri de indici:

    Index grupat— cu un astfel de index, rândurile din tabel sunt sortate cu o cheie dată, adică. câmpul specificat. Acest tip de index per tabel în serverul MS SQL nu poate fi decât unul și, începând cu MS SQL 2000, este creat automat atunci când în tabel este specificată o cheie primară (CHEIE PRIMARĂ).

    Index negrupat– la utilizarea acestui tip de index, indexul conține indicatori de rând sortați după câmpul specificat, și nu rândurile în sine, datorită cărora are loc o căutare rapidă a rândului necesar. Un tabel poate avea mai mulți astfel de indici.

    Index Columnstore– acest tip de index se bazează pe tehnologia de stocare a datelor din tabel nu ca rânduri, ci sub formă de coloane (de unde și numele); un tabel poate avea un singur index columnstore.

    Când utilizați acest tip de index, tabelul devine imediat numai în citire, cu alte cuvinte, nu va mai fi posibil să adăugați sau să modificați date în tabel; pentru a face acest lucru, va trebui să dezactivați indexul, să adăugați/modificați date. , apoi activați indexul înapoi.

    Astfel de indici sunt potriviți pentru seturi de date foarte mari utilizate în depozite.

    Operațiile care folosesc funcții agregate folosind gruparea sunt efectuate mult mai rapid (de mai multe ori!) cu un astfel de index.

    Indexul Columnstore este disponibil începând cu versiunea 2012 a SQL Server în edițiile Enterprise, Developer și Evaluation.

    Creare

    Index grupat

    CREATE CLUSTERED INDEX idx_clus_one ON test_table(id) GO

    Unde, CREATE CLUSTERED INDEX este o instrucțiune pentru crearea unui index cluster, idx_clus_one este numele indexului, test_table(id) este tabelul și, respectiv, câmpul cheie pentru sortare.

    Index negrupat

    CREATE INDEX idx_no_clus ON test_table(summa) GO

    Index Columnstore

    CREATE columnstore INDEX idx_columnstore ON test_table(date_create) GO

    Închide

    --disable ALTER INDEX idx_no_clus ON test_table DISABLE --activați, reconstruiți ALTER INDEX idx_no_clus ON test_table RECONSTRUIRE

    Îndepărtarea

    DROP INDEX idx_no_clus ON test_table GO

    Cursore

    Cursor - este un fel de tip de date care este utilizat în principal în proceduri și declanșatoare. Reprezintă un set obișnuit de date, de ex. rezultatul cererii.

    Exemplu (toate acestea în codul de procedură)

    Declară variabile DECLARE @id BIGINT DECLARE @fio VARCHAR(100) DECLARE @summa FLOAT --declară cursorul DECLARE test_cur CURSOR FOR SELECT id, fio, summa FROM test_table --deschide cursorul OPEN test_cur --citește datele din primul rând în cursor - și scrieți-le la variabilele FETCH NEXT FROM test_cur INTO @id, @fio, @summa --rulați bucla până când liniile din cursor se epuizează WHILE @@FETCH_STATUS = 0 BEGIN --putem executa sql instrucțiuni pentru fiecare iterație a buclei -- ...................Instrucțiuni SQL................... - -citește următoarea linie a cursorului FETCH NEXT FROM test_cur INTO @id , @fio, @summa END --închide cursorul CLOSE test_cur DEALLOCATE test_cur

    Am vorbit în detaliu despre cursoarele din materialul Utilizarea cursorelor și buclelor în Transact-SQL.

    Interogări DML

    DML (Limbajul de manipulare a datelor) sunt instrucțiuni SQL care manipulează datele. Acestea includ selectarea, actualizarea, inserarea, ștergerea.

    SELECTAȚI

    Exemplu

    SELECT * FROM test_table

    ACTUALIZAȚI

    Folosit pentru actualizarea datelor

    Exemplu

    Toate rândurile din tabel vor fi actualizate UPDATE test_table SET summa=500 -- numai rândurile cu id-ul mai mare de 10 vor fi actualizate UPDATE test_table SET summa=100 WHERE id > 10

    INTRODUCE

    Operator pentru adăugarea datelor

    Adăugarea unui rând INSERT INTO test_table (fio, summa, date_create, comment) VALUES ("Nume complet", 100, "10/26/2014", "test record") --adăugare în bloc bazată pe interogarea INSERT INTO test_table SELECT fio , summa, data_create , comentariu FROM test_table

    ȘTERGE

    Puteți folosi acest operator pentru a șterge date.

    Exemplu

    Ștergerea întregului tabel DELETE test_table -- ștergerea numai rândurilor care îndeplinesc condiția DELETE test_table WHERE summa > 100

    Gata, ghidul s-a terminat! Sper că te-a ajutat într-un fel. Noroc!