Författaren har valt Free and Open Source Fund för att få en donation som en del av programmet Write for DOnations.
- Introduktion
- Förutsättningar
- Steg 1 – Installera SQLite på Ubuntu 20.04.04
- Steg 2 – Skapa en SQLite-databas
- Steg 3 – Skapa en SQLite-tabell
- Insättning av värden i tabeller
- Steg 4 – Läsa tabeller i SQLite
- Steg 5 – Uppdatering av tabeller i SQLite
- Lägga till kolumner i SQLite-tabeller
- Uppdatering av värden i SQLite-tabeller
- Steg 6 – Ta bort information i SQLite
- Steg 7 – Sammanfogning av information i SQLite
- Slutsats
Introduktion
SQLite är ett fritt, plattformsoberoende databashanteringssystem. Det är populärt på grund av sin effektivitet och sin förmåga att fungera som gränssnitt för många olika programmeringsspråk.
I den här handledningen kommer du att installera SQLite på Ubuntu 20.04. Du kommer sedan att skapa en databas, läsa data från den, infoga objekt, ta bort objekt och sammanfoga objekt från separata tabeller.
Anmärkning: Den här handledningen innehåller praktiska instruktioner för att installera och använda SQLite. Den täcker inte större konceptuella frågor och produktionsfrågor, t.ex. när man bör eller inte bör överväga att använda en SQLite-databas. För en utmärkt översikt över populära relationsdatabaser och hur de står sig, se vår artikel SQLite vs MySQL vs PostgreSQL: A Comparison Of Relational Database Management Systems.
Också många språk har integrationer med SQLite. För instruktioner om hur du använder SQLite i din Pythonkod, se vår handledning, How To Use the sqlite3
Module in Python 3.
Förutsättningar
För att slutföra den här handledningen behöver du:
- En lokal maskin eller server som kör Ubuntu 20.04. Om du vill konfigurera en server, inklusive en sudo-användare som inte är root-användare och en brandvägg, kan du skapa en DigitalOcean Droplet med Ubuntu 20.04 och sedan följa vår guide för inledande serverinstallation.
Steg 1 – Installera SQLite på Ubuntu 20.04.04
För att installera kommandoradsgränssnittet SQLite på Ubuntu uppdaterar du först din paketlista:
- sudo apt update
Installera nu SQLite:
- sudo apt install sqlite3
För att verifiera installationen kontrollerar du programvarans version:
- sqlite --version
Du kommer att få ett utdata som detta:
Output3.31.1 2020-01-27 19:55:54 3bfa9cc97da10598521b342961df8f5f68c7388fa117345eeb516eaa837balt1
Med SQLite installerat är du nu redo att skapa en ny databas.
Steg 2 – Skapa en SQLite-databas
I det här steget kommer du att skapa en databas som innehåller olika hajar och deras attribut. För att skapa databasen öppnar du din terminal och kör det här sqlite3
kommandot:
- sqlite3 sharks.db
Detta kommer att skapa en ny databas med namnet sharks
. Om filen sharks.db
redan finns kommer SQLite att öppna en anslutning till den; om den inte finns kommer SQLite att skapa den.
Du kommer att få en utskrift som denna:
OutputSQLite version 3.31.1 2020-01-27 19:55:54Enter ".help" for usage hints.
Därefter kommer din prompt att ändras. Ett nytt prefix, sqlite>
, visas nu:
Med din Shark-databas skapad ska du nu skapa en ny tabell och fylla den med data.
Steg 3 – Skapa en SQLite-tabell
SQLite-databaser är organiserade i tabeller. Tabeller lagrar information. För att bättre visualisera en tabell kan man föreställa sig rader och kolumner.
Resten av den här handledningen kommer att följa en vanlig konvention för att skriva in SQLite-kommandon. SQLite-kommandon är versaler och användarinformation är små bokstäver. Raderna måste avslutas med ett semikolon.
Nu ska vi skapa en tabell och några kolumner för olika data:
- Ett ID
- Hajens namn
- Hajens typ
- Hajens genomsnittliga längd (i centimeter)
Använd följande kommando för att skapa tabellen:
- CREATE TABLE sharks(id integer NOT NULL, name text NOT NULL, sharktype text NOT NULL, length integer NOT NULL);
Användning av NOT NULL
gör att fältet är obligatoriskt. Vi kommer att diskutera NOT NULL
mer ingående i nästa avsnitt.
När tabellen har skapats återkommer en tom prompt. Nu ska vi infoga några värden i den.
Insättning av värden i tabeller
I SQLite följer kommandot för att infoga värden i en tabell denna allmänna form:
- INSERT INTO tablename VALUES(values go here);
Varvid tablename
är tabellens namn och values
står inom parentes.
Inför nu tre rader med VALUES
i din tabell 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);
Då du tidigare angav NOT NULL
för var och en av variablerna i din tabell måste du ange ett värde för var och en.
Försök till exempel att lägga till ytterligare en haj utan att ange dess längd:
- INSERT INTO sharks VALUES (4, "Faiza", "Hammerhead Shark");
Du får det här felet:
OutputError: table sharks has 4 columns but 3 values were supplied
I det här steget har du skapat en tabell och lagt in värden i den. I nästa steg kommer du att läsa från din databastabell.
Steg 4 – Läsa tabeller i SQLite
I det här steget kommer vi att fokusera på de mest grundläggande metoderna för att läsa data från en tabell. Inse att SQLite tillhandahåller mer specifika metoder för att visa data i tabeller.
För att visa din tabell med alla infogade värden använder du SELECT
:
- SELECT * FROM sharks;
Du kommer att se de tidigare infogade posterna:
Output1|Sammy|Greenland Shark|4272|Alyoshka|Great White Shark|6003|Himari|Megaladon|1800
För att visa en post baserat på dess id
(de värden vi ställt in manuellt) lägger du till kommandot WHERE
i din fråga:
- SELECT * FROM sharks WHERE id IS 1;
Detta returnerar den haj vars id
är lika med 1
:
Output1|Sammy|Greenland Shark|427
Låts oss ta en närmare titt på detta kommando.
- Först
SELECT
vi alla (*
) värden från vår databas,sharks
. - Därefter tittar vi på alla
id
värden. - Därefter returnerar vi alla tabellposter där
id
är lika med1
.
So långt har du skapat en tabell, lagt in data i den och frågat efter dessa sparade data. Nu ska du uppdatera den befintliga tabellen.
Steg 5 – Uppdatering av tabeller i SQLite
I de följande två avsnitten ska du först lägga till en ny kolumn i din befintliga tabell och sedan uppdatera befintliga värden i tabellen.
Lägga till kolumner i SQLite-tabeller
SQLite gör det möjligt att ändra din tabell med hjälp av kommandot ALTER TABLE
. Detta innebär att du kan skapa nya rader och kolumner eller ändra befintliga rader och kolumner.
Använd ALTER TABLE
för att skapa en ny kolumn. Denna nya kolumn kommer att spåra varje hajs ålder i år:
- ALTER TABLE sharks ADD COLUMN age integer;
Du har nu en femte kolumn, age
.
Uppdatering av värden i SQLite-tabeller
Med hjälp av kommandot UPDATE
lägger du till nya age
-värden för var och en av dina hajar:
- 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
I det här steget ändrade du tabellens sammansättning och uppdaterade sedan värdena i tabellen. I nästa steg tar du bort information från en tabell.
Steg 6 – Ta bort information i SQLite
I det här steget tar du bort poster i din tabell baserat på utvärderingen av ett argument.
I följande kommando frågar du din databas och begär att den ska radera alla hajar i din tabell sharks
vars ålder är mindre än 200 år:
- DELETE FROM sharks WHERE age <= 200;
Typning av SELECT * FROM sharks;
kommer att verifiera att Alyoshka
och Himari
, som var och en var mindre än 200 år gamla, har raderats. Endast Sammy
Grönlandshajen återstår:
Output1|Sammy|Greenland Shark|427|272
Steg 7 – Sammanfogning av information i SQLite
Föreställ dig att vi har två tabeller: vår nuvarande sharks
tabell och en endangered
tabell. Tänk om endangered
-tabellen hade ett id
-värde som motsvarade id
s i din sharks
-tabell, och om den också hade ett status
-värde som angav varje hajs bevarandestatus?
Om du vill söka data från båda tabellerna kan du använda en av SQLites fyra join-kommandon:
INNER JOIN
OUTER JOIN
LEFT JOIN
CROSS JOIN
Låtsas vi skapa den andra tabellen och sedan använda INNER JOIN
för att joina några data.
Skapa först din tabell endangered
:
- CREATE TABLE endangered (id integer NOT NULL, status text NOT NULL);
- INSERT INTO endangered VALUES (1, "near threatened");
Förena nu dina tabeller:
- SELECT * FROM sharks INNER JOIN endangered on sharks.id = endangered.id;`
Din utdata kommer att se ut så här:
Output1|Sammy|Greenland Shark|427|272|1|near threatened
Bemärk att utdata även inkluderar id
-värdet från endangered
. Du kan specificera önskad utdata med ett mer explicit kommando:
- SELECT sharks.id, sharks.name, sharks.sharktype, sharks.length, sharks.age, endangered.status FROM sharks INNER JOIN endangered on sharks.id = endangered.id;
Denna gång utesluter utdata det andra id
-värdet:
Output1|Sammy|Greenland Shark|427|272|near threatened
Du har nu framgångsrikt sammanfogat information från flera tabeller.
Slutsats
SQLite är ett användbart verktyg för databashantering. Man kan snabbt skapa en databas och manipulera den med olika kommandon. Efter den här handledningen har du nu en grundläggande förståelse för SQLite och du är beredd att dyka djupare in i detta databashanteringssystem.
För en utmärkt översikt över relationella databassystem och hur de kan jämföras, kolla in vår artikel, SQLite vs MySQL vs PostgreSQL: A Comparison Of Relational Database Management Systems.
Också många språk har integrationer med SQLite. För instruktioner om hur du använder SQLite i din Pythonkod, se vår handledning, How To Use the sqlite3
Module in Python 3.
.