Ms sql strežnik pisanje poizvedb. Izvajanje poizvedb SQL v programu Management Studio. Dodajanje izračunanega polja za povprečje

Tabela izrazov se imenujejo podpoizvedbe, ki se uporabljajo tam, kjer se pričakuje prisotnost tabele. Obstajata dve vrsti tabelnih izrazov:

    izpeljane tabele;

    posplošeni tabelarni izrazi.

Ti dve obliki tabelnih izrazov sta obravnavani v naslednjih pododdelkih.

Izpeljane tabele

Izpeljana tabela je izraz tabele, vključen v klavzulo FROM poizvedbe. Izpeljane tabele je mogoče uporabiti v primerih, ko uporaba vzdevkov stolpcev ni mogoča, ker prevajalnik SQL obdela drug stavek, preden je vzdevek znan. Spodnji primer prikazuje poskus uporabe vzdevka stolpca v situaciji, ko se obdeluje drug stavek, preden je vzdevek znan:

UPORABA SampleDb; SELECT MONTH(EnterDate) kot enter_month FROM Works_on GROUP BY enter_month;

Če poskusite zagnati to poizvedbo, se prikaže naslednje sporočilo o napaki:

Sporočilo 207, raven 16, stanje 1, vrstica 5 Neveljavno ime stolpca "enter_month". (Sporočilo 207: raven 16, stanje 1, vrstica 5 Neveljavno ime stolpca enter_month)

Razlog za napako je, da je klavzula GROUP BY obdelana, preden je obdelan ustrezen seznam stavka SELECT, vzdevek stolpca enter_month pa ni znan, ko je skupina obdelana.

To težavo je mogoče rešiti z uporabo izpeljane tabele, ki vsebuje prejšnjo poizvedbo (brez člena GROUP BY), ker se člen FROM izvede pred členom GROUP BY:

UPORABA SampleDb; SELECT enter_month FROM (SELECT MONTH(EnterDate) as enter_month FROM Works_on) AS m GROUP BY enter_month;

Rezultat te poizvedbe bo tak:

Običajno lahko izraz tabele postavite kamor koli v stavku SELECT, kjer se lahko pojavi ime tabele. (Rezultat izraza tabele je vedno tabela ali, v posebnih primerih, izraz.) Spodnji primer prikazuje uporabo izraza tabele na izbirnem seznamu stavka SELECT:

Rezultat te poizvedbe:

Generični tabelarni izrazi

Izraz skupne tabele (OTB) je izraz poimenovane tabele, ki ga podpira jezik Transact-SQL. Običajni izrazi tabele se uporabljajo v naslednjih dveh vrstah poizvedb:

    nerekurziven;

    rekurzivno.

Ti dve vrsti zahtev sta obravnavani v naslednjih razdelkih.

OTB in nerekurzivne poizvedbe

Nerekurzivno obliko OTB je mogoče uporabiti kot alternativo izpeljanim tabelam in pogledom. Običajno je OTB določen z S klavzulami in dodatno poizvedbo, ki se sklicuje na ime, uporabljeno v klavzuli WITH. V Transact-SQL je pomen ključne besede WITH dvoumen. Da bi se izognili dvoumnosti, je treba stavek pred stavkom WITH zaključiti s podpičjem.

UPORABA AdventureWorks2012; SELECT SalesOrderID FROM Sales.SalesOrderHeader WHERE TotalDue > (SELECT AVG(TotalDue) FROM Sales.SalesOrderHeader WHERE YEAR(OrderDate) = "2005") IN Freight > (SELECT AVG(TotalDue) FROM Sales.SalesOrderHeader WHERE YEAR(OrderDate) = "2005 ")/2,5;

Poizvedba v tem primeru izbere naročila, katerih skupni davki (TotalDue) so višji od povprečja vseh davkov in katerih stroški prevoza (Freight) so višji od 40 % povprečnih davkov. Glavna lastnost te poizvedbe je njena dolžina, saj je treba podpoizvedbo napisati dvakrat. Eden od možne načine zmanjšati velikost konstrukcije poizvedbe bi pomenilo ustvariti pogled, ki vsebuje podpoizvedbo. Toda ta rešitev je nekoliko zapletena, ker zahteva ustvarjanje pogleda in njegovo brisanje, ko je poizvedba končana. Boljši pristop bi bil ustvariti OTB. Spodnji primer prikazuje uporabo nerekurzivnega OTB, ki skrajša zgornjo definicijo poizvedbe:

UPORABA AdventureWorks2012; WITH price_calc(year_2005) AS (SELECT AVG(TotalDue) FROM Sales.SalesOrderHeader WHERE YEAR(OrderDate) = "2005") SELECT SalesOrderID FROM Sales.SalesOrderHeader WHERE TotalDue > (SELECT year_2005 FROM price_calc) AND Freight > (SELECT year_2005 FROM price_cal c ) /2,5;

Sintaksa člena WITH v nerekurzivnih poizvedbah je naslednja:

Parameter cte_name predstavlja ime OTB, ki definira nastalo tabelo, parameter column_list pa predstavlja seznam stolpcev izraza tabele. (V zgornjem primeru se OTB imenuje price_calc in ima en stolpec, year_2005.) Parameter inner_query predstavlja stavek SELECT, ki podaja nabor rezultatov ustreznega izraza tabele. Definiran izraz tabele lahko nato uporabite v outer_query. (Zunanja poizvedba v zgornjem primeru uporablja OTB price_calc in njegov stolpec year_2005 za poenostavitev dvojno ugnezdene poizvedbe.)

OTB in rekurzivne poizvedbe

Ta razdelek predstavlja gradivo povečane kompleksnosti. Zato je pri prvem branju priporočljivo, da ga preskočite in se k njemu vrnete pozneje. OTB-je je mogoče uporabiti za izvajanje rekurzij, ker lahko OTB-ji vsebujejo sklicevanja nase. Osnovna sintaksa OTB za rekurzivno poizvedbo izgleda takole:

Parametra cte_name in column_list imata enak pomen kot v OTB za nerekurzivne poizvedbe. Telo klavzule WITH je sestavljeno iz dveh poizvedb, ki ju kombinira operator UNION VSI. Prva poizvedba se kliče samo enkrat in začne zbirati rezultat rekurzije. Prvi operand operatorja UNION ALL se ne sklicuje na OTB. Ta poizvedba se imenuje referenčna poizvedba ali vir.

Druga poizvedba vsebuje sklic na OTB in predstavlja njegov rekurzivni del. Zaradi tega se imenuje rekurzivni član. Pri prvem klicu rekurzivnega dela referenca OTB predstavlja rezultat referenčne poizvedbe. Rekurzivni član uporablja rezultat prvega klica poizvedbe. Po tem sistem ponovno pokliče rekurzivni del. Klic rekurzivnega člana se ustavi, ko prejšnji klic vrne prazen niz rezultatov.

Operator UNION ALL združi trenutno zbrane vrstice, pa tudi dodatne vrstice, dodane s trenutnim klicem rekurzivnemu članu. (Prisotnost operatorja UNION ALL pomeni, da podvojene vrstice ne bodo odstranjene iz rezultata.)

Nazadnje, parameter outer_query določa zunanjo poizvedbo, ki jo OTB uporablja za pridobitev vseh klicev za združitev obeh članov.

Za predstavitev rekurzivne oblike OTB uporabljamo tabelo Airplane, definirano in poseljeno s kodo, prikazano v spodnjem primeru:

UPORABA SampleDb; CREATE TABLE Airplane(ContainingAssembly VARCHAR(10), ContainedAssembly VARCHAR(10), QuantityContained INT, UnitCost DECIMAL(6,2)); VSTAVITE V VREDNOSTI letala ("Letalo", "Trup", 1, 10); VSTAVITE V VREDNOSTI letala ("Letalo", "Krila", 1, 11); VSTAVITE V VREDNOSTI letala ("Letalo", "Rep", 1, 12); VSTAVITE V VREDNOSTI letala ("Trup", "Salon", 1, 13); VSTAVITE V VREDNOSTI letala ("Trup", "Kokpit", 1, 14); VSTAVITE V VREDNOSTI letala ("Trup", "Nos",1, 15); INSERT INTO Airplane VALUES ("Kabina", NULL, 1,13); INSERT INTO Airplane VALUES ("Kokpit", NULL, 1, 14); INSERT INTO Airplane VALUES ("Nos", NULL, 1, 15); INSERT INTO Airplane VALUES ("Krila", NULL,2, 11); INSERT INTO Airplane VALUES ("Rep", NULL, 1, 12);

Tabela Letalo ima štiri stolpce. Stolpec ContainingAssembly identificira sklop, stolpec ContainedAssembly pa dele (enega za drugim), ki sestavljajo ustrezen sklop. Spodnja slika prikazuje grafični prikaz možnega tipa letala in njegovih sestavnih delov:

Tabela letala je sestavljena iz naslednjih 11 vrstic:

Naslednji primer uporablja klavzulo WITH za definiranje poizvedbe, ki izračuna skupne stroške vsake gradnje:

UPORABA SampleDb; WITH list_of_parts(assembly1, quantity, cost) AS (SELECT ContainingAssembly, QuantityContained, UnitCost FROM Airplane WHERE ContainedAssembly IS NULL UNION ALL SELECT a.ContainingAssembly, a.QuantityContained, CAST(l.quantity * l.cost AS DECIMAL(6,2) ) FROM list_of_parts l, Letalo a WHERE l.assembly1 = a.ContainedAssembly) IZBERITE sklop1 "Part", količina "Quantity", cena "Price" FROM list_of_parts;

Klavzula WITH definira seznam OTB z imenom list_of_parts, sestavljen iz treh stolpcev: sklop1, količina in cena. Prvi stavek SELECT v primeru je poklican samo enkrat za shranjevanje rezultatov prvega koraka procesa rekurzije. Stavek SELECT v zadnji vrstici primera prikaže naslednji rezultat.

SQL ali Structured Query Language je jezik, ki se uporablja za upravljanje podatkov v sistemu relacijskih baz podatkov (RDBMS). Ta članek bo obravnaval pogosto uporabljene SQL ukazi, ki bi jih moral poznati vsak programer. To gradivo je idealno za tiste, ki želijo obnoviti svoje znanje SQL pred razgovorom za službo. Če želite to narediti, si oglejte primere v članku in ne pozabite, da ste baze podatkov preučevali v parih.

Upoštevajte, da nekateri sistemi baz podatkov zahtevajo podpičje na koncu vsakega stavka. Podpičje je standardni kazalec na koncu vsakega stavka v SQL. Primeri uporabljajo MySQL, zato je podpičje obvezno.

Nastavitev baze podatkov za primere

Ustvarite zbirko podatkov za prikaz delovanja skupin. Za delo boste morali prenesti dve datoteki: DLL.sql in InsertStatements.sql. Po tem odprite terminal in se prijavite v konzolo MySQL z naslednjim ukazom (članek predvideva, da je MySQL že nameščen v sistemu):

Mysql -u root -p

Nato vnesite geslo.

Zaženite naslednji ukaz. Poimenujmo zbirko podatkov »univerza«:

CREATE DATABASE univerza; USE univerza; VIR ; VIR

Ukazi za delo z bazami podatkov

1. Oglejte si razpoložljive zbirke podatkov

PRIKAŽI PODATKOVNE BAZE;

2. Ustvarite novo zbirko podatkov

USTVARJANJE PODATKOVNE BAZE;

3. Izbira baze podatkov za uporabo

UPORABA ;

4. Uvozite ukaze SQL iz datoteke .sql

VIR ;

5. Izbrišite bazo podatkov

SPUSTI BAZO PODATKOV ;

Delo s tabelami

6. Oglejte si tabele, ki so na voljo v bazi podatkov

RAZSTAVITE MIZICE;

7. Ustvarite novo tabelo

USTVARI TABELO ( , , PRIMARNI KLJUČ ( ), TUJI KLJUČ ( ) REFERENCE ());

Omejitve celovitosti pri uporabi CREATE TABLE

Morda boste morali ustvariti omejitve za določene stolpce v tabeli. Pri ustvarjanju tabele lahko nastavite naslednje omejitve:

  • celica tabele ne more imeti vrednosti NULL;
  • primarni ključ - PRIMARNI KLJUČ (ime_stolpca1, ime_stolpca2, ...) ;
  • tuji ključ - TUJI KLJUČ (col_namex1, …, col_namexn) REFERENCE table_name(col_namex1, …, col_namexn) .

Določite lahko več kot en primarni ključ. V tem primeru boste dobili sestavljeni primarni ključ.

Primer

Ustvari tabelo "inštruktor":

CREATE TABLE inštruktor (ID CHAR(5), ime VARCHAR(20) NOT NULL, ime_oddelka VARCHAR(20), plača NUMERIC(8,2), PRIMARNI KLJUČ (ID), TUJI KLJUČ (ime_oddelka) REFERENCE oddelek (ime_oddelka));

8. Podatki o tabeli

Ogledate si lahko različne informacije (vrsto vrednosti, ključ ali ne) o stolpcih tabele z naslednjim ukazom:

OPIŠI ;

9. Dodajanje podatkov v tabelo

VSTAVITE V (, , , ...) VREDNOTE ( , , , …);

Ko dodate podatke v vsak stolpec v tabeli, vam ni treba podati imen stolpcev.

VSTAVITE V VREDNOTE ( , , , …);

10. Posodabljanje podatkov tabele

NADGRADNJA NASTAVI = , = , ... KJE ;

11. Odstranjevanje vseh podatkov iz tabele

IZBRIŠI IZ ;

12. Izbrišite tabelo

PADNA MIZA ;

Ukazi za ustvarjanje poizvedb

13. IZBERI

SELECT se uporablja za pridobivanje podatkov iz določene tabele:

IZBERI , , … OD ;

Naslednji ukaz lahko prikaže vse podatke iz tabele:

IZBERI * IZ ;

14. IZBERI DISTINCT

Stolpci tabele lahko vsebujejo podvojene podatke. Uporabite SELECT DISTINCT, da pridobite samo podatke, ki niso podvojeni.

IZBERI DISTINCT , , … OD ;

15. KJE

Za določitev pogojev v poizvedbi lahko uporabite ključno besedo WHERE v SELECT:

IZBERI , , … OD KJE ;

V zahtevku je mogoče navesti naslednje pogoje:

  • primerjava besedil;
  • primerjava številskih vrednosti;
  • logični operatorji IN (in), ALI (ali) in NE (negacija).

Primer

Poskusite naslednje ukaze. Bodite pozorni na pogoje, navedene v WHERE:

SELECT * FROM tečaj WHERE dept_name=’Comp. znanost'; IZBERITE * IZ predmeta WHERE krediti>3; SELECT * FROM tečaj WHERE dept_name="Comp. Sci." IN krediti>3;

16. ZDRUŽI PO

Operator GROUP BY se pogosto uporablja z agregatne funkcije kot so COUNT, MAX, MIN, SUM in AVG za združevanje izhodnih vrednosti.

IZBERI , , … OD ZDRUŽI PO ;

Primer

Prikažemo število predmetov za vsako fakulteto:

SELECT COUNT(course_id), dept_name FROM course GROUP BY ime_oddelka;

17. IMETI

Ključna beseda HAVING je bila dodana v SQL, ker WHERE ni mogoče uporabiti z združevalnimi funkcijami.

IZBERI , , ... OD ZDRUŽI PO IMATI

Primer

Prikažemo seznam fakultet, ki imajo več kot en predmet:

SELECT COUNT(course_id), dept_name FROM course GROUP BY dept_name HAVING COUNT(course_id)>1;

18. NAROČI PO

ORDER BY se uporablja za razvrščanje rezultatov poizvedbe v padajočem ali naraščajočem vrstnem redu. ORDER BY bo razvrstil v naraščajočem vrstnem redu, razen če je določen ASC ali DESC.

IZBERI , , … OD NAROČI PO , , …ASC|DESC;

Primer

Prikažimo seznam tečajev v naraščajočem in padajočem vrstnem redu kreditov:

IZBERI * IZ tečaja ORDER BY kreditov; IZBERI * IZ tečaja ORDER BY kreditov DESC;

19. MED

BETWEEN se uporablja za izbiro vrednosti podatkov iz določenega obsega. Številčno in besedilne vrednosti, pa tudi datume.

IZBERI , , … OD KJE MED IN ;

Primer

Prikažimo seznam inštruktorjev, katerih plača je večja od 50.000, vendar manjša od 100.000:

IZBERI * OD inštruktorja WHERE plača MED 50000 IN 100000;

20. VŠEČ

Operator LIKE se uporablja v WHERE za podajanje iskalnega vzorca za podobno vrednost.

Obstajata dva prosta operaterja, ki se uporabljata v LIKE:

  • % (brez, en ali več znakov);
  • _ (en znak).
IZBERI , , … OD KJE Všeč mi je ;

Primer

Prikažimo seznam tečajev, katerih imena vsebujejo "do", in seznam tečajev, katerih imena se začnejo s "CS-":

SELECT * FROM tečaj WHERE naslov LIKE ‘%to%’; SELECT * FROM tečaj WHERE course_id LIKE "CS-___";

21. IN

Z uporabo IN lahko določite več vrednosti za stavek WHERE:

IZBERI , , … OD KJE IN ( , , …);

Primer

Prikažimo seznam študentov iz Comp smeri. znanost, fizika in elektr. angleščina:

SELECT * FROM študent WHERE dept_name IN ('Comp. Sci.', 'Physics', 'Elec. Eng.');

22. PRIDRUŽI SE

JOIN se uporablja za povezovanje dveh ali več tabel z uporabo skupnih atributov v njih. Spodnja slika prikazuje različne načine pridruži v SQL. Upoštevajte razliko med levim zunanjim spojem in desnim zunanjim spojem:

IZBERI , , … OD PRIDRUŽI SE VKLOP = ;

Primer 1

Prikazali bomo seznam vseh predmetov in ustrezne informacije o fakultetah:

IZBERITE * IZ tečaja JOIN Department ON course.dept_name=department.dept_name;

Primer 2

Prikazali bomo seznam vseh obveznih tečajev in podrobnosti o njih:

SELECT prereq.course_id, title, dept_name, Credits, prereq_id FROM prereq LEFT OUTER JOIN tečaj ON prereq.course_id=course.course_id;

Primer 3

Prikazali bomo seznam vseh tečajev, ne glede na to, ali so obvezni ali ne:

SELECT course.course_id, title, dept_name, Credits, prereq_id FROM prereq RIGHT OUTER JOIN course ON prereq.course_id=course.course_id;

23. Pogled

Pogled je navidezna tabela SQL, ustvarjena kot rezultat izvajanja izraza. Vsebuje vrstice in stolpce in je zelo podobna običajni tabeli SQL. Pogled vedno prikazuje najnovejše informacije iz baze podatkov.

Ustvarjanje

USTVARI POGLED KOT IZBERI , , … OD KJE ;

Odstranitev

SPUSTI POGLED ;

Primer

Ustvarimo pogled, sestavljen iz tečajev s 3 kreditnimi točkami:

24. Agregatne funkcije

Te funkcije se uporabljajo za pridobitev skupnega rezultata v zvezi z zadevnimi podatki. Naslednje so običajno uporabljene agregatne funkcije:

  • COUNT (col_name) - vrne število vrstic;
  • SUM (col_name) - vrne vsoto vrednosti v tem stolpcu;
  • AVG (col_name) - vrne povprečno vrednost danega stolpca;
  • MIN (col_name) - vrne najmanjšo vrednost danega stolpca;
  • MAX (col_name) – Vrne največjo vrednost danega stolpca.

25. Ugnezdene podpoizvedbe

Ugnezdene podpoizvedbe so poizvedbe SQL, ki vključujejo klavzule SELECT, FROM in WHERE, ugnezdene znotraj druge poizvedbe.

Primer

Poiščimo tečaje, ki so se izvajali jeseni 2009 in spomladi 2010:

SELECT DISTINCT course_id FROM section WHERE semester = 'Fall' AND year= 2009 AND course_id IN (SELECT course_id FROM section WHERE semester = 'Spring' AND year= 2010);

SQL - Strukturirani povpraševalni jezik za delo s podatkovnimi bazami.
IN ta pregled Ogledali si bomo najpogostejše vrste poizvedb SQL.
Definiran je standard SQL ANSI(Ameriški nacionalni inštitut za standarde).
SQL je jezik, namenjen posebej relacijskim bazam podatkov.

SQL particioniranje:


DDL
(Jezik za definiranje podatkov) - tako imenovani jezik za opis sheme v ANSI je sestavljen iz ukazov, ki ustvarjajo objekte (tabele, indekse, poglede itd.) v bazi podatkov.
DML(Jezik za manipulacijo podatkov) je nabor ukazov, ki določajo, katere vrednosti so v danem trenutku predstavljene v tabelah.
DCD(Jezik za upravljanje podatkov) je sestavljen iz zmogljivosti, ki določajo, ali naj uporabniku dovolijo izvajanje določenih dejanj ali ne. So del ANSI DDL. Ne pozabi teh imen. To niso različni jeziki, temveč razdelki ukazov SQL, združeni glede na njihove funkcije.

Vrste podatkov:

SQL Server – Vrste podatkov

Opis

bigint (int 8)

bigint (int 8)

dvojiško(n)

dvojiško(n) ali slika

značaj
(sinonim char)

nacionalni značaj oz ntext

značaj se spreminja(sinonim char spreminjanje varchar)

nacionalni značaj je različen oz ntext

Datum čas

Datum čas

decimalno

aka številčno

dvojna natančnost

dvojna natančnost

celo število (int 4) (sinonim: int)

celo število (int 4)

nacionalni značaj(sinonim: nacionalni značaj, nchar)

nacionalni značaj

Numerično(sinonimi: decimalno, dec)

nacionalni značaj je različen(sinonimi: nacionalni čar se spreminja, nvarchar)

Nacionalni značaj je različen

Smalldatetime

Datum čas

smallint (int 2)

smallint (int 2)

Smallmoney

sql_variant

Ni več podprto

Ntext
Od SQL Server 2005 dalje ni priporočljivo uporabljati.

Časovni žig

Ne podpira

tinyint (int 1)

tinyint (int 1)

Uniqueidentifier

unikatni identifikator

varbinary(n)

varbinary(n) ali slika

smalldatetime

Datum čas

smallint (int 2)

smallint (int 2)

smallmoney

sql_variant

Ne podpira

časovni žig

Ne podpira

tinyint (int 1)

tinyint (int 1)

unikatni identifikator

unikatni identifikator

varbinary(n)

varbinary(n) ali slika

Tabela podatkovnih vrst v SQL Server 2000

KAJ JE ZAHTEVA?

Prošnja je ukaz, ki ga daste svojemu programu baze podatkov. Poizvedbe so del jezika DML. Vse poizvedbe SQL so sestavljene iz enega samega ukaza. Struktura tega ukaza je varljivo preprosta, ker jo morate razširiti za izvajanje zelo zapletenih vrednotenj in manipulacij s podatki.

Ukaz SELECT:

IZBERI“Izberi” je najpogosteje uporabljen ukaz, z njim izbiramo podatke iz tabele.
Vrsta poizvedbe z uporabo SELECT:

IZBERITE id, uporabniško_ime, mesto, rojstni_dan IZ baze uporabnikov;

Takšna poizvedba bo iz tabele users_base prikazala vse vrednosti navedenih stolpcev, ločene z vejicami za ukazi SELECT. Prav tako lahko prikažete vse stolpce z enim znakom, *, tj. SELECT * FROM users_base ; - taka poizvedba bo prikazala vse podatke iz tabele.

Struktura ukaza SELECT:

IZBERI (Imena stolpcev, ločena z vejicami, ki morajo biti prikazana v poizvedbi) FROM (ime tabele v bazi podatkov)
- To je najpreprostejša vrsta zahteve. Obstajajo dodatni ukazi za priročno pridobivanje podatkov (glejte spodaj »Funkcije«)

Ukazi DML:

Vrednosti lahko postavite in odstranite iz polj z uporabo treh ukazov DML (Data Manipulation Language):
VSTAVI(Vstavi)
NADGRADNJA(Posodobitev, sprememba),
IZBRIŠI(Izbriši)

Ukaz INSERT:

INSERT INTO users_base (uporabniško_ime, mesto, rojstni_dan) VALUES ('Alexander', 'Rostov', '06/20/1991');

Ukaz INSERT ima predpono INTO (in to), nato so v oklepaju imena stolpcev, v katere moramo vnesti podatke, nato sledi ukaz VALUES (vrednosti) in v oklepajih se vrstijo vrednosti (je morate upoštevati vrstni red vrednosti s stolpci, vrednosti morajo biti v istem vrstnem redu kot stolpci, ki ste jih navedli).

Ukaz UPDATE:

UPDATE users_base SET user_name = 'Alexey';

Ukaz UPDATE posodobi vrednosti v tabeli. Najprej pride sam ukaz UPDATE, nato ime tabele, za ukazom SET (set), nato ime stolpca in njegova vrednost v narekovajih (narekovaji so postavljeni, če je vrednost v obliki niza, če je številska vrednost in stolpec ni vezan na podatkovni tip vchar ali druge vrste nizov, narekovaji nimajo pomena.)

Ukaz DELETE:

DELETE FROM users_base WHERE user_name = 'Vasily';

Ukaz DELETE izbriše celotno vrstico in identificira vrstico z uporabo kriterija WHERE. V tem primeru bi ta poizvedba izbrisala vse vrstice, v katerih je bila vrednost stolpca user_name Vasily. O kriteriju KJE in drugih bomo govorili malo kasneje.

Kriteriji, funkcije, pogoji itd. kaj nam pomaga pri SQL:

Klavzula WHERE je klavzula ukaza SELECT in drugih ukazov DML, ki omogoča nastavitev predikatov, katerih pogoj je lahko resničen ali neresničen za katero koli vrstico v tabeli. Ukaz iz tabele pridobi samo tiste vrstice, za katere ta trditev velja.
primer:
IZBERI id, mesto, rojstni_dan FROM users_base WHERE user_name = ‘Alexey’;- taka poizvedba bo prikazala samo tiste vrstice, ki ustrezajo pogoju WHERE, in sicer vse vrstice, v katerih ima stolpec user_name vrednost Alexey.

ORDER BY - pogoj za razvrščanje izbranih vrstic. Ima 2 kriterija ASC in DESC. ASC (razvrščanje od A do Ž ali od 0 do 9)

DESC (nasprotje ASC).
primer:
IZBERI id, mesto, rojstni_dan FROM users_base ORDER BY user_name ASC; - taka poizvedba bo prikazala vrednosti, razvrščene po stolpcu user_name od A do Ž (A-Z; 0-9)

Ta pogoj se lahko uporablja tudi v povezavi s stavkom WHERE.
primer:
SELECT id, city, birth_day FROM users_base WHERE user_name = ‘Alexey’ ORDER BY id ASC;

DISTINCT je argument, ki vam ponuja način za odstranitev dvojnih vrednosti iz vašega stavka SELECT. Tisti. če imate v stolpcu podvojene vrednosti, recimo user_name, vam bo DISTINCT prikazal samo eno vrednost, na primer, v vaši zbirki podatkov imate 2 osebi z imenom Alexey, potem vam bo poizvedba s funkcijo DISTINCT pokazala samo 1 vrednost ki se najprej sreča...
primer:
IZBERITE DISTINCT user_name FROM users_base;- takšna poizvedba nam bo pokazala vrednosti vseh zapisov v stolpcu user_name, vendar se ne bodo ponovile, tj. če bi imeli neskončno število ponavljajočih se vrednosti, potem ne bodo prikazane ...

IN - vzame dve logični vrednosti (v obliki A IN B) kot argumenta in ju ovrednoti glede na resnico, ali sta oba resnična.
primer:
SELECT * FROM users_base WHERE city = 'Rostov' AND user_name = 'Alexander';- prikaže vse vrednosti iz tabele, kjer je ime mesta prikazano v eni vrstici (v tem primeru Rostov in uporabniško ime Alexander.

ALI - vzame dve logični vrednosti (v obliki A ALI B) kot argumenta in oceni, ali je eden od njiju pravilen.

SELECT * FROM users_base WHERE city = 'Rostov' OR user_name = 'Alexander';- prikaže vse vrednosti iz tabele, kjer se v vrstici pojavi ime mesta Rostov ali uporabniško ime Alexander.

NOT - sprejme eno logično vrednost (v obliki NOT A) kot argument in spremeni njeno vrednost iz false v true ali true v false.
SELECT * FROM users_base WHERE city = 'Rostov' OR NOT user_name = 'Alexander';- prikaže vse vrednosti iz tabele, kjer se ime mesta Rostov pojavi v eni vrstici ali uporabniško ime ni ravno Alexander.

IN - definira nabor vrednosti, v katerega je določena vrednost lahko vključena ali ne.
SELECT * FROM users_base WHERE mesto IN ('Vladivostok', 'Rostov');- taka poizvedba bo prikazala vse vrednosti iz tabele, ki vsebujejo imena navedenih mest v stolpcu mesta

Between je podoben operatorju IN. Za razliko od definiranja s števili iz niza, kot to počne IN, BETWEEN definira obseg, katerega vrednosti se morajo zmanjšati, da postane predikat resničen.
SELECT * FROM users_base WHERE id BETWEEN 1 AND 10;- prikaže vse vrednosti iz tabele, ki bodo v območju od 1 do 10 v stolpcu id

COUNT - ustvari številke vrstic ali neNULL vrednosti polj, ki jih je izbrala poizvedba.
SELECT COUNT (*) FROM users_base ;- bo prikazal število vrstic v tej tabeli.
SELECT COUNT (DISTINCT user_name) FROM users_base ;- prikaže število vrstic z uporabniškimi imeni (ne ponavljajo se)

SUM - ustvari aritmetično vsoto vseh izbranih vrednosti za dano polje.
SELECT SUM (id) FROM users_base ;- bo prikazal vsoto vrednosti vseh vrstic stolpca id.

AVG - povprečje vseh izbranih vrednosti tega polja.
SELECT AVG (id) FROM users_base ;- prikaže povprečje vseh izbranih vrednosti stolpca ID

MAX - ustvari največjo od vseh izbranih vrednosti za to polje.

MIN - ustvari najmanjšo od vseh izbranih vrednosti za to polje.

Ustvarjanje tabel:

CREATE TABLE users_base (id integer, user_name text, city text, birth_day datetime);- izvedba takega ukaza bo privedla do ustvarjanja tabele, za katero sem dal primere ... Tukaj je vse preprosto, napišemo ukaz CREATE TABLE, ki mu sledi ime tabele, ki jo želimo ustvariti, nato v oklepaju, ločeni z vejicami, imena stolpcev in njihov podatkovni tip. To je standardni način za ustvarjanje tabele v SQL. Zdaj bom dal primer ustvarjanja tabel v SQL Server 2005:

NASTAVITE ANSI_NULLS ON
POJDI
VKLOPI QUOTED_IDENTIFIER
POJDI
ČE NE OBSTAJA (IZBERITE * IZ sys.objects WHERE object_id = OBJECT_ID(N."") IN vnesite (N"U"))
ZAČETI
USTVARI TABELO .(

NI NULL,
NI NULL,
NI NULL,
PRIMARNI KLJUČ ZGRUČEN
A.S.C.


KONEC
POJDI
NASTAVITE ANSI_NULLS ON
POJDI
VKLOPI QUOTED_IDENTIFIER
POJDI
ČE NE OBSTAJA (IZBERITE * IZ sys.objects WHERE object_id = OBJECT_ID(N."") IN vnesite (N"U"))
ZAČETI
USTVARI TABELO .(
IDENTITETA(1,1) NI NULL,
NIČ,
NIČ,
PRIMARNI KLJUČ ZGRUČEN
A.S.C.
) Z VKLOPLJENO (IGNORE_DUP_KEY = OFF).
) NA TEXTIMAGE_ON
KONEC
POJDI
NASTAVITE ANSI_NULLS ON
POJDI
VKLOPI QUOTED_IDENTIFIER
POJDI
ČE NE OBSTAJA (IZBERITE * IZ sys.objects WHERE object_id = OBJECT_ID(N."") IN vnesite (N"U"))
ZAČETI
USTVARI TABELO .(
IDENTITETA(1,1) NI NULL,
NIČ,
NIČ,
PRIMARNI KLJUČ ZGRUČEN
A.S.C.
) Z VKLOPLJENO (IGNORE_DUP_KEY = OFF).
) VKLOPLJENO
KONEC

Sintaksa v SQL Server 2005 je druga tema, želel sem samo pokazati, da sem opisal osnove programiranja SQL, vrh lahko dosežete sami, če poznate osnove.

Če imate kakršna koli vprašanja o tej temi, mi pišite

Razvijte aplikacijo, ki prikazuje osnovne operacije s podatki v bazi podatkov, kot je MS SQL Server, in sicer:

  • povezovanje podatkovne baze z aplikacijo;
  • prikaz tabel baze podatkov na obrazcu;
  • dodatek nov vnos v bazo podatkov;
  • urejanje zapisa;
  • brisanje vnosa.

Za osnovo je vzeta baza Education.dbo, katere proces ustvarjanja je podrobno opisan

Slika 1 prikazuje strukturo baze Education.dbo. Kot je razvidno iz slike, se baza podatkov imenuje:

sasha-pc\sqlexpress.Education.dbo

Tu je »sasha-pc« identifikator računalnika v omrežju, »sqlexpress« je ime strežnika baze podatkov, »Education.dbo« je ime baze podatkov.

riž. 1. Baza podatkov Education.dbo

Baza podatkov vsebuje dve tabeli: študent in seja. Struktura tabel je naslednja.

Študentska miza.

Sejna miza.

Izvedba

1. Ustvarite nov projekt v MS Visual Studio kot Windows Forms Application.

Ustvarite nov projekt tipa Windows Forms Application. Primer izdelave novega projekta je podrobno opisan

2. Ustvarite nov pogled za prikaz podatkov iz tabele Študent.

Za prikaz podatkov iz tabel zbirke podatkov lahko uporabite različne poti. Eden izmed njih je izdelava pogledov, ki jih generiramo s pomočjo MS Visual Studio.

V našem primeru bodo podatki tabele prikazani na obrazcu v kontrolniku tipa DataGridView. Ko ustvarite poglede, jih je zelo priročno povezati z elementi DataGridView.

Za ustvarjanje pogleda morate iz kontekstnega menija poklicati ukaz »Dodaj nov pogled«, ki ga prikličemo z desnim klikom na element »Pogledi« baze Education.dbo (slika 2).

riž. 2. Klicanje ukaza za dodajanje novega pogleda

Posledično se odpre okno »Dodaj tabelo« (slika 3). V oknu morate izbrati tabele, ki so dodane v pogled.

riž. 3. Izbira tabel, na katerih bo temeljil nov pogled

V našem primeru izberite tabelo Študent in potrdite izbiro s klikom na gumb Dodaj. Naslednji korak je zapiranje okna z izbiro gumba Zapri.

Po opravljenih korakih se ustvari okno, v katerem morate izbrati polja, ki naj bodo prikazana v pogledu (na obrazcu). Izberite vsa polja (slika 4).

Ko izberete polja, se polja tabele Študent prikažejo na vrhu delovnega območja. Z miško lahko izberete želena polja za predstavitev.

V skladu s tem so v srednjem delu okna prikazana imena izbranih polj, tabela, v kateri obstajajo (glej sliko 4), možnost razvrščanja, filtriranja itd.

Na dnu območja je prikazano ustrezno besedilo poizvedbe SQL, ki se uporablja za ustvarjanje pogleda.

riž. 4. Izbira polj tabele študentov za prikaz v pogledu

Po izbiri ekipe

Datoteka->Shrani vse Datoteka->Shrani pogled1

Odpre se okno, v katerem morate določiti ime pogleda. Nastavite ime »Ogled študenta« (slika 5).

riž. 5. Določanje imena za pogled

Po zaključku korakov bo predstavitveno okno videti, kot je prikazano na sliki 6.

riž. 6. Oglejte si zastopanost študentov v bazi podatkov

Zdaj lahko gostite kontrolnik DataGridView in ga povežete s pogledom.

3. Namestite kontrolnik DataGridView in konfigurirajte povezavo z bazo podatkov.

Preden postavite kontrolnik DataGridView, morate iti v način oblikovanja obrazca »Form1.cs«.

Element DataGridView je tabela, ki lahko prikazuje podatke. Ta kontrolnik se nahaja na plošči ToolBox. Najprej nekoliko prilagodimo velikost obrazca, nato pa nanj postavimo kontrolnik DataGridView (slika 7). To bo privzeto ustvarilo primerek objekta z imenom dataGridView1.

riž. 7. Nadzor DataGridView in okno za izbiro vira podatkov

Ko postavite kontrolnik DataGridView na obrazec, lahko v zgornjem desnem kotu izberete konfiguracijo vira podatkov. V skladu s tem se odpre okno »Naloge DataGridView«. V tem oknu morate izbrati pojavni meni »Izberi vir podatkov«.

V meniju, ki se odpre, izberemo ukaz “Add Project Data Source...” (slika 7). Po tem se odpre okno čarovnika, v katerem se zaporedno izbere vir podatkov.

Slika 8 prikazuje " Čarovnik za konfiguracijo vira podatkov«, v katerem izberemo vrsto podatkovnega vira. V našem primeru namestimo »Bazo podatkov«.

riž. 8. Izbira vrste podatkovnega vira

V naslednjem oknu (Slika 9) je izbran model vira podatkov. Izbrati morate DataSet.

riž. 9. Izbira modela podatkovnega vira

V oknu, prikazanem na sliki 10, morate določiti podatkovno povezavo, ki jo želite uporabiti za povezavo z bazo podatkov. V našem primeru moramo izbrati bazo podatkov " sasha-pc\sqlexpress\Education.dbo«.

riž. 10. Izbira podatkovne povezave

Naslednje okno (slika 11) predlaga shranjevanje povezovalnega niza v konfiguracijsko datoteko aplikacije. Pustimo vse, kot je, in nadaljujemo do naslednjega okna.

riž. 11. Predlog za shranjevanje povezovalnega niza baze podatkov Connection String v konfiguracijsko datoteko aplikacije

Po ustvarjanju povezave z bazo podatkov se prikažejo različni objekti baze podatkov (slika 12). V našem primeru moramo izbrati pogled »Ogled študenta« in vsa polja v njem. Preverjena polja bodo prikazana v komponenti tipa DataGridView.

riž. 12. Izbira objektov baze podatkov za prikaz v DataGridView

Po izbiri gumba Končaj se prikažejo izbrani objekti (View Student view) baze Education.dbo (slika 13).

riž. 13. Nadzor DataGridView z izbranimi polji View Student

Na podoben način lahko konfigurirate poglede, ki vsebujejo poljubna polja iz katere koli tabele zbirke podatkov. Tudi polja iz različnih tabel so lahko prikazana v enem pogledu.

4. Nastavitev videza kontrolnika DataGridView.

Če zaženete aplikacijo, prejmete podatke iz pogleda View Student, ki ustreza tabeli Student v bazi (slika 14).

riž. 14. Zagon aplikacije v izvršitev

Kot lahko vidite na sliki 14, so podatki v tabeli dataGridView1 prikazani normalno, vendar je zasnovo mogoče prilagoditi.

Kontrolnik vrste DataGridView vam omogoča prilagajanje videza prikazanih polj.

Za klic ukazov za urejanje polj preprosto pokličite kontekstni meni z desnim klikom na kontrolnik dataGridView1.

Jedilnik ima različne uporabne ukaze, ki vam omogočajo nadzor nad videzom in delovanjem DataGridView:

  • ukaz za blokiranje nadzora (Lock Controls);
  • ukaz za urejanje polj, ki so prikazana v pogledu (Edit Columns...);
  • ukaz za dodajanje novih polj, na primer izračunanih (Dodaj stolpec).

V našem primeru morate izbrati ukaz “Edit Columns...” (Slika 15).

riž. 15. Ukaz “Urejanje stolpcev...” v kontekstnem meniju

Posledično se odpre okno »Urejanje stolpcev«, v katerem lahko prilagodite videz predstavitvenih polj po svojih željah (slika 16).

riž. 16. Okno za nastavitev pogleda polj v pogledu Pogled študenta

V oknu na sliki 16 lahko za katero koli polje konfigurirate ime, poravnavo, širino, možnost urejanja podatkov itd.

5. Povezavni niz

Če želite spremeniti bazo podatkov, morate pridobiti povezovalni niz z bazo podatkov Connection String.

Niz povezave z bazo podatkov lahko dobite na različne načine. Eden od njih temelji na branju te vrstice v oknu Properties baze Education.dbo (slika 17).

riž. 17. Definiranje povezovalnega niza

Če želite niz shraniti v program, uporabite notranjo spremenljivko tipa vrvica. S pomočjo odložišča prekopirajte Connection String v opisano spremenljivko niza.

V besedilu datoteke "Form1.cs" na začetku opisa razreda Form1 morate opisati spremenljivko:

niz conn_string =;

Trenutno je besedilo razreda Form1 naslednje:

javni delni razred Form1 : Form { niz conn_string = @"Vir podatkov=(lokalno)\SQLEXPRESS;Začetni katalog=Izobraževanje;Integrirana varnost=True;Združevanje=False"; javni obrazec1() { Inicializiraj komponento(); } zasebni void Form1_Load(objekt pošiljatelj, EventArgs e) { // TODO: Ta vrstica kode naloži podatke v tabelo "educationDataSet.View_Student". Ti lahko po potrebi premaknite ali odstranite. } }

6. Ustvarjanje nova oblika za prikaz ukazov za obdelavo podatkov.

Da bi lahko obdelali podatke trenutnega zapisa, morate ustvariti nov obrazec. Podrobno je opisan postopek izdelave novega obrazca v MS Visual Studio - C#.

Dodajanje novega obrazca izvedemo z ukazom:

Projekt -> Dodaj obrazec Windows ...

V oknu »Nov element«, ki se odpre, morate izbrati element »Obrazec Windows«.

Pustite novo ime datoteke obrazca kot privzeto »Form2.cs«.

Slika 18 prikazuje pogled na nov obrazec.

Na obrazec postavimo naslednje tipe kontrol:

  • dva gumba za upravljanje (gumba V redu in Prekliči). V skladu s tem bosta prejeta dva objekta z imenom button1 in button2;
  • štiri kontrole oznak za ustvarjanje informativnih sporočil;
  • štiri kontrole tipa TextBox za vnos podatkov v polja Num_book, Name, Group, Year.

Konfigurirati morate naslednje lastnosti kontrolnikov:

  • v lastnosti gumba Control1 Text = “OK “;
  • v lastnosti kontrolnika button2 Text = “Prekliči “;
  • v lastnosti nadzornega gumba1 DialogResult = "OK";
  • v lastnosti nadzornega gumba2 DialogResult = "Prekliči";
  • v kontrolniku label1 lastnost Text = "Num_book";
  • v kontrolniku label2 lastnost Text = "Ime";
  • v kontrolniku label3 lastnost Text = "Skupina";
  • v label4 nadzirajte lastnost Text = "Year".

Konfiguriramo tudi vidnost kontrolnikov TextBox. Če želite to narediti, v vseh kontrolnikih textBox1, textBox2, textBox3, textBox4 vrednost lastnosti Modifiers = »javno«.

riž. 18. Pogled na novo izdelan obrazec

7. Dodajanje gumbov za klic ukazov za manipulacijo podatkov iz tabele Učenec.

Za nadaljnje delo morate z miško preklopiti na glavni obrazec Form1.

Dodajte tri gumbe v glavno obliko aplikacije Form1 (Button). Samodejno bodo ustvarjene tri spremenljivke objekta z imeni button1, button2, button3. V vsakem od teh gumbov naredimo naslednje nastavitve (okno Lastnosti):

  • v gumbu button1 lastnost Text = “Vstavi …” (vstavi zapis);
  • v gumbu button2 lastnost Text = “Uredi …” (spremeni vnos);
  • v gumbu button3 lastnost Text = "Delete".

Zaradi opravljenih sprememb bo glavni obrazec videti tako, kot je prikazano na sliki 19.

riž. 19. Glavni obrazec vloge

8. Programiranje klika na gumb “Vstavi...”.

Obravnavalec dogodka klika na gumbu »Vstavi ...« izgleda takole:

zasebni void button1_Click_1(pošiljatelj predmeta, EventArgs e) { niz cmd_text; Form2 f2 = nov obrazec2(); if (f2.ShowDialog() == DialogResult .OK) { cmd_besedilo = "INSERT INTO Student VALUES (" + """ + f2.textBox1.Text + "" , "" + f2.textBox2.Text + "" , "" + f2.textBox3.Text + "" , " + f2.textBox4.Text + ")" ; // ustvarite povezavo z bazo podatkov SqlConnection sql_conn = nova SqlConnection(conn_string); // ustvarite ukaz v jeziku SQL SqlCommand sql_comm = nov SqlCommand(cmd_text, sql_conn); sql_conn.Open(); // odprta povezava sql_comm.ExecuteNonQuery(); // izvrši ukaz v jeziku SQL sql_conn.Zapri(); // zapri povezavo this .view_StudentTableAdapter.Fill(this .educationDataSet.View_Student); } }

Najprej se pokliče Form2. Po prejemu rezultata »OK« (pritisku ustreznega gumba) so v Form2 izpolnjena polja v elementih tipa TextBox vključena v poizvedbeni niz SQL. Poizvedba SQL za dodajanje nove vrstice izgleda takole:

INSERT INTO Student VREDNOSTI (vrednost1, vrednost2, vrednost3, vrednost4)

kjer vrednost1 ustreza številki redovalnice; vrednost2 – priimek študenta; value3 – skupina, v kateri se študent izobražuje; value4 – leto vnosa.

Povezavni niz baze podatkov Connection String je opisan v spremenljivki conn_string (glejte odstavek 5). Objekt razreda SqlConnection povezuje aplikacijo z viri podatkov. Poleg tega razred Connection obravnava avtentikacijo uporabnikov, mreženje, identifikacijo baze podatkov, medpomnjenje povezave in obdelavo transakcij.

Ukaz SQL, ki doda zapis v tabelo, je enkapsuliran v razred SqlCommand. Konstruktor razreda SqlCommand sprejme dva parametra: niz poizvedbe SQL (spremenljivka cmd_text) in objekt razreda SqlConnection.

Metoda ExecuteNonQuery() je implementirana v vmesnik IDBCommand. Metoda izvaja ukaze SQL, ki ne vrnejo podatkov. Takšni ukazi vključujejo ukaze INSERT, DELETE, UPDATE, pa tudi shranjene procedure, ki ne vračajo podatkov. Metoda ExecuteNonQuery() vrne število vključenih zapisov.

9. Programiranje dogodka klika na gumb “Uredi...”.

Obravnavalec dogodka klika na gumbu »Uredi ...« izgleda takole:

private void button2_Click(object sender, EventArgs e) (string cmd_text; Form2 f2 = new Form2 (); int index; string num_book; index = dataGridView1.CurrentRow.Index; num_book = Convert .ToString(dataGridView1.Value); f2.textBox1 .Text = num_book; f2.textBox2.Text = Pretvori .ToString(dataGridView1.Value); f2.textBox3.Text = Pretvori .ToString(dataGridView1.Value); f2.textBox4.Text = Pretvori .ToString(dataGridView1.Value); if (f2.ShowDialog() == DialogResult .OK) ( cmd_text = "POSODOBITEV študentskega NASTAVKA Num_book = ""+ f2.textBox1.Text + "", " + " = "" + f2.textBox2.Text + "", " + " = "" + f2.textBox3.Text + "", " + "Leto = " + f2 .TextBox4.Text + "Kaj num_book =" " + num_book +" "" "" SQLConNection SQL_Conn = Nova SQLConNECTION (Conn_String); SQLCMAND SQL_comm = Nova SQLCMANT (CMD_TEXT, sql_conn); sql_conn.open (); sql_comm.executenonquery () ; sql_conn.Close(); ta .view_StudentTableAdapter.Fill(ta .educationDataSet.View_Student); ) )

Ta upravljalnik izvede ukaz UPDATE SQL, ki spremeni trenutno vrednost aktivnega zapisa.

10. Programiranje klika na gumb »Izbriši«.

Obravnavalec dogodka klika na gumbu »Izbriši« izgleda takole:

private void button3_Click(object sender, EventArgs e) ( string cmd_text = "DELETE FROM Student" ; int index; string num_book; index = dataGridView1.CurrentRow.Index; num_book = Convert.ToString(dataGridView1.Value); cmd_text = "DELETE FROM Student WHERE . = ""+ num_book + """ ; SqlConnection sql_conn = new SqlConnection (conn_string); SqlCommand sql_comm = new SqlCommand (cmd_text, sql_conn); sql_conn.Open(); sql_comm.ExecuteNonQuery(); sql_conn.Close(); this .view_StudentTable Adapter. Izpolni (ta .educationDataSet.View_Student); )

Ta upravljalnik izvede ukaz SQL DELETE za izbris zapisa.

Sorodne teme

  • Izpis tabele zbirke podatkov Microsoft Access

SQL Server Management Studio ponuja popolno orodje za ustvarjanje vseh vrst poizvedb. Z njegovo pomočjo lahko ustvarjate, shranjujete, nalagate in urejate poizvedbe. Poleg tega lahko delate na poizvedbah brez povezave s katerim koli strežnikom. To orodje nudi tudi možnost razvijanja poizvedb za različne projekte.

S poizvedbami lahko delate bodisi z urejevalnikom poizvedb bodisi z raziskovalcem rešitev. Ta članek obravnava obe orodji. Poleg teh dveh komponent programa SQL Server Management Studio si bomo ogledali odpravljanje napak kode SQL z uporabo vgrajenega razhroščevalnika.

Urejevalnik poizvedb

Če želite odpreti ploščo urejevalnika poizvedb Urejevalnik poizvedb, v orodni vrstici SQL Server Management Studio kliknite gumb Nova poizvedba. To ploščo je mogoče razširiti na prikaz gumbov za ustvarjanje vseh možnih poizvedb, ne samo poizvedb Database Engine. Privzeto je ustvarjen nova zahteva Komponenta Database Engine, vendar s klikom na ustrezen gumb v orodni vrstici lahko ustvarite tudi poizvedbe MDX, XMLA itd.

Vrstica stanja na dnu plošče urejevalnika poizvedb označuje stanje urejevalnikove povezave s strežnikom. Če se s strežnikom ne povežete samodejno, se ob zagonu urejevalnika poizvedb prikaže pogovorno okno Connect to Server, v katerem lahko izberete strežnik, s katerim se želite povezati, in način preverjanja pristnosti.

Urejanje poizvedb brez povezave zagotavlja večjo prilagodljivost kot pri povezavi s strežnikom. Za urejanje poizvedb ni potrebna povezava s strežnikom, okno urejevalnika poizvedb pa lahko prekinete povezavo z enim strežnikom (z uporabo menijskega ukaza Poizvedba --> Povezava --> Prekini povezavo) in se povežete z drugim brez odpiranja drugega okna urejevalnika. Če želite izbrati način urejanja brez povezave, uporabite pogovorno okno Connect to Server, ki se odpre, ko zaženete urejevalnik. določen tip zahteve preprosto kliknite gumb Prekliči.

Urejevalnik poizvedb lahko uporabite za izvajanje naslednjih nalog:

    ustvarjanje in izvajanje izjav Transact-SQL;

    shranjevanje ustvarjenih jezikovnih stavkov Transact-SQL v datoteko;

    ustvarjanje in analiziranje izvedbenih načrtov za pogoste poizvedbe;

    ki grafično ponazarja izvedbeni načrt izbrane poizvedbe.

Urejevalnik poizvedb vsebuje vgrajeno urejevalnik besedil in orodno vrstico z nizom gumbov za različna dejanja. Glavno okno urejevalnika poizvedb je vodoravno razdeljeno na ploščo s poizvedbami (na vrhu) in ploščo z rezultati (na dnu). Stavki Transact-SQL (to je poizvedbe), ki jih je treba izvesti, so vneseni v zgornjem podoknu, rezultati sistemske obdelave teh poizvedb pa so prikazani v spodnjem podoknu. Spodnja slika prikazuje primer vnosa poizvedbe v urejevalnik poizvedb in rezultate izvajanja te poizvedbe:

Prvi stavek zahteve USE določa uporabo baze podatkov SampleDb kot trenutne baze podatkov. Drugi stavek, SELECT, pridobi vse vrstice iz tabele Employee. Če želite zagnati to poizvedbo in prikazati rezultate, v orodni vrstici urejevalnika poizvedb kliknite gumb Izvedi ali pritisnite F5.

Odprete lahko več oken urejevalnika poizvedb, tj. vzpostaviti več povezav z enim ali več primerki Database Engine. Novo povezavo ustvarite s klikom na gumb Nova poizvedba v orodni vrstici SQL Server Management Studio.

Vrstica stanja na dnu okna urejevalnika poizvedb prikazuje naslednje informacije, povezane z izvajanjem stavkov poizvedbe:

    stanje trenutne operacije (na primer "Zahteva uspešno zaključena");

    ime strežnika baze podatkov;

    trenutno uporabniško ime in ID procesa strežnika;

    trenutno ime baze podatkov;

    čas, porabljen za izvedbo zadnje zahteve;

    število najdenih vrstic.

Ena od glavnih prednosti SQL Server Management Studio je njegova enostavna uporaba, kar velja tudi za urejevalnik poizvedb. Urejevalnik poizvedb ponuja številne funkcije za preprostejše kodiranje izjav Transact-SQL. Zlasti uporablja označevanje sintakse za izboljšanje berljivosti stavkov Transact-SQL. Vse rezervirane besede so prikazane modro, spremenljivke so prikazane črno, nizi so prikazani rdeče, komentarji pa zeleni.

Poleg tega je urejevalnik poizvedb opremljen s kontekstno občutljivo pomočjo Dinamična pomoč, preko katerega lahko pridobite informacije o določenem inštrukciji. Če ne poznate sintakse navodila, ga izberite v urejevalniku in pritisnite tipko F1. Prav tako lahko označite parametre različnih izjav Transact-SQL, da dobite pomoč pri njih v Books Online.

SQL Management Studio podpira SQL Intellisense, ki je vrsta orodja za samodejno dokončanje. Z drugimi besedami, ta modul predlaga najverjetnejšo dokončanje delno vnesenih elementov stavka Transact-SQL.

Raziskovalec objektov vam lahko pomaga tudi pri urejanju poizvedb. Če želite na primer vedeti, kako ustvariti stavek CREATE TABLE za tabelo Employee, z desno miškino tipko kliknite tabelo v Raziskovalcu predmetov in nastalo kontekstni meni izberite Script Table As --> CREATE to --> Novo okno urejevalnika poizvedb. Okno urejevalnika poizvedb, ki vsebuje tako ustvarjen stavek CREATE TABLE, je prikazano na spodnji sliki. Ta funkcija velja tudi za druge objekte, kot so shranjene procedure in funkcije.

Brskalnik po predmetih je zelo uporaben za grafični prikaz načrta izvajanja določene poizvedbe. Načrt izvajanja poizvedbe je možnost izvajanja, ki jo izbere optimizator poizvedbe med več možne možnosti izpolnjevanje posebne zahteve. Vnesite zahtevano poizvedbo v zgornjo ploščo urejevalnika, izberite zaporedje ukazov v meniju Poizvedba --> Prikaži predvideni izvedbeni načrt in izvedbeni načrt za to poizvedbo bo prikazan na spodnji plošči okna urejevalnika.

Raziskovalec rešitev

Urejanje poizvedbe v SQL Server Management Studio temelji na metodi rešitev. Če ustvarite prazno poizvedbo z gumbom Nova poizvedba, bo temeljila na prazni rešitvi. To lahko vidite tako, da zaženete zaporedje ukazov iz menija Pogled --> Raziskovalec rešitev takoj po odprtju prazne poizvedbe.

Odločitev je lahko povezana z nobenim, enim ali več projekti. Prazna rešitev, ki ni povezana z nobenim projektom. Če želite projekt povezati z rešitvijo, zaprite prazno rešitev, Raziskovalca rešitev in Urejevalnik poizvedb ter ustvarite nov projekt tako, da zaženete Datoteka --> Novo --> Projekt. V oknu Nov projekt, ki se odpre, v srednjem podoknu izberite možnost Skripti strežnika SQL. Projekt je način organiziranja datotek na določeni lokaciji. Projektu lahko dodelite ime in izberete lokacijo za njegovo lokacijo na disku. Ko ustvarite nov projekt, se samodejno zažene nova rešitev. Projekt je mogoče dopolniti obstoječa rešitev z uporabo Raziskovalca rešitev.

Za vsak ustvarjen projekt Solution Explorer prikaže mape Connections, Queries in Miscellaneous. Če želite odpreti novo okno urejevalnika poizvedb za določen projekt, z desno miškino tipko kliknite njegovo mapo Poizvedbe in v kontekstnem meniju izberite Nova poizvedba.

Odpravljanje napak SQL Server

SQL Server, začenši s SQL Server 2008, ima vgrajen razhroščevalnik kode. Če želite začeti sejo odpravljanja napak, izberite Debug --> Start Debugging v glavnem meniju SQL Server Management Studio. Ogledali si bomo, kako razhroščevalnik deluje na primeru uporabe paketa ukazov. Paket je logično zaporedje stavkov SQL in postopkovnih razširitev, ki se pošlje v Database Engine za izvedbo vseh stavkov, ki jih vsebuje.

Spodnja slika prikazuje paket, ki šteje število zaposlenih, ki delajo na projektu p1. Če je ta številka 4 ali več, se prikaže ustrezno sporočilo. V nasprotnem primeru se izpišejo imena in priimki zaposlenih.

Če želite zaustaviti izvajanje paketa pri določenem navodilu, lahko nastavite prekinitvene točke, kot je prikazano na sliki. Če želite to narediti, kliknite levo od vrstice, na kateri se želite ustaviti. Ko se začne odpravljanje napak, se izvajanje ustavi pri prvi vrstici kode, ki je označena z rumeno puščico. Za nadaljevanje izvajanja in odpravljanja napak izberite menijski ukaz Debug --> Continue. Paketna navodila se bodo še naprej izvajala do prve prekinitvene točke in rumena puščica se bo ustavila na tej točki.

Informacije, povezane s postopkom odpravljanja napak, so prikazane v dveh ploščah na dnu okna urejevalnika poizvedb. Informacije o različni tipi Informacije o odpravljanju napak so v teh ploščah združene na več zavihkih. Levo podokno vsebuje zavihek Autos, zavihek Locals in do pet zavihkov Watch. Desno podokno vsebuje zavihke Sklad klicev, Niti, Prekinitvene točke, Ukazno okno, Takojšnje okno in Izhod. Zavihek Locals prikazuje spremenljive vrednosti, zavihek Call Stack prikazuje vrednosti sklada klicev, zavihek Breakpoints pa prikazuje informacije o prelomnih točkah.

Če želite končati postopek odpravljanja napak, izvedite zaporedje ukazov iz glavnega menija Razhroščevanje --> Ustavi odpravljanje napak ali kliknite modri gumb v orodni vrstici razhroščevalnika.

SQL Server 2012 dodaja več novih funkcij vgrajenemu razhroščevalniku v SQL Server Management Studio. Zdaj lahko v njem izvajate več naslednjih operacij:

    Določite pogoj prekinitvene točke. Prelomno stanje je izraz SQL, katerega ovrednotena vrednost določa, ali se bo izvajanje kode ustavilo na dani točki ali ne. Če želite določiti pogoj prekinitvene točke, z desno miškino tipko kliknite rdečo ikono prekinitvene točke in v kontekstnem meniju izberite Pogoj. Odpre se pogovorno okno Breakpoint Condition, ki vam omogoča vnos zahtevanega logičnega izraza. Poleg tega, če morate ustaviti izvajanje, če je izraz resničen, morate nastaviti stikalo Is True. Če je treba izvajanje ustaviti, če se je izraz spremenil, morate nastaviti stikalo When Changed.

    Določite število zadetkov na prelomni točki. Število zadetkov je pogoj za zaustavitev izvajanja na dani točki glede na to, kolikokrat je bila točka prekinitve dosežena med izvajanjem. Ko je doseženo podano število prehodov in kateri koli drug pogoj, določen za dano prekinitveno točko, razhroščevalnik izvede podano dejanje. Pogoj za prekinitev izvajanja na podlagi števila zadetkov je lahko eden od naslednjih:

    1. brezpogojno (privzeto dejanje) (Vedno prekini);

      če je število zadetkov enako določeni vrednosti (Prekini, ko je njegovo število enako določeni vrednosti);

      če je število zadetkov večkratnik podane vrednosti (Prekini, ko je število zadetkov enako večkratniku podane vrednosti);

      Prekini, ko je njegovo število večje ali enako določeni vrednosti.

    Če želite nastaviti število zadetkov med razhroščevanjem, z desno miškino tipko kliknite zahtevano ikono prekinitvene točke na zavihku Prekinitvene točke, v kontekstnem meniju izberite Število zadetkov in nato izberite enega od pogojev v pogovornem oknu Število zadetkov prekinitvene točke, ki se odpre s prejšnjega seznama. Za možnosti, ki zahtevajo vrednost, jo vnesite v besedilno polje na desni strani spustnega seznama pogojev. Če želite shraniti podane pogoje, kliknite V redu.

    Določite filter prekinitvene točke. Filter prekinitvene točke omeji delovanje prekinitvene točke na samo določene računalnike, procese ali niti. Če želite nastaviti filter prekinitvene točke, z desno tipko miške kliknite želeno prekinitveno točko in v kontekstnem meniju izberite Filter. Nato v pogovornem oknu Filtri prekinitvene točke, ki se odpre, določite vire, na katere želite omejiti izvajanje te prekinitvene točke. Če želite shraniti podane pogoje, kliknite V redu.

    Določite dejanje na prelomni točki. Pogoj When Hit določa dejanje, ki se izvede, ko paketna izvedba doseže dano prekinitveno točko. Ko sta izpolnjena pogoj za štetje zadetkov in pogoj za zaustavitev, je privzeto izvajanje prekinjeno. Druga možnost je, da se prikaže vnaprej določeno sporočilo.

    Če želite določiti, kaj storiti, ko je dosežena točka prekinitve, z desno miškino tipko kliknite rdečo ikono točke prekinitve in v kontekstnem meniju izberite When Hit. V pogovornem oknu When Breakpoint is Hit, ki se odpre, izberite dejanje, ki ga želite izvesti. Če želite shraniti podane pogoje, kliknite V redu.

    Uporabite okno Quick Watch. Vrednost izraza Transact-SQL si lahko ogledate v oknu QuickWatch in nato shranite izraz v oknu Watch. Če želite odpreti okno Quick Watch, v meniju Debug izberite Quick Watch. Izraz v tem oknu lahko izberete s spustnega seznama Izraz ali vnesete v to polje.

    Uporabite opis orodja Quick Info. Ko z miško premaknete nad ID kode, se prikažejo hitre informacije ( Kratka informacija) prikaže svoj oglas v pojavnem oknu.




Vrh