Autor wybrał Fundusz Wolnego i Otwartego Oprogramowania, aby otrzymać darowiznę w ramach programu Write for DOnations.
- Wprowadzenie
 - Prerequisites
 - Krok 1 – Instalacja SQLite na Ubuntu 20.04
 - Krok 2 – Tworzenie bazy danych SQLite
 - Krok 3 – Tworzenie tabeli SQLite
 - Wstawianie wartości do tabel
 - Krok 4 – Odczyt tabel w SQLite
 - Krok 5 – Aktualizowanie tabel w SQLite
 - Dodawanie kolumn do tabel SQLite
 - Uaktualnianie wartości w tabelach SQLite
 - Krok 6 – Usuwanie informacji w SQLite
 - Krok 7 – Łączenie informacji w SQLite
 - Wniosek
 
Wprowadzenie
SQLite jest darmowym, wieloplatformowym systemem zarządzania bazą danych. Jest popularny ze względu na swoją wydajność i zdolność do współpracy z wieloma różnymi językami programowania.
W tym poradniku zainstalujesz SQLite na Ubuntu 20.04. Następnie utworzymy bazę danych, będziemy odczytywać z niej dane, wstawiać elementy, usuwać elementy i łączyć elementy z oddzielnych tabel.
Uwaga: Ten poradnik zawiera praktyczne instrukcje dotyczące instalacji i używania SQLite. Nie obejmuje on większych zagadnień koncepcyjnych i produkcyjnych, takich jak to, kiedy należy, a kiedy nie należy rozważać użycia bazy danych SQLite. Aby uzyskać doskonały przegląd popularnych relacyjnych baz danych i ich porównań, sprawdź nasz artykuł, SQLite vs MySQL vs PostgreSQL: A Comparison Of Relational Database Management Systems.
Dodatkowo, wiele języków utrzymuje integracje z SQLite. Instrukcje dotyczące używania SQLite w kodzie Pythona można znaleźć w naszym poradniku How To Use the sqlite3 Module in Python 3.
Prerequisites
Aby ukończyć ten poradnik, będziesz potrzebował:
- Maszyny lokalnej lub serwera z systemem Ubuntu 20.04. Aby skonfigurować serwer, w tym nierootowego użytkownika sudo i firewall, można utworzyć DigitalOcean Droplet z Ubuntu 20.04, a następnie postępować zgodnie z naszym przewodnikiem konfiguracji serwera.
 
Krok 1 – Instalacja SQLite na Ubuntu 20.04
Aby zainstalować interfejs wiersza poleceń SQLite na Ubuntu, najpierw zaktualizuj swoją listę pakietów:
- sudo apt update
 
Teraz zainstaluj SQLite:
- sudo apt install sqlite3 
 
Aby zweryfikować instalację, sprawdź wersję oprogramowania:
- sqlite --version
 
Otrzymasz wyjście takie jak to:
Output3.31.1 2020-01-27 19:55:54 3bfa9cc97da10598521b342961df8f5f68c7388fa117345eeb516eaa837balt1
Po zainstalowaniu SQLite, jesteś teraz gotowy do utworzenia nowej bazy danych.
Krok 2 – Tworzenie bazy danych SQLite
W tym kroku utworzysz bazę danych zawierającą różne rekiny i ich atrybuty. Aby utworzyć bazę danych, otwórz terminal i uruchom to sqlite3polecenie:
- sqlite3 sharks.db
 
To utworzy nową bazę danych o nazwie sharks. Jeśli plik sharks.db już istnieje, SQLite otworzy połączenie z nim; jeśli nie istnieje, SQLite go utworzy.
Otrzymasz wyjście takie jak to:
OutputSQLite version 3.31.1 2020-01-27 19:55:54Enter ".help" for usage hints.
Po tym, Twój znak zachęty zmieni się. Pojawi się nowy prefiks, sqlite>:
Po utworzeniu bazy danych Shark, teraz utworzysz nową tabelę i wypełnisz ją danymi.
Krok 3 – Tworzenie tabeli SQLite
Bazy danych SQLite są zorganizowane w tabele. Tabele przechowują informacje. Aby lepiej zobrazować tabelę, można wyobrazić sobie wiersze i kolumny.
Reszta tego poradnika będzie zgodna z powszechną konwencją wprowadzania poleceń SQLite. Polecenia SQLite pisane są wielkimi literami, a informacje o użytkowniku małymi. Linie muszą kończyć się średnikiem.
Teraz stwórzmy tabelę i kilka kolumn dla różnych danych:
- Identyfikator
 - Nazwa rekina
 - Typ rekina
 - Średnia długość rekina (w centymetrach)
 
Użyj następującego polecenia, aby utworzyć tabelę:
- CREATE TABLE sharks(id integer NOT NULL, name text NOT NULL, sharktype text NOT NULL, length integer NOT NULL);
 
Użycie NOT NULL powoduje, że to pole jest wymagane. Omówimy NOT NULL bardziej szczegółowo w następnej sekcji.
Po utworzeniu tabeli zostanie zwrócony pusty znak zachęty. Teraz wstawmy do niej jakieś wartości.
Wstawianie wartości do tabel
W SQLite polecenie wstawiania wartości do tabeli ma następującą ogólną postać:
- INSERT INTO tablename VALUES(values go here);
 
Gdzie tablename jest nazwą twojej tabeli, a values znajduje się wewnątrz nawiasów.
Teraz wstaw trzy wiersze VALUES do swojej tabeli sharks:
 - 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);
  
Ponieważ wcześniej określiłeś NOT NULL dla każdej ze zmiennych w swojej tabeli, musisz wprowadzić wartość dla każdej z nich.
Na przykład, spróbuj dodać kolejnego rekina bez ustawiania jego długości:
- INSERT INTO sharks VALUES (4, "Faiza", "Hammerhead Shark");
 
Otrzymasz taki błąd:
OutputError: table sharks has 4 columns but 3 values were supplied
W tym kroku utworzyłeś tabelę i wstawiłeś do niej wartości. W następnym kroku odczytasz dane ze swojej tabeli w bazie danych.
Krok 4 – Odczyt tabel w SQLite
W tym kroku skupimy się na najbardziej podstawowych metodach odczytu danych z tabeli. Zauważ, że SQLite dostarcza bardziej specyficznych metod do przeglądania danych w tabelach.
Aby obejrzeć swoją tabelę ze wszystkimi wstawionymi wartościami, użyj SELECT:
- SELECT * FROM sharks;
 
Zobaczysz wcześniej wstawione wpisy:
Output1|Sammy|Greenland Shark|4272|Alyoshka|Great White Shark|6003|Himari|Megaladon|1800
Aby wyświetlić wpis na podstawie jego id (wartości, które ustawiliśmy ręcznie), dodaj do zapytania polecenie WHERE:
- SELECT * FROM sharks WHERE id IS 1;
 
To zwróci rekina, którego id jest równe 1:
Output1|Sammy|Greenland Shark|427
Przyjrzyjrzyjrzyjmy się bliżej temu poleceniu.
- Najpierw 
SELECTwszystkie (*) wartości z naszej bazy danych,sharks. - Potem patrzymy na wszystkie wartości 
id. - Potem zwracamy wszystkie wpisy w tabeli, w których 
idjest równe1. 
Do tej pory utworzyłeś tabelę, wstawiłeś do niej dane i zapytałeś o te zapisane dane. Teraz zaktualizujesz istniejącą tabelę.
Krok 5 – Aktualizowanie tabel w SQLite
W kolejnych dwóch sekcjach najpierw dodasz nową kolumnę do istniejącej tabeli, a następnie zaktualizujesz istniejące wartości w tabeli.
Dodawanie kolumn do tabel SQLite
SQLite pozwala na zmianę tabeli za pomocą polecenia ALTER TABLE. Oznacza to, że możesz tworzyć nowe wiersze i kolumny lub modyfikować istniejące wiersze i kolumny.
Użyj polecenia ALTER TABLE, aby utworzyć nową kolumnę. Ta nowa kolumna będzie śledzić wiek każdego rekina w latach:
- ALTER TABLE sharks ADD COLUMN age integer;
 
Masz teraz piątą kolumnę, age.
Uaktualnianie wartości w tabelach SQLite
Używając polecenia UPDATE, dodaj nowe wartości age dla każdego z twoich rekinów:
 - 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
W tym kroku zmieniłeś skład swojej tabeli, a następnie zaktualizowałeś wartości wewnątrz tabeli. W następnym kroku usuniesz informacje z tabeli.
Krok 6 – Usuwanie informacji w SQLite
W tym kroku usuniesz wpisy w tabeli na podstawie oceny argumentu.
W następującym poleceniu zapytasz swoją bazę danych i poprosisz o usunięcie wszystkich rekinów z tabeli sharks, których wiek jest mniejszy niż 200 lat:
- DELETE FROM sharks WHERE age <= 200;
 
Typy SELECT * FROM sharks; sprawdzą, czy Alyoshka i Himari, z których każdy miał mniej niż 200 lat, zostały usunięte. Pozostał tylko Sammy rekin grenlandzki:
Output1|Sammy|Greenland Shark|427|272
Krok 7 – Łączenie informacji w SQLite
Wyobraźmy sobie, że mamy dwie tabele: naszą obecną sharks tabelę i tabelę endangered. Co by się stało, gdyby tabela endangered miała wartość id, która odwzorowywałaby wartości id w twojej tabeli sharks, a także wartość status, która wskazywałaby status ochrony każdego rekina?
Jeśli chciałbyś odpytywać o dane z obu tabel, mógłbyś użyć jednego z czterech poleceń SQLite’a typu join:
INNER JOINOUTER JOINLEFT JOINCROSS JOIN
Utwórzmy tę drugą tabelę, a następnie użyjmy INNER JOIN, aby połączyć niektóre dane.
Najpierw utwórz tabelę endangered:
 - CREATE TABLE endangered (id integer NOT NULL, status text NOT NULL);
  - INSERT INTO endangered VALUES (1, "near threatened");
  
Teraz połącz swoje tabele:
- SELECT * FROM sharks INNER JOIN endangered on sharks.id = endangered.id;`
 
Twoje dane wyjściowe będą wyglądać tak:
Output1|Sammy|Greenland Shark|427|272|1|near threatened
Zauważ, że dane wyjściowe zawierają również wartość id z endangered. Możesz określić pożądane dane wyjściowe za pomocą bardziej wyraźnego polecenia:
- SELECT sharks.id, sharks.name, sharks.sharktype, sharks.length, sharks.age, endangered.status FROM sharks INNER JOIN endangered on sharks.id = endangered.id;
 
Tym razem dane wyjściowe wykluczają drugą wartość id:
Output1|Sammy|Greenland Shark|427|272|near threatened
Teraz udało Ci się połączyć informacje z wielu tabel.
Wniosek
SQLite jest użytecznym narzędziem do zarządzania bazami danych. Można szybko utworzyć bazę danych i manipulować nią za pomocą różnych poleceń. Po tym samouczku masz już podstawowe zrozumienie SQLite i jesteś przygotowany do głębszego zapoznania się z tym systemem zarządzania bazą danych.
Dla doskonałego przeglądu relacyjnych systemów baz danych i ich porównania, sprawdź nasz artykuł, SQLite vs MySQL vs PostgreSQL: A Comparison Of Relational Database Management Systems.
Dodatkowo, wiele języków utrzymuje integracje z SQLite. Aby uzyskać instrukcje dotyczące korzystania z SQLite w kodzie Pythona, sprawdź nasz poradnik, Jak korzystać z modułu sqlite3 w Pythonie 3.
.