Sql:n esittely
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.