创建数据库
$sqlite3 DatabaseName.db
该命令会创建名为Database的数据库,若该数据库已存在,则打开它。
实例
D:\sqlite>sqlite3 tmp.db sqlite version 3.8.11.1 2015-07-29 20:00:57 Enter ".help" for usage hints. sqlite> .databases seq name file --- --------------- ---------------------------------------------------------- 0 main D:\sqlite\tmp.db创建数据库之后,可以使用create table来建表,然后利用insert来插入元素。
sqlite> create table test (id intger primary key,name text); sqlite> insert into test (id,name) values (1,'liming'); sqlite> insert into test (id,name) values (2,'wangtong'); sqlite> insert into test (name) values ('yangyang'); sqlite> .mode column sqlite> .headers on sqlite> select * from test; id name ---------- ---------- 1 liming 2 wangtong yangyang sqlite> insert into test (name) values ('wanghai'); sqlite> select * from test; id name ---------- ---------- 1 liming 2 wangtong yangyang wanghai sqlite> select last_insert_rowid(); last_insert_rowid() ------------------- 4
.dump命令可以将数据存储在sql格式的文本中。不过你首先需要利用.output将输出定位到你要存储的文件,然后.dump,最后你需要将输出重新定位到屏幕.output stdout。
sqlite> .output tmp.sql sqlite> .dump sqlite> .output stdout
.backup命令可以用于备份你的数据库。
sqlite> .databases seq name file --- --------------- ---------------------------------- 0 main D:\sqlite\tmp.db sqlite> .backup main mytmp.db
最后利用.exit退出。
sqlite> .exit D:\sqlite>已经保存在sql文件中的数据,你可以重新导入数据库。在Windows下你可以永Ctrl+C退出数据库。
D:\sqlite>sqlite3 test.db < tmp.sql D:\sqlite>select * from test 'select' 不是内部或外部命令,也不是可运行的程序 或批处理文件。 D:\sqlite>sqlite3 test.db sqlite version 3.8.11.1 2015-07-29 20:00:57 Enter ".help" for usage hints. sqlite> select * from test ...> ^C D:\sqlite>sqlite3 test.db sqlite version 3.8.11.1 2015-07-29 20:00:57 Enter ".help" for usage hints. sqlite> select * from test; 1|liming 2|wangtong |yangyang |wanghai
附加数据库
sqlite 的 ATTACH DATABASE 语句可以将一个逻辑数据库附加在另一个真实存在的数据库上。
如果数据库尚未被创建,上面的命令将创建一个数据库,如果数据库已存在,则把数据库文件名称与逻辑数据库绑定在一起。
sqlite> ATTACH DATABASE 'test.db' as 'TEST1'; sqlite> ATTACH DATABASE 'test.db' as 'TEST2'; sqlite> .databases seq name file --- --------------- ---------------------------- 0 main D:\sqlite\test.db 2 TEST1 D:\sqlite\test.db 3 TEST2 D:\sqlite\test.db数据库名称 main 和 temp 被保留用于主数据库和存储临时表及其他临时数据对象的数据库。这两个数据库名称可用于每个数据库连接,且不应该被用于附加,否则将得到一个警告消息,如下所示:
sqlite> ATTACH DATABASE 'test.db' as 'main'; Error: database main is already in use sqlite> ATTACH DATABASE 'test.db' as 'temp'; Error: database temp is already in use
分离数据库
sqlite的DETACH DTABASE语句是用来把命名数据库从一个数据库连接分离和游离出来,连接是之前使用 ATTACH 语句附加的。如果同一个数据库文件已经被附加上多个别名,DETACH 命令将只断开给定名称的连接,而其余的仍然有效。您无法分离main或temp数据库。
sqlite> .databases seq name file --- --------------- ------------------------ 0 main D:\sqlite\test.db 2 TEST1 D:\sqlite\test.db 3 TEST2 D:\sqlite\test.db sqlite> DETACH DATABASE 'TEST2'; sqlite> .databases seq name file --- --------------- ------------------------ 0 main D:\sqlite\test.db 2 TEST1 D:\sqlite\test.db原文链接:https://www.f2er.com/sqlite/199415.html