DBE — oma SQL mootor

← tagasi

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äskVastab SQL-ileNä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 keelesTähendus
TÄISARVINT — täisarv
MURDARVFLOAT — komakohaga arv
TEKSTTEXT — tekst/string
TÕEVÄÄRTUSBOOL — tõene/väär

Muud märksõnad

Eesti keelesTähendus
PÕHIVÕTIPRIMARY KEY — veerg on tabeli primaarvõti
KOHUSTUSLIKNOT NULL — veerg peab olema täidetud
JAAND — mitme WHERE-tingimuse ühendamine
KÕIK* — kõik veerud
TÕENE / VÄÄRtrue / false
TÜHINULL — 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 loomine ja esimene rida

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;
Tabelite ja struktuuri vaatamine

Kõigi tabelite nimekiri ja ühe tabeli veergude kirjeldus.

NÄITA TABELEID;
KIRJELDA raamatud;

Keskmine

Filtreerimine, järjestamine ja piiramine

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;
Andmete muutmine ja kustutamine

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

Mitu tabelit, piirangud ja keerukamad päringud

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;