数据库创建
语法
基本语法:
sqlite3 [table_name]
/* 例如创建test.db数据库: */
lu@lu$ sqlite3 test.db
我们还可以这样查看是否已经创建数据库:
sqlite> .databases
seq name file
--- ------- -----------------------------------
0 main /home/lu/test/sqlite3/test.db
数据库导出(dump)
这里数据库的导出包含了数据表的导出,当然表中的数据的也会以命令的形式呈现出来,可以与我们在(一)中所提及的”.schema“有所区别。
语法
sqlite> .q
sqlite3 [xxx.db] .dump > [xxx.sql]
举例
lu@lu:~/test/sqlite3$ sqlite3 test.db .dump > t.spl
lu@lu:~/test/sqlite3$ cat t.spl
PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE test (
name text,age text,class integer);
INSERT INTO "test" VALUES('jack','15',5);
数据库的附加
假设这样一种情况,当在同一时间有多个数据库可用,您想使用其中的任何一个。sqlite 的 ATTACH DTABASE 语句是用来选择一个特定的数据库,使用该命令后,所有的 sqlite 语句将在附加的数据库下执行。
语法
ATTACH DATABASE 'xxx.db' As 'Alias-Name';
注意:xxx.db如果不是在同一目录下要注意描述绝对地址或相对地址
例如:
(1)ATTACH DATABASE '../../xxx.db' As 'Alias-Name';
(2)ATTACH DATABASE '/home/lu/test/xxx.db' As 'Alias-Name';
实例
数据库1:
sqlite> select * from student;
jack|15|5
数据库2:
sqlite> select * from coder;
mark|9000
现在在数据库1中附加数据库2:
sqlite> ATTACH DATABASE "test2.db" As "tmp";
sqlite> .database
seq name file
--- --------------- --------------------------------
0 main /home/lu/test/sqlite3/test.db
2 tmp /home/lu/test/sqlite3/test2.db
sqlite> select * from tmp.coder;
mark|9000
当在同一时间有多个数据库可用,你想使用其中的任何一个,此时这个功能就发挥作用了。
数据库分离
sqlite的 DETACH DTABASE 语句是用来把命名数据库从一个数据库连接分离和游离出来,连接是之前使用 ATTACH 语句附加的。如果同一个数据库文件已经被附加上多个别名,DETACH 命令将只断开给定名称的连接,而其余的仍然有效。
您无法分离 main 或 temp 数据库。
如果数据库是在内存中或者是临时数据库,则该数据库将被摧毁,且内容将会丢失。
语法
DETACH DATABASE 'Alias-Name';
举例
sqlite> DETACH DATABASE 'tmp';
sqlite> .database
seq name file
--- --------------- --------------------------------
0 main /home/lu/test/sqlite3/test.db
现在只剩下main了,操作与ATTACH DATABASE相反。