SQLite Cookbook: Difference between revisions

From Littledamien Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 26: Line 26:
<syntaxhighlight lang="sql">
<syntaxhighlight lang="sql">
.schema [tablename]
.schema [tablename]
</syntaxhighlight>
=== Display columns in table ===
<syntaxhighlight lang="sql">
PRAGMA table_info(table_name);
</syntaxhighlight>
</syntaxhighlight>


Line 34: Line 40:
</syntaxhighlight>
</syntaxhighlight>


== Queries ==


== Renaming or deleting a column from a SQLite table ==
=== Controlling query results format ===
 
<syntaxhighlight lang="sql">
.mode columns
.header on
</syntaxhighlight>
 
== Defining and altering tables ==
 
=== Renaming or deleting a column from a SQLite table ===


* SQLite supports `ALTER TABLE [table_name] ADD COLUMN ([column_name] [column_properties])`.
* SQLite supports `ALTER TABLE [table_name] ADD COLUMN ([column_name] [column_properties])`.
Line 48: Line 64:
DROP TABLE t1_backup;
DROP TABLE t1_backup;
COMMIT;
COMMIT;
</syntaxhighlight>
=== Autoincrement primary key ===
Create a primary key with
<syntaxhighlight lang="sql">
CREATE TABLE my_table {
    id INTEGER PRIMARY KEY,
    val TEXT
};
</syntaxhighlight>
Insert a new row in the table, placing a value one greater than the highest existing primary key in the `id` column, by assigning `NULL` to the `id` column <ref>[http://www.sqlite.org/faq.html#q1|SQLite Frequently Asked Questions] &mdash; sqlite.org</ref>:
<syntaxhighlight lang="sql">
INSERT INTO my_table (id, val) VALUES (NULL, 'some value');
</syntaxhighlight>
</syntaxhighlight>


Line 55: Line 88:
.quit
.quit
</syntaxhighlight>
</syntaxhighlight>
or
<syntaxhighlight lang="sql">
.exit
</syntaxhighlight>
== Notes ==
<references />

Revision as of 17:12, 14 December 2017

Overview

Task that have been tackled in the past with SQLite.

Running sqlite from the command line in Windows 7

  • Run a bash shell, e.g. GIT Bash
  • sqlite3 can be run in Powershell
  • If the sqlite3 program isn't in the system path, it can be run using the full path to the executable:
$ /c/path/to/django/install/sqlite/sqlite3 [database_name]

Displaying table properties

Show tables in the database

.tables

Show table definition

.schema [tablename]

Display columns in table

PRAGMA table_info(table_name);

Save table definition to text file

$ /path/to/django/install/sqlite/sqlite3 [database_name] '.schema [tablename]' > /path/to/export-file.txt

Queries

Controlling query results format

.mode columns
.header on

Defining and altering tables

Renaming or deleting a column from a SQLite table

  • SQLite supports ALTER TABLE [table_name] ADD COLUMN ([column_name] [column_properties]).
  • SQLite does not support UPDATE COLUMN or DROP COLUMN.
BEGIN TRANSACTION;
CREATE TEMPORARY TABLE t1_backup(a,b);
INSERT INTO t1_backup SELECT a,b FROM t1;
DROP TABLE t1;
CREATE TABLE t1(a,b);
INSERT INTO t1 SELECT a,b FROM t1_backup;
DROP TABLE t1_backup;
COMMIT;

Autoincrement primary key

Create a primary key with

CREATE TABLE my_table {
    id INTEGER PRIMARY KEY,
    val TEXT
};

Insert a new row in the table, placing a value one greater than the highest existing primary key in the id column, by assigning NULL to the id column [1]:

INSERT INTO my_table (id, val) VALUES (NULL, 'some value');

Quitting the sqlite3 program

.quit

or

.exit

Notes