Hvordan bruger du sqlite på Linux/Ubuntu.

Som de selv beskriver det i man pages. 

SQLite Database Browser er et visuelt værktøj, der bruges til at oprette, design og
redigere database filer, der er kompatibel med SQLite. Det er beregnet til at blive brugt til
brugere og udviklere, der ønsker at oprette databaser, redigere og søge
data ved hjælp af en velkendt regneark lignende grænseflade uden behov for det
lære komplicerede SQL-kommandoer.

Siden den første udgivelse i 2000 har SQLite blevet brugt rigtigt meget. Det er inde på alle iPhone- og Android-telefoner samt Windows 10- eller Mac-computer samt Linux. Det er også i enhver internetbrowser, inklusive Chrome, Firefox og Safari samt utallige andre applikationer.

Den utrolige rækkevidde af SQLite databasen skyldes dens arkitektur. Det er et hurtigt, let bibliotek, der er inkorporere (eller linket, i udvikler-tale) i andre applikationer. Database motoren bliver en integreret del af produktet. Dette betyder, at du ikke behøver at levere en ekstern SQL-database server som MySQL, MariaDB eller Microsoft SQL Server.

SQLite har også et værktøj på kommandolinje niveau til manipulation af databaser, men det er biblioteket samt api, der har gjort det til en triumf. At have en selvstændig database motor gemt inde i dine applikationer fjerner mange problemer. Det forenkler din applikations installations rutiner og sænker minimumskrav til hardware til din applikation.

Da SQLite bruger en enkelt platform på tværs af platforme til sine databasetabeller, indekser og skemaer, kan hele databasen desuden flyttes til en anden computer. Du kan endda flytte det til en maskine, der kører et andet operativsystem ved at kopiere en fil.

SQLite er et udvikler bibliotek. Der er der dog ikke en front-end til det, hvilket betyder, at det ikke har et grafisk brugergrænseflade. Det er applikationen, der bruger biblioteket, der giver brugergrænsefladen. Kommandolinje værktøjet kan køre i en interaktiv tilstand, men det er stadig ikke en GUI.

DB Browser til SQLite (DB4S) er godt til redigering. Det er et visuelt værktøj, der er udviklet af et open source-projekt, der muliggør oprettelse og manipulation af SQLite databaser fra en GUI.

DB Browser til SQLite har eksisteret (i en eller anden inkarnation) siden 2003 og har gennemgået flere navneændringer. Tidligere blev det kaldt SQLite Browser, men det forårsagede forvirring. Folk troede, det var blevet skrevet af SQLite-teamet og videresendte således funktionsanmodninger og supportforespørgsler om DB4S til SQLite.

Så SQLite Browser blev omdøbt til DB Browser til SQLite. Du kan stadig se henvisninger til det gamle navn her og der. Faktisk bruger webstedet til projektet stadig “sqlitebrowser” som domæne, og det gamle navn bruges også under installationen af DB4S.

Med DB4S kan du.

  • Oprette databaser.
  • Impotere og expotere databaser.
  • Oprette/rette og slette tabler samt index.
  • Oprette/slette data i databasen.
  • Søg i databasen.

For at installere programmet skriver du denne kommado i en shell.

sudo apt-get install sqlitebrowser
For at installere sqlite database systemet. Dette er normal installeret.

$ sudo
 apt-get install sqlite3

Når DB4S starter, er der ikke indlæst en database i den. Vi vil se på to måder, du kan importere både data og databasetabeldefinitioner på, samt hvordan du kan opretter din egen database.

Nogle gange kan du få brug for at importere et dump eller du skal sende et dump i SQL-format. Denne indeholder de instruktioner, der er nødvendige for at genskabe en database og indsætte dens data i en databasen.

Et andet almindeligt format, der bruges til at importere tabel definitioner og data, er formatet med komma-adskilte værdier (CSV). Du kan bruge et datagenereringswebsted, såsom Database Test Data, til at generere  dummy-data til praktiske formål. Du kan derefter eksportere dine data som SQL eller CSV.

Nedenfor er en SQL-fil, vi oprettede på dette websted. Efter at den blev eksporteret, redigerede vi den og tilføjede en linje øverst i filen, som kræves til SQLite som hedder:
BEGIN TRANSACTION;

Vi gemmer derefter filen igen. I DB4S klikker vi på Filer> Import> Database fra SQL-fil.

En dialog med filvalg åbnes, så vi kan vælge vores SQL-fil. I vores eksempel hedder det “database_dump.sql”, og det er placeret i roden til vores hjemmekatalog.

Når den valgte fil er valgt, klikker vi på “Open”, og der åbnes en fil-save dialog box. Du skal nu navngive din nye database og beslutte, hvor den skal gemmes. Vi kaldte vores “geekbase.sqlite3”, og vi gemmer det i vores hjemmekatalog.

Klik på “Save”, når du er klar til at fortsætte. Vi har identificeret vores SQL-kildefil og navngivet vores nye database, så import processen kan nu begynde. Når den er afsluttet, vises meddelelsen Import complete.

 

DB4S viser nu strukturen i vores database.

Der er oprettet to tabeller, selvom der kun var en definition for en i SQL-filen. Dette skyldes, at “id” -feltet blev defineret som et automatisk stigende felt. Det tilføjes automatisk, hver gang en ny post føjes til databasen. SQLite opretter en tabel for at holde styr på felter, der automatisk øges.

Klik på Browse Data

Selvfølgelig ligger en databasekraft i dens evne til at søge og udtrække poster. Med en SQL-aktiveret database bruger vi SQL-sproget til at gøre dette. For at komme i gang skal du klikke på fanen “Execute SQL”.

SELECT * FROM account_details WHERE last_name LIKE "%ll%" ORDER BY state

Import af en databasetabel fra en CSV-fil

Vi kan også importere tabeller fra egnede CSV-filer. Den mest bekvemme måde at gøre det på er at have tabelfeltnavne i CSV-filen som den første række tekst. Nedenfor er en kort sektion af en CSV-fil.

Den første linje indeholder feltnavne: fornavn, efternavn, oprettet, e-mail, tilstand og ID. De andre linjer indeholder dataværdierne for hver post, der føjes til tabellen. Dette er de samme data som før kun filformatet er ændret.  Når du importerer CSV-data, skal du oprette en tom database, så du har noget at importere dem til. For at gøre dette skal du klikke på “New Database” i værktøjslinjen.

En dialogboks for fillagring åbnes. Navngiv din nye database, og beslut, hvor du vil gemme den. Vi kalder vores “howtogeek.sqlite3” og gemmer det i vores hjemme katalog.

Når dialogboksen “Rediger tabeldefinition” vises, skal du klikke på “Annuller”. Tilbage i hovedvinduet til DB4S skal du klikke på Filer> Import> Tabel fra CSV-fil. En dialogboks til filvalg åbnes, hvor du kan vælge din CSV-fil..

I vores eksempel kaldes det “brugere.csv”, og det er placeret i roden til vores hjemmekatalog. Klik på “Åbn”, og der vises en forhåndsvisningsdialog for at vise dig, hvordan DB4S fortolker CSV-data.

Filens navn bruges som navnet på tabellen. Du kan redigere dette, hvis du vil, bare sørg for at markere afkrydsningsfeltet ud for “Kolonnenavne i første linje.”

Klik på “OK” (det er off-screen i billedet ovenfor). Dataene importeres, og hvis alt er i orden, skal du se dialogboksen “Import done”; klik på “OK”.

Tryk nu på Browse Data for at se de nye records som er indsat.

Vi har dog stadig en lille finjustering at lave. Klik på fanen “Database struktur”, vælg navnet på tabellen, og klik derefter på “Modify tabel” i værktøjslinjen.

I dialogboksen “Edit tabel definition” skal du markere afkrydsningsfeltet “AI” (automatisk stigning) i feltet “id”.

Afkrydsningsfeltet “PK” (primær nøgle) vælges automatisk for dig; klik på “OK”. Dette indstiller “id” -feltet til automatisk stigning. Vi kan nu tilføje en ny post til databasen for at kontrollere, at den fungerer.

Klik på fanen “Execute SQL”, og skriv derefter følgende SQL i den øverste rude (bemærk, at vi leverer værdier for alle felter undtagen “id”):

 

INSERT INTO "users" 
("first_name","last_name","created","email","state")
VALUES ('Dave','McKay','12/08/2020','dave@llk.com','Idaho');

Klik på den blå pil (der ser ud som en Play-knap) for at køre din SQL-kommando. Klik på “Browse data”, og rul til bunden. Du bør se din nyligt tilføjede post med et automatisk angivet “id” -felt med en værdi, der er en højere end den tidligere højeste “id” -værdi.

Oprettelse af en database manuelt

Hvis du ikke har en SQL- eller CVS-fil, der skal importeres, skal du oprette din database manuelt. For at komme i gang skal du klikke på “New database” og en fil-gem-dialog vises. Indtast navnet på din nye database, og hvor du vil gemme den.

Vi har navngivet vores “geeksrock.sqlite3”, og vi gemmer det i “Dokumenter” -mappen. Når du har navngivet din database og navigeret til det sted, hvor du vil gemme den, skal du klikke på “Save”.

 
dialogboksen “Edit table definition” vises. Navngiv din nye tabel, og klik derefter på “Add field”. Du kan nu skrive et navn til feltet og vælge den type information, det vil indeholde i rullemenuen “Type”.

Afkrydsningsfelterne og andre indstillinger ved siden af ​​hvert felt giver dig mulighed for at tilføje følgende adfærd:

  • NN (Not Null): Når denne indstilling er indstillet, kan feltet ikke efterlades tomt. Hvis du forsøger at tilføje en post uden at angive en værdi for dette felt, afvise den.

  • PK (primær nøgle): Et felt (eller en gruppe af felter), der giver en unik identifikator til posterne i tabellen. Dette kan være en simpel numerisk værdi som de automatisk stigende heltal-felter, vi dækkede ovenfor. I en tabel over brugerkonti kan det dog være et brugernavn. Der kan kun være en primær nøgle i en tabel.

  • AI (automatisk stigning): Numeriske felter kan udfyldes automatisk med den næsthøjeste ubrugte værdi. Vi brugte dette i “id” -feltet i eksemplet, vi dækkede ovenfor.

  • U (entydigt): Dette felt i hver post skal have en unik værdi, hvilket betyder, at der ikke kan være duplikater i dette felt i tabellen.

  • Default: En standardværdi gives, hvis der tilføjes en post, der ikke har nogen værdi i dette felt.

  • Check: Et felt kan få en kontrol udført, når en post tilføjes. For eksempel kan du kontrollere, at værdien i et telefonnummerfelt indeholder mindst 10 tegn.

  • Collation: Sqlite kan bruge forskellige metoder til sammenligning af strenge. Standard er
    BINÆR. Andre muligheder er NOCASE, som ikke skelner mellem store og små bogstaver, og RTRIM, som ignorerer det bageste hvide rum. I de fleste tilfælde kan du lade dette være til standardværdien.
  • Foreign key: Et felt eller en gruppe af felter i en post, der skal matche en nøgle i en anden tabel. For eksempel i en database med værkstedsværktøjer har du muligvis en tabel med individuelle værktøjer og en anden tabel med værktøjskategorier. Hvis værktøjskategorierne er “hammer”, “skruenøgle” og “skruetrækker”, kan du ikke tilføje en registrering af typen “mejsel”.

Klik på “OK”, når du har tilføjet de ønskede felter. Når din database er oprettet, og din første tabel er tilføjet, kan du tilføje nogle poster.

I fanen “Execute SQL” brugte vi SQL INSERT-sætningen flere gange for at tilføje nogle poster til tabellen.

Vi kan også bruge fanen “Browse Dara” til at se vores nye poster.

Hvis du foretrækker at tilføje nye poster via brugergrænsefladen, skal du klikke på “New Record” på værktøjslinjen. Du kan derefter indtaste værdierne for den nye post uden at forstå SQL.

Andre Programmers databaser.

Du kan også bruge DB4S til at se de SQLite-databaser, der hører til andre applikationer. At undersøge strukturen eller indholdet af andre databaser kan være lærerigt (eller bare interessant). Det er dog vigtigt, at du ikke foretager ændringer i databaser, der ejes af andre applikationer, ellers kan du påvirke driften af den applikation negativt.

Lad os se på en af SQLite-databaser, som Firefox opretter og vedligeholder. Klik på “Open database” på værktøjslinjen, så vises en filåbningsdialog. Firefox gemmer sine filer i en mappe kaldet “firefox”, som er inde i en skjult mappe kaldet “.mozilla”, der sidder i dit hjemmekatalog.

På vores testmaskine fandt vi Firefox SQLite-databaser på dette sted: “home/dave/.mozilla /firefox/vpvuy438.default-release”; din vil være på et lignende sted.

Vi åbner databasen “cookies.sqlite”, så vi fremhæver filen og derefter klikker på “Open”. Når databasen er åbnet, kan du undersøge dens tabelstruktur, feltdefinitioner og data.

Her kan vi se en række Google- og YouTube-cookies.

Det er også nyttigt at eksportere en database (ved at klikke på File> Export> Database to SQL File). Ved at se på SQL-dumpen i en database kan du se hele skemaet for databasen gengivet i SQL-statemen

Author:

Jeg er en professionel system administrator og grundlægger af linuxboxen.dk Jeg er en ivrig Linux-elsker og open source-entusiast. Jeg bruger Ubuntu og tror på at dele viden. Bortset fra Linux, elsker musik og dyr. Jeg er en stor fan af Dire straits.

Skriv et svar