Oppaat

Mikä on SQL? Tietokantakieli selitettynä yksinkertaisesti

SQL (Structured Query Language, lausutaan ”S-Q-L” tai ”sequel”) on yleinen kieli relaatiotietokantojen käsittelyyn. Ne tallentavat datan riveistä ja sarakkeista koostuviin tauluihin, kuten Postgres, MySQL, SQLite ja SQL Server. Kysyt SQL:llä datastasi kysymyksiä (”ketkä asiakkaat varasivat tässä kuussa?”) ja lisäät, muutat tai poistat tietueita. Se on ollut käytössä 1970-luvulta lähtien, se on kansainvälinen standardi ja se pyörittää suuren osan maailman sovelluksista.

Miksi SQL on tärkeä, kun rakennat tekoälyllä

Kun pyydät tekoälysovellusrakentajaa ”tallentamaan tilaukset” tai ”näyttämään listan tulevista varauksista”, jonkin täytyy puhua tietokannan kanssa. Useimmissa sovelluksissa se on SQL, joko kirjoitettuna suoraan tai ORM:n generoimana.

Et tarvitse kirjoittaa SQL:ää itse, mutta pieni ymmärrys kannattaa:

  • Voit tarkistaa omaa dataasi. Lyhyt kysely vastaa kysymykseen ”montako rekisteröitymistä tällä viikolla?” nopeammin kuin uuden näkymän rakentaminen.
  • Voit pyytää parempia raportteja. ”Ryhmittele liikevaihto kuukausittain ja palveluittain” on SQL-ajatus. Sen tunteminen tekee pyynnöstäsi selkeämmän.
  • Voit tunnistaa vaaralliset muutokset. DELETE tai UPDATE ilman WHERE-lauseketta vaikuttaa jokaiseen riviin. Se kannattaa pysäyttää ennen kuin se ajetaan.
  • Datasi ei ole lukittu. SQL on yhteinen standardi, joten SQL-tietokannan dataa voivat siirtää ja lukea monet työkalut.

Arkinen vertaus

Ajattele erittäin hyvin järjestettyä kirjastoa, jonka kirjastonhoitaja puhuu vain tarkkaa ja yksinkertaista kieltä.

Et kävele hyllyjen välissä itse. Annat kirjastonhoitajalle kortin: ”Hae kaikki tämän kirjailijan kirjat, jotka on julkaistu vuoden 2010 jälkeen, uusimmat ensin.” Kirjastonhoitaja tuntee rakennuksen perusteellisesti ja palaa juuri noilla kirjoilla siinä järjestyksessä.

SQL on kieli kortissa. Sanot, mitä haluat, et miten se löydetään. Tietokanta selvittää nopeimman reitin itse.

Miten SQL toimii: taulut, rivit ja sarakkeet

Relaatiotietokanta säilyttää datan tauluissa. Jokainen taulu sisältää yhdentyyppisiä asioita, jokainen rivi on yksi tietue ja jokainen sarake on yksi tiedon osa:

customers (asiakkaat)

idnameemailcity
1Lena Ortizlena@example.comLisbon
2Sam Patelsam@example.comLeeds

orders (tilaukset)

idcustomer_idtotalplaced_at
101142.002026-09-20
102218.502026-09-22
103125.002026-09-27

Sarake customer_id yhdistää jokaisen tilauksen asiakkaaseen. Tuo yhteys tekee tietokannasta ”relaatiollisen”.

Työstetty esimerkki: todellisiin kysymyksiin vastaaminen

1. Datan lukeminen: ”näytä kaikki Lissabonin asiakkaat”:

SELECT name, email
FROM customers
WHERE city = 'Lisbon';

2. Järjestäminen ja rajaus: ”viisi uusinta tilausta”:

SELECT id, total, placed_at
FROM orders
ORDER BY placed_at DESC
LIMIT 5;

3. Taulujen yhdistäminen: ”jokainen tilaus asiakkaan nimen kanssa”:

SELECT o.id, c.name, o.total
FROM orders o
JOIN customers c ON c.id = o.customer_id;

4. Yhteenveto: ”kokonaiskulutus asiakasta kohden”:

SELECT c.name, SUM(o.total) AS total_spent
FROM customers c
JOIN orders o ON o.customer_id = c.id
GROUP BY c.name
ORDER BY total_spent DESC;

Esimerkkidatalla tämä palauttaa Lena Ortizin summalla 67.00 ja Sam Patelin summalla 18.50.

5. Datan muuttaminen:

INSERT INTO customers (name, email, city)
VALUES ('Ana Silva', 'ana@example.com', 'Porto');

UPDATE customers SET city = 'Porto' WHERE id = 1;

DELETE FROM orders WHERE id = 102;

Nämä vastaavat lähes jokaisen sovelluksen neljää perustoimintoa, luontia, lukemista, päivittämistä ja poistamista, jotka tunnetaan nimellä CRUD.

Varoitus: UPDATE customers SET city = 'Porto'; ilman WHERE-lauseketta muuttaa jokaisen asiakkaan. Tarkista aina WHERE ennen kuin ajat muutoksen.

SQL:n pääosat

KomentoMitä se tekee
SELECTLukee dataa
INSERTLisää uusia rivejä
UPDATEMuuttaa olemassa olevia rivejä
DELETEPoistaa rivejä
CREATE TABLE / ALTER TABLELuo tai muuttaa taulun rakennetta
WHERESuodattaa, mihin riveihin vaikutetaan
JOINYhdistää toisiinsa liittyviä tauluja
GROUP BYTiivistää rivit ryhmiksi, COUNT, SUM ja AVG -funktioilla
ORDER BY / LIMITJärjestää ja rajaa tulokset

SQL on standardoitu, mutta jokainen tietokanta lisää omia laajennuksiaan, joita kutsutaan murteeksi (dialect). Postgres, MySQL ja SQLite ymmärtävät yllä olevat esimerkit, mutta esimerkiksi päivämäärä­funktiot eroavat hieman.

Keskeiset termit

TermiMerkitys
Kysely (query)SQL-lause, erityisesti sellainen, joka lukee dataa.
Taulu / rivi / sarakeTyyppi / yksi tietue / yksi ominaisuus.
Pääavain (primary key)Sarake, joka tunnistaa jokaisen rivin yksikäsitteisesti, yleensä id.
Vierasavain (foreign key)Sarake, joka osoittaa toisen taulun riviin, kuten customer_id.
IndeksiHakurakenne, joka nopeuttaa sarakkeen hakemista huomattavasti.
SkeemaKaikkien taulujen ja sarakkeiden rakenne.
TransaktioMuutosten ryhmä, joka onnistuu tai epäonnistuu yhdessä.
SQL-injektioHyökkäys, jossa käyttäjän syöte kätketään kyselyyn. Estetään parametrisoiduilla kyselyillä.

Yleiset väärinkäsitykset

  • ”SQL on tietokanta.” SQL on kieli. Postgres, MySQL ja SQLite ovat tietokantoja, jotka puhuvat sitä.
  • ”SQL on vanha, joten se on vanhentunut.” Se on kypsä, ei vanhentunut. Nykyaikaiset tietokannat ja datatyökalut käyttävät sitä edelleen, ja uudetkin lisäävät usein SQL-tuen.
  • ”Vain kehittäjät voivat käyttää SQL:ää.” Analyytikot, markkinoijat ja perustajat käyttävät yksinkertaisia kyselyitä joka päivä.
  • ”SQL ei kestä joustavaa dataa.” Monet SQL-tietokannat tallentavat myös JSONia. Postgresilla on esimerkiksi jsonb-tyyppi. Katso SQL vs. NoSQL.
  • ”On ihan ok antaa tekoälyn ajaa mitä tahansa SQL:ää tuotantodatalle.” Lukeminen on vähäriskistä. Muutokset ja poistot elävään dataan vaativat varmuuskopion ja toisen tarkistuksen. Katso miten varmuuskopioit sovelluksesi tietokannan.

Mitä pyytää tekoälysovellusrakentajalta

  • ”Näytä minulle tietokantani taulut ja mitä kukin sarake tarkoittaa.”
  • ”Kirjoita vain lukeva kysely: montako uutta rekisteröitymistä päivässä viimeisen 30 päivän aikana?”
  • ”Ennen kuin ajat yhtäkään UPDATE- tai DELETE-lausetta, näytä kysely ja kuinka monta riviä se vaikuttaa.”
  • ”Lisää indeksit sarakkeisiin, joilla suodatamme ja järjestämme useimmin.”
  • ”Varmista, että jokainen kysely, joka käyttää käyttäjän syötettä, on parametrisoitu.”
  • ”Kääri tilaus- ja maksupäivitykset transaktioon, jotta ne eivät voi onnistua vain osittain.”

SQL Mythexissä

Kun sovelluksesi tarvitsee tallentaa dataa, Mythex lisää projektiin oman Postgres-tietokannan. Pyydä chatissa, esimerkiksi ”tallenna odotuslistan sähköpostit tietokantaan”, tai käytä komentoa /database (Database). Agentti luo taulut ja kirjoittaa kyselyt. Voit pyytää Kysy-tilassa selittämään minkä tahansa kyselyn selkeällä kielellä. Lisää tietokannasta itsestään löydät sivulta mikä Postgres on.

Kysymykset

Mitä SQL on yksinkertaisesti?

SQL (Structured Query Language) on yleinen kieli relaatiotietokantojen käsittelyyn. Sillä kysyt datasi kysymyksiä, kuten ”mitkä tilaukset tehtiin tällä viikolla”, ja lisäät, muutat tai poistat tietueita.

Miten SQL lausutaan?

Sekä ”S-Q-L” (kirjaimet erikseen) että ”sequel” ovat yleisiä ja oikeita. Kieli kulki alun perin nimellä SEQUEL, mistä toinen lausumistapa tulee.

Onko SQL ohjelmointikieli?

SQL on datan hallintaan suunniteltu kyselykieli. Kuvailet, minkä tuloksen haluat, ja tietokanta selvittää, miten se saadaan. Sitä ei käytetä kokonaisten sovellusten rakentamiseen yksin, mutta se on osa lähes jokaista sovellusta, joka käyttää relaatiotietokantaa.

Onko SQL vaikea oppia?

Perusteet ovat helppoja: SELECT, WHERE, ORDER BY, INSERT, UPDATE ja DELETE kattavat useimmat arkitarpeet ja lukeutuvat lähes kuin englantia. Liitokset (join), ryhmittely ja suorituskyvyn viritys vievät kauemmin.

Pitääkö minun osata SQL, jotta voin rakentaa sovelluksen tekoälyllä?

Ei. Tekoälysovellusrakentaja kirjoittaa SQL:n tai tietokantakoodin puolestasi. Pienikin ymmärrys auttaa tarkistamaan datasi, pyytämään raportteja ja huomaamaan riskialttiit muutokset ennen kuin ne tapahtuvat.

Mythex · Pricing · Rakenna mitä tahansa tekoälyllä · Verkkosivu- ja sovellusmallipohjat · Mythex vertailussa · Tekoälysovellusten rakentamisen sanasto · Ilmaiset työkalut tekoälysovellusten rakentamiseen · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Dansk Deutsch Ελληνικά Español Español (España) Eesti فارسی Français Français (Canada) ગુજરાતી हिन्दी Hrvatski Magyar Հայերեն Bahasa Indonesia Íslenska Italiano 日本語 ქართული Қазақ тілі ಕನ್ನಡ 한국어 Lietuvių Latviešu Македонски മലയാളം Монгол मराठी Bahasa Melayu မြန်မာ Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Brasil) Português (Portugal) Română Русский Slovenčina Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)