1. 安装
1.1 安装SQLite3
sudo apt-get install sqlite3
解决
1.2 安装Sqlite3编译需要的工具包
sudo apt-get install libsqlite3-dev
2. 基本命令
进⼊⼯具:
在命令⾏输⼊: sqlite3
退出⼯具:
.quit
查看帮助:
.help
打开数据库:
.open 数据库⽂件路径
查看当前操作的数据库⽂件:
.database
查看当前数据库⽂件中的表:
.table
查看表结构:
.schema
3. 命令行操作数据库的数据
3.1 如何创建/打开一个数据库:
sqlite3 数据库名字.db
删除数据库
drop database 数据库名字
3.2 创建表
语法:create table 表名 (列名1 数据类型1,列名2 数据类型2,....)
--例子, 学生表:学号-int 姓名-char 班级-int 性别-char 年龄-int
---create table student (num integer,name varchar,class integer,sex char ,age integer ) ;
切记 ; 号
3.3 删除表
drop table 数据库名字
3.4 插入数据
insert into:向表中插入新的一行
--语法: insert into 表名 (列名1,列名2,.....) values (数值1,数值2,....)
--例子:insert into 学生表 (姓名,年龄,贯籍,成绩) values (小王,23,'湖北',56)
3.5 查询数据
3.5.1 简单查询
select:从表中选取内容/查看表的内容
语法:select 列名 from 表名字
例子:从表中选取列名为年龄+性别的列
select 年龄,性别 from 学生表
例子:选取表的所有内容
select * from 学生表
使用DISTINCT 修饰某个列名字,达到去重复的效果
例子:select distinct 姓名,年龄 from 学生表
3.5.2 select where筛选结果:
语法:SELECT 列名称 FROM 表名称 WHERE 列 运算符 值
例子:从学生表中查询姓名和年龄选项,筛选出年龄大于23的记录
select 姓名,年龄 from 学生表 where 年龄 > 23
3.5.3 order by进行排序[默认升序]:
语法:select 列名 from 表名 order by 列名 [desc/asc]
例子:SELECT 年龄,姓名 FROM 学生表 ORDER BY 年龄 DESC , 姓名 ASC
3.5.4 其他复杂命令
3.6 修改数据
update:更新/修改某些记录的内容:
语法:update 表名 set 列名=新值 where 列名=数值
例子:修改小明的年龄为23
update 学生表 set 年龄=23 where 姓名='小王'
如果有多个小王,都会被修改
3.7 删除数据
delete:删除某行/记录
语法:delete from 学生表 where 姓名=小王
如果有两个小王,都会被删掉
删除所有行:
delete from 表名
3.8 联合查询
表的联合操作:
这两张表必须有联系,每张表关联的列的意义相同.
主关键字: 唯一的标示一个记录 --次关键字:标示一组记录
3.8.1 用法1:
语法规则:select 表1.列名1,表1.列名2 ,...,表2.列名1,表2.列名2 from 表1,表2 where 表1.匹配关键字 = 表2.匹配关键字;
例子:select student.name,student.class,teacher.name from teacher,student where student.class=teacher.class;
3.8.2用法2 连接查询
join on (查交集)
表a join 表b on 条件/规则.
select student.name,student.class ,teacher.name,teacher.class from student join teacher on teacher.class=student.class;
左连接 left join
是以左表为基础,根据ON后给出的两表的条件将两表连接起来。结果会将左表所有的查询信息列出,而右表只列出ON后条件与左表满足的部分。左连接全称为左外连接,是外连接的一种。
右连接 right join
是以右表为基础,根据ON后给出的两表的条件将两表连接起来。结果会将右表所有的查询信息列出,而左表只列出ON后条件与右表满足的部分。右连接全称为右外连接,是外连接的一种。
3.9 alter table:对表的列进行操作
增加一列:
语法:alter table 表名 add 列名字 数据类型
删除一列:有些数据库不支持,比如sqlite
语法:alter table 表名 drop COLUMN 列名