1 、sqlite3常用命令


当前目录下建立或打开test.db数据库文件,并进入sqlite命令终端,以sqlite>前缀标识:
#sqlite3 test.db


查看数据库文件信息命令(注意命令前带字符'.'):
sqlite>.database

查看所有表的创建语句:
sqlite>.schema
 
查看指定表的创建语句:
sqlite>.schema table_name
 
以sql语句的形式列出表内容:
sqlite>.dump table_name
 
设置显示信息的分隔符:
sqlite>.separator symble
Example:设置显示信息以‘:’分隔
sqlite>.separator :
 
设置显示模式:
sqlite>.mode mode_name
Example:默认为list,设置为column,其他模式可通过.help查看mode相关内容
sqlite>.mode column
 
输出帮助信息:
sqlite>.help
 
设置每一列的显示宽度:
sqlite>.width width_value
Example:设置宽度为2
sqlite>.width 2
 
列出当前显示格式的配置:
sqlite>.show
 
退出sqlite终端命令:
sqlite>.quit

sqlite>.exit
 
2、sqlite3指令
sql的指令格式:所有sql指令都是以分号(;)结尾,两个减号(--)则表示注释。
如:
sqlite>create studen_table(Stu_no interger PRIMARY KEY, Name text NOT NULL, Id interger UNIQUE, Age interger CHECK(Age>6), School text DEFAULT 'xx小学);
该语句创建一个记录学生信息的数据表。
 
2.1 sqlite3存储数据的类型
NULL:标识一个NULL值
INTERGER:整数类型
REAL:浮点数
TEXT:字符串
BLOB:二进制数

2.2 sqlite3存储数据的约束条件
Sqlite常用约束条件如下:
PRIMARY KEY - 主键:
1)主键的值必须唯一,用于标识每一条记录,如学生的学号
2)主键同时也是一个索引,通过主键查找记录速度较快
3)主键如果是整数类型,该列的值可以自动增长
NOT NULL - 非空:
约束列记录不能为空,否则报错
UNIQUE - 唯一:
除主键外,约束其他列的数据的值唯一
CHECK - 条件检查:
约束该列的值必须符合条件才可存入
DEFAULT - 默认值:
列数据中的值基本都是一样的,这样的字段列可设为默认值

2.3 sqlite3常用指令
1)建立数据表
create table table_name(field1 type1, field2 type1, ...);
table_name是要创建数据表名称,fieldx是数据表内字段名称,typex则是字段类型。
例,建立一个简单的学生信息表,它包含学号与姓名等学生信息:
create table student_info(stu_no interger primary key, name text);
 
2)添加数据记录
insert into table_name(field1, field2, ...) values(val1, val2, ...);
valx为需要存入字段的值。
例,往学生信息表添加数据:
Insert into student_info(stu_no, name) values(0001, alex);
 
3)修改数据记录
update table_name set field1=val1, field2=val2 where expression;
where是sql语句中用于条件判断的命令,expression为判断表达式
例,修改学生信息表学号为0001的数据记录:
update student_info set stu_no=0001, name=hence where stu_no=0001;
 
4)删除数据记录
delete from table_name [where expression];
不加判断条件则清空表所有数据记录。
例,删除学生信息表学号为0001的数据记录:
delete from student_info where stu_no=0001;
 
5)查询数据记录
select指令基本格式:
select columns from table_name [where expression];
a查询输出所有数据记录
select * from table_name;
b限制输出数据记录数量
select * from table_name limit val;
c升序输出数据记录
select * from table_name order by field asc;
d降序输出数据记录
select * from table_name order by field desc;
e条件查询
select * from table_name where expression;
select * from table_name where field in ('val1', 'val2', 'val3');
select * from table_name where field between val1 and val2;
f查询记录数目
select count (*) from table_name;
g区分列数据
select distinct field from table_name;
有一些字段的值可能会重复出现,distinct去掉重复项,将列中各字段值单个列出。
 
6)建立索引
当说数据表存在大量记录,索引有助于加快查找数据表速度。
create index index_name on table_name(field);
例,针对学生表stu_no字段,建立一个索引:
create index student_index on student_table(stu_no);
建立完成后,sqlite3在对该字段查询时,会自动使用该索引。
 
7)删除数据表或索引
drop table table_name;
drop index index_name;

sqlite中的命令相关推荐

  1. 【数据库】sqlite中PRAGMA命令说明

    关于sqlite中PRAGMA的说明网上已经有很多了,这里不再复制粘贴,只把内容最全的网址连接记录一下: 官网说明(英文):https://sqlite.org/pragma.html 中文翻译,参见 ...

  2. 利用SQL语句在SQLite数据库中实现命令执行

    SQLite是世界上使用最多的数据库之一.然而,关于其安全方面的研究,都只涉及WebSQL和浏览器开发方面.我们相信这只是SQLite安全的冰山一角. 在对SQLite安全性的长期研究中,我们尝试在任 ...

  3. 【数据库】sqlite中的限制:数据库大小、表数、列数、行数、参数个数、连接数等

    目录 一.参考网址 二.详解 1.查看.设置sqlite限制命令.limit 2.SQLite中的限制汇总 1)字符串或BLOB的最大长度 2)最大列数 3)SQL语句的最大长度 4)联接中的最大表数 ...

  4. SQLITE中原子提交的实现

    转自:http://blog.csdn.net/LocalVar/archive/2008/02/13/3620555.aspx 1.    引言 像SQLITE这样支持事务的数据库的一个重要特性是& ...

  5. SQLite中的高级SQL

    插入记录 使用insert插入记录.insert在表单上工作,使用insert命令可以一次插入一条记录,使用select命令可以一次插入多条记录.insert语句的一般格式为: [sql] view ...

  6. sqlite 0转换为bit_Cisco Talos在SQLite中发现了一个远程代码执行漏洞

    思科Talos的研究人员在SQLite中发现了一个use-after-free() 的漏洞,攻击者可利用该漏洞在受影响设备上远程执行代码. 攻击者可以通过向受影响的SQLite安装发送恶意SQL命令来 ...

  7. sqllite查询数据量_详解SQLite中的查询规划器

    1.0 介绍 查询规划器的任务是找到最好的算法或者说"查询计划"来完成一条SQL语句.早在SQLite 3.8.0版本,查询规划器的组成部分已经被重写使它可以运行更快并且生成更好的 ...

  8. 如何在SQLite中检查表是否存在?

    我如何可靠地在SQLite中检查特定的用户表是否存在? 我不是在要求不可靠的方法,例如检查表上的" select *"是否返回错误(这甚至是个好主意吗?). 原因是这样的: 在我的 ...

  9. 4. sql 语句中常用命令

    1. 数据表: 本文中所有命令,测试的数据表结构如下图: 2. 查询语句: 2.1 基础查询:select //查询单个字段: select 字段名 from 表名; //查询多个字段 select ...

最新文章

  1. LinuxC下获取UDP包中的路由目的IP地址和头标识目的地址
  2. FPGA SelectMap接口配置设计
  3. mysql拷贝恢复.frm_通过.frm .ibd文件恢复MySQL数据
  4. 人工智能:模型与算法 之 启发式搜索
  5. springBoot中启用事务管理
  6. Ruby Shanghai 2014年终聚会总结
  7. 【转载】 quartus中调用modelsim仿真的方法
  8. 打包bat等文件成exe,双击运行不显示dos窗口,exe不报毒
  9. 马斯克称特斯拉可能恢复比特币交易后 比特币价格突破4万美元
  10. tps波动很大的原因_情绪波动很大是什么原因?怎么调节?
  11. 蓝桥杯---等差数列(C语言)
  12. Spring的junit4测试集成
  13. python不会英语不会数学怎么自学-文科女生学Python:学过初中数学和英语就能懂的编程逻辑...
  14. web逻辑思维题目_有关于最难的逻辑思维题目及答案
  15. OpenCV:帧差法
  16. 基于FPGA的RS485通信接口实验手册
  17. jpg转pdf怎么转换?
  18. 7-1 厘米换算英尺英寸 (15分)
  19. 2023联发科实习春招秋招内推内推码面经总结
  20. 【DNF/YUM】如何利用iso文件建立本地软件仓库

热门文章

  1. [原创] debian 9.3 搭建Jira+Confluence+Bitbucket项目管理工具(三) -- 安装confluence 6.6.1
  2. Server2012Web方式修改用户名密码
  3. 获取iOS设备的型号
  4. 【JavaScript】前端开发框架三剑客—AngularJS VS. Backone.js VS.Ember.js
  5. session多服务器共享的方案梳理
  6. 结束SQL阻塞的进程
  7. linux cut 命令(转)
  8. 2021 最流行的十大项目,新项目居榜首,总有长江后浪推前浪!
  9. 致命问题多数据源引发SpringBatch多事物
  10. go gin框架:Any响应任何请求类型