数据库之SQLite(一)
一、什么是SQL
- SQL(structured query language):结构化查询语言
- SQL是一种对关系型数据库中的数据进行定义和操作的语言
- SQL语言简洁,语法简单,好学好用
二、常用的关系型数据库
PC端:Oracle、MySQL、SQL Server、Access、DB2、Sybase
嵌入式\移动客户端:SQLite(轻量级)
三、简述SQLite
SQLite 在存储时,本质上并不区分准确的数据类型,数据库主要的目的是做数据的检索,通常不会把无法检索的二进制数据保存在数据库中
1、主键:Primary Key,唯一标示一条记录的字段
- 如:xxx_id(学号、身份证号)
- 特点:可进行自动增长
2、外键:Foreign Key,对应其他关系表的标识,可以和其他表建立关系
- 如:学生表中的【宿舍id】作为外键,对应宿舍表中的主键【宿舍id】
- 特点:方便数据维护,节约存储空间
3、字段类型
- 空(NULL):该值为空
- 整型(INTEGEER):有符号整数,按大小被存储成1,2,3,4,6或8字节。
- 实数(REAL):浮点数,以8字节指数形式存储。
- 文本(TEXT):字符串,以数据库编码方式存储(如UTF-8)。
- BLOB:BLOB数据不做任何转换,以输入形式存储。(二进制数据,比如文件)
1、在关系数据库中,CLOB和BLOB类型被用来存放大对象。BOLB表示二进制大对象,这种数据类型通过用来保存视频,图片,图象等。CLOB表示字符大对象,能够存放大量基于字符的数据。
4、SQL中的常用关键字
- select、insert、update、delete、from、create、where、desc、order、by、group、alter等
5、SQL语句的特点
- 不区分大小写,每条sql语句都必须以分号 ; 结束
6、SQL语句的种类
①数据定义语句(DDL:Data Definition Language)
- 包括create(创建新表)和drop(删除表)等操作
②数据操作语句(DML:Data Manipulation Language)
- 包括insert、update、delete等操作
③数据查询语句(DQL:Data Query Language)
- 用于查询获得表中的数据(select最常用),此外还有where,order by,group by和having
7、常用SQL语句
①、创建表(create)
- 表如果不存在: create table if not exists 表名 (字段名1 字段类型1,字段名2 字段类型2, …);
- 创建表:create table t_student (id integer, name text, age inetger, score real);
注:实际上SQLite是无类型的,所以可以简写create table t_student(name, age);但为了保持良好的编程规范、方便程序员之间的交流,最好加上每个字段的具体类型
②、删除表(drop)
- 如果删除的表存在的话:drop table if exists t_student
- 删除:drop table t_student;
③、插入数据(insert)
- insert into 表名 (字段1, 字段2, …) values (字段1的值, 字段2的值, …) ;
- 插入:insert into t_student(name,age) values ("hml", "18") ;
④、更新数据(update)
- update 表名 set 字段1 = 字段1的值, 字段2 = 字段2的值, … ;
- 更新:update t_student set name = ‘zqw’, age = 18; (都改为zqw跟18)
⑤、删除数据(delete)
- 删除表内容:delete from 表名 ;
- 如:delete from t_student ;
delete和drop的区别:
delete删除表里的内容,保留表的结构,而drop删除整个表(不保留结构)。
⑥查询语句(select)
- select 字段1, 字段2, … from 表名 ;
- select * from t_student ; // 查询所有
- select name, sex from t_student ;//
- select * from t_student where name="hml" ; // 按条件查
⑦、条件语句(where)
如果只想更新或删除某条固定的记录,就要加上一些条件进行约束
- where 字段名 is 某个值 ; // is 相当于 =
- where 字段名 = 某个值 ; // 不能用两个 =
- where 字段名 is not 某个值 ; // is not 相当于 !=
- where 字段名 != 某个值 ;
- where 字段名 > 某个值 ;
- where 字段1 = 某个值 and 字段2 > 某个值 ; // and相当于C语言中的 &&
- where 字段1 = 某个值 or 字段2 = 某个值 ; // or 相当于C语言中的 ||
//将t_student表中年龄小于20 并且 姓名不等于zqw的记录,年龄都改为 30
update t_student set age = 30 where age < 20 and name != ‘zqw’ ;
//删除t_student表中年龄小于等于5 或者 年龄大于30的记录
delete from t_student where age <= 5 or age > 30 ;
⑧、别名(as)
select 字段1 别名 , 字段2 别名 , … from 表名 别名 ;
select 字段1 别名, 字段2 as 别名, … from 表名 as 别名 ;
select 别名.字段1, 别名.字段2, … from 表名 别名 ;
//给name起个叫做n的别名
select name n from t_student ;
//给t_student表起个别名叫做stu ,利用stu 来引用表中的字段
select s.name from t_student stu ;
⑨、常用复合语句
- 计算记录的数量(count )
select count (字段或 * ) from 表名 ;
//计算年龄大于等于20的学生数量
select count ( * ) from t_student where age>= 20;
- 查询后排序(order by)
select * from t_student order by 字段 ;
默认是按照升序排序(由小到大),也可以变为降序(由大到小)
select * from t_student order by age asc ; // 升序(默认)
select * from t_student order by age desc ; //降序
也可以用多个字段进行排序
select * from t_student order by age asc, score desc ;
//先按照年龄升序,再按照成绩降序
- 限制搜索范围 (limit)
limit可以精确地控制查询结果的数量,比如每次只查询5条数据
select * from 表名 limit 数值1, 数值2 ;
select * from t_student limit 3, 6 ;//跳过最前面3条语句,然后取6条记录
limit常用来做分页查询,比如每页固定显示3条数据
第1页:limit 0, 3
第2页:limit 3, 3
第3页:limit 6, 3…
第n页:limit 3*(n-1), 3
select * from t_student limit 16 ;//表示取最前面的16条记录(等价于 limit 0, 16 ;)
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
