SQLite
SQLEn selvstændig, serverløs, nulkonfiguration indlejret SQL-databasemotor.
Beskrivelse
SQLite er en unik database - den kræver ingen separat serverproces og gemmer hele databasen i en enkelt fil. Dette gør den perfekt til indlejrede systemer, mobilapps, desktop-applikationer og prototyping. SQLite er et af de mest udbredte softwaresystemer i verden - den findes i smartphones (iOS og Android), browsere (alle moderne browsere), indlejrede enheder og desktop-apps. Trods sin simplicitet understøtter SQLite de fleste SQL-funktioner inklusiv transaktioner, triggere, views og underforespørgsler. Den følger ACID-principper og har vist sig ekstremt pålidelig - NASA bruger den i rumfartøjer, og den er testet til 100% grenafløbsdækning. SQLite er ideel når du har brug for en lokal database uden overhead af klient-server-arkitektur. Den kan håndtere databaser op til 281 terabytes og er hurtigere end mange klient-server-databaser til læseoperationer.
Features
- •Nulkonfiguration (ingen opsætning)
- •Serverløs (indlejret i applikation)
- •Enkelt databasefil
- •ACID-kompatible transaktioner
- •Cross-platform
- •Public domain (ikke engang open source-licens)
- •Fuldtekstsøgning via FTS5
- •JSON-understøttelse
Query Eksempel
-- SQLite er standard SQL
-- Opret tabel
CREATE TABLE tasks (
id INTEGER PRIMARY KEY AUTOINCREMENT,
title TEXT NOT NULL,
description TEXT,
completed BOOLEAN DEFAULT 0,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);
-- Indsæt data
INSERT INTO tasks (title, description)
VALUES
('Køb ind', 'Mælk, brød, æg'),
('Skriv rapport', 'Månedlig statusrapport');
-- Forespørgsel med JSON (SQLite 3.38+)
CREATE TABLE users (
id INTEGER PRIMARY KEY,
name TEXT,
metadata JSON
);
INSERT INTO users (name, metadata)
VALUES ('Maria', json('{"age": 28, "city": "København"}'));
SELECT
name,
json_extract(metadata, '$.city') as city
FROM users
WHERE json_extract(metadata, '$.age') > 25;
-- Fuldtekstsøgning
CREATE VIRTUAL TABLE articles_fts
USING fts5(title, content);
INSERT INTO articles_fts (title, content)
VALUES ('Guide til SQLite', 'SQLite er en indlejret database...');
SELECT * FROM articles_fts
WHERE articles_fts MATCH 'indlejret database';Anvendelsesområder
- •Mobilapps (iOS, Android)
- •Desktop-applikationer
- •Indlejrede enheder og IoT
- •Prototyping og udvikling
- •Browserlagring (IndexedDB-backend)
Fordele
- ✓Ekstremt simpel at bruge
- ✓Ingen serveropsætning eller administration
- ✓Perfekt til indlejrede brugsscenarier
- ✓Meget hurtig til læseoperationer
- ✓Minimal afhængighed (bare én fil)
Ulemper
- ✗Begrænset samtidige skrivninger
- ✗Ikke skalerbar til flerbrugerscenarier
- ✗Ingen brugerstyring eller rettigheder
- ✗Praktisk databasestørrelsesbegrænsning (~1TB)
- ✗Ikke ideel til høj skrivesamtidighed
Bedst til
- →Mobil- og desktop-applikationer
- →Indlejrede systemer
- →Enkeltbrugerapplikationer
- →Udvikling og test
- →Caching og midlertidig lagring
Ikke anbefalet til
- ⚠Flerbruger webapplikationer
- ⚠Høj skrivesamtidighed
- ⚠Meget store datasæt (>100GB)
- ⚠Distribuerede systemer
- ⚠Klient-server-arkitekturer