Ms sql server kirjoittaa kyselyitä. SQL-kyselyjen suorittaminen Management Studiossa. Keskimääräisen lasketun kentän lisääminen

Taulukkolausekkeet kutsutaan alikyselyiksi, joita käytetään, kun taulukon läsnäolo oletetaan. Taulukkolausekkeita on kahdenlaisia:

    johdetut taulukot;

    yleistetyt taulukkolausekkeet.

Näitä kahta taulukkolausekkeiden muotoa käsitellään seuraavissa alaosissa.

Johdetut taulukot

Johdettu taulukko on taulukkolauseke, joka sisältyy kyselyn FROM-lauseeseen. Johdettuja taulukoita voidaan käyttää tapauksissa, joissa sarakealiaksien käyttö ei ole mahdollista, koska SQL-kääntäjä käsittelee toisen käskyn ennen kuin alias on tiedossa. Alla oleva esimerkki näyttää yrityksen käyttää sarakealiasta tilanteessa, jossa käsitellään toista lauseketta ennen kuin alias tunnetaan:

KÄYTÄ SampleDb; VALITSE KUUKAUSI(SyötäPäivämäärä) muodossa enter_month FROM Works_on GROUP BY enter_month;

Tämän kyselyn suorittaminen tuottaa seuraavan virhesanoman:

Viesti 207, taso 16, tila 1, rivi 5 Virheellinen sarakkeen nimi "enter_month". (Viesti 207: Taso 16, tila 1, rivi 5 Virheellinen sarakkeen nimi enter_month)

Virheen syynä on se, että GROUP BY -lause käsitellään ennen kuin SELECT-käskyn vastaava luettelo on käsitelty, ja enter_month-sarakkeen alias ei ole tiedossa ryhmää käsiteltäessä.

Tämä ongelma voidaan ratkaista käyttämällä johdettua taulukkoa, joka sisältää edellisen kyselyn (ilman GROUP BY -lausetta), koska FROM-lause suoritetaan ennen GROUP BY -lausetta:

KÄYTÄ SampleDb; SELECT tulo_kuukausi FROM (VALITSE KUUKAUSI(SyötyPäivä) syötteen_kuukaudeksi FROM Works_on) AS m GROUP BY enter_month;

Tämän kyselyn tulos on seuraava:

Tyypillisesti taulukkolauseke voidaan sijoittaa mihin tahansa SELECT-käskyn kohtaan, jossa taulukon nimi saattaa esiintyä. (Taulukkolausekkeen tulos on aina taulukko tai erikoistapauksissa lauseke.) Alla oleva esimerkki näyttää taulukkolausekkeen käytön SELECT-käskyn select-luettelossa:

Tämän kyselyn tulos:

Yleiset taulukkolausekkeet

Yhteinen taulukkolauseke (OTB) on Transact-SQL-kielen tukema nimetty taulukkolauseke. Yleisiä taulukkolausekkeita käytetään seuraavissa kahdessa kyselytyypissä:

    ei-rekursiivinen;

    rekursiivinen.

Näitä kahta pyyntötyyppiä käsitellään seuraavissa osioissa.

OTB ja ei-rekursiiviset kyselyt

OTB:n ei-rekursiivista muotoa voidaan käyttää vaihtoehtona johdetuille taulukoille ja näkymille. Tyypillisesti OTB määräytyy Lauseilla ja lisäkysely, joka viittaa WITH-lauseessa käytettyyn nimeen. Transact-SQL:ssä WITH-avainsanan merkitys on epäselvä. Epäselvyyden välttämiseksi WITH-käskyä edeltävä käsky tulee lopettaa puolipisteellä.

KÄYTÄ AdventureWorks2012; SELECT SalesOrderID FROM Sales.SalesOrderHeader WHERE TotalDue > (SELECT AVG(TotalDue) FROM Sales.SalesOrderHeader WHERE YEAR(OrderDate) = "2005") AND Freight > (SELECT AVG(TotalDue) FROM Sales.SalesOrderHeader2. ")/2,5;

Tämän esimerkin kysely valitsee tilaukset, joiden kokonaisverot (TotalDue) ovat suurempia kuin kaikkien verojen keskiarvo ja joiden rahtikulut (Freight) ovat yli 40 % keskimääräisistä veroista. Tämän kyselyn tärkein ominaisuus on sen pituus, koska alikysely on kirjoitettava kahdesti. Yksi mahdollisia tapoja kyselyrakenteen koon pienentäminen merkitsisi alikyselyn sisältävän näkymän luomista. Mutta tämä ratkaisu on hieman monimutkainen, koska se vaatii näkymän luomisen ja sen poistamisen sen jälkeen, kun kysely on suoritettu. Parempi lähestymistapa olisi luoda OTB. Alla oleva esimerkki näyttää ei-rekursiivisen OTB:n käytön, mikä lyhentää yllä olevaa kyselyn määritelmää:

KÄYTÄ AdventureWorks2012; WITH hinta_lask.(vuosi_2005) AS (SELECT AVG(TotalDue) FROM Sales.SalesOrderHeader WHERE YEAR(OrderDate) = "2005") SELECT SalesOrderID FROM Sales.SalesOrderHeader WHERE TotalDue > (SELECT vuosi_2005 hinta_cal02 FROM) ) /2,5;

WITH-lauseen syntaksi ei-rekursiivisissa kyselyissä on seuraava:

Parametri cte_name edustaa OTB-nimeä, joka määrittää tuloksena olevan taulukon, ja parametri column_list edustaa taulukkolausekkeen sarakkeiden luetteloa. (Yllä olevassa esimerkissä OTB:n nimi on hinta_laskenta ja siinä on yksi sarake, vuosi_2005.) Inner_query-parametri edustaa SELECT-lausetta, joka määrittää vastaavan taulukkolausekkeen tulosjoukon. Määritettyä taulukkolauseketta voidaan sitten käyttää ulkokyselyssä. (Yllä olevan esimerkin ulompi kysely käyttää OTB price_calc -saraketta ja sen vuosi_2005-saraketta yksinkertaistamaan kaksinkertaisesti sisäkkäistä kyselyä.)

OTB ja rekursiiviset kyselyt

Tämä osio esittelee monimutkaisempaa materiaalia. Siksi, kun luet sitä ensimmäistä kertaa, on suositeltavaa ohittaa se ja palata siihen myöhemmin. OTB:itä voidaan käyttää rekursioiden toteuttamiseen, koska OTB:t voivat sisältää viittauksia itseensä. Rekursiivisen kyselyn OTB-perussyntaksi näyttää tältä:

Parametreilla cte_name ja column_list on sama merkitys kuin OTB:ssä ei-rekursiivisille kyselyille. WITH-lauseen runko koostuu kahdesta operaattorin yhdistämästä kyselystä UNIONI KAIKKI. Ensimmäistä kyselyä kutsutaan vain kerran, ja se alkaa keräämään rekursion tulosta. UNION ALL -operaattorin ensimmäinen operandi ei viittaa OTB:hen. Tätä kyselyä kutsutaan viitekyselyksi tai lähteeksi.

Toinen kysely sisältää viittauksen OTB:hen ja edustaa sen rekursiivista osaa. Tästä syystä sitä kutsutaan rekursiiviseksi jäseneksi. Ensimmäisessä rekursiivisen osan kutsussa OTB-viite edustaa viitekyselyn tulosta. Rekursiivinen jäsen käyttää ensimmäisen kyselykutsun tulosta. Tämän jälkeen järjestelmä kutsuu uudelleen rekursiivisen osan. Kutsu rekursiiviselle jäsenelle pysähtyy, kun edellinen puhelu sille palauttaa tyhjän tulosjoukon.

UNION ALL -operaattori yhdistää kertyneen Tämä hetki rivit sekä lisärivit, jotka nykyinen kutsu lisää rekursiiviseen jäseneen. (UNION ALL -operaattorin läsnäolo tarkoittaa, että päällekkäisiä rivejä ei poisteta tuloksesta.)

Lopuksi parametri outer_query määrittää ulomman kyselyn, jota OTB käyttää noutaakseen kaikki kutsut molempien jäsenten liitoksille.

OTB:n rekursiivisen muodon osoittamiseksi käytämme lentokonetaulukkoa, joka on määritelty ja täytetty alla olevassa esimerkissä esitetyllä koodilla:

KÄYTÄ SampleDb; LUO TAULUKKO Lentokone(ContainingAssembly VARCHAR(10), ContainedAssembly VARCHAR(10), QuantityContained INT, UnitCost DECIMAL(6,2)); INSERT INTO Lentokonearvot ("Airplane", "Runko", 1, 10); INSERT INTO Lentokonearvot ("Airplane", "Wings", 1, 11); INSERT INTO Lentokonearvot ("Airplane", "Tail", 1, 12); INSERT INTO Lentokonearvot ("Runko", "Salong", 1, 13); INSERT INTO Airplane VALUES ("runko", "ohjaamo", 1, 14); INSERT INTO Lentokoneen ARVOT ("Runko", "Nenä",1, 15); INSERT INTO Lentokonearvot ("Cabin", NULL, 1,13); INSERT INTO Lentokonearvot ("Cockpit", NULL, 1, 14); INSERT INTO Lentokoneen ARVOT ("Nenä", NULL, 1, 15); INSERT INTO Lentokonearvot ("Wings", NULL,2, 11); INSERT INTO Lentokonearvot ("Tail", NULL, 1, 12);

Lentokonetaulukossa on neljä saraketta. ContainingAssembly-sarake identifioi kokoonpanon ja ContainedAssembly-sarake identifioi osat (yksi kerrallaan), jotka muodostavat vastaavan kokoonpanon. Alla oleva kuva esittää graafisen kuvan mahdollisesta lentokonetyypistä ja sen osista:

Lentokonetaulukko koostuu seuraavista 11 rivistä:

Seuraava esimerkki käyttää WITH-lausetta määrittämään kyselyn, joka laskee kunkin koontiversion kokonaiskustannukset:

KÄYTÄ SampleDb; WITH osien_luettelo(kokoonpano1, määrä, hinta) AS (SELECT ContainingAssembly, QuantityContained, UnitCost FROM lentokoneesta WHERE ContainedAssembly IS NULL UNION ALL SELECT a.ContainingAssembly, a.QuantityContained, CAST(l.contity) *DECl.määrä6 *DECl. ) FROM osien_luettelo l, Lentokone a WHERE l.kokoonpano1 = a.ContainedAssembly) SELECT kokoonpano1 "Osa", määrä "Määrä", hinta "Hinta" FROM osien_luettelo;

WITH-lause määrittää OTB-luettelon, jonka nimi on osien_luettelo ja joka koostuu kolmesta sarakkeesta: kokoonpano1, määrä ja hinta. Esimerkin ensimmäistä SELECT-käskyä kutsutaan vain kerran tallentamaan rekursioprosessin ensimmäisen vaiheen tulokset. Esimerkin viimeisellä rivillä oleva SELECT-käsky näyttää seuraavan tuloksen.

SQL tai Structured Query Language on kieli, jota käytetään tietojen hallintaan relaatiotietokantajärjestelmässä (RDBMS). Tämä artikkeli kattaa yleisesti käytetyt SQL-komennot, jotka jokaisen ohjelmoijan tulisi tuntea. Tämä materiaali on ihanteellinen niille, jotka haluavat päivittää SQL-tietoaan ennen työhaastattelua. Voit tehdä tämän katsomalla artikkelissa annettuja esimerkkejä ja muista, että olet tutkinut tietokantoja pareittain.

Huomaa, että jotkin tietokantajärjestelmät vaativat puolipisteen jokaisen käskyn lopussa. Puolipiste on tavallinen osoitin jokaisen käskyn lopussa SQL:ssä. Esimerkeissä käytetään MySQL:ää, joten puolipiste vaaditaan.

Tietokannan perustaminen esimerkkejä varten

Luo tietokanta näyttääksesi kuinka tiimit toimivat. Toimiaksesi sinun on ladattava kaksi tiedostoa: DLL.sql ja InsertStatements.sql. Avaa sen jälkeen pääte ja kirjaudu sisään MySQL-konsoliin seuraavalla komennolla (artikkelissa oletetaan, että MySQL on jo asennettu järjestelmään):

Mysql -u root -p

Kirjoita sitten salasanasi.

Suorita seuraava komento. Kutsutaan tietokantaa "yliopistoksi":

LUO TIETOKANTA yliopisto; KÄYTÄ yliopistoa; LÄHDE ; LÄHDE

Komennot tietokantojen kanssa työskentelemiseen

1. Tarkastele käytettävissä olevia tietokantoja

NÄYTÄ TIETOKANNAT;

2. Luo uusi tietokanta

LUO TIETOKANTA;

3. Valitse käytettävä tietokanta

KÄYTTÄÄ ;

4. Tuo SQL-komennot .sql-tiedostosta

LÄHDE ;

5. Poista tietokanta

PUDOTA TIETOKANTA ;

Työskentely pöytien kanssa

6. Tarkastele tietokannassa saatavilla olevia taulukoita

NÄYTÄ taulukoita;

7. Luo uusi taulukko

LUO TAULU ( , , PÄÄAVAIN ( ), ULKOINEN AVAIN ( ) VIITTEET ());

Eheyden rajoitukset käytettäessä CREATE TABLE

Saatat joutua luomaan rajoituksia tietyille taulukon sarakkeille. Kun luot taulukkoa, voit asettaa seuraavat rajoitukset:

  • taulukon solulla ei voi olla NULL-arvoa;
  • ensisijainen avain - PRIMARY KEY (sarakkeen_nimi1, sarakkeen_nimi2, ...) ;
  • viiteavain - FORIGN KEY (sarakkeen_nimi1, …, sarakkeen_nimixn) VIITTEET taulukon_nimi(sarakkeen_nimi1, …, sarakkeen_nimixn) .

Voit määrittää useamman kuin yhden ensisijaisen avaimen. Tässä tapauksessa saat yhdistetyn ensisijaisen avaimen.

Esimerkki

Luo taulukko "ohjaaja":

CREATE TABLE opettaja (ID CHAR(5), nimi VARCHAR(20) NOT NULL, osaston_nimi VARCHAR(20), palkka NUMERO(8,2), PRIMARY KEY (ID), ULKOAvain (osaston_nimi) REFERENCES osasto(osaston_nimi));

8. Taulukkotiedot

Voit tarkastella erilaisia ​​tietoja (arvotyyppi, avain tai ei) taulukon sarakkeista seuraavalla komennolla:

KUVAUS ;

9. Tietojen lisääminen taulukkoon

LAITTAA SISÄÄN (, , , ...) ARVOT ( , , , …);

Kun lisäät tietoja taulukon jokaiseen sarakkeeseen, sinun ei tarvitse määrittää sarakkeiden nimiä.

LAITTAA SISÄÄN ARVOT ( , , , …);

10. Taulukon tietojen päivittäminen

PÄIVITTÄÄ ASETA = , = , ... MISSÄ ;

11. Kaikkien tietojen poistaminen taulukosta

POISTA LÄHTEESTÄ ;

12. Poista taulukko

PUDOTA PÖYTÄ ;

Komennot kyselyjen luomiseen

13. VALITSE

SELECT-toimintoa käytetään tietojen hakemiseen tietystä taulukosta:

VALITSE , , … ALKAEN ;

Seuraava komento voi näyttää kaikki tiedot taulukosta:

SELECT * FROM ;

14. SELECT DISTINCT

Taulukon sarakkeet voivat sisältää päällekkäisiä tietoja. Käytä SELECT DISTINCT noutaaksesi vain ei-kopioita.

SELECT DISTINCT , , … ALKAEN ;

15. MISSÄ

Voit määrittää kyselyn ehdot WHERE-avainsanalla SELECT:ssä:

VALITSE , , … ALKAEN MISSÄ ;

Pyynnössä voidaan määritellä seuraavat ehdot:

  • tekstin vertailu;
  • numeeristen arvojen vertailu;
  • loogiset operaattorit AND (ja), OR (tai) ja NOT (negatio).

Esimerkki

Kokeile seuraavia komentoja. Kiinnitä huomiota kohdassa WHERE määriteltyihin ehtoihin:

SELECT * FROM kurssista WHERE dept_name=’Comp. Sci.'; SELECT * FROM kurss WHERE opintopistettä>3; SELECT * FROM course WHERE dept_name="Comp. Sci." JA pisteet>3;

16. GROUP BY

GROUP BY -operaattoria käytetään usein aggregaattifunktiot kuten COUNT, MAX, MIN, SUM ja AVG ryhmitellä lähtöarvot.

VALITSE , , … ALKAEN GROUP BY ;

Esimerkki

Näytetään kunkin tiedekunnan kurssien määrä:

SELECT COUNT(kurssin_tunnus), osaston_nimi FROM kurssin GROUP BY osaston_nimi;

17. OTTAMINEN

HAVING-avainsana lisättiin SQL:ään, koska WHERE-avainsanaa ei voida käyttää koostefunktioiden kanssa.

VALITSE , , ... LÄH GROUP BY OTTAA

Esimerkki

Näytetään luettelo tiedekunnista, joissa on useampi kuin yksi kurssi:

SELECT COUNT(kurssin_tunnus), osaston_nimi FROM kurssin GROUP BY osaston_nimi HAVING COUNT(kurssin_tunnus)>1;

18. TILAA

ORDER BY -komentoa käytetään lajittelemaan kyselyn tulokset laskevaan tai nousevaan järjestykseen. ORDER BY lajittelee nousevaan järjestykseen, ellei ASC tai DESC ole määritetty.

VALITSE , , … ALKAEN TILAA , , …ASC|DESC;

Esimerkki

Näytetään luettelo kursseista nousevassa ja laskevassa pistemäärässä:

SELECT * FROM kurssin ORDER BY opintopisteitä; SELECT * FROM kurssista ORDER BY opintopisteiden mukaan DESC;

19. VÄLILLÄ

BETWEEN käytetään valitsemaan tietoarvot tietystä alueesta. Numeerinen ja tekstiarvot, sekä päivämäärät.

VALITSE , , … ALKAEN MISSÄ VÄLILLÄ JA ;

Esimerkki

Esitetään luettelo ohjaajista, joiden palkka on yli 50 000, mutta alle 100 000:

VALITSE * FROM ohjaaja, MISSÄ palkka 50000-100000;

20. Tykkää

LIKE-operaattoria käytetään WHERE-kohdassa määrittämään hakumalli samanlaiselle arvolle.

LIKE:ssä on kaksi ilmaista operaattoria:

  • % (ei mitään, yksi tai useampi merkki);
  • _ (yksi merkki).
VALITSE , , … ALKAEN MISSÄ KUTEN ;

Esimerkki

Näytetään luettelo kursseista, joiden nimet sisältävät "to" ja luettelo kursseista, joiden nimet alkavat "CS-":

SELECT * FROM kurssin WHERE otsikko LIKE '%to%'; SELECT * FROM course WHERE kurssin_tunnus LIKE "CS-___";

21. IN

Käyttämällä IN voit määrittää useita arvoja WHERE-lauseelle:

VALITSE , , … ALKAEN MISSÄ SISÄÄN ( , , …);

Esimerkki

Näytetään luettelo Comp-pääaineiden opiskelijoista. Sci., Physics and Elec. eng.:

SELECT * FROM opiskelija WHERE laitoksen_nimi IN ('Comp. Sci.', 'Fysiikka', 'Elec. Eng.');

22. LIITY

JOIN-komentoa käytetään kahden tai useamman taulukon linkittämiseen niiden sisältämien yhteisten attribuuttien avulla. Alla oleva kuva näyttää eri tavoilla liittyy SQL:ään. Huomaa ero vasemman ulomman liitoksen ja oikeanpuoleisen ulomman liitoksen välillä:

VALITSE , , … ALKAEN LIITTYÄ SEURAAN PÄÄLLÄ = ;

Esimerkki 1

Näytämme luettelon kaikista kursseista ja asiaankuuluvat tiedot tiedekunnista:

SELECT * FROM kurssista LIITY osastolle kurssin.osaston_nimi=osaston.osaston_nimi;

Esimerkki 2

Näytämme luettelon kaikista vaadituista kursseista ja niistä tiedot:

SELECT prereq.course_id, title, dept_name, credits, prereq_id FROM prereq LEFT OUTTER LIITY kurssille prereq.course_id=course.course_id;

Esimerkki 3

Näytämme luettelon kaikista kursseista riippumatta siitä, ovatko ne pakollisia vai eivät:

VALITSE kurssi.kurssin_tunnus, otsikko, laitoksen_nimi, opintopisteet, esivaatimustunnus FROM prereq RIGHT OUTTER JOIN kurssi ON prereq.course_id=course.course_id;

23. Näytä

Näkymä on virtuaalinen SQL-taulukko, joka on luotu lausekkeen suorittamisen tuloksena. Se sisältää rivejä ja sarakkeita ja on hyvin samanlainen kuin tavallinen SQL-taulukko. Näkymä näyttää aina uusimmat tiedot tietokannasta.

Luominen

LUO NÄKYMÄ AS SELECT , , … ALKAEN MISSÄ ;

Poistaminen

PUDOTA NÄKYMÄ ;

Esimerkki

Luodaan näkymä, joka koostuu 3 opintopisteen kursseista:

24. Aggregaattifunktiot

Näitä toimintoja käytetään kyseisiin tietoihin liittyvän aggregoidun tuloksen saamiseksi. Seuraavat ovat yleisesti käytettyjä koontifunktioita:

  • COUNT (sarakkeen_nimi) - palauttaa rivien määrän;
  • SUM (sarakkeen_nimi) - palauttaa tämän sarakkeen arvojen summan;
  • AVG (sarakkeen_nimi) - palauttaa tietyn sarakkeen keskiarvon;
  • MIN (sarakkeen_nimi) - palauttaa tietyn sarakkeen pienimmän arvon;
  • MAX (sarakkeen_nimi) – Palauttaa tietyn sarakkeen suurimman arvon.

25. Sisäkkäiset alikyselyt

Sisäkkäiset alikyselyt ovat SQL-kyselyitä, jotka sisältävät toisen kyselyn sisäkkäisiä SELECT-, FROM- ja WHERE-lauseita.

Esimerkki

Etsitään kurssit, joita opetettiin syksyllä 2009 ja keväällä 2010:

SELECT DISTINCT kurssin_tunnus FROM jaksosta WHERE lukukausi = 'Syksy' AND year= 2009 AND course_id IN (SELECT course_id FROM section WHERE lukukausi = 'Kevät' JA vuosi= 2010);

SQL - Strukturoitu kyselykieli.
Tässä katsauksessa tarkastellaan yleisimpiä SQL-kyselytyyppejä.
SQL-standardi on määritelty ANSI(American National Standards Institute).
SQL on erityisesti relaatiotietokantoihin tarkoitettu kieli.

SQL-osiointi:


DDL
(Tietojen määrittelykieli) - ANSI:n ns. Schema Description Language koostuu komennoista, jotka luovat objekteja (taulukoita, indeksejä, näkymiä ja niin edelleen) tietokantaan.
DML(Tietojen käsittelykieli) on joukko komentoja, jotka määrittävät, mitkä arvot esitetään taulukoissa kulloinkin.
DCD(Tiedonhallinnan kieli) koostuu toiminnoista, jotka määrittävät, sallitaanko käyttäjän suorittaa tiettyjä toimintoja vai ei. Ne ovat osa ANSI DDL:ää. Älä unohda näitä nimiä. Nämä eivät ole eri kieliä, vaan funktioidensa mukaan ryhmiteltyjä SQL-komentojen osia.

Tietotyypit:

SQL Server - Tietotyypit

Kuvaus

bigint (väli 8)

bigint (väli 8)

binääri(n)

binääri(ei myöskään kuva

merkki
(synonyymi hiiltyä)

kansallinen merkki tai ntext

luonteeltaan vaihteleva(synonyymi char vaihteleva varchar)

kansallinen luonne vaihtelee tai ntext

Treffiaika

treffiaika

desimaali

aka numeerinen

kaksinkertainen tarkkuus

kaksinkertainen tarkkuus

kokonaisluku (väli 4) (synonyymi: int)

kokonaisluku (väli 4)

kansallinen luonne(synonyymi: kansallinen luonne, nchar)

kansallinen luonne

Numeerinen(synonyymit: desimaali, joulukuu)

kansallinen luonne vaihtelee(synonyymit: kansallinen merkki vaihtelee, nvarchar)

Kansallinen luonne vaihtelee

Pieni päivämäärä

treffiaika

smallint (väli 2)

smallint (väli 2)

Pienet rahat

sql_variant

Ei enää tuettu

Ntext
SQL Server 2005:stä alkaen sitä ei suositella käytettäväksi.

Aikaleima

Ei tueta

pikkuinen (väli 1)

pikkuinen (väli 1)

Yksilöllinen tunniste

yksilöllinen tunniste

varbinaarinen(n)

varbinaarinen(ei myöskään kuva

pieni päivämäärä

treffiaika

smallint (väli 2)

smallint (väli 2)

pientä rahaa

sql_variant

Ei tueta

aikaleima

Ei tueta

pikkuinen (väli 1)

pikkuinen (väli 1)

yksilöllinen tunniste

yksilöllinen tunniste

varbinaarinen(n)

varbinaarinen(ei myöskään kuva

Tietotyyppitaulukko SQL Server 2000:ssa

MIKÄ ON PYYNTÖ?

Pyyntö on komento, jonka annat tietokantaohjelmallesi. Kyselyt ovat osa DML-kieltä. Kaikki SQL-kyselyt koostuvat yhdestä komennosta. Tämän komennon rakenne on petollisen yksinkertainen, koska sinun on laajennettava sitä suorittamaan erittäin monimutkaisia ​​arviointeja ja tietojen käsittelyä.

SELECT-komento:

VALITSE"Valitse" on useimmin käytetty komento, jota käytetään tietojen valitsemiseen taulukosta.
Kyselyn tyyppi SELECT:n avulla:

SELECT id, user_name, city, syntymäpäivä FROM user_base;

Tällainen kysely näyttää taulukosta users_base kaikki määritettyjen sarakkeiden arvot pilkuilla erotettuna SELECT komennot. Voit myös näyttää kaikki sarakkeet yhdellä merkillä, * eli. SELECT * FROM user_base ; - tällainen kysely näyttää kaikki tiedot taulukosta.

SELECT komentorakenne:

SELECT (Pilkuilla erotetut sarakkeiden nimet, jotka on näytettävä kyselyssä) FROM (taulukon nimi tietokannassa)
- Tämä on yksinkertaisin pyyntö. Kätevää tiedonhakua varten on lisäkomentoja (katso alla "Toiminnot")

DML-komennot:

Arvot voidaan sijoittaa ja poistaa kentistä käyttämällä kolmea DML (Data Manipulation Language) -komentoa:
LISÄÄ(Lisää)
PÄIVITTÄÄ(Päivitys, muutos),
POISTAA(Poistaa)

INSERT-komento:

INSERT INTO users_base (käyttäjänimi, kaupunki, syntymäpäivä) ARVOT ('Aleksanteri', 'Rostov', '20.06.1991');

INSERT-komennon mukana tulee etuliite INTO (in to), sitten suluissa on niiden sarakkeiden nimet, joihin meidän on lisättävä tietoja, sitten tulee VALUES-komento (arvot) ja suluissa arvot tulevat vuorotellen (se on arvojen järjestyksen noudattamiseksi sarakkeiden kanssa, arvojen on oltava samassa järjestyksessä kuin määrittämäsi sarakkeet).

UPDATE-komento:

UPDATE users_base SET user_name = 'Aleksei';

UPDATE-komento päivittää taulukon arvot. Ensin tulee itse UPDATE-komento, sitten taulukon nimi, SET-komennon jälkeen (set), sitten sarakkeen nimi ja sen arvo lainausmerkeissä (lainausmerkit laitetaan jos arvo on merkkijonomuodossa, jos se on numeerinen arvo ja sarake ei ole sidottu tietotyyppiin vchar tai mihinkään muuhun merkkijonotyyppiin, lainausmerkeillä ei ole merkitystä.)

DELETE-komento:

DELETE FROM users_base WHERE user_name = 'Vasilja';

DELETE-komento poistaa koko rivin ja identifioi rivin WHERE-kriteerin avulla. Tässä tapauksessa tämä kysely poistaisi kaikki rivit, joissa user_name -sarakkeen arvo oli Vasily. Puhumme WHERE-kriteeristä ja muista hieman myöhemmin.

Kriteerit, toiminnot, ehdot jne. mikä auttaa meitä SQL:ssä:

WHERE-lause on SELECT-komennon ja muiden DML-komentojen lauseke, jonka avulla voit asettaa predikaatteja, joiden ehto voi olla joko tosi tai epätosi mille tahansa taulukon riville. Komento hakee taulukosta vain ne rivit, joille tämä lause on tosi.
Esimerkki:
SELECT id, kaupunki, syntymäpäivä FROM user_base WHERE user_name = 'Aleksei';- tällainen kysely näyttää vain ne rivit, jotka vastaavat WHERE-ehtoa, eli kaikki rivit, joissa user_name -sarakkeessa on arvo Aleksei.

ORDER BY - ehto valittujen rivien lajittelulle. Siinä on 2 kriteeriä ASC ja DESC. ASC (lajittelu A–Z tai 0–9)

DESC (vastakohta ASC:lle).
Esimerkki:
SELECT id, kaupunki, syntymäpäivä FROM user_base ORDER BY user_name ASC; - tällainen kysely näyttää arvot, jotka on lajiteltu user_name-sarakkeen mukaan A:sta Z:hen (A-Z; 0-9)

Tätä ehtoa voidaan käyttää myös WHERE-lauseen yhteydessä.
Esimerkki:
SELECT id, kaupunki, syntymäpäivä FROM user_base WHERE user_name = 'Aleksei' ORDER BY id ASC;

DISTINCT on argumentti, joka tarjoaa sinulle tavan poistaa kaksinkertaiset arvot SELECT-lauseesta. Nuo. jos sinulla on päällekkäisiä arvoja sarakkeessa, oletetaan käyttäjän_nimi, niin DISTINCT näyttää sinulle vain yhden arvon, esimerkiksi tietokannassasi on 2 henkilöä nimeltä Aleksei, niin DISTINCT-funktiota käyttävä kysely näyttää sinulle vain yhden arvon joka kohdataan ensimmäisenä...
Esimerkki:
SELECT DISTINCT user_name FROM user_base;- tällainen kysely näyttää meille kaikkien user_name -sarakkeen tietueiden arvot, mutta niitä ei toisteta, ts. jos sinulla oli ääretön määrä toistuvia arvoja, niitä ei näytetä...

JA - ottaa kaksi Boolen arvoa (muodossa A JA B) argumenteiksi ja arvioi ne totuutta vastaan, ovatko ne molemmat tosia.
Esimerkki:
SELECT * FROM users_base WHERE city = 'Rostov' AND user_name = 'Aleksanteri';- näyttää kaikki arvot taulukosta, jossa kaupungin nimi näkyy yhdellä rivillä (tässä tapauksessa Rostov ja käyttäjänimi Alexander.

TAI - ottaa kaksi Boolen arvoa (muodossa A TAI B) argumenteiksi ja arvioi, onko toinen niistä oikea.

SELECT * FROM users_base WHERE city = 'Rostov' OR user_name = 'Aleksanteri';- näyttää kaikki arvot taulukosta, jossa Rostovin kaupungin nimi tai käyttäjätunnus Alexander näkyy rivillä.

NOT - ottaa yhden Boolen (muodossa NOT A) argumenteiksi ja muuttaa sen arvon epätosi arvosta tosi tai tosi epätosi.
SELECT * FROM users_base WHERE city = 'Rostov' OR NOT user_name = 'Aleksanteri';- näyttää kaikki arvot taulukosta, jossa Rostovin kaupungin nimi esiintyy yhdellä rivillä tai käyttäjänimi ei ole täsmälleen Alexander.

IN - määrittää joukon arvoja, joihin tietty arvo voidaan sisällyttää tai ei.
SELECT * FROM users_base WHERE city IN ('Vladivostok', 'Rostov');- tällainen kysely näyttää kaikki arvot taulukosta, jotka sisältävät kaupunkisarakkeessa määritettyjen kaupunkien nimet

Väli on samanlainen kuin IN-operaattori. Toisin kuin määrittäminen joukosta numeroilla, kuten IN, BETWEEN määrittää alueen, jonka arvojen on pienennettävä, jotta predikaatti tulee tosi.
SELECT * FROM user_base WHERE id BETWEEN 1 JA 10;- näyttää kaikki taulukon arvot, jotka ovat id-sarakkeessa välillä 1-10

COUNT – Tuottaa kyselyn valitsemien kenttien rivinumerot tai ei-NULL-arvot.
SELECT COUNT (*) FROM user_base ;- näyttää tämän taulukon rivien lukumäärän.
VALITSE COUNT (ERÄLLÄ käyttäjän_nimi) käyttäjien_kannasta ;- näyttää rivien määrän käyttäjätunnuksilla (ei toistu)

SUMMA - tuottaa kaikkien valittujen arvojen aritmeettisen summan tietylle kentälle.
SELECT SUM (id) FROM user_base ;- näyttää id-sarakkeen kaikkien rivien arvojen summan.

AVG - laskee tämän kentän kaikkien valittujen arvojen keskiarvon.
SELECT AVG (id) FROM user_base ;- näyttää id-sarakkeen kaikkien valittujen arvojen keskiarvon

MAX - tuottaa suurimman kaikista tämän kentän valituista arvoista.

MIN - tuottaa pienimmän kaikista tämän kentän valituista arvoista.

Taulukoiden luominen:

CREATE TABLE user_base (id kokonaisluku, käyttäjänimen teksti, kaupunkiteksti, syntymäpäivä päivämääräaika);- tällaisen komennon suorittaminen johtaa taulukon luomiseen, josta annoin esimerkkejä... Kaikki on täällä yksinkertaista, kirjoitamme CREATE TABLE -komennon, jonka jälkeen sen taulukon nimi, jonka haluamme luoda, sitten suluissa, pilkuilla erotettuna sarakkeiden nimet ja niiden tietotyypit. Tämä on tavallinen tapa luoda taulukko SQL:ssä. Annan nyt esimerkin taulukoiden luomisesta SQL Server 2005:ssä:

ASETA ANSI_NULLS PÄÄLLE
MENNÄ
ASETA QUOTED_IDENTIFIER PÄÄLLE
MENNÄ
JOS EI OLE OLEMASSA (SELECT * FROM sys.objects WHERE objektin_id = OBJECT_ID(N."") JA kirjoita (N"U"))
ALKAA
LUO TAULUKKO .(

EI TYHJÄ,
EI TYHJÄ,
EI TYHJÄ,
ENSISIJAINEN AVAIN KLUSTERETTU
A.S.C.


LOPPU
MENNÄ
ASETA ANSI_NULLS PÄÄLLE
MENNÄ
ASETA QUOTED_IDENTIFIER PÄÄLLE
MENNÄ
JOS EI OLE OLEMASSA (SELECT * FROM sys.objects WHERE objektin_id = OBJECT_ID(N."") JA kirjoita (N"U"))
ALKAA
LUO TAULUKKO .(
IDENTITEETTI(1,1) EI NOLLA,
TYHJÄ,
TYHJÄ,
ENSISIJAINEN AVAIN KLUSTERETTU
A.S.C.
)KÄYTÖSSÄ (IGNORE_DUP_KEY = OFF).
) PÄÄLLÄ TEXTIMAGE_ON
LOPPU
MENNÄ
ASETA ANSI_NULLS PÄÄLLE
MENNÄ
ASETA QUOTED_IDENTIFIER PÄÄLLE
MENNÄ
JOS EI OLE OLEMASSA (SELECT * FROM sys.objects WHERE objektin_id = OBJECT_ID(N."") JA kirjoita (N"U"))
ALKAA
LUO TAULUKKO .(
IDENTITEETTI(1,1) EI NOLLA,
TYHJÄ,
TYHJÄ,
ENSISIJAINEN AVAIN KLUSTERETTU
A.S.C.
)KÄYTÖSSÄ (IGNORE_DUP_KEY = OFF).
) PÄÄLLÄ
LOPPU

Syntaksi SQL Server 2005:ssä on toinen aihe, halusin vain näyttää, että kuvailin SQL-ohjelmoinnin perusteet, voit päästä huipulle itse tietäen perusteet.

Jos sinulla on kysyttävää tästä aiheesta, kirjoita minulle

Kehitä sovellus, joka esittelee tietokannan, kuten MS SQL Serverin, tietojen perustoiminnot, nimittäin:

  • tietokannan yhdistäminen sovellukseen;
  • tietokantataulukoiden näyttäminen lomakkeella;
  • lisäys uusi merkintä tietokantaan;
  • tietueen muokkaaminen;
  • merkinnän poistaminen.

Pohjaksi otetaan Education.dbo-tietokanta, jonka luomisprosessi on kuvattu yksityiskohtaisesti

Kuvassa 1 on esitetty Education.dbo-tietokannan rakenne. Kuten kuvasta näkyy, tietokannan nimi on:

sasha-pc\sqlexpress.Education.dbo

Tässä "sasha-pc" on verkon tietokoneen tunniste, "sqlexpress" on tietokantapalvelimen nimi ja "Education.dbo" on tietokannan nimi.

Riisi. 1. Education.dbo-tietokanta

Tietokanta sisältää kaksi taulukkoa: Student ja Session. Taulukoiden rakenne on seuraava.

Opiskelijapöytä.

Istuntopöytä.

Esitys

1. Luo uusi projekti MS Visual Studiossa Windows Forms -sovelluksena.

Luo uusi Windows Forms Application -tyyppinen projekti. Esimerkki uuden projektin luomisesta on kuvattu yksityiskohtaisesti

2. Luo uusi näkymä näyttääksesi tietoja opiskelijataulukosta.

Voit näyttää tietokantataulukoiden tiedot käyttämällä eri tavoilla. Yksi niistä on näkymien luominen, jotka luodaan MS Visual Studiolla.

Meidän tapauksessamme taulukon tiedot näytetään lomakkeella DataGridView-tyypin ohjausobjektissa. Näkymien luomisen jälkeen on erittäin kätevää liittää ne DataGridView-elementteihin.

Näkymän luomiseksi sinun on kutsuttava pikavalikosta "Lisää uusi näkymä" -komento, jota kutsutaan napsauttamalla hiiren kakkospainikkeella Education.dbo-tietokannan "Views"-elementtiä (kuva 2).

Riisi. 2. Kutsumalla komennon lisäämään uusi näkymä

Tämän seurauksena "Lisää taulukko" -ikkuna avautuu (kuva 3). Ikkunassa sinun on valittava näkymään lisättävät taulukot.

Riisi. 3. Taulukot, joihin uusi näkymä perustuu

Valitse tässä tapauksessa Opiskelijataulukko ja vahvista valintasi napsauttamalla Lisää-painiketta. Seuraava vaihe on sulkea ikkuna valitsemalla Sulje-painike.

Kun vaiheet on suoritettu, luodaan ikkuna, jossa sinun on valittava kentät, jotka näytetään näkymässä (lomakkeessa). Valitse kaikki kentät (Kuva 4).

Kun valitset kenttiä, Opiskelija-taulukon kentät näkyvät työalueen yläosassa. Hiirtä käyttämällä voit valita haluamasi kentät esitettäväksi.

Vastaavasti ikkunan keskimmäisellä alueella näkyy valittujen kenttien nimet, taulukko, jossa ne ovat (katso kuva 4), mahdollisuus lajitella, suodattaa jne.

Alueen alareunassa näkyy vastaava SQL-kyselyteksti, jota käytetään näkymän luomiseen.

Riisi. 4. Opiskelijataulukoiden kenttien valinta näkymässä näytettäväksi

Joukkueen valinnan jälkeen

Tiedosto-> Tallenna kaikki Tiedosto->Tallenna näkymä1

Näyttöön tulee ikkuna, jossa sinun on määritettävä näkymän nimi. Aseta nimi "View Student" (Kuva 5).

Riisi. 5. Näkymän nimen määrittäminen

Kun vaiheet on suoritettu, esitysikkuna näyttää kuvan 6 mukaiselta.

Riisi. 6. Näytä opiskelijaedustus tietokannassa

Voit nyt isännöidä DataGridView-ohjausobjektia ja liittää sen näkymään.

3. Aseta DataGridView-ohjausobjekti ja määritä yhteys tietokantaan.

Ennen kuin asetat DataGridView-säätimen, sinun on siirryttävä lomakkeen suunnittelutilaan "Form1.cs".

DataGridView-elementti on taulukko, joka voi näyttää tietoja. Tämä säädin sijaitsee ToolBox-paneelissa. Ensin säädämme hieman lomakkeen kokoa ja asetamme sitten DataGridView-säätimen siihen (kuva 7). Tämä luo oletuksena objektiinstanssin nimeltä dataGridView1.

Riisi. 7. DataGridView-ohjaus- ja tietolähteen valintaikkuna

Kun olet asettanut DataGridView-säätimen lomakkeelle, voit määrittää tietolähteen oikeassa yläkulmassa. Näin ollen "DataGridView Tasks" -ikkuna avautuu. Tässä ikkunassa sinun on valittava "Valitse tietolähde" ​​-ponnahdusvalikko.

Valitse avautuvasta valikosta "Lisää projektin tietolähde..." -komento (kuva 7). Tämän jälkeen avautuu ohjattu ikkuna, jossa tietolähde valitaan peräkkäin.

Kuvassa 8 näkyy " Ohjattu tietolähteen määritystoiminto", jossa tietolähteen tyyppi on valittu. Meidän tapauksessamme asennamme "tietokannan".

Riisi. 8. Tietolähteen tyypin valitseminen

Seuraavassa ikkunassa (Kuva 9) valitaan tietolähdemalli. Sinun on valittava DataSet.

Riisi. 9. Tietolähdemallin valinta

Kuvan 10 ikkunassa sinun on määritettävä datayhteys, jolla haluat muodostaa yhteyden tietokantaan. Meidän tapauksessamme meidän on valittava tietokanta " sasha-pc\sqlexpress\Education.dbo«.

Riisi. 10. Datayhteyden valitseminen

Seuraava ikkuna (Kuva 11) ehdottaa yhteysmerkkijonon tallentamista sovelluksen asetustiedostoon. Jätetään kaikki ennalleen ja siirrytään seuraavaan ikkunaan.

Riisi. 11. Ehdotus tietokannan yhteysmerkkijonon Connection String tallentamiseksi sovelluksen asetustiedostoon

Tietokantayhteyden luomisen jälkeen näyttöön tulee erilaisia ​​tietokantaobjekteja (Kuva 12). Meidän tapauksessamme meidän on valittava "Näytä opiskelija" -näkymä ja kaikki kentät siitä. Valitut kentät näkyvät DataGridView-tyyppisessä komponentissa.

Riisi. 12. DataGridView-näkymässä näytettävät tietokantaobjektit

Kun olet valinnut Valmis-painikkeen, Education.dbo-tietokannan valitut objektit (View Student view) tulevat näkyviin (Kuva 13).

Riisi. 13. DataGridView-ohjaus valituilla View Student -kentillä

Samalla tavalla voit määrittää näkymiä, jotka sisältävät kentät mistä tahansa tietokantataulukosta. Myös eri taulukoiden kentät voidaan näyttää yhdessä näkymässä.

4. DataGridView-säätimen ulkoasun asettaminen.

Jos suoritat sovelluksen, saat tietoja Näytä opiskelija -näkymästä, joka vastaa tietokannan opiskelijataulukkoa (Kuva 14).

Riisi. 14. Sovelluksen käynnistäminen täytäntöönpanoa varten

Kuten kuvasta 14 näkyy, dataGridView1-taulukon tiedot näkyvät normaalisti, mutta ulkoasua voidaan säätää.

DataGridView-tyypin ohjauksella voit säätää näytettävien kenttien ulkoasua.

Voit kutsua komentoja kenttien muokkausta varten avaamalla kontekstivalikko napsauttamalla hiiren kakkospainikkeella dataGridView1-ohjausobjektia.

Ruokalistalla on erilaisia hyödyllisiä komentoja, joiden avulla voit hallita DataGridView:n ulkoasua ja toimintaa:

  • komento estää ohjaus (Lock Controls);
  • -komento näkymässä näytettävien kenttien muokkaamiseen (Muokkaa sarakkeita...);
  • -komento lisätäksesi uusia kenttiä, esimerkiksi laskettuja kenttiä (Add Column).

Meidän tapauksessamme sinun on valittava "Muokkaa sarakkeita..." -komento (kuva 15).

Riisi. 15. Komento "Muokkaa sarakkeita..." pikavalikosta

Tämän seurauksena avautuu "Muokkaa sarakkeita" -ikkuna, jossa voit muokata esityskenttien ulkoasua mieleiseksesi (Kuva 16).

Riisi. 16. Ikkuna "View Student" -näkymän kenttien näkymän asettamiseen

Kuvan 16 ikkunassa mille tahansa kentälle voit määrittää nimen, tasauksen, leveyden, tietojen muokkausmahdollisuuden jne.

5. Yhteysmerkkijono

Jotta voit tehdä muutoksia tietokantaan, sinun on hankittava yhteysmerkkijono tietokantaan Connection String .

Tietokantayhteysmerkkijono saadaan eri tavoilla. Yksi niistä perustuu tämän rivin lukemiseen Education.dbo-tietokannan Ominaisuudet-ikkunassa (kuva 17).

Riisi. 17. Yhteysmerkkijonon määrittäminen

Merkkijonon tallentamiseksi ohjelmaan sisäinen muuttuja, jonka tyyppi on merkkijono. Kopioi leikepöydällä yhteysmerkkijono kuvattuun merkkijonomuuttujaan.

Tiedoston ”Form1.cs” tekstissä Form1-luokan kuvauksen alussa sinun tulee kuvata muuttuja:

merkkijono conn_string = ;

Tällä hetkellä Form1-luokan teksti on seuraava:

julkinen osaluokka Lomake1 : Lomake { merkkijono conn_string = @"Tietolähde=(paikallinen)\SQLEXPRESS;Alkuluettelo=Koulutus;Integroitu suojaus=True;Pooling=False"; julkinen lomake1() { InitializeComponent(); } yksityinen void Form1_Load(objektin lähettäjä, EventArgs e) { // TODO: Tämä koodirivi lataa tiedot "educationDataSet.View_Student" -taulukkoon. Sinä pystyt siirrä tai poista se tarpeen mukaan. } }

6. Luominen uusi muoto tietojenkäsittelykomentojen esittelyyn.

Jotta voit käsitellä nykyisen tietueen tietoja, sinun on luotava uusi lomake. Uuden lomakkeen luontiprosessi MS Visual Studio - C#:ssa on kuvattu yksityiskohtaisesti.

Uuden lomakkeen lisääminen tapahtuu komennolla:

Projekti -> Lisää Windows-lomake...

Avautuvassa "New Item" -ikkunassa sinun on valittava "Windows Form" -elementti.

Jätä uusi lomaketiedoston oletusnimi "Form2.cs".

Kuvassa 18 on kuva uudesta lomakkeesta.

Sijoitamme lomakkeelle seuraavan tyyppisiä ohjausobjekteja:

  • kaksi painikeohjainta (OK- ja Peruuta-painikkeet). Vastaavasti vastaanotetaan kaksi objektia nimillä button1 ja button2;
  • neljä Label-ohjainta tiedotusviestien luomiseen;
  • neljä TextBox-tyyppistä ohjausobjektia tietojen syöttämiseksi kenttiin Num_book, Name, Group, Year.

Sinun on määritettävä seuraavat säätimien ominaisuudet:

  • ohjauspainikkeen1 ominaisuudessa Text = "OK";
  • button2-ohjausominaisuudessa Text = "Peruuta";
  • ohjauspainikkeen1 ominaisuudessa DialogResult = "OK";
  • ohjauspainikkeen2 ominaisuudessa DialogResult = "Peruuta";
  • ohjaustunniste1-ominaisuudessa Text = "Num_book";
  • Control label2 -ominaisuudessa Text = "Nimi";
  • Control label3 ominaisuudessa Text = "Ryhmä";
  • etiketissä4 ohjaa ominaisuutta Text = "Year".

Määritämme myös TextBox-säätimien näkyvyyden. Tätä varten kaikissa ohjaimissa textBox1, textBox2, textBox3, textBox4 ominaisuuden arvo Modifiers = "julkinen".

Riisi. 18. Näkymä juuri luodusta lomakkeesta

7. Painikkeiden lisääminen komentojen kutsumiseksi opiskelijataulukon tietojen käsittelyyn.

Jatkotyötä varten sinun on vaihdettava päälomakkeeseen Form1 hiirellä.

Lisää kolme painiketta Form1-sovelluksen päälomakkeeseen (painike). Kolme objektimuuttujaa luodaan automaattisesti nimillä button1, button2, button3. Jokaisessa näistä painikkeista teemme seuraavat asetukset (Ominaisuudet-ikkuna):

  • in button button1 property Text = “Lisää…” (lisää tietue);
  • in button button2 property Text = "Muokkaa…" (muuta merkintää);
  • painikkeen button3 ominaisuudessa Text = "Poista".

Tehtyjen muutosten seurauksena päälomake näyttää kuvan 19 mukaiselta.

Riisi. 19. Hakemuksen päälomake

8. Napsautustapahtuman ohjelmointi "Lisää..." -painikkeelle.

"Lisää..." -painikkeen napsautustapahtumakäsittelijä näyttää tältä:

yksityinen void button1_Click_1(objektin lähettäjä, EventArgs e) { merkkijono cmd_text; muoto2 f2 = uusi muoto2(); if (f2.ShowDialog() == DialogResult .OK) { cmd_text = "INSERT INTO Student VALUES (" + """ + f2.textBox1.Text + "" , "" + f2.textBox2.Text + "" , "" + f2.textBox3.Text + "" , " + f2.textBox4.Text + ")" ; // luo yhteys tietokantaan SqlConnection sql_conn = new SqlConnection(conn_string); // luo komento päälle SQL-kieli SqlCommand sql_comm = new SqlCommand(cmd_text, sql_conn); sql_conn.Open(); // avaa yhteys sql_comm.ExecuteNonQuery(); // Suorita komento SQL-kielellä sql_conn.Close(); // Sulje yhteys this .view_StudentTableAdapter.Fill(this .educationDataSet.View_Student); } }

Form2 kutsutaan ensin. Saatuaan ”OK”-tuloksen (painamalla vastaavaa painiketta), Form2:ssa TextBox-tyypin elementtien täytetyt kentät sisällytetään SQL-kyselymerkkijonoon. SQL-kysely uuden rivin lisäämiseksi näyttää tältä:

INSERT INTO Opiskelija ARVOT (arvo1, arvo2, arvo3, arvo4)

jossa arvo1 vastaa arvosanakirjan numeroa; arvo2 – opiskelijan sukunimi; arvo3 – ryhmä, jossa opiskelija opiskelee; arvo4 – tulovuosi.

Yhteysmerkkijono tietokannan yhteysmerkkijono on kuvattu conn_string-muuttujassa (katso kappale 5). SqlConnection-luokkaobjekti yhdistää sovelluksen tietolähteisiin. Lisäksi Connection-luokka käsittelee käyttäjien todentamista, verkottumista, tietokannan tunnistamista, yhteyden puskurointia ja tapahtumien käsittelyä.

SQL-komento, joka lisää tietueen taulukkoon, on kapseloitu SqlCommand-luokkaan. SqlCommand-luokan rakentaja ottaa kaksi parametria: SQL-kyselymerkkijonon (cmd_text-muuttuja) ja SqlConnection-luokan objektin.

ExecuteNonQuery()-menetelmä on toteutettu IDBCommand-rajapinnassa. Menetelmä toteuttaa SQL-komentoja, jotka eivät palauta tietoja. Tällaisia ​​komentoja ovat INSERT-, DELETE-, UPDATE-komennot sekä tallennetut proseduurit, jotka eivät palauta tietoja. ExecuteNonQuery()-metodi palauttaa mukana olevien tietueiden määrän.

9. Napsautustapahtuman ohjelmointi "Muokkaa..."-painikkeella.

Muokkaa...-painikkeen napsautustapahtumakäsittelijä näyttää tältä:

yksityinen void button2_Click(objektin lähettäjä, EventArgs e) ( merkkijono cmd_text; Form2 f2 = new Form2 (); int index; merkkijono numero_kirja; indeksi = dataGridView1.CurrentRow.Index; num_book = Muunna .ToString(dataGridView1.Value); 1 f2.textBox .Text = numero_kirja; f2.tekstiBox2.Text = Muunna .ToString(dataGridView1.Value). = "PÄIVITYS opiskelijajoukko Num_book = ""+ f2.textBox1.Text + "", " + " = "" + f2.textBox2.Text + "", " + " = "" + f2.textBox3.Text + "", " + "Vuosi = " + f2 .textBox4.Text + "WHERE Num_book = "" + numero_kirja + """ ; SqlConnection (conn_conn.Close( this .view_StudentTableAdapter)StudentAdapter);

Tämä käsittelijä suorittaa UPDATE SQL -komennon, joka muuttaa aktiivisen tietueen nykyistä arvoa.

10. Napsautustapahtuman ohjelmointi "Poista"-painikkeelle.

"Poista"-painikkeen napsautustapahtumakäsittelijä näyttää tältä:

yksityinen void button3_Click(objektin lähettäjä, EventArgs e) ( merkkijono cmd_text = "POISTA opiskelijasta" ; int indeksi; merkkijono numero_kirja; index = dataGridView1.CurrentRow.Index; num_book = Muunna.ToString(dataGridView1.Arvo); cmd_text = "DELETE FROM Student WHERE . = ""+ num_book + """ ; SqlConnection sql_conn = uusi SqlConnection (conn_string); SqlCommand sql_comm = uusi SqlCommand (cmd_text, sql_conn); sql_conn.Open(); sql_comm.Queryconn); opiskelijan kykenevä sovitin. Täytä (this.educationDataSet.View_Student);

Tämä käsittelijä suorittaa SQL-komennon DELETE poistaakseen tietueen.

Liittyvät aiheet

  • Microsoft Access -tietokantataulukon tulostaminen

SQL Server Management Studio tarjoaa täydellisen työkalun kaikentyyppisten kyselyiden luomiseen. Sen avulla voit luoda, tallentaa, ladata ja muokata kyselyitä. Lisäksi voit käsitellä kyselyitä muodostamatta yhteyttä mihinkään palvelimeen. Tämä työkalu tarjoaa myös mahdollisuuden kehittää kyselyitä eri projekteihin.

Voit käsitellä kyselyitä joko kyselyeditorilla tai ratkaisuselaimella. Tämä artikkeli kattaa nämä molemmat työkalut. Näiden SQL Server Management Studion kahden osan lisäksi tarkastelemme SQL-koodin virheenkorjausta sisäänrakennetun debuggerin avulla.

Kyselyeditori

Voit avata Kyselyeditori-paneelin Kyselyeditori, napsauta SQL Server Management Studio -työkalurivin Uusi kysely -painiketta. Tämä paneeli voidaan laajentaa näyttämään painikkeita kaikkien mahdollisten kyselyjen luomiseen, ei vain tietokantakonekyselyihin. Oletuksena se luodaan uusi pyyntö Database Engine -komponentti, mutta napsauttamalla työkalurivin vastaavaa painiketta voit luoda myös MDX-, XMLA- jne. kyselyitä.

Kyselyeditori-paneelin alareunassa oleva tilapalkki näyttää editorin palvelimen välisen yhteyden tilan. Jos et muodosta yhteyttä palvelimeen automaattisesti, kun käynnistät kyselyeditorin, näkyviin tulee Yhdistä palvelimeen -valintaikkuna, jossa voit valita palvelimen, johon haluat muodostaa yhteyden, ja todennustilan.

Kyselyjen muokkaaminen offline-tilassa tarjoaa enemmän joustavuutta kuin ollessaan yhteydessä palvelimeen. Kyselyjen muokkaamiseen ei tarvitse muodostaa yhteyttä palvelimeen, ja kyselynmuokkausikkuna voidaan katkaista yhdestä palvelimesta (valikon komennolla Kysely --> Yhteys --> Katkaise yhteys) ja yhdistää toiseen palvelimeen avaamatta toista editori-ikkunaa. Jos haluat valita offline-muokkaustilan, käytä Yhdistä palvelimeen -valintaikkunaa, joka avautuu, kun käynnistät editorin. tietty tyyppi pyyntöjä, napsauta Peruuta-painiketta.

Voit käyttää Kyselyeditoria seuraavien tehtävien suorittamiseen:

    Transact-SQL-lauseiden luominen ja suorittaminen;

    luotujen Transact-SQL-kielen lausekkeiden tallentaminen tiedostoon;

    yleisten kyselyjen toteutussuunnitelmien luominen ja analysointi;

    havainnollistaa graafisesti valitun kyselyn suoritussuunnitelmaa.

Kyselyeditori sisältää sisäänrakennetun tekstieditori ja työkalurivi, jossa on painikkeita eri toimintoja varten. Kyselyeditorin pääikkuna on jaettu vaakasuunnassa kyselypaneeliin (ylhäällä) ja tulospaneeliin (alareunassa). Suoritettavat Transact-SQL-käskyt (eli kyselyt) syötetään yläruutuun, ja järjestelmän näiden kyselyjen käsittelyn tulokset näytetään alaruudussa. Alla olevassa kuvassa on esimerkki kyselyn syöttämisestä kyselyeditoriin ja kyselyn suorittamisen tulokset:

Ensimmäinen USE-pyyntölause määrittää SampleDb-tietokannan käyttämisen nykyisenä tietokantana. Toinen käsky, SELECT, hakee kaikki rivit Työntekijä-taulukosta. Voit suorittaa tämän kyselyn ja näyttää tulokset napsauttamalla kyselyeditorin työkalupalkissa Suorita-painiketta tai painamalla F5-näppäintä.

Voit avata useita Kyselyeditori-ikkunoita, esim. muodostaa useita yhteyksiä yhteen tai useampaan tietokantamoottorin esiintymään. Uusi yhteys luodaan napsauttamalla Uusi kysely -painiketta SQL Server Management Studion työkalupalkissa.

Kyselyeditori-ikkunan alareunassa oleva tilapalkki näyttää seuraavat kyselylauseiden suorittamiseen liittyvät tiedot:

    nykyisen toiminnon tila (esimerkiksi "Pyyntö suoritettu onnistuneesti");

    tietokantapalvelimen nimi;

    nykyinen käyttäjänimi ja palvelimen prosessitunnus;

    nykyinen tietokannan nimi;

    viimeisen pyynnön suorittamiseen käytetty aika;

    löydettyjen rivien määrä.

Yksi SQL Server Management Studion tärkeimmistä eduista on sen helppokäyttöisyys, joka koskee myös kyselyeditoria. Kyselyeditori tarjoaa monia ominaisuuksia, jotka helpottavat Transact-SQL-lauseiden koodausta. Se käyttää erityisesti syntaksin korostusta parantaakseen Transact-SQL-lauseiden luettavuutta. Kaikki varatut sanat näkyvät sinisellä, muuttujat mustalla, merkkijonot punaisella ja kommentit vihreällä.

Lisäksi kyselyeditori on varustettu tilannekohtaisella ohjeella nimeltä Dynaaminen ohje, jonka kautta saat tietoa tietystä ohjeesta. Jos et tiedä käskyn syntaksia, valitse se editorissa ja paina sitten F1-näppäintä. Voit myös korostaa erilaisten Transact-SQL-käskyjen parametreja saadaksesi apua Books Onlinesta.

SQL Management Studio tukee SQL Intellisenseä, joka on eräänlainen automaattinen täydennystyökalu. Toisin sanoen tämä moduuli ehdottaa todennäköisimpää osittain syötettyjen Transact-SQL-käskyelementtien valmistumista.

Objektien tutkija voi myös auttaa sinua muokkaamaan kyselyitä. Jos esimerkiksi haluat tietää kuinka luoda CREATE TABLE -käsky Työntekijä-taulukolle, napsauta taulukkoa hiiren kakkospainikkeella Object Explorerissa ja tuloksena kontekstivalikko valitse Script Table As --> CREATE to --> New Query Editor Window. Tällä tavalla luodun CREATE TABLE -käskyn sisältävä Query Editor -ikkuna näkyy alla olevassa kuvassa. Tämä ominaisuus koskee myös muita objekteja, kuten tallennettuja proseduureja ja toimintoja.

Object Browser on erittäin hyödyllinen tietyn kyselyn suoritussuunnitelman graafisessa näyttämisessä. Kyselyn suoritussuunnitelma on kyselyn optimoijan valitsema suoritusvaihtoehto useiden joukosta mahdollisia vaihtoehtoja tietyn pyynnön täyttäminen. Kirjoita tarvittava kysely editorin yläpaneeliin, valitse komentosarja valikosta Kysely --> Näytä arvioitu suoritussuunnitelma (Kysely --> Näytä arvioitu suoritussuunnitelma) ja tämän kyselyn suoritussuunnitelma näytetään muokkausikkunan alapaneeli.

Solution Explorer

Kyselyn muokkaus SQL Server Management Studiossa perustuu ratkaisumenetelmään. Jos luot tyhjän kyselyn Uusi kysely -painikkeella, se perustuu tyhjään ratkaisuun. Voit nähdä tämän suorittamalla komentosarjan Näytä --> Ratkaisuhallinta -valikosta heti tyhjän kyselyn avaamisen jälkeen.

Päätös voi liittyä yhteen, yhteen tai useampaan hankkeeseen. Tyhjä ratkaisu, joka ei liity mihinkään projektiin. Jos haluat liittää projektin ratkaisuun, sulje tyhjä ratkaisu, Solution Explorer ja Query Editor ja luo uusi projekti suorittamalla Tiedosto --> Uusi --> Projekti. Valitse avautuvan Uusi projekti -ikkunan keskimmäisestä ruudusta SQL Server Scripts -vaihtoehto. Projekti on tapa järjestää tiedostoja tietyssä paikassa. Voit antaa projektille nimen ja valita sijainnin sen sijainnille levyllä. Kun luot uuden projektin, uusi ratkaisu käynnistetään automaattisesti. Projektiin voi lisätä olemassa oleva ratkaisu käyttämällä Solution Exploreria.

Solution Explorer näyttää jokaisen luodun projektin Yhteydet, Kyselyt ja Muut kansiot. Jos haluat avata uuden Kyselyeditori-ikkunan tietylle projektille, napsauta hiiren kakkospainikkeella sen Kyselyt-kansiota ja valitse pikavalikosta Uusi kysely.

SQL Serverin virheenkorjaus

SQL Serverissä, alkaen SQL Server 2008:sta, on sisäänrakennettu koodivirheenkorjaus. Aloita virheenkorjausistunto valitsemalla SQL Server Management Studion päävalikosta Debug --> Start Debugging. Tarkastellaan, kuinka debuggeri toimii esimerkin avulla, jossa käytetään joukko komentoja. Erä on SQL-käskyjen ja prosessilaajennusten looginen sarja, joka lähetetään tietokantakoneeseen suorittamaan kaikki sen sisältämät käskyt.

Alla oleva kuva näyttää paketin, joka laskee projektissa p1 työskentelevien työntekijöiden määrän. Jos tämä numero on 4 tai enemmän, näyttöön tulee vastaava viesti. Muussa tapauksessa työntekijöiden etu- ja sukunimet näytetään.

Jos haluat lopettaa paketin suorittamisen tietyllä käskyllä, voit asettaa keskeytyspisteitä kuvan osoittamalla tavalla. Voit tehdä tämän napsauttamalla sen rivin vasemmalla puolella, jolla haluat pysähtyä. Kun virheenkorjaus alkaa, suoritus pysähtyy ensimmäiselle koodiriville, joka on merkitty keltaisella nuolella. Jatka suorittamista ja virheenkorjausta valitsemalla Debug --> Continue -valikosta komento. Eräkäskyt jatkuvat ensimmäiseen keskeytyskohtaan asti, ja keltainen nuoli pysähtyy siihen kohtaan.

Vianetsintäprosessiin liittyvät tiedot näkyvät kahdessa paneelissa Kyselyeditori-ikkunan alaosassa. Tietoa erilaisia ​​tyyppejä Vianetsintätiedot on ryhmitelty näihin paneeleihin useille välilehdille. Vasemmassa ruudussa on Autos-välilehti, Paikalliset-välilehti ja enintään viisi Watch-välilehteä. Oikeassa ruudussa on Puhelupino-, Säikeet-, Katkaisupisteet-, Komento-ikkuna-, Välitön ikkuna- ja Tulostus-välilehdet. Paikalliset-välilehti näyttää muuttujan arvot, Puhelupino-välilehti näyttää puhelupinon arvot ja Breakpoints-välilehti näyttää keskeytyspisteen tiedot.

Voit lopettaa virheenkorjauksen suorittamalla komentosarjan päävalikosta Debug --> Stop Debugging tai napsauttamalla sinistä painiketta vianetsintätyökalupalkissa.

SQL Server 2012 lisää useita uusia ominaisuuksia SQL Server Management Studion sisäiseen debuggeriin. Nyt voit suorittaa useita seuraavista toiminnoista siinä:

    Määritä keskeytyskohdan ehto. Katkopisteen kunto on SQL-lauseke, jonka arvioitu arvo määrittää, pysähtyykö koodin suoritus tiettyyn kohtaan vai ei. Voit määrittää keskeytyskohdan ehdon napsauttamalla punaista keskeytyskohdan kuvaketta hiiren kakkospainikkeella ja valitsemalla kontekstivalikosta Ehto. Breakpoint Condition -valintaikkuna avautuu, jolloin voit syöttää vaaditun Boolen lausekkeen. Lisäksi, jos sinun on keskeytettävä suoritus, jos lauseke on tosi, sinun tulee asettaa On True -kytkin. Jos suoritus on keskeytettävä, jos lauseke on muuttunut, sinun on asetettava Kun muutettu -kytkin.

    Määritä osumien määrä keskeytyskohdassa. Osumamäärä on ehto suorituksen keskeyttämiselle tietyssä kohdassa sen perusteella, kuinka monta kertaa keskeytyskohtaan osui suorituksen aikana. Kun määritetty määrä läpäisyjä ja mikä tahansa muu tietylle keskeytyspisteelle määritetty ehto saavutetaan, debuggeri suorittaa määritetyn toiminnon. Osumien määrään perustuva suorituksen keskeytysehto voi olla jokin seuraavista:

    1. ehdoton (oletustoiminto) (Tauko aina);

      jos osumien määrä on yhtä suuri kuin määritetty arvo (Break kun hänen määrä on yhtä suuri kuin määritetty arvo);

      jos osumien määrä on määritetyn arvon kerrannainen (katko, kun osumamäärä on tietyn arvon kerrannainen);

      Katko, kun hänen luku on suurempi tai yhtä suuri kuin määritetty arvo.

    Jos haluat asettaa osumien määrän virheenkorjauksen aikana, napsauta hiiren kakkospainikkeella tarvittavaa keskeytyskohdan kuvaketta Breakpoints-välilehdessä, valitse pikavalikosta Osumamäärä ja valitse sitten jokin ehdoista Breakpoint Hit Count -valintaikkunassa, joka avautuu edellisestä luettelosta. Jos asetukset edellyttävät arvoa, kirjoita se tekstiruutuun avattavan ehdot-luettelon oikealla puolella. Tallenna määritetyt ehdot napsauttamalla OK.

    Määritä keskeytyspistesuodatin. Katkopistesuodatin rajoittaa keskeytyspisteen toiminnan vain tiettyihin tietokoneisiin, prosesseihin tai säikeisiin. Voit määrittää keskeytyspistesuodattimen napsauttamalla hiiren kakkospainikkeella haluamaasi keskeytyskohtaa ja valitsemalla kontekstivalikosta Suodatin. Määritä sitten avautuvassa Breakpoint Filters -valintaikkunassa resurssit, joihin haluat rajoittaa tämän keskeytyskohdan suorittamisen. Tallenna määritetyt ehdot napsauttamalla OK.

    Määritä toiminto keskeytyskohdassa. Kun osuma -ehto määrittää toiminnon, joka suoritetaan, kun erän suoritus saavuttaa tietyn keskeytyskohdan. Oletuksena, kun sekä osumamäärän ehto että pysäytysehto täyttyvät, suoritus keskeytetään. Vaihtoehtoisesti voidaan näyttää ennalta määritetty viesti.

    Jos haluat määrittää, mitä tehdä, kun keskeytyskohta osuu, napsauta hiiren kakkospainikkeella keskeytyskohdan punaista kuvaketta ja valitse pikavalikosta Kun osuma. Valitse avautuvasta Kun katkeamispiste osuu -valintaikkunassa toiminto, jonka haluat suorittaa. Tallenna määritetyt ehdot napsauttamalla OK.

    Käytä Quick Watch -ikkunaa. Voit tarkastella Transact-SQL-lausekkeen arvoa QuickWatch-ikkunassa ja tallentaa lausekkeen sitten Watch-ikkunaan. Voit avata Quick Watch -ikkunan valitsemalla Debug-valikosta Quick Watch. Tämän ikkunan lauseke voidaan joko valita Lauseke-pudotusvalikosta tai kirjoittaa tähän kenttään.

    Käytä Quick Info -työkaluvihjettä. Kun viet hiiren osoittimen kooditunnuksen päälle, Quick Info ( Lyhyt tiedot) näyttää mainoksensa ponnahdusikkunassa.




Ylös