Sqlite3基本命令

Sqlite3基本命令

连接数据库文件(xxxx.db可以是一个不存在的文件,当进入sqlite里并在里面创建表后,xxxx.db会自动生成)

sqlite3 xxxx.db

进入之后是这样的

sqlite>

以下所有命令都是进入sqlite后执行的


查看帮助

.help

查看数据库信息

.database

查看数据库有什么表

.tables

列出当前显示格式的配置

.show

设置列显示宽度为2

.width 2

设置显示模式为listcolumn(实际上没什么差别,还是乱)

# 设置显示模式为list
.mode list
# 设置显示模式为 column
.mode column

设置分隔符(当显示模式为list时,各列之间是有分隔符的,默认分隔符是|)

.separator :

退出sqlite

.exit

查看表结构1

PRAGMA TABLE_INFO(products_shopify);

查看表结构2(实际上是看建表语句)

# 查看所有表的建表语句
.schema
# 查看指定表建表语句
.schema 表名;

查看表结构3(实际上是看建表语句,一般情况下type="table"也可以不写)

select * from sqlite_master where type="table" and name = "表名";

以sql语句形式导出表内容

# 先设置把输出内容重定向到指定文件,这一步会创建xxx.sql这个文件(但如果你自己去创建是不行的)
# 不能用 ~之类的符号代表家目录,必须写绝对路径
.output /path/to/xxx.sql

# 再用.dump输出指定表(如果前面没有用.output,则.dump会把表数据全部输出到终端上)
.dump <表名>

设置主键自增(必须注意在sqlite3里INTEGERint不同,设置自增主键必须用INTEGER类型)

`id` INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,

sqlite3不支持drop column(即不支持删除字段),要用复制表的方式解决

# 把原来复制一份,但是不复制要删除的那个字段
create table temp as (select recordId, customer, place, time from record);
# 删除原表
drop table record;
# 把复制的表重命名为原表的表名
alter table temp rename to record;

sqlite3有limit关键字,所以查询分页是可以用limit的。其它的基本都跟mysql类似(注意所有sql语句都要以;结束,有.开头的指令不用分号结束)。

打赏
订阅评论
提醒
guest

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据

0 评论
内联反馈
查看所有评论
0
希望看到您的想法,请您发表评论x

扫码在手机查看
iPhone请用自带相机扫
安卓用UC/QQ浏览器扫

Sqlite3基本命令