sqlite命令

    xiaoxiao2021-03-25  9

    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的基本使用

    转载请注明原文地址: https://ju.6miu.com/read-200328.html

    最新回复(0)