Primjeri upita MS sql poslužitelja. Pokretanje SQL upita u Management Studio

SQL - Structured Query Language.
U ovu recenziju Pogledat ćemo najčešće tipove SQL upita.
SQL standard je definiran ANSI(Američki nacionalni institut za standarde).
SQL je jezik posebno usmjeren na relacijske baze podataka.

SQL particioniranje:


DDL
(Jezik za definiranje podataka) - takozvani Schema Description Language u ANSI-ju, sastoji se od naredbi koje stvaraju objekte (tablice, indekse, preglede i tako dalje) u bazi podataka.
DML(Jezik za manipulaciju podacima) je skup naredbi koje određuju koje su vrijednosti predstavljene u tablicama u bilo kojem trenutku.
DCD(Jezik za upravljanje podacima) sastoji se od mogućnosti koje određuju hoće li korisniku dopustiti izvršavanje određenih radnji ili ne. Oni su komponente DDL u ANSI. Ne zaboravite ova imena. To nisu različiti jezici, već dijelovi SQL naredbi grupirani prema njihovim funkcijama.

Vrste podataka:

SQL Server - Vrste podataka

Opis

bigint (int 8)

bigint (int 8)

binarni(n)

binarni(n) ili slika

lik
(sinonim char)

nacionalni lik ili ntext

lik varira(sinonim char koji varira varchar)

nacionalni karakter varira ili ntext

Datum vrijeme

Datum vrijeme

decimal

aka numerički

dvostruka preciznost

dvostruka preciznost

cijeli broj (int 4) (sinonim: int)

cijeli broj (int 4)

nacionalni karakter(sinonim: nacionalni karakter, nchar)

nacionalni karakter

Numerički(sinonimi: decimal, dec)

nacionalni karakter varira(sinonimi: nacionalni char varirajući, nvarchar)

Nacionalni karakter je različit

Mali datumvrijeme

Datum vrijeme

smallint (int 2)

smallint (int 2)

Smallmoney

sql_varijanta

Više nije podržano

Ntext
Počevši od SQL Servera 2005, ne preporučuje se za korištenje.

Vremenska oznaka

Nije podržano

tinyint (int 1)

tinyint (int 1)

Jedinstveni identifikator

jedinstveni identifikator

varbinarni(n)

varbinarni(n) ili slika

mali datumvrijeme

Datum vrijeme

smallint (int 2)

smallint (int 2)

mali novac

sql_varijanta

Nije podržano

vremenska oznaka

Nije podržano

tinyint (int 1)

tinyint (int 1)

jedinstveni identifikator

jedinstveni identifikator

varbinarni(n)

varbinarni(n) ili slika

Tablica tipova podataka u SQL Serveru 2000

ŠTO JE ZAHTJEV?

Zahtjev je naredba koju dajete svom programu baze podataka. Upiti su dio DML jezika. Svi SQL upiti sastoje se od jedne naredbe. Struktura ove naredbe varljivo je jednostavna jer je morate proširiti za izvođenje vrlo složenih procjena i manipulacija podacima.

SELECT naredba:

IZABERI“Select” je najčešće korištena naredba, a služi za odabir podataka iz tablice.
Vrsta upita pomoću SELECT-a:

SELECT id, user_name, city, birth_day FROM users_base;

Takav će upit iz tablice users_base prikazati sve vrijednosti navedenih stupaca odvojene zarezima nakon naredbe SELECT. Također, sve stupce možete prikazati jednim znakom, * tj. SELECT * FROM korisnička_baza; - takav će upit prikazati sve podatke iz tablice.

Struktura naredbe SELECT:

SELECT (Nazivi stupaca odvojeni zarezima koji trebaju biti prikazani u upitu) FROM (naziv tablice u bazi podataka)
- Ovo je najjednostavniji tip zahtjeva. Postoje dodatne naredbe za praktično pronalaženje podataka (pogledajte dolje "Funkcije")

DML naredbe:

Vrijednosti se mogu postaviti i ukloniti iz polja pomoću tri DML (Data Manipulation Language) naredbe:
UMETNUTI(Umetnuti)
AŽURIRAJ(ažuriranje, izmjena),
IZBRISATI(Izbrisati)

INSERT naredba:

INSERT INTO users_base (user_name, city, birth_day) VALUES ('Alexander', 'Rostov', '06/20/1991');

Naredba INSERT dolazi s prefiksom INTO (u do), zatim u zagradama su nazivi stupaca u koje moramo ubaciti podatke, zatim dolazi naredba VALUES (vrijednosti) i u zagradama redom dolaze vrijednosti (to je potrebno promatrati redoslijed vrijednosti sa stupcima, vrijednosti moraju biti u istom redoslijedu kao i stupci koje ste naveli).

UPDATE naredba:

UPDATE users_base SET user_name = 'Alexey';

Naredba UPDATE ažurira vrijednosti u tablici. Prvo dolazi sama naredba UPDATE, zatim naziv tablice, nakon naredbe SET (set), zatim naziv stupca i njegova vrijednost pod navodnicima (navodnici se stavljaju ako je vrijednost u string formatu, ako je numerička vrijednost i stupac nije vezan za tip podataka vchar ili bilo koji drugi tip niza, navodnici nemaju značenje.)

DELETE naredba:

DELETE FROM users_base WHERE user_name = 'Vasily';

Naredba DELETE briše cijeli red i identificira red pomoću kriterija WHERE. U u ovom slučaju ovaj bi upit izbrisao sve retke u kojima je vrijednost stupca user_name bila Basil. O kriteriju WHERE i ostalima ćemo nešto kasnije.

Kriteriji, funkcije, uvjeti itd. što nam pomaže u SQL-u:

WHERE klauzula je klauzula SELECT naredbe i drugih DML naredbi koja vam omogućuje postavljanje predikata čiji uvjet može biti istinit ili netočan za bilo koji red u tablici. Naredba dohvaća samo one retke iz tablice za koje je ova izjava istinita.
Primjer:
SELECT id, city, birth_day FROM users_base WHERE user_name = ‘Alexey’;- takav će upit prikazati samo one retke koji odgovaraju uvjetu WHERE, odnosno sve retke u kojima stupac user_name ima vrijednost Alexey.

ORDER BY - uvjet za sortiranje odabranih redaka. Ima 2 kriterija ASC i DESC. ASC (razvrstavanje od A do Z ili od 0 do 9)

DESC (suprotno od ASC).
Primjer:
SELECT id, city, birth_day FROM users_base ORDER BY user_name ASC; - takav će upit prikazati vrijednosti sortirane prema stupcu user_name od A do Z (A-Z; 0-9)

Ovaj se uvjet također može koristiti u kombinaciji s WHERE klauzulom.
Primjer:
SELECT id, city, birth_day FROM users_base WHERE user_name = ‘Alexey’ ORDER BY id ASC;

DISTINCT je argument koji vam daje način da eliminirate dvostruke vrijednosti iz vaše SELECT klauzule. Oni. ako imate duplicirane vrijednosti u stupcu, recimo user_name, tada će vam DISTINCT pokazati samo jednu vrijednost, na primjer, imate 2 osobe po imenu Alexey u vašoj bazi podataka, tada će vam upit pomoću funkcije DISTINCT pokazati samo 1 vrijednost koja se prva susreće...
Primjer:
SELECT DISTINCT user_name FROM users_base;- takav upit će nam pokazati vrijednosti svih zapisa u stupcu user_name, ali se one neće ponavljati, tj. ako ste imali beskonačan broj ponavljajućih vrijednosti, onda se one neće prikazati...

I - uzima dva Booleova (u obliku A I B) kao argumente i procjenjuje ih u odnosu na istinu jesu li oba istinita.
Primjer:
SELECT * FROM users_base WHERE city = 'Rostov' AND user_name = 'Alexander';- prikazat će sve vrijednosti iz tablice u kojoj se pojavljuje ime grada u jednom retku (u ovom slučaju Rostov i korisničko ime Alexander.

ILI - uzima dva Booleova (u obliku A ILI B) kao argumente i procjenjuje je li jedan od njih točan.

SELECT * FROM users_base WHERE city = 'Rostov' OR user_name = 'Alexander';- prikazat će sve vrijednosti iz tablice u kojoj se u retku pojavljuje ime grada Rostov ili korisničko ime Alexander.

NOT - uzima jedan Booleov (u obliku NOT A) kao argument i mijenja njegovu vrijednost iz false u true ili true u false.
SELECT * FROM users_base WHERE city = 'Rostov' OR NOT user_name = 'Alexander';- prikazat će sve vrijednosti iz tablice gdje se ime grada Rostov pojavljuje u jednom retku ili korisničko ime nije točno Alexander.

IN - definira skup vrijednosti u koje određena vrijednost može, ali ne mora biti uključena.
SELECT * FROM users_base WHERE grad IN ('Vladivostok', 'Rostov');- takav upit će prikazati sve vrijednosti iz tablice koje sadrže nazive navedenih gradova u stupcu grada

Between je sličan operatoru IN. Za razliku od definiranja brojevima iz skupa, kao što to čini IN, BETWEEN definira raspon čije se vrijednosti moraju smanjiti kako bi predikat bio istinit.
SELECT * FROM users_base WHERE id BETWEEN 1 AND 10;- prikazuje sve vrijednosti iz tablice koje će biti u rasponu od 1 do 10 u id stupcu

COUNT - proizvodi brojeve redaka ili vrijednosti koje nisu NULL polja koja je upit odabrao.
SELECT COUNT (*) FROM users_base ;- prikazat će broj redaka u ovoj tablici.
SELECT COUNT (DISTINCT user_name) FROM users_base ;- prikazat će broj redaka s korisničkim imenima (ne ponavljaju se)

SUM - proizvodi aritmetički zbroj svih odabranih vrijednosti za određeno polje.
SELECT SUM (id) FROM users_base ;- prikazat će zbroj vrijednosti svih redaka id stupca.

AVG - izračunava prosjek svih odabranih vrijednosti ovog polja.
SELECT AVG (id) FROM users_base ;- prikazat će prosjek svih odabranih vrijednosti ID stupca

MAX - proizvodi najveću od svih odabranih vrijednosti za ovo polje.

MIN - proizvodi najmanju od svih odabranih vrijednosti za ovo polje.

Izrada tablica:

CREATE TABLE users_base (id integer, user_name text, city text, birth_day datetime);- izvršenje takve naredbe će dovesti do kreiranja tablice za koju sam dao primjere... Ovdje je sve jednostavno, napišemo naredbu CREATE TABLE, zatim naziv tablice koju želimo kreirati, zatim u zagradi, odvojeni zarezima, nazivi stupaca i njihova vrsta podataka. Ovo je standardni način za stvaranje tablice u SQL-u. Sada ću dati primjer stvaranja tablica u SQL Serveru 2005:

POSTAVITE ANSI_NULLS ON
IĆI
UKLJUČI QUOTED_IDENTIFIER
IĆI
AKO NE POSTOJI (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N."") I upišite (N"U"))
POČETI
STVARAJ TABLICU .(

NIJE NULL,
NIJE NULL,
NIJE NULL,
PRIMARNI KLJUČ GRUPIRAN
A.S.C.


KRAJ
IĆI
POSTAVITE ANSI_NULLS ON
IĆI
UKLJUČI QUOTED_IDENTIFIER
IĆI
AKO NE POSTOJI (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N."") I upišite (N"U"))
POČETI
STVARAJ TABLICU .(
IDENTITET(1,1) NIJE NULL,
NULL,
NULL,
PRIMARNI KLJUČ GRUPIRAN
A.S.C.
)S UKLJUČENOM (IGNORE_DUP_KEY = OFF).
) NA TEXTIMAGE_ON
KRAJ
IĆI
POSTAVITE ANSI_NULLS ON
IĆI
UKLJUČI QUOTED_IDENTIFIER
IĆI
AKO NE POSTOJI (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N."") I upišite (N"U"))
POČETI
STVARAJ TABLICU .(
IDENTITET(1,1) NIJE NULL,
NULL,
NULL,
PRIMARNI KLJUČ GRUPIRAN
A.S.C.
)S UKLJUČENOM (IGNORE_DUP_KEY = OFF).
) UKLJUČENO
KRAJ

Sintaksa u SQL Serveru 2005 je druga tema, samo sam htio pokazati da sam opisao osnove SQL programiranja, možete doći do vrha sami poznavajući osnove.

Ako imate pitanja na ovu temu, pišite mi

Upiti se pišu bez izlaznih navodnika, jer MySQL, MS SQL I PostGree oni su različiti.

SQL upit: dobivanje navedenih (potrebnih) polja iz tablice

SELECT id, country_title, count_people FROM table_name

Dobivamo popis zapisa: SVE zemlje i njihovo stanovništvo. Nazivi obaveznih polja naznačeni su odvojeni zarezima.

SELECT * FROM table_name

* označava sva polja. Odnosno, bit će predstava SVE podatkovna polja.

SQL upit: ispis zapisa iz tablice isključujući duplikate

SELECT DISTINCT country_title FROM table_name

Dobivamo popis zapisa: zemlje u kojima se nalaze naši korisnici. Može biti mnogo korisnika iz jedne zemlje. U ovom slučaju, to je vaš zahtjev.

SQL upit: prikazivanje zapisa iz tablice na temelju zadanog uvjeta

SELECT id, country_title, city_title FROM table_name WHERE count_people>100000000

Dobivamo popis rekorda: zemlje u kojima je broj ljudi veći od 100.000.000.

SQL upit: prikaz zapisa iz tablice s redoslijedom

SELECT id, city_title FROM table_name ORDER BY city_title

Dobivamo popis zapisa: gradovi po abecednom redu. Na početku A, na kraju Z.

SELECT id, city_title FROM table_name ORDER BY city_title DESC

Dobivamo popis zapisa: gradovi obrnuto ( OPIS) u redu. Na početku I, na kraju A.

SQL upit: brojanje zapisa

SELECT COUNT(*) FROM table_name

Dobivamo broj (broj) zapisa u tablici. U ovom slučaju NEMA popisa zapisa.

SQL upit: ispis željenog raspona zapisa

SELECT * FROM table_name LIMIT 2, 3

Iz tablice dobivamo 2 (drugi) i 3 (treći) zapis. Upit je koristan prilikom kreiranja navigacije na WEB stranicama.

SQL upiti s uvjetima

Prikaz zapisa iz tablice na temelju zadanog uvjeta pomoću logičkih operatora.

SQL upit: I konstrukcija

SELECT id, city_title FROM table_name WHERE country="Rusija" AND oil=1

Dobivamo popis zapisa: gradovi iz Rusije I imaju pristup nafti. Kada koristiti operator I, onda se oba uvjeta moraju podudarati.

SQL upit: OR konstrukcija

SELECT id, city_title FROM table_name WHERE country="Rusija" OR country="USA"

Dobivamo popis zapisa: svi gradovi iz Rusije ILI SAD. Kada koristiti operator ILI, tada BAREM jedan uvjet mora odgovarati.

SQL upit: A NE konstrukcija

SELECT id, user_login FROM table_name WHERE country="Rusija" AND NOT count_comments<7

Dobivamo popis zapisa: svi korisnici iz Rusije I koji je napravio NE MANJE 7 komentara.

SQL upit: IN konstrukcija (B)

SELECT id, user_login FROM table_name WHERE zemlja IN ("Rusija", "Bugarska", "Kina")

Dobivamo popis zapisa: svi korisnici koji žive u ( U) (Rusija, ili Bugarska, ili Kina)

SQL upit: NIJE U izradi

SELECT id, user_login FROM table_name WHERE country NOT IN ("Rusija","Kina")

Dobivamo popis zapisa: svi korisnici koji ne žive u ( NE U) (Rusija ili Kina).

SQL upit: IS NULL konstrukcija (prazne ili NIJE prazne vrijednosti)

SELECT id, user_login FROM table_name WHERE status IS NULL

Dobivamo popis zapisa: svi korisnici kojima status nije definiran. NULL je zasebno pitanje i stoga se zasebno provjerava.

SELECT id, user_login FROM table_name WHERE stanje NIJE NULL

Dobivamo popis zapisa: svi korisnici kod kojih je definiran status (NIJE NULL).

SQL upit: konstrukcija LIKE

SELECT id, user_login FROM table_name WHERE prezime LIKE "Ivan%"

Dobivamo popis zapisa: korisnika čije prezime počinje kombinacijom “Ivan”. Znak % znači BILO KOJI broj BILO KOJIh znakova. Za pronalaženje znaka % morate upotrijebiti izlaz “Ivan\%”.

SQL upit: BETWEEN konstrukcija

SELECT id, user_login FROM table_name WHERE plaća IZMEĐU 25000 I 50000

Dobivamo popis evidencije: korisnici koji primaju plaću od 25.000 do uključivo 50.000.

Postoji PUNO logičkih operatora, stoga detaljno proučite dokumentaciju SQL poslužitelja.

Složeni SQL upiti

SQL upit: kombiniranje više upita

(SELECT id, user_login FROM table_name1) UNION (SELECT id, user_login FROM table_name2)

Dobivamo popis unosa: korisnika koji su registrirani u sustavu, kao i onih korisnika koji su zasebno registrirani na forumu. Operator UNION može kombinirati više upita. UNION se ponaša kao SELECT DISTINCT, to jest odbacuje duplicirane vrijednosti. Da biste dobili apsolutno sve zapise, morate koristiti operator UNION ALL.

SQL upit: brojanje vrijednosti polja MAX, MIN, SUM, AVG, COUNT

Prikaz jedne, maksimalne vrijednosti brojača u tablici:

SELECT MAX(brojač) FROM table_name

Ispis jedne minimalne vrijednosti brojača u tablici:

SELECT MIN(brojač) FROM table_name

Prikaz zbroja svih vrijednosti brojača u tablici:

SELECT SUM(brojač) FROM table_name

Prikaz prosječne vrijednosti brojača u tablici:

SELECT AVG(counter) FROM table_name

Prikaz broja brojača u tablici:

SELECT COUNT(counter) FROM table_name

Prikaz broja brojila u radionici br. 1 u tabeli:

SELECT COUNT(counter) FROM table_name WHERE office="Radionica br. 1"

Ovo su najpopularniji timovi. Preporuča se, gdje je to moguće, koristiti SQL upite ove vrste za izračune, budući da se niti jedno programsko okruženje ne može usporediti u brzini obrade podataka od samog SQL poslužitelja kada obrađuje svoje podatke.

SQL upit: grupiranje zapisa

SELECT kontinent, SUM(područje_zemlje) FROM zemlje GROUP BY kontinent

Dobivamo popis zapisa: s imenom kontinenata i zbrojem površina svih njihovih država. Odnosno, ako postoji imenik zemalja u kojem svaka država ima zabilježeno svoje područje, tada korištenjem konstrukcije GROUP BY možete saznati veličinu svakog kontinenta (na temelju grupiranja po kontinentima).

SQL upit: korištenje više tablica putem aliasa

SELECT o.order_no, o.amount_paid, c.company FROM narudžbe AS o, kupac AS s WHERE o.custno=c.custno AND c.city="Tyumen"

Primamo popis zapisa: narudžbe kupaca koji žive samo u Tjumenu.

Naime, kod pravilno dizajnirane baze podataka ovog tipa zahtjev je najčešći, pa je u MySQL uveden poseban operator koji radi višestruko brže od gore napisanog koda.

SELECT o.order_no, o.amount_paid, z.company FROM narudžbe AS o LIJEVO JOIN kupca AS z ON (z.custno=o.custno)

Ugniježđeni podupiti

SELECT * FROM table_name WHERE plaća=(SELECT MAX(plata) FROM zaposlenika)

Dobivamo jedan zapis: podatke o korisniku s maksimalnom plaćom.

Pažnja! Ugniježđeni podupiti jedno su od najvećih uskih grla u SQL poslužiteljima. Zajedno sa svojom fleksibilnošću i snagom značajno povećavaju opterećenje poslužitelja. Što dovodi do katastrofalnog usporavanja za druge korisnike. Slučajevi rekurzivnih poziva u ugniježđenim upitima vrlo su česti. Stoga toplo preporučujem da NE koristite ugniježđene upite, već da ih razbijete na manje. Ili upotrijebite gore opisanu kombinaciju LEFT JOIN. Osim toga, ova vrsta zahtjeva je povećan izvor kršenja sigurnosti. Ako se odlučite za korištenje ugniježđenih podupita, morate ih vrlo pažljivo dizajnirati i napraviti početna izvođenja na kopijama baza podataka (testne baze podataka).

SQL upiti mijenjaju podatke

SQL upit: INSERT

upute UMETNUTI omogućuju umetanje zapisa u tablicu. Jednostavnim riječima, stvorite redak s podacima u tablici.

Opcija 1. Uputa koja se često koristi je:

INSERT INTO table_name (id, user_login) VRIJEDNOSTI (1, "ivanov"), (2, "petrov")

Za stol" naziv_tablice"2 (dva) korisnika bit će umetnuta odjednom.

Opcija #2. Pogodnije je koristiti stil:

INSERT table_name SET id=1, user_login="ivanov"; INSERT table_name SET id=2, user_login="petrov";

Ovo ima svoje prednosti i nedostatke.

Glavni nedostaci:

  • Mnogi mali SQL upiti izvršit će se malo sporije od jednog velikog SQL upita, ali će drugi upiti čekati na uslugu. To jest, ako veliki SQL upit treba 30 minuta da se ispuni, tada će za sve to vrijeme preostali upiti pušiti bambus i čekati svoj red.
  • Zahtjev se pokazao masivnijim od prethodne verzije.

Glavne prednosti:

  • Tijekom malih SQL upita, drugi SQL upiti nisu blokirani.
  • Jednostavnost čitanja.
  • Fleksibilnost. U ovoj opciji ne morate slijediti strukturu, već dodati samo potrebne podatke.
  • Kada kreirate arhive na ovaj način, možete jednostavno kopirati jedan redak i pokrenuti ga kroz naredbeni redak (konzolu), čime se ne vraća cijela ARHIVA.
  • Stil pisanja sličan je izjavi UPDATE, što olakšava pamćenje.

SQL upit: AŽURIRANJE

UPDATE table_name SET user_login="ivanov", user_surname="Ivanov" WHERE id=1

U stolu " naziv_tablice"u zapisu s brojem id=1, vrijednosti polja user_login i user_surname bit će promijenjene u navedene vrijednosti.

SQL upit: DELETE

DELETE FROM table_name WHERE id=3

U tablici table_name zapis s ID brojem 3 bit će izbrisan.

  1. Preporuča se pisati sva imena polja malim slovima i, ako je potrebno, odvojiti ih prisilnim razmakom “_” radi kompatibilnosti s različitim programskim jezicima, kao što su Delphi, Perl, Python i Ruby.
  2. Napišite SQL naredbe VELIKIM slovima radi čitljivosti. Uvijek zapamtite da drugi ljudi mogu pročitati kod nakon vas, a najvjerojatnije i vi sami nakon N vremena.
  3. Imenujte polja prvo imenicom, a zatim radnjom. Na primjer: city_status, user_login, user_name.
  4. Pokušajte izbjeći rezervne riječi u različitim jezicima koje mogu uzrokovati probleme u SQL-u, PHP-u ili Perlu, kao što su (ime, broj, veza). Na primjer: link se može koristiti u MS SQL-u, ali je rezerviran u MySQL-u.

Ovaj materijal je kratka referenca za svakodnevni rad i ne pretendira biti super mega mjerodavan izvor, koji je izvorni izvor SQL upita određene baze podataka.

Razviti aplikaciju koja demonstrira osnovne operacije nad podacima u bazi podataka kao što je MS SQL Server, naime:

  • povezivanje baze podataka s aplikacijom;
  • prikazivanje tablica baze podataka na obrascu;
  • dodavanje novog zapisa u bazu podataka;
  • uređivanje zapisa;
  • brisanje unosa.

Kao osnova je uzeta baza podataka Education.dbo čiji je proces izrade detaljno opisan

Slika 1 prikazuje strukturu baze podataka Education.dbo. Kao što se može vidjeti sa slike, baza podataka se zove:

sasha-pc\sqlexpress.Education.dbo

Ovdje je "sasha-pc" identifikator računala na mreži, "sqlexpress" je naziv poslužitelja baze podataka, "Education.dbo" je naziv baze podataka.

Riža. 1. Obrazovanje.dbo baza podataka

Baza podataka sadrži dvije tablice: Student i Session. Struktura tablica je sljedeća.

Studentski stol.

Stol za sesije.

Izvođenje

1. Napravite novi projekt u MS Visual Studio kao Windows Forms aplikaciju.

Stvorite novi projekt tipa Windows Forms Application. Detaljno je opisan primjer izrade novog projekta

2. Stvorite novi prikaz za prikaz podataka iz tablice učenika.

Za prikaz podataka iz tablica baze podataka možete koristiti različiti putevi. Jedan od njih je izrada pogleda koji se generiraju pomoću MS Visual Studija.

U našem slučaju, podaci tablice bit će prikazani na obrascu u kontroli tipa DataGridView. Nakon izrade pogleda, vrlo je zgodno pridružiti ih elementima DataGridView.

Za izradu prikaza potrebno je pozvati naredbu “Dodaj novi pogled” iz kontekstnog izbornika koji se poziva klikom na desni klik mišem na element “Views” baze podataka Education.dbo (slika 2).

Riža. 2. Pozivanje naredbe za dodavanje novog pogleda

Kao rezultat, otvorit će se prozor "Dodaj tablicu" (slika 3). U prozoru je potrebno odabrati tablice koje se dodaju u prikaz.

Riža. 3. Odabir tablica na kojima će se temeljiti novi pogled

U našem slučaju odaberite tablicu Student i potvrdite odabir klikom na gumb Dodaj. Sljedeći korak je zatvaranje prozora odabirom gumba Zatvori.

Nakon odrađenih koraka, generirati će se prozor u kojem je potrebno odabrati polja koja trebaju biti prikazana u pregledu (na formi). Odaberite sva polja (slika 4).

Kada odaberete polja, polja tablice učenika prikazuju se na vrhu radnog područja. Pomoću miša možete odabrati željena polja za prezentaciju.

U skladu s tim, srednje područje prozora prikazuje nazive odabranih polja, tablicu u kojoj postoje (vidi sliku 4), mogućnost sortiranja, filtriranja itd.

Dno područja prikazuje odgovarajući tekst SQL upita koji se koristi za stvaranje prikaza.

Riža. 4. Odabir polja tablice učenika za prikaz u prikazu

Nakon odabira tima

Datoteka->Spremi sve Datoteka->Spremi prikaz1

Otvorit će se prozor u kojem je potrebno odrediti naziv prikaza. Postavite naziv “View Student” (Slika 5).

Riža. 5. Određivanje naziva za pogled

Nakon dovršetka koraka, prezentacijski prozor će izgledati kao na slici 6.

Riža. 6. Pregledajte zastupljenost učenika u bazi podataka

Sada možete ugostiti kontrolu DataGridView i pridružiti je prikazu.

3. Postavite kontrolu DataGridView i konfigurirajte vezu s bazom podataka.

Prije postavljanja kontrole DataGridView, trebate ići u način dizajna obrasca "Form1.cs".

DataGridView element je tablica koja može prikazati podatke. Ova se kontrola nalazi na ploči ToolBox. Prvo malo prilagodimo veličinu forme, a zatim na nju postavimo DataGridView kontrolu (slika 7). Ovo će prema zadanim postavkama stvoriti instancu objekta pod nazivom dataGridView1.

Riža. 7. DataGridView kontrola i prozor za odabir izvora podataka

Nakon postavljanja kontrole tipa DataGridView na obrazac s desne strane gornji kut Možete odabrati postavku izvora podataka. Sukladno tome, otvorit će se prozor "DataGridView Tasks". U ovom prozoru trebate odabrati skočni izbornik "Odaberite izvor podataka".

U izborniku koji se otvori odaberite naredbu “Add Project Data Source...” (Slika 7). Nakon toga se otvara prozor čarobnjaka u kojem se redom odabire izvor podataka.

Slika 8 prikazuje " Čarobnjak za konfiguraciju izvora podataka“, u kojem se odabire vrsta izvora podataka. U našem slučaju instaliramo “Bazu podataka”.

Riža. 8. Odabir vrste izvora podataka

U sljedećem prozoru (slika 9) odabire se model izvora podataka. Morate odabrati DataSet.

Riža. 9. Odabir modela izvora podataka

U prozoru prikazanom na slici 10 potrebno je navesti podatkovnu vezu koju želite koristiti za povezivanje s bazom podataka. U našem slučaju, moramo odabrati bazu podataka " sasha-pc\sqlexpress\Education.dbo«.

Riža. 10. Odabir podatkovne veze

Sljedeći prozor (Slika 11) predlaže spremanje niza veze u konfiguracijsku datoteku aplikacije. Ostavljamo sve kako jest i prelazimo na sljedeći prozor.

Riža. 11. Prijedlog za spremanje niza veze s bazom podataka Connection String u konfiguracijsku datoteku aplikacije

Nakon stvaranja veze s bazom podataka, prikazuju se različiti objekti baze podataka (Slika 12). U našem slučaju, moramo odabrati prikaz “View Student” i sva polja iz njega. Označena polja bit će prikazana u komponenti tipa DataGridView.

Riža. 12. Odabir objekata baze podataka za prikaz u DataGridViewu

Nakon odabira gumba Završi prikazat će se odabrani objekti (View Student view) baze Education.dbo (Slika 13).

Riža. 13. Kontrola DataGridView s odabranim poljima View Student

Na sličan način možete konfigurirati prikaze koji sadrže bilo koja polja iz bilo koje tablice baze podataka. Također, polja iz različitih tablica mogu se prikazati u jednom prikazu.

4. Postavljanje izgleda DataGridView kontrole.

Ako pokrenete aplikaciju, dobit ćete podatke iz prikaza View Student koji odgovara tablici Student u bazi (Slika 14).

Riža. 14. Pokretanje aplikacije na ovrhu

Kao što možete vidjeti na slici 14, podaci u tablici dataGridView1 prikazani su normalno, ali se dizajn može prilagoditi.

Kontrola tipa DataGridView omogućuje prilagodbu izgleda polja koja se prikazuju.

Za pozivanje naredbi za uređivanje polja, samo pozovite kontekstni izbornik desnim klikom na dataGridView1 kontrolu.

Na jelovniku ima raznih korisne naredbe, koji vam omogućuju kontrolu izgleda i rada DataGridViewa:

  • naredba za blokiranje kontrole (Lock Controls);
  • naredba za uređivanje polja koja se prikazuju u pregledu (Edit Columns...);
  • naredba za dodavanje novih polja, na primjer izračunatih (Dodaj stupac).

U našem slučaju potrebno je odabrati naredbu “Edit Columns...” (Slika 15).

Riža. 15. Naredba “Uredi stupce...” iz kontekstnog izbornika

Kao rezultat toga, otvorit će se prozor “Edit Columns” u kojem možete prilagoditi izgled prezentacijskih polja prema svojim željama (slika 16).

Riža. 16. Prozor za podešavanje prikaza polja u prikazu “View Student”.

U prozoru na slici 16, za bilo koje polje možete konfigurirati naziv, poravnanje, širinu, mogućnost uređivanja podataka itd.

5. Niz veze

Kako biste izvršili promjene u bazi podataka, morate dobiti niz povezivanja s bazom podataka Niz veze .

Postoje različiti načini za dobivanje niza veze baze podataka. Jedan od njih temelji se na čitanju ovog retka u prozoru Properties baze podataka Education.dbo (Slika 17).

Riža. 17. Definiranje niza veze

Za spremanje niza u programu, interna varijabla tipa niz. Koristeći međuspremnik, kopirajte Connection String u opisanu varijablu tipa string.

U tekstu datoteke “Form1.cs” na početku opisa klase Form1 potrebno je opisati varijablu:

string conn_string = ;

U ovom trenutku tekst Form1 klase je sljedeći:

javni djelomični razred Form1 : Form { string conn_string = @"Izvor podataka=(lokalno)\SQLEXPRESS;Početni katalog=Obrazovanje;Integrirana sigurnost=Istina;Objedinjavanje=Netočno"; javni obrazac1() { Inicijaliziraj komponentu(); } privatni void Form1_Load(objekt pošiljatelj, EventArgs e) { // TODO: Ovaj redak koda učitava podatke u tablicu "educationDataSet.View_Student". Po potrebi ga možete premjestiti ili ukloniti. } }

6. Stvaranje novog obrasca za demonstraciju naredbi za manipulaciju podacima.

Kako biste mogli obraditi podatke tekućeg zapisa potrebno je izraditi novi obrazac. Detaljno je opisan proces izrade novog obrasca u MS Visual Studio - C#.

Dodavanje novog obrasca vrši se naredbom:

Projekt -> Dodaj Windows obrazac...

U prozoru “New Item” koji se otvori potrebno je odabrati element “Windows Form”.

Ostavite novi naziv datoteke obrasca kao zadani “Form2.cs”.

Slika 18 prikazuje pogled na novi obrazac.

Na obrazac postavljamo sljedeće vrste kontrola:

  • dvije kontrole gumba (gumbi OK i Odustani). Sukladno tome, bit će primljena dva objekta pod nazivom button1 i button2;
  • četiri Label kontrole za kreiranje informativnih poruka;
  • četiri kontrole tipa TextBox za unos podataka u polja Num_book, Name, Group, Year.

Morate konfigurirati sljedeća svojstva kontrola:

  • u svojstvu Control button1 Text = “OK “;
  • u svojstvu kontrole button2 Text = “Odustani “;
  • u svojstvu kontrolnog gumba1 DialogResult = "OK";
  • u svojstvu Control button2 DialogResult = "Cancel";
  • u svojstvu kontrole label1 Text = "Num_book";
  • u svojstvu kontrole label2 Text = "Ime";
  • u svojstvu kontrole label3 Text = "Grupa";
  • u label4 kontrolirajte svojstvo Text = "Year".

Također konfiguriramo vidljivost TextBox kontrola. Da biste to učinili, u svim kontrolama textBox1, textBox2, textBox3, textBox4, vrijednost svojstva Modifiers = “javno”.

Riža. 18. Pogled na novonastali obrazac

7. Dodavanje gumba za pozivanje naredbi za manipuliranje podacima iz tablice Student.

Za daljnji rad potrebno je mišem prijeći na glavnu formu Form1.

Dodajte tri gumba u glavni obrazac aplikacije Form1 (Gumb). Automatski će se stvoriti tri varijable objekta s imenima button1, button2, button3. U svakom od ovih gumba vršimo sljedeće postavke (prozor Svojstva):

  • u gumbu button1 svojstvo Text = “Umetni …” (umetni zapis);
  • u svojstvu gumba button2 Text = “Uredi …” (promijeni unos);
  • u gumbu button3 svojstvo Text = "Delete".

Kao rezultat napravljenih promjena, glavni obrazac će izgledati kao što je prikazano na slici 19.

Riža. 19. Glavni obrazac prijave

8. Programiranje događaja klika na gumb “Umetni...”.

Rukovatelj događajem klika na gumbu "Umetni..." izgleda ovako:

privatni void button1_Click_1(pošiljatelj objekta, EventArgs e) { niz cmd_tekst; Obrazac2 f2 = novi Obrazac2(); if (f2.ShowDialog() == DialogResult .OK) { cmd_tekst = "INSERT INTO Student VALUES (" + """ + f2.textBox1.Text + "" , "" + f2.textBox2.Text + "" , "" + f2.textBox3.Text + "" , " + f2.textBox4.Text + ")" ; // stvoriti vezu s bazom podataka SqlConnection sql_conn = nova SqlConnection(conn_string); // kreiraj naredbu u SQL jeziku SqlCommand sql_comm = nova SqlCommand(cmd_text, sql_conn); sql_conn.Open(); // otvorena veza sql_comm.ExecuteNonQuery(); // izvrši naredbu u SQL jeziku sql_conn.Zatvori(); // zatvori vezu this .view_StudentTableAdapter.Fill(this .educationDataSet.View_Student); } }

Prvi se poziva Form2. Nakon primitka rezultata “OK” (pritiskom na odgovarajuću tipku), u Form2 popunjena polja u elementima tipa TextBox uključuju se u niz SQL upita. SQL upit za dodavanje novog reda izgleda ovako:

INSERT INTO Student VRIJEDNOSTI (vrijednost1, vrijednost2, vrijednost3, vrijednost4)

gdje vrijednost1 odgovara broju razredne knjige; vrijednost2 – prezime učenika; value3 – grupa u kojoj student studira; value4 – godina upisa.

Niz povezivanja baze podataka Connection String opisan je u varijabli conn_string (pogledajte paragraf 5). Objekt klase SqlConnection povezuje aplikaciju s izvorima podataka. Uz to, klasa Connection upravlja provjerom autentičnosti korisnika, umrežavanjem, identifikacijom baze podataka, međuspremnikom veze i obradom transakcija.

SQL naredba koja dodaje zapis u tablicu enkapsulirana je u klasi SqlCommand. Konstruktor klase SqlCommand uzima dva parametra: niz SQL upita (varijabla cmd_text) i objekt klase SqlConnection.

Metoda ExecuteNonQuery() implementirana je u IDBCommand sučelje. Metoda implementira SQL naredbe koje ne vraćaju podatke. Takve naredbe uključuju naredbe INSERT, DELETE, UPDATE, kao i pohranjene procedure koje ne vraćaju podatke. Metoda ExecuteNonQuery() vraća broj uključenih zapisa.

9. Programiranje događaja klika na gumb “Uredi...”.

Rukovatelj događajem klika na gumbu "Uredi..." izgleda ovako:

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 = "UPDATE Student SET Num_book = ""+ f2.textBox1.Text + "", " + " = "" + f2.textBox2.Text + "", " + " = "" + f2.textBox3.Text + "", " + "Godina = " + f2 .textBox4.Text + "WHERE Num_book = "" + 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(); ovaj .view_StudentTableAdapter.Fill(ovaj .educationDataSet.View_Student); ) )

Ovaj rukovatelj izvršava UPDATE SQL naredbu koja mijenja trenutnu vrijednost aktivnog zapisa.

10. Programiranje događaja klika na gumb “Izbriši”.

Rukovatelj klika na gumb "Izbriši" izgleda ovako:

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(); ovaj .view_Student TableAdapter . Ispuni (ovaj .educationDataSet.View_Student); )

Ovaj rukovatelj izvršava SQL naredbu DELETE za brisanje zapisa.

Povezane teme

  • Ispisivanje tablice Microsoft Access baze podataka

SQL Server okruženje Management Studio pruža kompletan alat za kreiranje svih vrsta upita. Uz njegovu pomoć možete stvarati, spremati, učitavati i uređivati ​​upite. Osim toga, možete raditi na upitima bez povezivanja s bilo kojim poslužiteljem. Ovaj alat također pruža mogućnost razvoja upita za različite projekte.

S upitima možete raditi pomoću Uređivača upita ili Istraživača rješenja. Ovaj članak pokriva oba ova alata. Uz ove dvije komponente SQL Server Management Studija, pogledat ćemo ispravljanje pogrešaka SQL koda pomoću ugrađenog programa za ispravljanje pogrešaka.

Uređivač upita

Za otvaranje ploče uređivača upita Uređivač upita, na alatnoj traci SQL Server Management Studio kliknite gumb Novi upit. Ova se ploča može proširiti za prikaz gumba za stvaranje svih mogućih upita, a ne samo upita Database Engine. Prema zadanim postavkama stvara se novi upit Database Engine, ali također možete stvoriti MDX, XMLA i druge upite klikom na odgovarajući gumb na alatnoj traci.

Statusna traka na dnu ploče uređivača upita označava status veze uređivača s poslužiteljem. Ako se na poslužitelj ne povežete automatski, kada pokrenete uređivač upita, pojavit će se dijaloški okvir Povezivanje s poslužiteljem koji vam omogućuje odabir poslužitelja na koji se želite povezati i načina provjere autentičnosti.

Uređivanje upita izvan mreže pruža veću fleksibilnost nego kada je spojen na poslužitelj. Za uređivanje upita nije potrebno spajanje na poslužitelj, a prozor uređivača upita se može odspojiti s jednog poslužitelja (koristeći naredbu izbornika Upit --> Veza --> Prekini vezu) i spojiti na drugi bez otvaranja drugog prozora uređivača. Izabrati izvanmrežni način rada uređivanje, u dijaloškom okviru veze s poslužiteljem koji se otvara kada pokrenete uređivač za određenu vrstu upita, jednostavno kliknite gumb Odustani.

Uređivač upita možete koristiti za izvođenje sljedećih zadataka:

    stvaranje i izvršavanje Transact-SQL naredbi;

    spremanje kreiranih Transact-SQL jezičnih iskaza u datoteku;

    stvaranje i analiziranje planova izvršenja za uobičajene upite;

    grafički ilustrirajući plan izvršenja odabranog upita.

Uređivač upita sadrži ugrađeni uređivač teksta i alatna traka sa skupom gumba za različite radnje. Glavni prozor uređivača upita vodoravno je podijeljen na ploču upita (na vrhu) i ploču s rezultatima (na dnu). Transact-SQL izjave (odnosno upiti) koje treba izvršiti unose se u gornjem oknu, a rezultati sistemske obrade tih upita prikazuju se u donjem oknu. Slika ispod prikazuje primjer unosa upita u uređivač upita i rezultate izvršavanja tog upita:

Prva izjava USE zahtjeva navodi upotrebu baze podataka SampleDb kao trenutne baze podataka. Druga naredba, SELECT, dohvaća sve retke iz tablice Employee. Za pokretanje ovog upita i prikaz rezultata, na alatnoj traci uređivača upita kliknite gumb Izvrši ili pritisnite F5.

Možete otvoriti nekoliko prozora uređivača upita, tj. napraviti višestruke veze s jednom ili više instanci Database Engine. Nova se veza stvara klikom na gumb New Query na alatnoj traci SQL Server Management Studio.

Statusna traka na dnu prozora uređivača upita prikazuje sljedeće informacije vezane uz izvršavanje naredbi upita:

    status trenutne operacije (na primjer, "Zahtjev uspješno dovršen");

    naziv poslužitelja baze podataka;

    trenutno korisničko ime i ID procesa poslužitelja;

    trenutni naziv baze podataka;

    vrijeme potrošeno na izvršenje posljednjeg zahtjeva;

    broj pronađenih linija.

Jedna od glavnih prednosti SQL Server Management Studio je njegova jednostavnost korištenja, što se također odnosi i na Query Editor. Uređivač upita pruža mnoge značajke koje olakšavaju kodiranje Transact-SQL izjava. Konkretno, koristi isticanje sintakse za poboljšanje čitljivosti Transact-SQL izjava. Sve rezervirane riječi prikazane su plavom bojom, varijable crnom, nizovi crvenom, a komentari zelenom bojom.

Osim toga, uređivač upita opremljen je kontekstualno osjetljivom pomoći tzv Dinamička pomoć, putem kojeg se možete informirati o određenoj uputi. Ako ne znate sintaksu instrukcije, odaberite je u uređivaču, a zatim pritisnite tipku F1. Također možete istaknuti parametre različitih Transact-SQL izjava da biste dobili pomoć o njima od Books Online.

SQL Management Studio podržava SQL Intellisense, koji je vrsta alata za automatsko dovršavanje. Drugim riječima, ovaj modul predlaže najvjerojatnije dovršavanje djelomično unesenih elemenata iskaza Transact-SQL.

Istraživač objekata također vam može pomoći u uređivanju upita. Na primjer, ako želite znati kako stvoriti naredbu CREATE TABLE za tablicu Employee, desnom tipkom miša kliknite tablicu u Object Exploreru i dobivenu kontekstni izbornik odaberite Script Table As --> CREATE to --> New Query Editor Window. Prozor uređivača upita koji sadrži naredbu CREATE TABLE kreiranu na ovaj način prikazan je na slici ispod. Ova značajka također se odnosi na druge objekte, kao što su pohranjene procedure i funkcije.

Object Browser vrlo je koristan za grafički prikaz plana izvršenja određenog upita. Plan izvršenja upita je opcija izvršenja koju je odabrao optimizator upita među nekoliko mogućih opcija za izvršavanje određenog upita. Unesite traženi upit u gornju ploču uređivača, odaberite niz naredbi iz izbornika Upit --> Prikaži procijenjeni plan izvršenja i plan izvršenja za ovaj upit bit će prikazan na donjoj ploči prozora uređivača.

Istraživač rješenja

Uređivanje upita u SQL Server Management Studio temelji se na metodi rješenja. Ako kreirate prazan upit pomoću gumba Novi upit, on će se temeljiti na praznom rješenju. To možete vidjeti pokretanjem niza naredbi iz izbornika View --> Solution Explorer odmah nakon otvaranja praznog upita.

Odluka se može odnositi niti na jedan, jedan ili više projekata. Prazno rješenje, koje nije povezano ni s jednim projektom. Da biste pridružili projekt rješenju, zatvorite prazno rješenje, Solution Explorer i Query Editor te izradite novi projekt pokretanjem File --> New --> Project. U prozoru Novi projekt koji se otvori odaberite opciju Skripte SQL Servera u srednjem oknu. Projekt je način organiziranja datoteka na određenom mjestu. Možete dodijeliti naziv projektu i odabrati mjesto za njegovu lokaciju na disku. Kada izradite novi projekt, automatski se pokreće novo rješenje. Možete dodati projekt postojećem rješenju koristeći Solution Explorer.

Za svaki kreirani projekt, Solution Explorer prikazuje mape Connections, Queries i Miscellaneous. Da biste otvorili novi prozor uređivača upita za dati projekt, desnom tipkom miša kliknite njegovu mapu Upiti i odaberite Novi upit iz kontekstnog izbornika.

Otklanjanje pogrešaka SQL Servera

SQL Server, počevši od SQL Servera 2008, ima ugrađen program za ispravljanje pogrešaka koda. Za početak sesije otklanjanja pogrešaka odaberite Debug --> Start Debugging iz glavnog izbornika SQL Server Management Studio. Pogledat ćemo kako program za ispravljanje pogrešaka radi na primjeru s nizom naredbi. Paket je niz SQL izjave i proceduralna proširenja koja čine logičku cjelinu koja se šalje Database Engineu kako bi izvršio sve upute koje sadrži.

Slika ispod prikazuje paket koji broji broj zaposlenika koji rade na projektu p1. Ako je taj broj 4 ili više, prikazuje se odgovarajuća poruka. Inače se prikazuju imena i prezimena zaposlenika.

Kako biste zaustavili izvršavanje paketa na određenoj instrukciji, možete postaviti točke prekida, kao što je prikazano na slici. Da biste to učinili, kliknite lijevo od linije na kojoj želite stati. Kada otklanjanje pogrešaka započne, izvođenje se zaustavlja na prvoj liniji koda, koja je označena žutom strelicom. Za nastavak izvođenja i otklanjanja pogrešaka odaberite naredbu izbornika Debug --> Continue. Skupne upute nastavit će se izvršavati do prve prijelomne točke, a žuta strelica zaustavit će se na toj točki.

Informacije koje se odnose na proces otklanjanja pogrešaka prikazane su na dvije ploče na dnu prozora uređivača upita. Informacije o različiti tipovi Informacije o otklanjanju pogrešaka grupirane su u ovim pločama na nekoliko kartica. Lijevo okno sadrži karticu Autos, karticu Locals i do pet kartica Watch. Desno okno sadrži kartice Stog poziva, Niti, Prijelomne točke, Naredbeni prozor, Neposredni prozor i Izlaz. Kartica Locals prikazuje varijabilne vrijednosti, kartica Call Stack prikazuje vrijednosti poziva, a kartica Breakpoints prikazuje informacije o prijelomnoj točki.

Za završetak procesa ispravljanja pogrešaka, izvršite niz naredbi iz glavnog izbornika Debug --> Stop Debugging ili kliknite plavi gumb na alatnoj traci programa za ispravljanje pogrešaka.

SQL Server 2012 dodaje nekoliko novih značajki ugrađenom alatu za ispravljanje pogrešaka u SQL Server Management Studio. Sada u njemu možete izvršiti nekoliko sljedećih operacija:

    Navedite uvjet prijelomne točke. Prijelomno stanje je SQL izraz čija procijenjena vrijednost određuje hoće li se izvršavanje koda zaustaviti na danoj točki ili ne. Da biste odredili uvjet prijelomne točke, desnom tipkom miša kliknite crvenu ikonu prijelomne točke i odaberite Uvjet iz kontekstnog izbornika. Otvara se dijaloški okvir Breakpoint Condition koji vam omogućuje unos traženog Booleovog izraza. Osim toga, ako trebate zaustaviti izvršenje ako je izraz istinit, trebali biste postaviti prekidač Is True. Ako se izvođenje treba zaustaviti ako se izraz promijenio, tada morate postaviti prekidač When Changed.

    Navedite broj pogodaka na prijelomnoj točki. Broj pogodaka je uvjet za zaustavljanje izvršenja u određenoj točki na temelju broja puta kada je prijelomna točka pogođena tijekom izvršenja. Kada se postigne navedeni broj prolaza i bilo koji drugi uvjet naveden za danu prijelomnu točku, program za ispravljanje pogrešaka izvodi navedenu radnju. Uvjet prekida izvršenja na temelju broja pogodaka može biti jedan od sljedećeg:

    1. bezuvjetno (zadana radnja) (Prekini uvijek);

      ako je broj pogodaka jednak navedenoj vrijednosti (Prekini kada je njegov broj jednak navedenoj vrijednosti);

      ako je broj pogodaka višekratnik određene vrijednosti (Prekini kada je broj pogodaka jednak višekratniku navedene vrijednosti);

      Prekid kada je njegov broj veći ili jednak navedenoj vrijednosti.

    Za postavljanje broja pogodaka tijekom otklanjanja pogrešaka, desnom tipkom miša kliknite potrebnu ikonu prijelomne točke na kartici Prijelomne točke, odaberite Hit Count iz kontekstnog izbornika, zatim odaberite jedan od uvjeta u dijaloškom okviru Breakpoint Hit Count koji se otvara s prethodnog popisa. Za opcije koje zahtijevaju vrijednost, unesite je u tekstualni okvir s desne strane padajućeg popisa uvjeta. Za spremanje navedenih uvjeta kliknite OK.

    Navedite filtar prijelomne točke. Filtar prijelomne točke ograničava operaciju prijelomne točke samo na određena računala, procese ili niti. Da biste postavili filtar prijelomne točke, desnom tipkom miša kliknite željenu prijelomnu točku i odaberite Filtar iz kontekstnog izbornika. Zatim u dijaloškom okviru Filtri prijelomnih točaka koji se otvori navedite resurse na koje želite ograničiti izvršenje ove prijelomne točke. Za spremanje navedenih uvjeta kliknite OK.

    Odredite radnju na prijelomnoj točki. Uvjet When Hit specificira akciju koju treba poduzeti kada paketno izvođenje pogodi danu prijelomnu točku. Prema zadanim postavkama, kada su i uvjet brojanja pogodaka i uvjet zaustavljanja zadovoljeni, izvršenje se prekida. Alternativno, može se prikazati unaprijed određena poruka.

    Da biste odredili što učiniti kada je prijelomna točka pogođena, desnom tipkom miša kliknite crvenu ikonu za prijelomnu točku i odaberite When Hit iz kontekstnog izbornika. U dijaloškom okviru When Breakpoint is Hit koji se otvori odaberite radnju koju želite poduzeti. Za spremanje navedenih uvjeta kliknite OK.

    Koristite prozor Quick Watch. U prozoru QuickWatch ( Brza provjera) možete vidjeti vrijednost Transact-SQL izraza i zatim spremiti taj izraz u prozor Watch values ​​​​. Da biste otvorili prozor Quick Watch, odaberite Quick Watch iz izbornika Debug. Izraz u ovom prozoru može se odabrati s padajućeg popisa Izraz ili unijeti u ovo polje.

    Koristite savjet za brze informacije. Kada prijeđete pokazivačem miša preko ID koda, Brze informacije ( Kratke informacije) prikazuje svoj oglas u skočnom prozoru.

SQL ili Structured Query Language jezik je koji se koristi za upravljanje podacima u sustavu relacijske baze podataka (RDBMS). Ovaj će članak pokriti najčešće korištene SQL naredbe s kojima bi svaki programer trebao biti upoznat. Ovaj je materijal idealan za one koji žele obnoviti svoje znanje SQL-a prije razgovora za posao. Da biste to učinili, pogledajte primjere dane u članku i zapamtite da ste učili baze podataka u paru.

Imajte na umu da neki sustavi baza podataka zahtijevaju točku i zarez na kraju svake izjave. Točka i zarez je standardni pokazivač na kraj svake izjave u SQL-u. Primjeri koriste MySQL, pa je točka-zarez obavezan.

Postavljanje baze podataka za primjere

Napravite bazu podataka da biste pokazali kako timovi rade. Za rad ćete morati preuzeti dvije datoteke: DLL.sql i InsertStatements.sql. Nakon toga otvorite terminal i prijavite se na MySQL konzolu pomoću sljedeće naredbe (članak pretpostavlja da je MySQL već instaliran na sustavu):

Mysql -u root -p

Zatim unesite svoju lozinku.

Pokrenite sljedeću naredbu. Nazovimo bazu podataka "sveučilište":

STVARANJE BAZE PODATAKA sveučilište; USE sveučilište; IZVOR ; IZVOR

Naredbe za rad s bazama podataka

1. Pregledajte dostupne baze podataka

PRIKAŽI BAZE PODATAKA;

2. Napravite novu bazu podataka

KREIRANJE BAZE PODATAKA;

3. Odabir baze podataka za korištenje

KORISTITI ;

4. Uvezite SQL naredbe iz .sql datoteke

IZVOR ;

5. Izbrišite bazu podataka

ISPUSTI BAZU PODATAKA ;

Rad s tablicama

6. Pregledajte tablice dostupne u bazi podataka

POKAŽI TABLICE;

7. Napravite novu tablicu

STVARANJE TABLICE ( , , GLAVNI KLJUČ ( ), STRANI KLJUC ( ) REFERENCE ());

Ograničenja integriteta pri korištenju CREATE TABLE

Možda ćete morati stvoriti ograničenja za određene stupce u tablici. Prilikom izrade tablice možete postaviti sljedeća ograničenja:

  • ćelija tablice ne može imati NULL vrijednost;
  • primarni ključ - PRIMARY KEY (col_name1, col_name2, ...) ;
  • strani ključ - FOREIGN KEY (col_namex1, …, col_namexn) REFERENCE table_name(col_namex1, …, col_namexn) .

Možete navesti više od jednog primarnog ključa. U ovom slučaju dobit ćete kompozitni primarni ključ.

Primjer

Napravite tablicu "instruktor":

CREATE TABLE instruktor (ID CHAR(5), ime VARCHAR(20) NOT NULL, naziv_odjela VARCHAR(20), plaća NUMERIC(8,2), PRIMARNI KLJUČ (ID), FOREIGN KEY (ime_odjela) REFERENCE odjel (ime_odjela));

8. Podaci u tablici

Možete pregledati razne informacije (vrstu vrijednosti, ključ ili ne) o stupcima tablice pomoću sljedeće naredbe:

OPISATI ;

9. Dodavanje podataka u tablicu

UMETNUTI U (, , , ...) VRIJEDNOSTI ( , , , …);

Kada dodajete podatke u svaki stupac u tablici, ne morate navesti nazive stupaca.

UMETNUTI U VRIJEDNOSTI ( , , , …);

10. Ažuriranje tabličnih podataka

AŽURIRAJ SET = , = , ... GDJE ;

11. Uklanjanje svih podataka iz tablice

IZBRIŠI IZ ;

12. Brisanje tablice

DROP STOL ;

Naredbe za kreiranje upita

13. ODABIR

SELECT se koristi za dohvaćanje podataka iz određene tablice:

IZABERI , , … OD ;

Sljedeća naredba može prikazati sve podatke iz tablice:

ODABIR * IZ ;

14. SELECT DISTINCT

Stupci tablice mogu sadržavati duple podatke. Upotrijebite SELECT DISTINCT za dohvaćanje samo podataka koji nisu duplicirani.

ODABIR DISTINCT , , … OD ;

15. GDJE

Može se koristiti ključna riječ WHERE u SELECT za navođenje uvjeta u upitu:

IZABERI , , … OD GDJE ;

U zahtjevu se mogu navesti sljedeći uvjeti:

  • usporedba teksta;
  • usporedba numeričkih vrijednosti;
  • logički operatori AND (i), OR (ili) i NOT (negacija).

Primjer

Isprobajte sljedeće naredbe. Obratite pozornost na uvjete navedene u WHERE:

SELECT * FROM kolegij WHERE dept_name=’Comp. Sci.'; SELECT * FROM tečaj WHERE bodovi>3; SELECT * FROM kolegij WHERE dept_name="Comp. Sci." I krediti>3;

16. GRUPIRAJ PO

Često se koristi operator GROUP BY agregatne funkcije kao što su COUNT, MAX, MIN, SUM i AVG za grupiranje izlaznih vrijednosti.

IZABERI , , … OD GRUPIRAJ PO ;

Primjer

Prikažimo broj predmeta za svaki fakultet:

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

17. IMATI

Ključna riječ HAVING dodana je u SQL jer se WHERE ne može koristiti s agregatnim funkcijama.

IZABERI , , ... OD GRUPIRAJ PO IMAJUĆI

Primjer

Prikažimo popis fakulteta koji imaju više od jednog kolegija:

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

18. NARUČI PO

ORDER BY se koristi za sortiranje rezultata upita u silaznom ili uzlaznom redoslijedu. ORDER BY će sortirati uzlaznim redoslijedom osim ako nije navedeno ASC ili DESC.

IZABERI , , … OD NARUČI PO , , …ASC|DESC;

Primjer

Prikažimo popis tečajeva uzlaznim i silaznim redoslijedom bodova:

SELECT * FROM kolegij ORDER BY bodovi; SELECT * FROM kolegij ORDER BY bodovi DESC;

19. IZMEĐU

BETWEEN se koristi za odabir vrijednosti podataka iz određenog raspona. Mogu se koristiti numeričke i tekstualne vrijednosti, kao i datumi.

IZABERI , , … OD GDJE IZMEĐU I ;

Primjer

Prikažimo popis instruktora čija je plaća veća od 50.000, ali manja od 100.000:

SELECT * FROM instruktor WHERE plaća IZMEĐU 50000 I 100000;

20. LIKE

Operator LIKE koristi se u WHERE za određivanje uzorka pretraživanja za sličnu vrijednost.

Postoje dva besplatna operatora koji se koriste u LIKE:

  • % (ništa, jedan ili više znakova);
  • _ (jedan znak).
IZABERI , , … OD GDJE KAO ;

Primjer

Prikažimo popis tečajeva čija imena sadrže "do" i popis tečajeva čija imena počinju sa "CS-":

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

21. IN

Koristeći IN možete navesti više vrijednosti za WHERE klauzulu:

IZABERI , , … OD GDJE IN ( , , …);

Primjer

Prikažimo popis studenata komp. smjerova. znanosti, fizike i elektr. engleski:

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

22. PRIDRUŽI SE

JOIN se koristi za povezivanje dvije ili više tablica koristeći zajedničke atribute unutar njih. Slika ispod prikazuje razne načine pridružuje se u SQL-u. Obratite pozornost na razliku između lijevog vanjskog spoja i desnog vanjskog spoja:

IZABERI , , … OD PRIDRUŽITI NA = ;

Primjer 1

Prikazat ćemo popis svih kolegija i relevantne informacije o fakultetima:

SELECT * FROM kolegij JOIN department ON course.dept_name=department.dept_name;

Primjer 2

Prikazat ćemo popis svih potrebnih tečajeva i detalje o njima:

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

Primjer 3

Prikazat ćemo popis svih tečajeva, bez obzira jesu li obavezni ili 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 virtualna SQL tablica stvorena kao rezultat izvršavanja izraza. Sadrži retke i stupce i vrlo je sličan običnoj SQL tablici. Pogled uvijek prikazuje najnovije podatke iz baze podataka.

Stvaranje

KREIRAJ PRIKAZ KAO ODABERI , , … OD GDJE ;

Uklanjanje

POGLED NA KAP ;

Primjer

Kreirajmo prikaz koji se sastoji od tečajeva s 3 kredita:

24. Funkcije agregata

Ove se funkcije koriste za dobivanje zbirnog rezultata koji se odnosi na dotične podatke. Sljedeće su najčešće korištene agregatne funkcije:

  • COUNT (col_name) - vraća broj redaka;
  • SUM (col_name) - vraća zbroj vrijednosti u ovom stupcu;
  • AVG (col_name) - vraća prosječnu vrijednost zadanog stupca;
  • MIN (col_name) - vraća najmanju vrijednost danog stupca;
  • MAX(col_name) - vraća najveća vrijednost ovog stupca.

25. Ugniježđeni podupiti

Ugniježđeni podupiti su SQL upiti koji uključuju klauzule SELECT, FROM i WHERE ugniježđene unutar drugog upita.

Primjer

Pronađimo tečajeve koji su se održavali u jesen 2009. i proljeće 2010.:

SELECT DISTINCT course_id FROM odjeljak WHERE semestar = 'Jesen' AND godina= 2009 AND course_id IN (SELECT course_id FROM odjeljak WHERE semestar = 'Proljeće' AND year= 2010);