Sådan installeres og bruges SQLite på Ubuntu 20.04

Forfatteren har valgt Free and Open Source Fund til at modtage en donation som en del af Write for DOnations-programmet.

Introduktion

SQLite er et gratis, tværgående databaseadministrationssystem på tværs af platforme. Det er populært på grund af sin effektivitet og evne til at fungere som grænseflade med mange forskellige programmeringssprog.

I denne vejledning vil du installere SQLite på Ubuntu 20.04. Derefter vil du oprette en database, læse data fra den, indsætte elementer, slette elementer og sammenføje elementer fra separate tabeller.

Bemærk: Denne vejledning indeholder praktiske instruktioner til installation og brug af SQLite. Den dækker ikke større konceptuelle spørgsmål og produktionsproblemer, f.eks. hvornår man bør eller ikke bør overveje at bruge en SQLite-database. For en glimrende oversigt over populære relationelle databaser og hvordan de sammenlignes, kan du læse vores artikel SQLite vs MySQL vs PostgreSQL: A Comparison Of Relational Database Management Systems.

Dertil kommer, at mange sprog opretholder integrationer med SQLite. For instruktioner om brug af SQLite i din Python-kode, se vores vejledning, Sådan bruges sqlite3-modulet i Python 3.

Forudsætninger

For at gennemføre denne vejledning skal du bruge:

  • En lokal maskine eller server, der kører Ubuntu 20.04. For at opsætte en server, herunder en ikke-root sudo bruger og en firewall, kan du oprette en DigitalOcean Droplet, der kører Ubuntu 20.04, og derefter følge vores vejledning til første serveropsætning.

Stræk 1 – Installation af SQLite på Ubuntu 20.04

For at installere SQLite-kommandolinjeinterfacet på Ubuntu skal du først opdatere din pakkeliste:

  • sudo apt update

Installer nu SQLite:

  • sudo apt install sqlite3

For at verificere installationen skal du kontrollere softwarens version:

  • sqlite --version

Du vil modtage et output som dette:

Output
3.31.1 2020-01-27 19:55:54 3bfa9cc97da10598521b342961df8f5f68c7388fa117345eeb516eaa837balt1

Med SQLite installeret er du nu klar til at oprette en ny database.

Stræk 2 – Oprettelse af en SQLite-database

I dette trin vil du oprette en database, der indeholder forskellige hajer og deres attributter. For at oprette databasen skal du åbne din terminal og køre denne sqlite3-kommando:

  • sqlite3 sharks.db

Dette vil oprette en ny database med navnet sharks. Hvis filen sharks.db allerede findes, vil SQLite åbne en forbindelse til den; hvis den ikke findes, vil SQLite oprette den.

Du vil få et output som dette:

Output
SQLite version 3.31.1 2020-01-27 19:55:54Enter ".help" for usage hints.

Derpå vil din prompt ændres. Et nyt præfiks, sqlite>, vises nu:

    Med din Shark-database oprettet vil du nu oprette en ny tabel og udfylde den med data.

    Stræk 3 – Oprettelse af en SQLite-tabel

    SQLite-databaser er organiseret i tabeller. Tabeller lagrer oplysninger. For bedre at visualisere en tabel kan man forestille sig rækker og kolonner.

    Resten af denne vejledning vil følge en almindelig konvention for indtastning af SQLite-kommandoer. SQLite-kommandoer er med store bogstaver, og brugeroplysninger er med små bogstaver. Linjer skal afsluttes med et semikolon.

    Nu skal vi oprette en tabel og nogle kolonner til forskellige data:

    • Et ID
    • Hajens navn
    • Hajens type
    • Hajens gennemsnitslængde (i centimeter)

    Brug følgende kommando til at oprette tabellen:

    • CREATE TABLE sharks(id integer NOT NULL, name text NOT NULL, sharktype text NOT NULL, length integer NOT NULL);

    Brug af NOT NULL gør det pågældende felt obligatorisk. Vi vil diskutere NOT NULL mere detaljeret i det næste afsnit.

    Når tabellen er oprettet, vender en tom prompt tilbage. Lad os nu indsætte nogle værdier i den.

    Indsætning af værdier i tabeller

    I SQLite følger kommandoen til indsættelse af værdier i en tabel denne generelle form:

    • INSERT INTO tablename VALUES(values go here);

    Hvor tablename er navnet på din tabel, og values går inden for parentes.

    Indsæt nu tre rækker med VALUES i din sharks tabel:

    • 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);

    Da du tidligere har angivet NOT NULL for hver af variablerne i din tabel, skal du indtaste en værdi for hver af dem.

    Forsøg f.eks. at tilføje endnu en haj uden at angive dens længde:

    • INSERT INTO sharks VALUES (4, "Faiza", "Hammerhead Shark");

    Du vil få denne fejl:

    Output
    Error: table sharks has 4 columns but 3 values were supplied

    I dette trin har du oprettet en tabel og indsat værdier i den. I det næste trin vil du læse fra din databasetabel.

    Strin 4 – Læsning af tabeller i SQLite

    I dette trin vil vi fokusere på de mest grundlæggende metoder til at læse data fra en tabel. Erkend, at SQLite indeholder mere specifikke metoder til visning af data i tabeller.

    For at få vist din tabel med alle de indsatte værdier skal du bruge SELECT:

    • SELECT * FROM sharks;

    Du vil se de tidligere indsatte poster:

    Output
    1|Sammy|Greenland Shark|4272|Alyoshka|Great White Shark|6003|Himari|Megaladon|1800

    For at få vist en post baseret på dens id (de værdier, vi har indstillet manuelt), skal du tilføje kommandoen WHERE til din forespørgsel:

    • SELECT * FROM sharks WHERE id IS 1;

    Dette vil returnere den haj, hvis id er lig med 1:

    Output
    1|Sammy|Greenland Shark|427

    Lad os se nærmere på denne kommando.

    1. Først SELECT vi alle (*) værdier fra vores database, sharks.
    2. Dernæst kigger vi på alle id værdier.
    3. Dernæst returnerer vi alle tabelposter, hvor id er lig med 1.

    Så langt har du oprettet en tabel, indsat data i den og spurgt til de gemte data. Nu vil du opdatere den eksisterende tabel.

    Stræk 5 – Opdatering af tabeller i SQLite

    I de følgende to afsnit vil du først tilføje en ny kolonne til din eksisterende tabel og derefter opdatere eksisterende værdier i tabellen.

    Tilføjelse af kolonner til SQLite-tabeller

    SQLite giver dig mulighed for at ændre din tabel ved hjælp af kommandoen ALTER TABLE. Det betyder, at du kan oprette nye rækker og kolonner eller ændre eksisterende rækker og kolonner.

    Brug ALTER TABLE for at oprette en ny kolonne. Denne nye kolonne vil spore hver hajs alder i år:

    • ALTER TABLE sharks ADD COLUMN age integer;

    Du har nu en femte kolonne, age.

    Opdatering af værdier i SQLite-tabeller

    Med kommandoen UPDATE skal du tilføje nye age-værdier for hver af dine hajer:

    • 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

    I dette trin ændrede du din tabels sammensætning og opdaterede derefter værdierne i tabellen. I det næste trin sletter du oplysninger fra en tabel.

    Strin 6 – Sletning af oplysninger i SQLite

    I dette trin sletter du poster i din tabel baseret på evalueringen af et argument.

    I følgende kommando forespørger du din database og anmoder om, at den sletter alle hajer i din sharks-tabel, hvis alder er mindre end 200 år:

    • DELETE FROM sharks WHERE age <= 200;

    Typning SELECT * FROM sharks; vil bekræfte, at Alyoshka og Himari, der hver især var mindre end 200 år gamle, blev slettet. Kun Sammy Grønlandshajen er tilbage:

    Output
    1|Sammy|Greenland Shark|427|272

    Stræk 7 – Sammenføjning af oplysninger i SQLite

    Lad os forestille os, at vi havde to tabeller: vores nuværende sharks-tabelle og en endangered-tabelle. Hvad nu, hvis endangered-tabellen havde en id-værdi, der svarede til id-værdierne i din sharks-tabelle, og hvis den også havde en status-værdi, der angav hver hajs bevaringsstatus?

    Hvis du ville forespørge data fra begge tabeller, kunne du bruge en af SQLites fire join-kommandoer:

    • INNER JOIN
    • OUTER JOIN
    • LEFT JOIN
    • CROSS JOIN

    Lad os oprette den anden tabel og derefter bruge INNER JOIN til at sammenføje nogle data.

    Opret først din tabel endangered:

    • CREATE TABLE endangered (id integer NOT NULL, status text NOT NULL);
    • INSERT INTO endangered VALUES (1, "near threatened");

    Føj nu dine tabeller sammen:

    • SELECT * FROM sharks INNER JOIN endangered on sharks.id = endangered.id;`

    Din output vil se således ud:

    Output
    1|Sammy|Greenland Shark|427|272|1|near threatened

    Bemærk, at output også indeholder id-værdien fra endangered. Du kan angive det ønskede output med en mere eksplicit kommando:

    • SELECT sharks.id, sharks.name, sharks.sharktype, sharks.length, sharks.age, endangered.status FROM sharks INNER JOIN endangered on sharks.id = endangered.id;

    Denne gang udelukker outputtet den anden id-værdi:

    Output
    1|Sammy|Greenland Shark|427|272|near threatened

    Du har nu med succes sammenføjet oplysninger fra flere tabeller.

    Konklusion

    SQLite er et nyttigt værktøj til databaseadministration. Man kan hurtigt oprette en database og manipulere den med forskellige kommandoer. Efter denne tutorial har du nu en grundlæggende forståelse af SQLite, og du er klar til at dykke dybere ned i dette databaseadministrationssystem.

    For en fremragende oversigt over relationelle databasesystemer, og hvordan de kan sammenlignes, kan du læse vores artikel SQLite vs MySQL vs PostgreSQL: En sammenligning af relationelle databasestyringssystemer.

    Dertil kommer, at mange sprog opretholder integrationer med SQLite. For instruktioner om hvordan du bruger SQLite i din Python-kode, se vores vejledning, Sådan bruges sqlite3-modulet i Python 3.

    Skriv et svar

    Din e-mailadresse vil ikke blive publiceret.