Juhend: eestikeelsed käsud
Käskude sisestamisel saab kasutada nii inglise SQL-i
(CREATE TABLE, SELECT, INSERT INTO jne)
kui ka eestikeelseid vasteid allpool olevast tabelist —
mõlemad töötavad täpselt samamoodi ja neid võib isegi omavahel segamini kirjutada.
Iga käsk lõpetatakse semikooloniga (;). Rea alguses või keskel olev
-- alustab kommentaari, mis käsu täitmisel eiratakse.
Põhikäsud
| Eestikeelne käsk | Vastab SQL-ile | Näide |
|---|---|---|
LOO TABEL nimi (veerg TÜÜP [PÕHIVÕTI] [KOHUSTUSLIK], ...) |
CREATE TABLE nimi (veerg TYPE [PRIMARY KEY] [NOT NULL], ...) |
LOO TABEL kasutajad (id TÄISARV PÕHIVÕTI, nimi TEKST KOHUSTUSLIK, vanus TÄISARV); |
KUSTUTA TABEL nimi |
DROP TABLE nimi |
KUSTUTA TABEL kasutajad; |
NÄITA TABELEID |
SHOW TABLES |
NÄITA TABELEID; |
KIRJELDA nimi |
DESCRIBE nimi |
KIRJELDA kasutajad; |
LISA TABELISSE nimi (veerg, ...) VÄÄRTUSED (väärtus, ...) |
INSERT INTO nimi (veerg, ...) VALUES (väärtus, ...) |
LISA TABELISSE kasutajad (id, nimi, vanus) VÄÄRTUSED (1, 'Mari', 22); |
VALI veerud (või KÕIK) TABELIST nimi [KUS tingimus [JA tingimus ...]] [JÄRJESTA veerg [KASVAVALT|KAHANEVALT]] [PIIRA arv] |
SELECT veerud FROM nimi [WHERE ...] [ORDER BY veerg [ASC|DESC]] [LIMIT arv] |
VALI KÕIK TABELIST kasutajad KUS vanus > 18 JÄRJESTA vanus KAHANEVALT PIIRA 5; |
UUENDA nimi MÄÄRA veerg = väärtus [, ...] [KUS tingimus] |
UPDATE nimi SET veerg = väärtus [, ...] [WHERE ...] |
UUENDA kasutajad MÄÄRA vanus = 23 KUS nimi = 'Mari'; |
KUSTUTA TABELIST nimi [KUS tingimus] |
DELETE FROM nimi [WHERE ...] |
KUSTUTA TABELIST kasutajad KUS id = 2; |
Andmetüübid
| Eesti keeles | Tähendus |
|---|---|
TÄISARV | INT — täisarv |
MURDARV | FLOAT — komakohaga arv |
TEKST | TEXT — tekst/string |
TÕEVÄÄRTUS | BOOL — tõene/väär |
Muud märksõnad
| Eesti keeles | Tähendus |
|---|---|
PÕHIVÕTI | PRIMARY KEY — veerg on tabeli primaarvõti |
KOHUSTUSLIK | NOT NULL — veerg peab olema täidetud |
JA | AND — mitme WHERE-tingimuse ühendamine |
KÕIK | * — kõik veerud |
TÕENE / VÄÄR | true / false |
TÜHI | NULL — tühi väärtus |
Näited: lihtsast keerukani
Iga taseme näited eeldavad, et eelmised sama taseme näited on samas andmebaasis juba käivitatud (nt teine "Lihtne" näide kasutab tabelit, mis loodi esimeses).
Lihtne
Tabeli struktuur, üks kirje ja kõigi ridade kuvamine.
LOO TABEL raamatud (id TÄISARV PÕHIVÕTI, pealkiri TEKST, aasta TÄISARV); LISA TABELISSE raamatud (id, pealkiri, aasta) VÄÄRTUSED (1, 'Tõde ja õigus', 1926); VALI KÕIK TABELIST raamatud;
Kõigi tabelite nimekiri ja ühe tabeli veergude kirjeldus.
NÄITA TABELEID; KIRJELDA raamatud;
Keskmine
Mitu rida korraga, WHERE koos JA-ga, ORDER BY ja LIMIT.
LOO TABEL tooted (id TÄISARV PÕHIVÕTI, nimi TEKST, hind MURDARV, laos TÄISARV); LISA TABELISSE tooted (id, nimi, hind, laos) VÄÄRTUSED (1, 'Kohv', 4.5, 20); LISA TABELISSE tooted (id, nimi, hind, laos) VÄÄRTUSED (2, 'Tee', 3.2, 0); LISA TABELISSE tooted (id, nimi, hind, laos) VÄÄRTUSED (3, 'Kakao', 5.0, 8); -- ainult tooted, mis on laos JA maksavad alla 5 euro, odavaim enne VALI nimi, hind TABELIST tooted KUS laos > 0 JA hind < 5 JÄRJESTA hind KASVAVALT;
UUENDA mitme veeruga korraga ning KUSTUTA tingimuse alusel.
UUENDA tooted MÄÄRA hind = 4.0, laos = 15 KUS nimi = 'Kohv'; KUSTUTA TABELIST tooted KUS laos = 0; VALI KÕIK TABELIST tooted;
Edasijõudnud
Kaks eraldi tabelit samas .dbe failis, PÕHIVÕTI/KOHUSTUSLIK piirangud, TÜHI väärtus, ning JÄRJESTA+PIIRA kombinatsioon. Märkus: see mootor ei toeta JOIN-i (mitme tabeli ühendamist ühes päringus) — tellimuse ja kliendi seos käib kliendi_id veeru kaudu, aga neid tuleb valida eraldi päringutega.
LOO TABEL kliendid (id TÄISARV PÕHIVÕTI, nimi TEKST KOHUSTUSLIK, email TEKST); LOO TABEL tellimused (id TÄISARV PÕHIVÕTI, kliendi_id TÄISARV, summa MURDARV, staatus TEKST); LISA TABELISSE kliendid (id, nimi, email) VÄÄRTUSED (1, 'Mari Maasikas', 'mari@naide.ee'); LISA TABELISSE kliendid (id, nimi, email) VÄÄRTUSED (2, 'Jaan Tamm', TÜHI); LISA TABELISSE tellimused (id, kliendi_id, summa, staatus) VÄÄRTUSED (1, 1, 49.90, 'ootel'); LISA TABELISSE tellimused (id, kliendi_id, summa, staatus) VÄÄRTUSED (2, 1, 15.00, 'saadetud'); LISA TABELISSE tellimused (id, kliendi_id, summa, staatus) VÄÄRTUSED (3, 2, 120.50, 'ootel'); -- kõik Mari (kliendi_id = 1) tellimused, suurim summa enne VALI KÕIK TABELIST tellimused KUS kliendi_id = 1 JÄRJESTA summa KAHANEVALT; -- kõigi ooteseisus tellimuste staatuse muutmine korraga UUENDA tellimused MÄÄRA staatus = 'kinnitatud' KUS staatus = 'ootel'; -- kõige suurema summaga tellimus üle kõigi klientide VALI KÕIK TABELIST tellimused JÄRJESTA summa KAHANEVALT PIIRA 1; NÄITA TABELEID; KIRJELDA tellimused;