sqlite命令

1.基本使用

1.1. 打开或新建数据库

sqlite3 filename
检查filename是否存在,如果不存在就创建并进入数据库(如果直接退出,数据库文件不会创建),如果已经存在直接进入数据库,对数据库进行操作。

1.2. sqlite命令

.help # 查看帮助,列出所有命令信息;
.database # 显示数据库信息;包含当前数据库的位置;
.tables[.table] # 显示数据库中的表名称,没有表则不显示;

.headers on/off # 显示表头,默认off
.mode list|column|insert|line|tabs|tcl|csv # 改变输出格式
.separator “X” # 更改分界符号为X

.schema [objectname] # 查看创建该数据库对象时的SQL命令,如果没有这个数据库对象就不显示内容,不会有错误提示
.dump # 生成整个数据库的脚本在终端显示
.dump ?TABLE? # 生成形成数据库表的SQL脚本
.read FILENAME # 执行指定文件中的SQL语句

.output [stdout] # 将输出打印到屏幕
.output filename # 将输出打印到文件
.nullvalue STRING # 查询时用指定的串代替输出的NULL串 默认为.nullvalue ”

2.操作实例

[root@bogon /tmp]# sqlite3 demo.db
SQLite version 3.3.6
Enter “.help” for instructions
sqlite> .help # 显示所有命令
sqlite>
sqlite> .show # 显示环境变量
echo: off
explain: off
headers: off
mode: list
nullvalue: “”
output: stdout
separator: “|”
width:
sqlite>
sqlite> .table # 显示所有的表
EMP
sqlite> .database # 查看连接的数据库
seq name file
— ————— ——- — ———–
0 main /tmp/demo.db
1 temp
sqlite>
sqlite> select * from sqlite_master where type=’table’; # 查询所有的表
table|EMP|EMP|2|CREATE TABLE EMP
(
EMPNO int(4) primary key,
ENAME varchar(10),
JOB varchar(9),
MGR int(4),
HIREDATE date,
SAL int(7),
COMM int(7),
DEPTNO int(2)
)
sqlite>
sqlite> .schema emp # 查看表结构
CREATE TABLE EMP
(
EMPNO int(4) primary key,
ENAME varchar(10),
JOB varchar(9),
MGR int(4),
HIREDATE date,
SAL int(7),
COMM int(7),
DEPTNO int(2)
);
sqlite>
sqlite> .dump emp # 导出表
PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE EMP
(
EMPNO int(4) primary key,
ENAME varchar(10),
JOB varchar(9),
MGR int(4),
HIREDATE date,
SAL int(7),
COMM int(7),
DEPTNO int(2)
);
INSERT INTO “EMP” VALUES(7499,’ALLEN’,’SALESMAN’,7698,’20-02-1981’,1600,300,30);
COMMIT;
sqlite>
sqlite> .output a.log # 重定向到文件
sqlite> .schema emp
sqlite> .database
sqlite> .table
EMP
sqlite> select * from emp;
sqlite> .output stdout # 重定向到标准输出
sqlite>
sqlite> .read insert.sql # 执行脚本
sqlite> select * from emp;
7499|ALLEN|SALESMAN|7698|20-02-1981|1600|300|30
7782|CLARK|MANAGER|7839|09-06-1981|2450||10
7788|SCOTT|ANALYST|7566|19-04-1987|3000||20
sqlite>
sqlite> .header on # 显示表头,默认off
sqlite> select * from emp;
EMPNO|ENAME|JOB|MGR|HIREDATE|SAL|COMM|DEPTNO
7499|ALLEN|SALESMAN|7698|20-02-1981|1600|300|30
7782|CLARK|MANAGER|7839|09-06-1981|2450||10
7788|SCOTT|ANALYST|7566|19-04-1987|3000||20
sqlite>
sqlite> .header off # 不显示表头
sqlite>
sqlite> .mode list # 如果字段值为NULL默认不显示,也就是显示空字符串
sqlite> select * from emp;
7499|ALLEN|SALESMAN|7698|20-02-1981|1600|300|30
7782|CLARK|MANAGER|7839|09-06-1981|2450||10
7788|SCOTT|ANALYST|7566|19-04-1987|3000||20
sqlite>
sqlite> .mode column
sqlite> select * from emp;
7499 ALLEN SALESMAN 7698 20-02-1981 1600 300 30
7782 CLARK MANAGER 7839 09-06-1981 2450 10
7788 SCOTT ANALYST 7566 19-04-1987 3000 20
sqlite>
sqlite> .mode insert
sqlite> select * from emp;
INSERT INTO table VALUES(7499,’ALLEN’,’SALESMAN’,7698,’20-02-1981’,1600,300,30);
INSERT INTO table VALUES(7782,’CLARK’,’MANAGER’,7839,’09-06-1981’,2450,NULL,10);
INSERT INTO table VALUES(7788,’SCOTT’,’ANALYST’,7566,’19-04-1987’,3000,NULL,20);
sqlite>
sqlite> .mode line
sqlite> select * from emp;
EMPNO = 7499
ENAME = ALLEN
JOB = SALESMAN
MGR = 7698
HIREDATE = 20-02-1981
SAL = 1600
COMM = 300
DEPTNO = 30

EMPNO = 7782
ENAME = CLARK
JOB = MANAGER
MGR = 7839
HIREDATE = 09-06-1981
SAL = 2450
COMM =
DEPTNO = 10

EMPNO = 7788
ENAME = SCOTT
JOB = ANALYST
MGR = 7566
HIREDATE = 19-04-1987
SAL = 3000
COMM =
DEPTNO = 20
sqlite>
sqlite> .mode tabs
sqlite> select * from emp;
7499 ALLEN SALESMAN 7698 20-02-1981 1600 300 30
7782 CLARK MANAGER 7839 09-06-1981 2450 10
7788 SCOTT ANALYST 7566 19-04-1987 3000 20
sqlite>
sqlite> .mode tcl
sqlite> select * from emp;
“7499” “ALLEN” “SALESMAN” “7698” “20-02-1981” “1600” “300” “30”
“7782” “CLARK” “MANAGER” “7839” “09-06-1981” “2450” “” “10”
“7788” “SCOTT” “ANALYST” “7566” “19-04-1987” “3000” “” “20”
sqlite>
sqlite> .mode csv
sqlite> select * from emp;
7499,ALLEN,SALESMAN,7698,20-02-1981,1600,300,30
7782,CLARK,MANAGER,7839,09-06-1981,2450,,10
7788,SCOTT,ANALYST,7566,19-04-1987,3000,,20
sqlite>
sqlite> .separator **
sqlite> select * from emp;
7499**ALLEN**SALESMAN**7698**20-02-1981**1600**300**30
7782**CLARK**MANAGER**7839**09-06-1981**2450****10
7788**SCOTT**ANALYST**7566**19-04-1987**3000****20
sqlite>
sqlite>
sqlite> .quit # 退出操作
[root@bogon /tmp]#

3.特别用法

3.1. 在shell中查询表内容
sqlite3 demo.db “select * from emp;”

3.2. 输出 HTML 表格
sqlite3 -html demo.db “select * from emp;”

3.3. 备份数据库
sqlite3 demo.db “.dump” > output.sql

3.4. 执行数据库脚本
sqlite3 demo.db < insert.sql

参考资料:
[1] http://blog.csdn.net/linchunhua/article/details/7184439
介绍了sqlite的基本使用

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值