Cum se instalează și se utilizează SQLite pe Ubuntu 20.04

Autorul a selectat Free and Open Source Fund pentru a primi o donație ca parte a programului Write for DOnations.

Introducere

SQLite este un sistem de management al bazelor de date gratuit, cross-platform. Este popular pentru eficiența și capacitatea sa de a se interfața cu multe limbaje de programare diferite.

În acest tutorial veți instala SQLite pe Ubuntu 20.04. Apoi veți crea o bază de date, veți citi date din ea, veți insera elemente, veți șterge elemente și veți uni elemente din tabele separate.

Nota: Acest tutorial include instrucțiuni practice pentru instalarea și utilizarea SQLite. El nu acoperă probleme conceptuale mai mari și preocupări legate de producție, cum ar fi când ar trebui, sau nu, să se ia în considerare utilizarea unei baze de date SQLite. Pentru o prezentare excelentă a bazelor de date relaționale populare și a modului în care acestea se compară, consultați articolul nostru, SQLite vs MySQL vs PostgreSQL: A Comparison Of Relational Database Management Systems.

În plus, multe limbaje mențin integrări cu SQLite. Pentru instrucțiuni privind utilizarea SQLite în interiorul codului Python, consultați tutorialul nostru, How To Use the sqlite3 Module in Python 3.

Precondiții

Pentru a finaliza acest tutorial, veți avea nevoie de:

  • O mașină locală sau un server care rulează Ubuntu 20.04. Pentru a configura un server, inclusiv un utilizator sudo non-root și un firewall, puteți crea un Droplet DigitalOcean care rulează Ubuntu 20.04 și apoi urmați Ghidul nostru de configurare inițială a serverului.

Pasul 1 – Instalarea SQLite pe Ubuntu 20.04

Pentru a instala interfața SQLite în linie de comandă pe Ubuntu, mai întâi actualizați lista de pachete:

  • sudo apt update

Acum instalați SQLite:

  • sudo apt install sqlite3

Pentru a verifica instalarea, verificați versiunea software-ului:

  • sqlite --version

Vă veți primi o ieșire ca aceasta:

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

Cu SQLite instalat, sunteți acum gata să creați o nouă bază de date.

Pasul 2 – Crearea unei baze de date SQLite

În acest pas veți crea o bază de date care să conțină diferiți rechini și atributele lor. Pentru a crea baza de date, deschideți terminalul și rulați această comandă sqlite3:

  • sqlite3 sharks.db

Aceasta va crea o nouă bază de date numită sharks. Dacă fișierul sharks.db există deja, SQLite va deschide o conexiune la acesta; dacă nu există, SQLite îl va crea.

Vă veți primi o ieșire ca aceasta:

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

După aceasta, promptul dvs. se va schimba. Un nou prefix, sqlite>, apare acum:

    Cu baza de date Shark creată, veți crea acum o nouă tabelă și o veți popula cu date.

    Etapa 3 – Crearea unei tabele SQLite

    Bazele de date SQLite sunt organizate în tabele. Tabelele stochează informații. Pentru a vizualiza mai bine un tabel, ne putem imagina rânduri și coloane.

    În restul acestui tutorial se va urma o convenție comună pentru introducerea comenzilor SQLite. Comenzile SQLite sunt scrise cu majuscule, iar informațiile despre utilizator sunt scrise cu minuscule. Liniile trebuie să se termine cu un punct și virgulă.

    Acum haideți să creăm un tabel și câteva coloane pentru diverse date:

    • Un ID
    • Numele rechinului
    • Tipul rechinului
    • Lungimea medie a rechinului (în centimetri)

    Utilizați următoarea comandă pentru a crea tabelul:

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

    Utilizarea lui NOT NULL face ca acel câmp să fie obligatoriu. Vom discuta mai detaliat despre NOT NULL în secțiunea următoare.

    După crearea tabelului, se va întoarce un prompt gol. Acum haideți să inserăm niște valori în el.

    Inserarea valorilor în tabele

    În SQLite, comanda pentru inserarea valorilor într-un tabel urmează această formă generală:

    • INSERT INTO tablename VALUES(values go here);

    Unde tablename este numele tabelului dvs. și values se află între paranteze.

    Acum inserați trei rânduri de VALUES în tabelul 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);

    Pentru că ați specificat mai devreme NOT NULL pentru fiecare dintre variabilele din tabelul dumneavoastră, trebuie să introduceți o valoare pentru fiecare.

    De exemplu, încercați să adăugați un alt rechin fără a-i seta lungimea:

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

    Vă veți primi această eroare:

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

    În această etapă ați creat un tabel și ați introdus valori în el. În pasul următor veți citi din tabelul din baza de date.

    Pasul 4 – Citirea tabelelor în SQLite

    În acest pas, ne vom concentra pe cele mai de bază metode de citire a datelor dintr-un tabel. Recunoașteți că SQLite oferă metode mai specifice pentru vizualizarea datelor din tabele.

    Pentru a vizualiza tabelul cu toate valorile inserate, utilizați SELECT:

    • SELECT * FROM sharks;

    Vă veți vedea intrările inserate anterior:

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

    Pentru a vizualiza o intrare în funcție de id (valorile pe care le-am setat manual), adăugați comanda WHERE la interogarea dumneavoastră:

    • SELECT * FROM sharks WHERE id IS 1;

    Aceasta va returna rechinul al cărui id este egal cu 1:

    Output
    1|Sammy|Greenland Shark|427

    Să ne uităm mai atent la această comandă.

    1. În primul rând, SELECT toate (*) valorile din baza noastră de date, sharks.
    2. După aceea ne uităm la toate valorile id.
    3. După aceea returnăm toate intrările din tabel în care id este egal cu 1.

    Până acum ați creat un tabel, ați inserat date în el și ați interogat acele date salvate. Acum veți actualiza tabelul existent.

    Pasul 5 – Actualizarea tabelelor în SQLite

    În următoarele două secțiuni veți adăuga mai întâi o nouă coloană în tabelul existent și apoi veți actualiza valorile existente în tabel.

    Aducerea de coloane în tabelele SQLite

    SQLite vă permite să modificați tabelul folosind comanda ALTER TABLE. Aceasta înseamnă că puteți crea rânduri și coloane noi sau modifica rândurile și coloanele existente.

    Utilizați ALTER TABLE pentru a crea o nouă coloană. Această nouă coloană va urmări vârsta fiecărui rechin în ani:

    • ALTER TABLE sharks ADD COLUMN age integer;

    Acum aveți o a cincea coloană, age.

    Updating Values in SQLite Tables

    Utilizând comanda UPDATE, adăugați noi valori age pentru fiecare dintre rechinii dumneavoastră:

    • 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

    În acest pas ați modificat compoziția tabelului dumneavoastră și apoi ați actualizat valorile din interiorul tabelului. În pasul următor veți șterge informații dintr-un tabel.

    Pasul 6 – Ștergerea informațiilor în SQLite

    În acest pas veți șterge intrările din tabelul dumneavoastră pe baza evaluării unui argument.

    În următoarea comandă vă interoghează baza de date și cereți ca aceasta să șteargă toți rechinii din tabelul sharks a căror vârstă este mai mică de 200 de ani:

    • DELETE FROM sharks WHERE age <= 200;

    Tiparea SELECT * FROM sharks; va verifica dacă Alyoshka și Himari, care aveau fiecare mai puțin de 200 de ani, au fost șterși. A rămas doar Sammy rechinul de Groenlanda:

    Output
    1|Sammy|Greenland Shark|427|272

    Pasul 7 – Îmbinarea informațiilor în SQLite

    Să ne imaginăm că avem două tabele: tabelul nostru actual sharks și un tabel endangered. Acum, ce s-ar întâmpla dacă tabelul endangered ar avea o valoare id care să se potrivească cu id-urile din tabelul sharks și ar avea, de asemenea, o valoare status care să indice starea de conservare a fiecărui rechin?

    Dacă ați dori să interogați datele din ambele tabele, ați putea folosi una dintre cele patru comenzi de îmbinare ale SQLite:

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

    Să creăm acel al doilea tabel și apoi să folosim INNER JOIN pentru a îmbina unele date.

    În primul rând, creați tabelul endangered:

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

    Acum alăturați tabelele:

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

    Lovitura dvs. va arăta astfel:

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

    Rețineți că ieșirea include și valoarea id din endangered. Puteți specifica ieșirea dorită cu o comandă mai explicită:

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

    De data aceasta, ieșirea exclude a doua valoare id:

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

    Aveți acum alăturat cu succes informații din mai multe tabele.

    Concluzie

    SQLite este un instrument util pentru gestionarea bazelor de date. Se poate crea rapid o bază de date și o poate manipula cu diverse comenzi. În urma acestui tutorial, aveți acum o înțelegere de bază a SQLite și sunteți pregătit să vă scufundați mai adânc în acest sistem de gestionare a bazelor de date.

    Pentru o prezentare excelentă a sistemelor de baze de date relaționale și a modului în care acestea se compară, consultați articolul nostru, SQLite vs. MySQL vs. PostgreSQL: A Comparison Of Relational Database Management Systems.

    În plus, multe limbaje mențin integrări cu SQLite. Pentru instrucțiuni privind utilizarea SQLite în interiorul codului Python, consultați tutorialul nostru, How To Use the sqlite3 Module in Python 3.

    .

    Lasă un răspuns

    Adresa ta de email nu va fi publicată.