Tee kauppaa SQL:llä

Kokeneet kirjoittajat eivät ole vielä tarkistaneet sivun nykyistä versiota, ja se voi poiketa merkittävästi 24. joulukuuta 2021 tarkistetusta versiosta . tarkastukset vaativat 2 muokkausta .

Transact-SQL ( T-SQL ) on Microsoftin ( Microsoft SQL Serverille ) ja Sybasen ( Sybase ASE :lle) luoma SQL -kielen proseduurilaajennus .

SQL:ää on laajennettu lisäominaisuuksilla, kuten:

Transact-SQL-kieli on avain MS SQL Serverin käyttöön. Kaikki sovellukset, jotka ovat vuorovaikutuksessa MS SQL Serverin esiintymän kanssa, lähettävät Transact-SQL-käskyjä palvelimelle riippumatta niiden toteutuksesta ja käyttöliittymästä.

Syntaksielementit

Käsikirjoitusohjeet

Komentosarjadirektiivit ovat erityisiä komentoja, joita käytetään vain MS SQL:ssä. Nämä komennot auttavat palvelinta määrittämään komentosarjan ja tapahtumien käytön säännöt. Tyypilliset edustajat: GO - ilmoittaa SQL Server -ohjelmille Transact-SQL-käskyjen erän päättymisestä, EXEC (tai EXECUTE) - suorittaa toimenpiteen tai skalaarifunktion.

Kommentit

Kommentteja käytetään komentosarjalohkojen selityksien luomiseen sekä komentojen väliaikaiseen poistamiseen käytöstä komentosarjan virheenkorjauksen aikana. Kommentit voivat olla joko upotettuja tai estäviä kommentteja:

-- - rivin kommentti sulkee pois vain yhden rivin, jota edeltää kaksi miinusta.

/* */ — lohkokommentti sulkee pois suorituksen koko määrättyyn rakenteeseen sisältyvän komentolohkon. Sallii sisäkkäiset kommentit.

Tietotyypit

Ohjelmointikielien tapaan SQL:ssä on erilaisia ​​tietotyyppejä muuttujien tallentamiseen:

Merkintä. Venäläisten merkkien (ei ASCII-koodausten) käyttämiseen käytetään tietotyyppejä, joissa on etuliite "n" (nchar, nvarchar, ntext), jotka koodaavat merkit kahdessa tavussa. Toisin sanoen Unicoden kanssa työskentelyyn käytetään tietotyyppejä, joissa on "n" (sanasta national). Unicode -merkkijonovakiot kirjoitetaan myös "n":llä alussa.

Merkintä. Vaihtuvapituisille tiedoille käytetään tietotyyppejä, joissa on etuliite "var". Tietotyypeillä, joissa ei ole etuliitettä "var", on kiinteä muistialueen pituus, jonka käyttämätön osa täytetään välilyönneillä tai nollilla.

Tunnisteet

Tunnisteet ovat erikoismerkkejä, joita käytetään muuttujien kanssa tunnistamaan niiden tyyppi tai ryhmittelemään sanoja muuttujaksi. Tunnistetyypit:

Muuttujat

Muuttujia käytetään skripteissä ja tilapäisten tietojen tallentamiseen. Muuttujan kanssa työskentelyä varten se on deklaroitava ja ilmoitus on tehtävä tapahtuma- ja käskypaketissa, jossa tätä muuttujaa käyttävä komento suoritetaan. Toisin sanoen tapahtuman suorittamisen jälkeen sekä GO-komennon jälkeen muuttuja tuhoutuu.

Muuttujan määrittely suoritetaan DECLARE-komennolla, muuttujan arvo asetetaan joko SET- tai SELECT-komennolla:

KÄYTÄ Testitietokantaa -- Muuttujien ilmoittaminen ILMOITTAA @EmpID int , @EmpName varchar ( 40 ) -- Aseta @EmpID- muuttujan arvo SET @EmpID = 1 -- Aseta @EmpName- muuttujan arvo SELECT @EmpName = Käyttäjänimi FROM Käyttäjistä WHERE UserID = @EmpID -- @ EmpName- muuttujan tulostaminen kyselyn tulokseen SELECT @EmpName AS [ työntekijän nimi ] MENNÄ

Merkintä. Tässä esimerkissä käytetään sanojen ryhmittelyä tunnukseksi - [Työntekijän nimi] -rakennetta käsitellään yhtenä merkkinä, koska sanat on suljettu hakasulkeisiin.

Operaattorit

Operaattorit ovat erikoiskomentoja, jotka on suunniteltu suorittamaan yksinkertaisia ​​toimintoja muuttujille:

  • Aritmeettiset operaattorit: "*" - kerto, "/" - jako, "%" - jakojäännös, "+" - yhteenlasku, "-" - vähennys, "()" - sulkumerkit.
  • Vertailuoperaattorit: "=" – yhtä suuri kuin, ">" - suurempi kuin, "<" - pienempi kuin, ">=" - suurempi tai yhtä suuri, " <=" pienempi tai yhtä suuri, "<>" ("!=") – ei yhtä suuri, välillä (">=", "<=" sijaan).
  • Yhteysoperaattorit: "+" - merkkijonojen yhteys (ketjutus).
  • Loogiset operaattorit: "AND" - ja "OR" - tai "NOT" - ei.
  • Aseta operaattorit: "IN".

Järjestelmätoiminnot

Transact-SQL-spesifikaatio laajentaa huomattavasti SQL:n vakioominaisuuksia sisäänrakennetuilla funktioilla:

  • Aggregaattifunktiot ovat toimintoja, jotka toimivat arvokokoelmilla ja tuottavat yhden arvon. Tyypillisiä edustajia: AVG - sarakkeen keskiarvo, SUM - sarakkeen summa, MAX - sarakkeen enimmäisarvo, MIN - sarakkeen vähimmäisarvo, COUNT - sarakkeen elementtien lukumäärä.
  • Skalaarifunktiot ovat funktioita, jotka palauttavat yhden arvon, toimivat skalaaritiedolla tai ilman syöttöä ollenkaan. Tyypilliset edustajat: DATEDIFF - päivämäärän ero, ABS - numeromoduuli, DB_NAME - tietokannan nimi, USER_NAME - nykyinen käyttäjänimi, LEFT - osa merkkijonoa vasemmalla.
  • Osoitinfunktiot ovat toimintoja, joita käytetään viittauksina muihin tietoihin. Tyypillisiä edustajia: OPENXML - osoitin tietolähteeseen XML-rakenteen muodossa, OPENQUERY - osoitin tietolähteeseen toisen kyselyn muodossa.

Merkintä. Täydellinen luettelo toiminnoista löytyy SQL Server -ohjeesta.

Merkintä. Skalaarifunktiot sisältävät myös globaaleja muuttujia, joita kutsuu kaksoiskoira "@@" komentosarjatekstissä.

Esimerkki:

KÄYTÄ Testitietokantaa -- Aggregaattifunktion käyttäminen keskipalkan laskemiseen _ _ _ SELECT AVG ( BaseSalary ) AS [ Keskipalkka ] Asemista _ MENNÄ -- Skalaarifunktion käyttäminen tietokannan nimen saamiseksi _ _ _ SELECT DB_NAME () AS [ Tietokannan nimi ] MENNÄ -- Nykyisen käyttäjän nimen saaminen skalaarifunktiolla _ _ _ ILMOITTAA @Käyttäjäni merkki ( 30 ) SET @MyUser = USER_NAME () SELECT 'Nykyisen käyttäjän tietokannan käyttäjätunnus on: ' + @MyUser MENNÄ -- Osoitintoiminnon käyttäminen tietojen hakemiseen toiselta palvelimelta _ _ _ _ SELECT * FROM OPENQUERY ( OracleSvr , 'SELECT name, id FROM owner.titles' ) MENNÄ

Lausekkeet

Lauseke on symbolien ja operaattoreiden yhdistelmä, joka ottaa syötteenä skalaariarvon ja palauttaa eri arvon tai suorittaa jonkin toiminnon tulosteena. Transact-SQL:ssä on kolmenlaisia ​​lausekkeita: DDL, DCL ja DML.

  • DDL (Data Definition Language) - käytetään objektien luomiseen tietokantaan. Tämän luokan tärkeimmät edustajat ovat: CREATE - objektien luominen, ALTER - objektien vaihtaminen, DROP - objektien poistaminen.
  • DCL (Data Control Language) - suunniteltu antamaan oikeudet tietokantaobjekteille. Tämän luokan pääedustajat ovat: GRANT - lupa esineelle, DENY - objektin kielto, REVOKE - objektin lupien ja kieltojen peruuttaminen.
  • DML (Data Manipulation Language) - käytetään tietojen kyselyyn ja muokkaamiseen. Tämän luokan tärkeimmät edustajat: SELECT - tietojen valinta, INSERT - tietojen lisäys, UPDATE - tietojen muokkaaminen, DELETE - tietojen poistaminen.

Esimerkki:

KÄYTÄ Testitietokantaa -- DDL:n käyttö CREATE TABLE TempUsers ( UserID int , UserName nvarchar ( 40 ), OsastoID int ) MENNÄ -- DCL:n käyttö MYÖNTÄ VALINTA käyttäjille julkisesti _ _ MENNÄ -- DML:n käyttö SELECT UserID , UserName + ' ' + UserSurname AS [ Käyttäjän koko nimi ] Käyttäjiltä MENNÄ -- DDL:n käyttö DROP TABLE TempUsers MENNÄ

Script Execution Control

Transact-SQL:ssä on erityisiä komentoja, joiden avulla voit hallita komentosarjan suorittamisen kulkua keskeyttämällä sen tai ohjaamalla sen oikeaan haaraan.

  • Ryhmittelylohko on rakenne, joka yhdistää lausekkeiden luettelon yhdeksi loogiseksi lohkoksi (BEGIN ... END).
  • Ehtolohko on rakenne, joka tarkistaa, täyttyykö tietty ehto (IF ... MUUTA).
  • Cycle block - rakenne, joka järjestää loogisen lohkon (WHILE ... BREAK ... CONTINUE) suorituksen toiston.
  • Jump on komento, joka suorittaa komentosarjan suoritussäikeen siirtymisen määritettyyn tunnisteeseen (GOTO).
  • Viive on komento, joka viivästyttää komentosarjan suorittamista (WAITFOR).
  • Nosta virhe on komento, joka luo komentosarjan suoritusvirheen (RAISERROR).

Katso myös

  • PL/SQL

Muistiinpanot

  1. Tietotyypit T-SQL:ssä . info-comp.ru. Haettu 12. lokakuuta 2018. Arkistoitu alkuperäisestä 13. lokakuuta 2018.

Kirjallisuus

  • Mike Ganderloy, Joseph Jorden, David Chantz. Osa II. Transact-SQL-ohjelmointikieli // Microsoft SQL Server 2005:n hallitseminen = Microsoft SQL Server 2005:n hallitseminen. - M .: "Dialektiikka" , 2007. - S. 139-280. — ISBN 0-7821-4380-6 .
  • Robert Vieira. Luku 3. T-SQL:n perusteet // MS SQL Server 2005 -tietokantaohjelmointi ammattilaisille = Professional Microsoft SQL Server 2005 -ohjelmointi. - M . : "Dialektiikka" , 2007. - S. 86-129. — 1072 s. - ISBN 978-5-8459-1329-6 .
  • Vitali Bochkarev. Just About Transact-SQL (25. tammikuuta 2010). Arkistoitu alkuperäisestä 14. helmikuuta 2012.
  • Microsoft yhtiö. Kurssi MS-2071 "Kyselyjen luominen Microsoft SQL Server 2000:ssa Transact-SQL:n avulla"  (suomi) (13.10.2004). Arkistoitu alkuperäisestä 14. helmikuuta 2012.