-- Open a database filesqlite3database.db-- Open an in-memory databasesqlite3:memory:
Basic Commands
-- Show all tables.tables-- Show the schema of a table.schematable_name-- Exit SQLite.quit
Data Types
-- SQLite supports the following data typesNULL-- The value is a NULL valueINTEGER-- A signed integerREAL-- A floating point valueTEXT-- A text stringBLOB-- A binary large object
Creating Tables
-- Create a tableCREATETABLEtable_name(column1INTEGERPRIMARYKEY,column2TEXTNOTNULL,column3REALDEFAULT0.0);-- Create a table with a foreign keyCREATETABLEchild_table(idINTEGERPRIMARYKEY,parent_idINTEGER,FOREIGNKEY(parent_id)REFERENCESparent_table(id));
Inserting Data
-- Insert a single rowINSERTINTOtable_name(column1,column2)VALUES(1,'Hello');-- Insert multiple rowsINSERTINTOtable_name(column1,column2)VALUES(2,'World'),(3,'SQLite');
Querying Data
-- Select all rowsSELECT*FROMtable_name;-- Select specific columnsSELECTcolumn1,column2FROMtable_name;-- Select with a conditionSELECT*FROMtable_nameWHEREcolumn1=1;-- Select with sortingSELECT*FROMtable_nameORDERBYcolumn1DESC;-- Select with a limitSELECT*FROMtable_nameLIMIT10;
Updating Data
-- Update specific rowsUPDATEtable_nameSETcolumn2='Updated'WHEREcolumn1=1;-- Update all rowsUPDATEtable_nameSETcolumn2='Updated';
Deleting Data
-- Delete specific rowsDELETEFROMtable_nameWHEREcolumn1=1;-- Delete all rowsDELETEFROMtable_name;
Joins
-- Inner joinSELECT*FROMtable1INNERJOINtable2ONtable1.column=table2.column;-- Left joinSELECT*FROMtable1LEFTJOINtable2ONtable1.column=table2.column;-- Cross joinSELECT*FROMtable1CROSSJOINtable2;
Aggregate Functions
-- Count rowsSELECTCOUNT(*)FROMtable_name;-- Sum valuesSELECTSUM(column1)FROMtable_name;-- Average valuesSELECTAVG(column1)FROMtable_name;-- Minimum valueSELECTMIN(column1)FROMtable_name;-- Maximum valueSELECTMAX(column1)FROMtable_name;-- Group bySELECTcolumn2,COUNT(*)FROMtable_nameGROUPBYcolumn2;
Transactions
-- Begin a transactionBEGINTRANSACTION;-- Commit a transactionCOMMIT;-- Rollback a transactionROLLBACK;
Indexes
-- Create an indexCREATEINDEXindex_nameONtable_name(column1);-- Create a unique indexCREATEUNIQUEINDEXunique_index_nameONtable_name(column1);-- Drop an indexDROPINDEXindex_name;
Views
-- Create a viewCREATEVIEWview_nameASSELECTcolumn1,column2FROMtable_nameWHEREcolumn1=1;-- Select from a viewSELECT*FROMview_name;-- Drop a viewDROPVIEWview_name;
Importing and Exporting Data
-- Import data from a CSV file.modecsv.importfile.csvtable_name-- Export data to a CSV file.modecsv.headerson.outputfile.csvSELECT*FROMtable_name;.outputstdout