Sql:n esittely

Valmis

SQL on lyhenne sanoista Structured Query Language (Rakenteinen kyselykieli). SQL:ää käytetään tiedonvälitykseen relaatiotietokannan kanssa. Se on relaatiotietokannan hallintajärjestelmien vakiokieli. SQL-lausekkeita käytetään esimerkiksi tietokannan tietojen päivittämiseen tai tietojen noutamiseen tietokannasta. Sql:ää käyttävät yleisiä relaatiotietokannan hallintajärjestelmiä ovat esimerkiksi Microsoft SQL Server, MySQL, PostgreSQL, MariaDB ja Oracle.

Huomautus

SQL standardoi alun perin American National Standards Instituten (ANSI) vuonna 1986 ja International Organization for Standardizationin (ISO) vuonna 1987. Sen jälkeen vakiota on laajennettu useita kertoja, koska relaatiotietokannan toimittajat ovat lisänneet uusia ominaisuuksia järjestelmiinsä. Lisäksi useimmat tietokantatoimittajat sisältävät omia omia omia laajennuksiaan, jotka eivät ole osa vakioa, mikä on johtanut erilaisiin SQL-murreisiin.

Tässä osiossa tutustut SQL:ään. Näet, miten tietoja kyselevät ja ylläpidetään tietokannassa, sekä näet käytettävissä olevat eri murteet.

SQL-murteiden ymmärtäminen

Voit käyttää SQL-lausekkeita, kuten SELECT, INSERT, UPDATE, DELETE, CREATE ja DROP , lähes kaiken, mitä tietokantaan tarvitaan. Vaikka nämä SQL-lausekkeet ovat osa SQL-standardia, monilla tietokantojen hallintajärjestelmillä on myös omat omat omistusoikeudellisia laajennuksia, joiden avulla voidaan käsitellä kyseisen tietokannan hallintajärjestelmän erityispiirteet. Nämä laajennukset tarjoavat toimintoja, joita SQL-standardi ei kata, ja ne sisältävät esimerkiksi suojauksen hallinnan ja ohjelmoitavuuden. Esimerkiksi Microsoft SQL Server käyttää Transact-SQL:ää. Tämä toteutus sisältää omistusoikeudellisen laajennuksen tallennettujen toimintosarjojen ja käynnistimien kirjoittamiseen (tietokantaan tallennettava sovelluskoodi) sekä käyttäjätilien hallinnan. PostgreSQL:ssä ja MySQL:ssä on myös omia versioita näistä ominaisuuksista.

Sql:n suosittuja murteita ovat muun muassa seuraavat:

  • Transact-SQL (T-SQL). Tätä SQL-versiota käyttävät Microsoft SQL Server ja Azure SQL -tietokanta.

  • pgSQL. Tämä on murre, jonka laajennukset ovat käytössä PostgreSQL:ssä.

  • PL/SQL. Tämä on Oraclen käyttämä murre. PL/SQL on lyhenne sanoista Procedural Language/SQL.

Käyttäjien, jotka aikovat työskennellä erityisesti yksittäisen tietokantajärjestelmän kanssa, tulee oppia heidän ensisijaisen SQL-murteensa ja -ympäristönsä monimutkaisuuksista.

Sql-lausetyyppien ymmärtäminen

SQL-lausekkeet on ryhmitelty kahteen loogiseen pääryhmään, ja ne ovat:

  • Tietojen käsittelyn kieli (DML)
  • Tietojen määrittelykieli (DDL)

DML-lausekkeiden käyttäminen

DML-lausekkeiden avulla voit käsitellä relaatiotaulukon rivejä. Näiden lausekkeiden avulla voit hakea (kysely) tietoja, lisätä uusia rivejä tai muokata olemassa olevia rivejä. Voit myös poistaa rivejä, jos et tarvitse niitä enää.

DML-päälausekkeet ovat seuraavat neljä:

Lausunto Kuvaus
SELECT-lauseke Valitse/lue rivejä taulukosta
INSERT Uusien rivien lisääminen taulukkoon
UPDATE Aiemmin luotujen rivien muokkaaminen tai päivittäminen
POISTAA Poista taulukon olemassa olevat rivit

LISÄÄ-lausekkeen perusmuoto lisää yhden rivin kerrallaan. Oletuksena SELECT-, UPDATE- ja DELETE-lausekkeita käytetään taulukon jokaisella rivillä. Käytät yleensä WHERE-lausetta näillä lausekkeilla määrittääksesi ehtoja; vain näitä ehtoja vastaavat rivit valitaan, päivitetään tai poistetaan.

Varoitus

SQL ei varmasti tarjoa näitä kehotteita, joten ole varovainen, kun käytät DELETE- tai UPDATE-funktiota ilman WHERE-lausetta, koska voit menettää tai muokata paljon tietoja.

Seuraava koodi on esimerkki SQL-lausekkeesta, joka valitsee kaikki rivit, jotka vastaavat yhtä suodatinta taulukosta. FROM-lause määrittää käytettävän taulukon:

SELECT *
FROM MyTable
WHERE MyColumn2 = 'contoso'

Jos kysely palauttaa useita rivejä, ne eivät välttämättä näy missään tietyssä järjestyksessä. Jos haluat lajitella tiedot, voit lisätä ORDER BY - lauseen. Tiedot lajitellaan määritetyn sarakkeen mukaan:

SELECT *
FROM MyTable
ORDER BY MyColumn1

Voit myös suorittaa SELECT-lausekkeita, jotka noutavat tietoja useista taulukoista , käyttämällä JOIN-lausetta . Liitokset ilmaisevat, miten yhden taulukon rivit yhdistetään toisen taulukon riveihin palautettavan tiedon määrittämiseksi. Liitosehto määrittää, miten kaksi taulukkoa liittyvät kyselyyn:

  • Liitokseen käytettävän kunkin taulukon sarakkeen määrittäminen. Tyypillinen liitosehto määrittää viiteavaimen yhdestä taulukosta ja siihen liittyvän perusavaimen toisesta taulukosta.
  • Määritetään looginen operaattori (esimerkiksi = tai <>,), jota käytetään sarakkeiden arvojen vertailuun.

Seuraavassa kyselyssä on esimerkki, joka yhdistää kaksi taulukkoa, joiden nimet ovat Inventory ja CustomerOrder. Se noutaa kaikki rivit, joissa Varasto-taulukonID-sarakkeen arvo vastaa CustomerOrder-taulukonInventoryID-sarakkeen arvoa.

SELECT *
FROM Inventory
JOIN CustomerOrder
ON Inventory.ID = CustomerOrder.InventoryID

SQL tarjoaa koostefunktioita. Koostefunktio laskee yksittäisen tuloksen rivijoukolle tai koko taulukolle. Alla olevassa esimerkissä pienin arvo löytyy MyColumn1-sarakkeesta kaikista MyTable-taulukon riveistä:

SELECT MIN(MyColumn1)
FROM MyTable

Käytettävissä on useita muita koostefunktioita, kuten MAX (joka palauttaa sarakkeen suurimman arvon), AVG (joka palauttaa keskiarvon, mutta vain jos sarake sisältää numeerisia tietoja) ja SUM (joka palauttaa sarakkeen kaikkien arvojen summan, mutta vain, jos sarake on numeerinen).

Seuraavassa esimerkissä näytetään, miten voit päivittää olemassa olevan rivin SQL:n avulla. Se muokkaa toisen sarakkeen arvoa, mutta vain riveillä, joiden arvo on 3 MyColumn1-sarakkeessa. Kaikki muut rivit pysyvät muuttumattomina:

UPDATE MyTable
SET MyColumn2 = 'contoso'
WHERE MyColumn1 = 3

Varoitus

Jos poistat WHERE-lauseen , UPDATE-lauseke muokkaa taulukon jokaista riviä.

Poista rivejä DELETE-lausekkeen avulla. Määrität taulukon, josta poistetaan, ja WHERE-lauseen , joka tunnistaa poistettavat rivit:

DELETE FROM MyTable
WHERE MyColumn2 = 'contoso'

Varoitus

Jos poistat WHERE-lauseen , DELETE-lauseke poistaa kaikki rivit taulukosta.

LISÄÄ-lauseke on hieman eri muotoa. Määrität INTO-lauseeseen taulukon ja sarakkeet sekä näihin sarakkeisiin tallennettavan arvojen luettelon. Standard SQL tukee vain yhden rivin lisäämistä kerrallaan seuraavassa esimerkissä esitetyllä tavalla. Joidenkin murteiden avulla voit määrittää useita VALUES-lauseita useiden rivien lisäämiseksi kerralla:

INSERT INTO MyTable(MyColumn1, MyColumn2, MyColumn3)
VALUES (99, 'contoso', 'hello')

DDL-lausekkeiden käyttäminen

DDL-lausekkeiden avulla voit luoda, muokata ja poistaa taulukoita ja muita tietokannan objekteja (taulukko, tallennetut toimintosarjat, näkymät ja niin edelleen).

Yleisimmät DDL-lausekkeet ovat:

Lausunto Kuvaus
LUODA Luo tietokantaan uusi objekti, kuten taulukko tai näkymä.
ALTER Muokkaa objektin rakennetta. Esimerkiksi taulukon muuttaminen uuden sarakkeen lisäämiseksi.
PISARA Poista objekti tietokannasta.
NIMETÄ UUDELLEEN Nimeä olemassa oleva objekti uudelleen.

Varoitus

DROP-lauseke on hyvin tehokas. Kun pudotat taulukon, kaikki kyseisen taulukon rivit menetetään. Jos sinulla ei ole varmuuskopiota, et voi noutaa näitä tietoja.

Seuraava esimerkki luo uuden tietokantataulukon. Sulkeiden väliset kohteet määrittävät kunkin sarakkeen tiedot, mukaan lukien nimen, tietotyypin, sen, pitääkö sarakkeen aina sisältää arvo (EI TYHJÄARVO), ja käytetäänkö sarakkeen tietoja rivin yksilöimiseen (PRIMARY KEY). Jokaisella taulukolla on oltava perusavain, vaikka SQL ei pakota tätä sääntöä.

Huomautus

SARAkkeita, jotka on merkitty NOT NULL - arvoksi , kutsutaan pakollisiksi sarakkeiksi. Jos poistat NOT NULL - lauseen, voit luoda rivejä, jotka eivät sisällä arvoa sarakkeessa. Tyhjällä sarakkeella rivillä sanotaan olevan NULL-arvo .

CREATE TABLE MyTable
(
    MyColumn1 INT NOT NULL PRIMARY KEY,
    MyColumn2 VARCHAR(50) NOT NULL,
    MyColumn3 VARCHAR(10) NULL
);

Taulukon sarakkeiden tietotyypit vaihtelevat tietokannan hallintajärjestelmien välillä. Useimmat tietokannan hallintajärjestelmät tukevat kuitenkin numeerisia tyyppejä, kuten INT (kokonaisluku tai kokonaisluku), ja merkkijonotyyppejä, kuten VARCHAR (VARCHAR tarkoittaa vaihtelevan pituisia merkkitietoja). Jos haluat lisätietoja, katso valitun tietokannan hallintajärjestelmän dokumentaatio.