Autor si vybral Free and Open Source Fund pro získání příspěvku v rámci programu Write for DOnations.
- Úvod
- Předpoklady
- Krok 1 – Instalace SQLite v Ubuntu 20.04.04
- Krok 2 – Vytvoření databáze SQLite
- Krok 3 – Vytvoření tabulky SQLite
- Vkládání hodnot do tabulek
- Krok 4 – Čtení tabulek v SQLite
- Krok 5 – Aktualizace tabulek v SQLite
- Přidávání sloupců do tabulek SQLite
- Aktualizace hodnot v tabulkách SQLite
- Krok 6 – Odstranění informací v SQLite
- Krok 7 – Spojování informací v SQLite
- Závěr
Úvod
SQLite je svobodný multiplatformní systém pro správu databází. Je oblíbený pro svou efektivitu a schopnost propojení s mnoha různými programovacími jazyky.
V tomto návodu nainstalujete SQLite v Ubuntu 20.04. Nainstalujete jej do systému Ubuntu. Poté vytvoříte databázi, budete z ní číst data, vkládat položky, mazat položky a spojovat položky ze samostatných tabulek.
Poznámka: Tento tutoriál obsahuje praktické pokyny pro instalaci a používání SQLite. Nezabývá se širšími koncepčními otázkami a produkčními problémy, například tím, kdy by se mělo nebo nemělo uvažovat o použití databáze SQLite. Vynikající přehled populárních relačních databází a jejich srovnání najdete v našem článku SQLite vs MySQL vs PostgreSQL:
Mnoho jazyků navíc udržuje integraci se systémem SQLite. Návod na použití SQLite uvnitř kódu Pythonu najdete v našem tutoriálu Jak používat modul sqlite3 v Pythonu 3.
Předpoklady
K dokončení tohoto tutoriálu budete potřebovat:
- Místní počítač nebo server s Ubuntu 20.04. Chcete-li nastavit server, včetně nekořenového uživatele sudo a brány firewall, můžete vytvořit Droplet DigitalOcean se systémem Ubuntu 20.04 a poté postupovat podle našeho průvodce počátečním nastavením serveru.
Krok 1 – Instalace SQLite v Ubuntu 20.04.04
Pro instalaci rozhraní příkazového řádku SQLite v Ubuntu nejprve aktualizujte seznam balíčků:
- sudo apt update
Nyní nainstalujte SQLite:
- sudo apt install sqlite3
Pro ověření instalace zkontrolujte verzi softwaru:
- sqlite --version
Obdržíte následující výstup:
Output3.31.1 2020-01-27 19:55:54 3bfa9cc97da10598521b342961df8f5f68c7388fa117345eeb516eaa837balt1
Po instalaci SQLite jste nyní připraveni vytvořit novou databázi.
Krok 2 – Vytvoření databáze SQLite
V tomto kroku vytvoříte databázi obsahující různé žraloky a jejich atributy. Pro vytvoření databáze otevřete terminál a spusťte tento příkaz sqlite3:
- sqlite3 sharks.db
Tím vytvoříte novou databázi s názvem sharks. Pokud soubor sharks.db již existuje, SQLite k němu otevře spojení; pokud neexistuje, SQLite jej vytvoří.
Výstup se zobrazí takto:
OutputSQLite version 3.31.1 2020-01-27 19:55:54Enter ".help" for usage hints.
Po tomto příkazu se váš prompt změní. Nyní se objeví nová předpona sqlite>:
Po vytvoření databáze Shark nyní vytvoříte novou tabulku a naplníte ji daty.
Krok 3 – Vytvoření tabulky SQLite
Databáze SQLite jsou uspořádány do tabulek. Tabulky uchovávají informace. Pro lepší představu si tabulku můžeme představit jako řádky a sloupce.
Zbytek tohoto návodu se bude řídit běžnou konvencí pro zadávání příkazů SQLite. Příkazy SQLite jsou psány velkými písmeny a uživatelské informace malými. Řádky musí končit středníkem.
Nyní vytvoříme tabulku a několik sloupců pro různá data:
- Identifikační číslo
- Jméno žraloka
- Typ žraloka
- Průměrná délka žraloka (v centimetrech)
Pro vytvoření tabulky použijte následující příkaz:
- CREATE TABLE sharks(id integer NOT NULL, name text NOT NULL, sharktype text NOT NULL, length integer NOT NULL);
Použitím NOT NULL se toto pole stane povinným. Podrobněji se budeme NOT NULL zabývat v následující části.
Po vytvoření tabulky se vrátí prázdná výzva. Nyní do ní vložíme nějaké hodnoty.
Vkládání hodnot do tabulek
V SQLite má příkaz pro vložení hodnot do tabulky tento obecný tvar:
- INSERT INTO tablename VALUES(values go here);
Kde tablename je název vaší tabulky a values jdou do závorek.
Nyní vložte do tabulky sharks tři řádky VALUES:
- INSERT INTO sharks VALUES (1, "Sammy", "Greenland Shark", 427);
- INSERT INTO sharks VALUES (2, "Alyoshka", "Great White Shark", 600);
- INSERT INTO sharks VALUES (3, "Himari", "Megaladon", 1800);
Protože jste dříve zadali NOT NULL pro každou z proměnných v tabulce, musíte pro každou zadat hodnotu.
Zkuste například přidat dalšího žraloka, aniž byste nastavili jeho délku:
- INSERT INTO sharks VALUES (4, "Faiza", "Hammerhead Shark");
Obdržíte tuto chybu:
OutputError: table sharks has 4 columns but 3 values were supplied
V tomto kroku jste vytvořili tabulku a vložili do ní hodnoty. V dalším kroku budete z tabulky v databázi číst.
Krok 4 – Čtení tabulek v SQLite
V tomto kroku se zaměříme na nejzákladnější metody čtení dat z tabulky. Uvědomte si, že SQLite poskytuje specifičtější metody pro zobrazení dat v tabulkách.
Pro zobrazení tabulky se všemi vloženými hodnotami použijte příkaz SELECT:
- SELECT * FROM sharks;
Uvidíte dříve vložené položky:
Output1|Sammy|Greenland Shark|4272|Alyoshka|Great White Shark|6003|Himari|Megaladon|1800
Chcete-li zobrazit záznam na základě jeho id (hodnoty, kterou jsme nastavili ručně), přidejte do dotazu příkaz WHERE:
- SELECT * FROM sharks WHERE id IS 1;
Vrátí se žralok, jehož id se rovná 1:
Output1|Sammy|Greenland Shark|427
Podívejme se na tento příkaz blíže.
- Nejprve
SELECTvšechny (*) hodnoty z naší databáze,sharks. - Poté se podíváme na všechny hodnoty
id. - Poté vrátíme všechny záznamy tabulky, kde se
idrovná1.
Doteď jste vytvořili tabulku, vložili do ní data a dotazovali se na tato uložená data. Nyní budete existující tabulku aktualizovat.
Krok 5 – Aktualizace tabulek v SQLite
V následujících dvou částech nejprve přidáte do existující tabulky nový sloupec a poté aktualizujete stávající hodnoty v tabulce.
Přidávání sloupců do tabulek SQLite
SQLite umožňuje měnit tabulku pomocí příkazu ALTER TABLE. To znamená, že můžete vytvářet nové řádky a sloupce nebo upravovat stávající řádky a sloupce.
Příkazem ALTER TABLE vytvoříte nový sloupec. Tento nový sloupec bude sledovat věk každého žraloka v letech:
- ALTER TABLE sharks ADD COLUMN age integer;
Máte nyní pátý sloupec, age.
Aktualizace hodnot v tabulkách SQLite
Pomocí příkazu UPDATE přidejte nové hodnoty age pro každého z vašich žraloků:
- UPDATE sharks SET age = 272 WHERE id=1;
- UPDATE sharks SET age = 70 WHERE id=2;
- UPDATE sharks SET age = 40 WHERE id=3;
Output1|Sammy|Greenland Shark|427|2722|Alyoshka|Great White Shark|600|703|Himari|Megaladon|1800|40
V tomto kroku jste změnili složení vaší tabulky a poté aktualizovali hodnoty uvnitř tabulky. V dalším kroku odstraníte informace z tabulky:
Krok 6 – Odstranění informací v SQLite
V tomto kroku odstraníte záznamy ve své tabulce na základě vyhodnocení argumentu.
V následujícím příkazu se dotazujete na databázi a požadujete, aby vymazala všechny žraloky v tabulce sharks, jejichž věk je nižší než 200 let:
- DELETE FROM sharks WHERE age <= 200;
Vyplněním příkazu SELECT * FROM sharks; ověříte, že Alyoshka a Himari, kteří byli každý mladší než 200 let, byli vymazáni. Zůstal pouze Sammy žralok grónský:
Output1|Sammy|Greenland Shark|427|272
Krok 7 – Spojování informací v SQLite
Představme si, že bychom měli dvě tabulky: naši současnou tabulku sharks a tabulku endangered. Co kdyby nyní tabulka endangered měla hodnotu id, která by se mapovala na id ve vaší tabulce sharks, a měla také hodnotu status, která by označovala stav zachování každého žraloka?
Pokud byste se chtěli dotazovat na data z obou tabulek, mohli byste použít jeden ze čtyř příkazů SQLite pro spojení:
INNER JOINOUTER JOINLEFT JOINCROSS JOIN
Vytvořme tuto druhou tabulku a pak použijme INNER JOIN pro spojení některých dat.
Nejprve vytvořte tabulku endangered:
- CREATE TABLE endangered (id integer NOT NULL, status text NOT NULL);
- INSERT INTO endangered VALUES (1, "near threatened");
Nyní spojte tabulky:
- SELECT * FROM sharks INNER JOIN endangered on sharks.id = endangered.id;`
Váš výstup bude vypadat takto:
Output1|Sammy|Greenland Shark|427|272|1|near threatened
Všimněte si, že výstup obsahuje také hodnotu id z endangered. Požadovaný výstup můžete zadat explicitnějším příkazem:
- SELECT sharks.id, sharks.name, sharks.sharktype, sharks.length, sharks.age, endangered.status FROM sharks INNER JOIN endangered on sharks.id = endangered.id;
Tentokrát výstup vyloučí druhou hodnotu id:
Output1|Sammy|Greenland Shark|427|272|near threatened
Tímto jste úspěšně spojili informace z více tabulek.
Závěr
SQLite je užitečný nástroj pro správu databáze. Lze v něm rychle vytvořit databázi a manipulovat s ní pomocí různých příkazů. Po absolvování tohoto kurzu jste nyní získali základní znalosti o systému SQLite a jste připraveni ponořit se hlouběji do tohoto systému správy databází.
Vynikající přehled relačních databázových systémů a jejich srovnání najdete v našem článku SQLite vs MySQL vs PostgreSQL:
Mnoho jazyků navíc udržuje integraci se systémem SQLite. Návod na použití SQLite uvnitř kódu Pythonu najdete v našem tutoriálu Jak používat modul sqlite3 v Pythonu 3.
.