微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

SQLite3使用方法大全四之数据库创建、附加、分离

数据库创建

语法

基本语法:

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';

实例

数据库1sqlite> select * from student;
jack|15|5

数据库2sqlite> select * from coder;
mark|9000

现在在数据库1中附加数据库2sqlite> 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相反。

原文地址:https://www.jb51.cc/sqlite/199329.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐