SQLite学习笔记(4)-数据库基本操作

创建数据库

SQLite中创建数据库的命令如下:


$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







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值