SQLite——简单使用

这篇博客详细介绍了SQLite数据库的使用,包括基础类型、约束条件、外键、SQL语句(如insert、select、update、delete)及其操作符,还有在Android中的应用。特别提到了在SQL查询中的各种操作,如连接、分组、排序、限制和聚合函数。
摘要由CSDN通过智能技术生成

一、Sqlite的基础类型

INTEGER:            整型
TEXT:                   文本类型
REAL:                   浮点型
NULL:                   数据值为空
BLOB:                表示一个数据块。  (解释: 在实际的编程开发当中我们经常要处理一些大容量二进制数据的存储,如图片或者音乐等等。对于这些二进制数据(blob字段)我们不能像处理普通的文本那样简单的插入或者查询,为此SQLite提供了一组函数来处理这种BLOB字段类型。
注:SQLite不提供Date与Time这两种类型。如果需要可以将这两种类型,转化成字符串或者整型

二、SQLite提供的约束条件

PRIMARY KEY:主键  

AUTOINCRIEMENT:自增
UNIQUE:唯一
DEFAULT:默认值
NOT NULL:数据不为空
CHECK(判断语句):判断数据的数据是否符合条件
FOREIGN KEY(name) REFERENCE  [table](name):外键

举例:有学生(Students)和班级(Classes)两张表
create students (
  id integer primary key autoincriement,
  name text unique,
  class_id integer check(class < 3),//表示class只能数输入<3的数  
  age  integer not null,
  foreign key(class) reference classes(class_id)  //表示:students.class_id的数据必须存在于classess.class_id
)

三、外键的组成与使用

组成:
FOREIGN KEY(子表中的字段)  REFERENCES(父表中的字段)
[ON {DELETE|UPDATE}  action
[NOT] DEFERRABLE INITIALLY {DEFERRED|IMMEDIATE}]
解析:
第二行表示当父表的字段更新或删除,子表中发生的操作DELETE表示删除,UPDATE表示更新   
默认为: NO ACTION
类型:(只支持单个外键约束)
NO ACTION:        不执行                             
                                使用:NO ACTION
RESTRICT:          应用程序禁止修改父键   
                                使用:ON DELETE/UPDATE RESTRICT
SET NULL:           当父键被删除或更新的时候,子键相对应的数据被设为null    
                                使用:ON DELETE/UPDATE SET NULL
SET DEFAULT:    当父键被删除或更新的时候,子键相对应的字段被设为default值,如果default值不在父键内,就会抛出异常。
 使用:ON DELETE/UPDATE SET DEFAULT
CASCADE:           将父键上的操作传给子键,就是如果删除cls_id=2则子表中的cls_id=2这一行也会被删除。
                                使用:ON DELETE/UPDATE CASCADE
第三行表示当父表的字段更新或删除,子表相对于第二行操作的时机。
默认为:立即执行
类型:记住两个就好了
DEFERRABLE                                                 立即执行
DEFERRABLE INITIALLY DEFERRED           延迟执行

注意事项:
在使用外键前,必须执行  PRAGMA foreign_keys = ON 语句

四、SQL语句的使用

①、insert语句:

insert into 表名[字段列表] values(值,值,值...);
举例:
insert into students values("章",2,12);
或者:
insert into students(name,age) values("哈",13);
特殊使用:
批量插入数据
insert into stu select * from students;    //将搜索到的数据批量插入
insert into stu(name,age) select name, age from students; 
或者可以这样
create table stu as select * from students;  //这里省去了建表的动作,相当于赋值了students表给stu表

②、select语句:

select 字段名 from 表名 where 筛选条件 group by 分组 having 分组的条件筛选 order by 排序 limit 返回数据的数量
offset 数据从起始位置的偏移量
示例:
select * from studens where count = 2 group by cls_id having cls_id >1 order by desc limit 3 offset 1;

从字段名开始:
1、distinct :去除select中的重复行。
select distinct cls_id from studens;
2、as(设定暂时的名字):
select cls_id as class from students where class = 2;   //class就是修改后的名字
3、使用聚合函数:
select count(cls_id) from students;
常用聚合函数列表:

1、 求个数:count
2、 求总和:sum
3、 求最大值:max
4、 求最小值:min
5、 求平均值:avg

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值