创建数据库:
D:\>sqlite3 test.dbSQLite version 3.7.7.1 2011-06-28 17:39:05Enter ".help" for instructionsEnter SQL statements terminated with a ";"sqlite> .databasesseq name file--- --------------- ----------------------------------------------------------0 main D:\test.dbsqlite>我们执行了sqlite3命令,参数就是数据库的名称,如果该数据库已存在,则使用,如果不存在,则新建一个,这里我们简单的在当前位置创建了test.db,你也可以在任何存在的并且可写的目录下创建自己的数据库。(如果对于SQLite的命令不太熟悉,可以执行“.help”命令列出所有的命令清单进行查看)。 创建表:
sqlite> CREATE TABLE person (id INTEGER PRIMARY KEY AUTOINCREMENT, name VARCHAR(20), age SMALLINT);sqlite> .tablespersonsqlite> .schema personCREATE TABLE person (id INTEGER PRIMARY KEY AUTOINCREMENT, name VARCHAR(20), age SMALLINT);sqlite>在我们创建表之后,可以用“.tables”命令去查看已有的表,用“.schema”命令去查看表的结构,如果后面没有表名做参数,则将会输出所有表的建表语句。
插入数据:
sqlite> INSERT INTO person VALUES (NULL, 'john', 30);sqlite> SELECT * FROM person;1|john|30 从.sql文件导入数据:
sqlite> .read test.sqlsqlite> SELECT * FROM person;1|john|302|david|353|henry|40sqlite> 分析数据库使用状态:
D:\>sqlite3_analyzer test.db/** Disk-Space Utilization Report For test.dbPage size in bytes.................... 1024Pages in the whole file (measured).... 4Pages in the whole file (calculated).. 4Pages that store data................. 4 100.0%Pages on the freelist (per header).... 0 0.0%Pages on the freelist (calculated).... 0 0.0%Pages of auto-vacuum overhead......... 0 0.0%Number of tables in the database...... 4Number of indices..................... 0Number of named indices............... 0Automatically generated indices....... 0Size of the file in bytes............. 4096Bytes of user payload stored.......... 39 0.95%... 备份数据库:
备份 SQLite 数据库有两种方法。如果数据库正在使用中,则应从命令行界面使用 .dump 命令。这样可以创建一个包含必要命令和数据的文件,从而重新创建数据库。.dump 命令也可以用于备份数据库表。
sqlite> .dumpPRAGMA foreign_keys=OFF;BEGIN TRANSACTION;CREATE TABLE person (id INTEGER PRIMARY KEY AUTOINCREMENT, name VARCHAR(20), age SMALLINT);INSERT INTO "person" VALUES(1,'john',30);INSERT INTO "person" VALUES(2,'david',35);INSERT INTO "person" VALUES(3,'henry',40);DELETE FROM sqlite_sequence;INSERT INTO "sqlite_sequence" VALUES('person',3);COMMIT;sqlite> .output dump.sqlsqlite> .dumpsqlite>我们可以指定输出的目标为一个文件,然后再使用命令时,输出信息就会写入指定的文件,如果想恢复为标准输出,可以这样设定:sqlite> .output stdoutsqlite> .dumpPRAGMA foreign_keys=OFF;BEGIN TRANSACTION;CREATE TABLE person (id INTEGER PRIMARY KEY AUTOINCREMENT, name VARCHAR(20), age SMALLINT);INSERT INTO "person" VALUES(1,'john',30);INSERT INTO "person" VALUES(2,'david',35);INSERT INTO "person" VALUES(3,'henry',40);DELETE FROM sqlite_sequence;INSERT INTO "sqlite_sequence" VALUES('person',3);COMMIT;sqlite> 如果数据库没有处于使用状态,则可以直接将数据库文件复制到安全位置。
最后,我们可以使用“.quit”或“.exit”退出SQLite。