Relational database, Relational model
To důležité ukazuje obrázek napravo. Relaci tvoří domény (sloupce), tělo relace pak tvoří řádky.
Každý řádek relace má tzv. primární klíč2). Je to hodnota která ho v tabulce jednoznačně identifikuje. Musí tedy být jednoznačný a minimální (neredukovatelný). Primární klíč je jedním z kandidátních klíčů, což jsou prostě sloupce které musí být unikátní.
Chtělo by to asi ještě něco dopsat, ale ta teorie je taková… meh
Úvodni kecy
Slouží k získání dat z databáze.
SELECT jmeno, prijmeni FROM telefonni_seznam WHERE mesto = "Brno" ORDER BY prijmeni;
Pomocí SELECT
u lze vytvářet tzv. pohledy – jakoby virtuální tabulky.
Výběr z více tabulek se provádí parametrem JOIN. Dost lamersky napsaný
Slouží k vkládání nových dat.
INSERT INTO telefonn_seznam (jmeno, prijmeni, mesto, NUMBER) VALUES ('Karel', 'Vomacka', 'Brno', 123456);
Slouží k změně již existujících dat.
UPDATE telefonni_seznam SET jmeno = 'Lojza' WHERE cislo = 123456;
Atomicity, consistency, isolation, durability
Všechny SQL příkazy se provádějí atomicky3). Pokud ale chceme atomicky provést posloupnost příkazů (nejčastěji takovou, která by při svém přerušení způsobila nekonzistenci databáze) musíme příkazy uzavřít do transakce. Provedení transakce pák můžeme potvrdit příkazem COMMIT
nebo vrátit databázi do stavu před transakcí příkazem ROLLBACK
.
START TRANSACTION; UPDATE Account SET amount=amount-200 WHERE account_number=1234; UPDATE Account SET amount=amount+200 WHERE account_number=2345; IF ERRORS=0 COMMIT; IF ERRORS<>0 ROLLBACK;
Tyto příkazy slouží k manipulaci s tabulkami a indexy.
CREATE TABLE telefonni_seznam (jmeno VARCHAR(50) NOT NULL, cislo INT PRIMARY KEY); ALTER TABLE telefonni_seznam ADD prijmeni INT NOT NULL; DROP TABLE telefonni_seznam;