SQLITE

Învață SQLite: comenzi explicate cu exemple

66 de comenzi 18 categorii Comunitate & Q&A

SQLite este o bază de date SQL care nu are server: toată baza stă într-un singur fișier, iar biblioteca SQLite este inclusă direct în program. O găsești în fiecare telefon Android și iPhone, în browsere, în aplicații desktop și în multe site-uri mici. Python o are inclusă, prin modulul sqlite3.

Această secțiune se ocupă de ce face SQLite diferit: utilitarul sqlite3 din linia de comandă și comenzile cu punct (.tables, .schema, .import), afinitatea tipurilor și tabelele STRICT, rowid, upsert cu ON CONFLICT, RETURNING, funcțiile JSON și de dată, PRAGMA, tranzacțiile, ATTACH și căutarea full-text cu FTS5. Pentru SQL general (SELECT, JOIN, GROUP BY) vezi și secțiunea MySQL.

Toate exemplele au fost rulate cu sqlite3 3.54 pe o bază de date în memorie, cu rezultatele afișate în modul box; ce vezi pe pagină este rezultatul real.

Linia de comandă sqlite3 7 comenzi

cli 4 comenzi

pragma 5 comenzi

sql 3 comenzi

functions 4 comenzi

extensions 2 comenzi

api 1 comandă

Tabele și tipuri de date 8 comenzi

Inserare și modificare 3 comenzi

Interogări avansate 5 comenzi

Funcții JSON 5 comenzi

Dată și oră 3 comenzi

Indexuri și performanță 5 comenzi

Vederi și declanșatori 2 comenzi

PRAGMA și configurare 4 comenzi

Tranzacții și baze atașate 3 comenzi

Căutare full-text (FTS5) 1 comandă

SQLite din alte limbaje 1 comandă

Toate funcțiile, comenzile și tehnicile SQLite

Ghidul complet de referință pentru dezvoltarea și administrarea bazelor de date cu SQLite 3. Consultați tabelele tematice de mai jos pentru a accesa paginile dedicate fiecărei comenzi interne, instrucțiuni SQL, funcții de dată/JSON și pragme de configurare, conținând exemple practice gata de rulat și explicații detaliate în limba română.

1. Comenzi Utilitare CLI sqlite3 (dot-commands)

Inspectarea tabelelor, schemelor, import/export de date, backup online și cronometrare în consolă.

Comandă / Funcție / PRAGMA Rol & Explicație Detaliată
.tables Listarea tuturor tabelelor și a vederilor existente în baza de date curentă.
.schema Afișarea instrucțiunilor CREATE TABLE și CREATE INDEX care definesc structura.
.mode și .headers Configurarea formatului de afișare (box, column, csv, json) și activarea antetelor.
.import Importul rapid al fișierelor CSV sau TSV direct într-un tabel existent sau nou creat.
.dump Exportul întregii baze de date sau al unui tabel sub forma unui script SQL de recreare.
.read Executarea directă a comenzilor și a scripturilor SQL dintr-un fișier extern de pe disc.
.open Închiderea bazei curente și deschiderea unui alt fișier de bază de date în aceeași sesiune.
.output & .once Redirecționarea rezultatelor interogărilor către fișiere externe de pe disc.
.backup Crearea sigură de backup-uri online ale bazei de date active chiar și în timpul scrierilor.
.expert Asistentul intern automat care recomandă crearea de indecși optimi pentru o interogare dată.
.timer on / off Cronometrarea automată a timpului real și a consumului CPU pentru fiecare comandă executată.

2. Structură Bază de Date & Tabele

Definirea tabelelor, tipuri de date, reguli de afinitate, tabele STRICT și coloane generate.

Comandă / Funcție / PRAGMA Rol & Explicație Detaliată
CREATE TABLE Definirea structurii unui tabel nou cu specificarea coloanelor și a constrângerilor.
Afinitatea tipurilor și typeof() Sistemul dinamic de tipuri de date din SQLite și funcția de verificare a tipului real.
Tabele STRICT Forțarea tipizării rigide clasice a coloanelor (INT, TEXT, REAL, BLOB) împotriva valorilor invalide.
rowid și INTEGER PRIMARY KEY Cheia primară internă pe 64 de biți și crearea aliasului de rând rapid B-Tree.
WITHOUT ROWID Tabele compacte B-Tree care elimină coloana ascunsă rowid pentru economisirea spațiului.
AUTOINCREMENT Garantarea incrementării stricte monotone a cheii primare fără reutilizarea ID-urilor șterse.
ALTER TABLE Redenumirea tabelelor, adăugarea sau redenumirea coloanelor și eliminarea coloanelor existente.
Coloane generate (GENERATED ALWAYS AS) Coloane virtuale sau stocate fizic calculate automat din alte coloane ale tabelului.

3. Modificări de Date & Tranzacții ACID

Upsert cu ON CONFLICT, clauza RETURNING, tranzacții atomice, savepoint-uri și vacuum.

Comandă / Funcție / PRAGMA Rol & Explicație Detaliată
INSERT ... ON CONFLICT (upsert) Actualizarea atomică a rândurilor existente la coliziune de cheie unică (DO UPDATE).
RETURNING Returnarea imediată a valorilor nou generate sau actualizate fără un SELECT suplimentar.
INSERT OR IGNORE / OR REPLACE Tratarea erorilor de unicitate prin ignorare silențioasă sau înlocuirea rândului vechi.
BEGIN, COMMIT, ROLLBACK Garantarea atomicității și consistenței operațiunilor multiple prin tranzacții explicite.
SAVEPOINT Puncte intermediare de salvare într-o tranzacție pentru revenire parțială cu ROLLBACK TO.
CREATE VIEW Salvarea interogărilor complexe sub formă de tabele virtuale reutilizabile.
CREATE TRIGGER Executarea automată de instrucțiuni SQL la evenimente de INSERT, UPDATE sau DELETE.
VACUUM Reorganizarea și defragmentarea fizică a fișierului de bază de date pentru eliberarea spațiului.

4. Interogări Avansate, CTE & Funcții Window

Common Table Expressions, recursivitate, funcții analitice pe ferestre și agregare de șiruri.

Comandă / Funcție / PRAGMA Rol & Explicație Detaliată
WITH (CTE) Common Table Expressions pentru scrierea de interogări SQL modulare și ușor de citit.
WITH RECURSIVE Interogări recursive pentru generarea de serii de date și parcurgerea structurilor arborescente.
ROW_NUMBER, RANK, LAG Funcții de fereastră analitice pentru numerotare, clasamente și acces la rânduri adiacente.
SUM() OVER totaluri cumulate Calculul totalurilor cumulative și al mediilor glisante fără clauze de grupare masivă.
group_concat / string_agg Concatenarea valorilor din mai multe rânduri într-un singur șir delimitat prin separator.
coalesce() & ifnull() Substituirea valorilor NULL cu o expresie de rezervă sau alegerea primei valori ne-nule.

5. Funcții JSON & Operatori Nativi

Manipularea documentelor semi-structurate JSON prin operatori și funcții tabelare native.

Comandă / Funcție / PRAGMA Rol & Explicație Detaliată
json_extract() Extragerea valorilor și obiectelor scalare dintr-un document JSON folosind căi JSONPath.
Operatorii -> și ->> Sintaxă compactă pentru extragerea valorilor JSON native (->) sau sub formă de text decodat (->>).
json_each / json_tree Funcții tabelare care despachetează array-urile și arborii JSON în rânduri SQL relaționale.
json_group_array / json_group_object Funcții de agregare care împachetează valorile din rânduri într-un array sau obiect JSON.
json_set / json_insert / json_replace / json_remove Modificarea, inserarea sau ștergerea atributelor specifice dintr-un document JSON.
hex() & unhex() Conversia datelor binare BLOB în reprezentare hexazecimală și decodarea acesteia în octeți.

6. Manipulare Date Calendaristice & Funcții Scalare

Formatarea datelor temporale, funcții de text, generare pseudo-aleatorie și baze auxiliare.

Comandă / Funcție / PRAGMA Rol & Explicație Detaliată
strftime() Formatarea flexibilă a datelor calendaristice și a orelor folosind specificatori de format.
date, time, datetime Funcții native pentru calculul și ajustarea datelor temporale cu modificatori relativi.
unixepoch, julianday, timediff Conversia între timpul Unix în secunde, zile iuliene și calculul diferențelor temporale.
instr() & substr() Localizarea poziției subșirurilor și tăierea precisă a porțiunilor de text.
random() & randomblob() Generarea de numere întregi pseudo-aleatorii pe 64 de biți și a vectorilor de octeți binari.
DETACH DATABASE Închiderea și deconectarea unei baze de date auxiliare atașate anterior cu ATTACH.
ATTACH DATABASE Conectarea mai multor fișiere de bază de date în aceeași sesiune pentru interogări cross-database.
REINDEX Reconstruirea completă a arborilor de indexare dintr-o tabelă pentru eliminarea fragmentării.

7. Indecși, Planuri de Interogare & Mentenanță

Indecși B-tree, indecși parțiali, analiză EXPLAIN și inspecția metadatelor tabelelor.

Comandă / Funcție / PRAGMA Rol & Explicație Detaliată
CREATE INDEX Accelerarea interogărilor de căutare prin crearea de arbori B-tree pe coloane frecvent filtrate.
Index parțial (CREATE INDEX ... WHERE) Indexarea exclusivă a unui subset de rânduri pentru economisirea spațiului și a memoriei.
Index pe expresii Indexarea rezultatelor calculate ale funcțiilor aplicate peste coloane (ex: LOWER(email)).
EXPLAIN QUERY PLAN Afișarea strategiei alese de optimizator: scanare completă (SCAN) sau utilizare de index (SEARCH).
ANALYZE Colectarea statisticilor de distribuție a datelor în sqlite_stat1 pentru optimizatorul bazat pe cost.
PRAGMA quick_check Verificarea rapidă a structurii fizice a fișierului de date sărind consistența indecșilor.
PRAGMA integrity_check Scanarea exhaustivă a întregului fișier de bază de date pentru detectarea coruperilor de disc.
PRAGMA table_info Inspecția metadatelor coloanelor unui tabel: nume, tipuri, constrângeri NOT NULL și cheie primară.

8. Comenzi PRAGMA, Extensii & Conectivitate API

Setări de performanță WAL, chei străine, căutare full-text FTS5, extensii spațiale și API C/Python.

Comandă / Funcție / PRAGMA Rol & Explicație Detaliată
PRAGMA foreign_keys Activarea sau dezactivarea verificării constrângerilor de cheie străină în sesiune.
PRAGMA journal_mode (WAL) Activarea modului Write-Ahead Logging pentru citiri paralele nelimitate în timpul scrierilor.
PRAGMA synchronous Controlul frecvenței de apel a funcției fsync() pe disc pentru viteză maximă în modul WAL.
PRAGMA cache_size Alocarea memoriei RAM pentru cache-ul de pagini al bazei de date în kiloocteți.
PRAGMA user_version Stocarea unui număr întreg de versiune în antetul fișierului pentru migrări de schemă.
PRAGMA busy_timeout Setarea duratei de așteptare la concurență înainte de a arunca eroarea database is locked.
FTS5 (căutare full-text) Modulul oficial de căutare textuală rapidă cu suport pentru operatori booleeni și scorare BM25.
Extensia R*Tree (index spațial) Indexare geometrică multidimensională pentru interogări pe coordonate GPS și hărți.
Extensia Session & Changesets Înregistrarea modificărilor atomice în fișiere binare compacte pentru sincronizare offline.
SQLite din Python (sqlite3) Utilizarea driverului nativ sqlite3 din biblioteca standard Python pentru aplicații complete.
C API: sqlite3_open() & sqlite3_exec() Interfața nativă în limbajul C/C++ pentru deschiderea bazei și execuția interogărilor.
Comunitate & Schimb de cunoștințe

Discuții, Întrebări & Coduri SQLite

Ai o întrebare legată de SQLite, cauți o soluție sau vrei să împărtășești un fragment util de cod? Trimite mai jos contribuția ta.

💬

Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!

Nu au fost adăugate încă întrebări sau exemple de cod pentru această pagină. Dacă ai întâlnit o problemă sau ai un snippet util, adaugă-l mai jos pentru a-i ajuta pe ceilalți.

Comunitate Adaugă o întrebare sau distribuie un cod

Moderare & Siguranță:

Pentru a menține calitatea și securitatea informațiilor, fiecare întrebare sau fragment de cod/prompt este analizat (manual sau prin moderare asistată de AI) înainte de publicare.