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 sqlite3
polecenie:
- 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
SELECT
wszystkie (*
) wartości z naszej bazy danych,sharks
. - Potem patrzymy na wszystkie wartości
id
. - Potem zwracamy wszystkie wpisy w tabeli, w których
id
jest 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 JOIN
OUTER JOIN
LEFT JOIN
CROSS 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.
.