Jak nainstalovat a používat SQLite v Ubuntu 20.04

Autor si vybral Free and Open Source Fund pro získání příspěvku v rámci programu Write for DOnations.

Ú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:

Output
3.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:

Output
SQLite 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:

    Output
    Error: 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:

    Output
    1|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:

    Output
    1|Sammy|Greenland Shark|427

    Podívejme se na tento příkaz blíže.

    1. Nejprve SELECT všechny (*) hodnoty z naší databáze, sharks.
    2. Poté se podíváme na všechny hodnoty id.
    3. Poté vrátíme všechny záznamy tabulky, kde se id rovná 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;
    Output
    1|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ý:

    Output
    1|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 JOIN
    • OUTER JOIN
    • LEFT JOIN
    • CROSS 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:

    Output
    1|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:

    Output
    1|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.

    .

    Napsat komentář

    Vaše e-mailová adresa nebude zveřejněna.