【SQLite数据库笔记】基本操作

课程网址:https://ke.qq.com/course/271369

第一课

SQLite相关概念

  1. 嵌入式数据库,内嵌在程序中,是程序的一个组成部分

  2. 与程序一起编译,不需要独立维护,简约而不简单.

  3. Html5、Android、IOS 都内嵌支持SQLite,主要应用于移动端

数据的存储方案:

  1. 数据存储在程序之外(Oracle、Mysql、MSSQL)
    图1

  2. 数据存储在程序内部,目前比较流程的: Properties(不能存有结构的数据)、XML(可存关系型数据)、SQLite(支持SQL语言,效率比XML高),例如cookie

SQLite的优点

  1. 在读取数据的时候可以减少网络访问的消耗, 简化数据库的管理, 程序的部署也比较容易.

  2. 简单,访问速度快(最好不要把它看做一个数据库,而是一个文件系统)

  3. 支持常见的SQL语法,包括常见数据库功能: 事务、索引、视图、触发器的部分功能. (麻雀虽小,五脏俱全)

  4. 平台广泛性, Unix、linux、MAC、window….. 系统上运行

第二课

SQLite可以给每个字段定义类型,但是也可以不制定,如果字段没有类型则与Javascript一样字段属于动态类型

SQLite的数据类型

  1. Integer:有符号的整数类型

  2. Real: 浮点型

  3. Text: 字符串(编码取决于DB的编码)

  4. BLOB: 存储图片、等二进制信息(读取访问慢)

  5. Boolean数据类型: sqlite默认没有boolean类型, 逻辑值为0则代表false,1代表true

  6. 日期与时间类型: 没有独立存储类型用于日期与时间, 一般采用Text来取代

第三课

SQL查询语句

  1. 如果存在表,则先删除表
drop table if exists person;
  1. 创建person表结构
    表中含三种类型数据:_id整型(主关键词,初始值为1,每次递增1)、name字符串类型、salary浮点类型
create table if not exists person (_id integer primary key autoincrement,name text, salary real);
  1. 查询表结构,sqlite_master此系统表,用来存储识图、索引、表等信息
    sqlite_sequence是序列,自动增长表结构
select * from sqlite_master where type = 'table';
  1. 查询person表的数据
select * from person;
  1. 增加数据:测试数据类型的自动转化过程
insert into person (name,salary) values('小强',6000.00),('旺财','6000.00'),('实习生',NULL),('小李',5000),('主管',10000.00);
  1. 清空表
delete from person;
  1. 模糊查询:name中包含小且salary大于4000,按照salary降序排列,个数为0到3
select * from person where name like '%小%' and salary > 4000 order by salary asc limit 0,3;
  1. 了解常见聚合函数
select min(salary) '最低工资',max(salary) '最高工资',avg(salary) '平均工资',count(*) '总人数' from person;
  1. 查询出来工资相同的人的信息,SQL语句的执行顺序,先分组再聚合(count在group后面)
    分组后salary只显示组内数量大于1的数字,然后select出来
select * from person where salary = (select salary from person group by salary having count(*)>1);

第四课

关于sulite数据类型处理

  1. 脏数据处理:只会报SQL语句的错误
    视频中显示为0,但是这个0和数字0意义不同
insert into person (name,salary) values ('脏数据',‘hello’);
  1. 更新数据
update person set salary = 0 where salary is null;
  1. 如果表中的字段不指定类型,那么就是动态类型,按照存入的数据为主(灵活、简洁)
drop table if exists person;

create table if not exists person (_id integer primary key autoincrement,name, salary);

insert into person (name,salary) values ('老王','hello');
  1. sqlite的视图创建:视图就是一张虚表,可能是多张表的部分列的集合
    创建一个只包含id和名字的视图
drop view if exists st;
create view st as select _id,name from person;
select * from st;
select * from sqlite_master;

猜你喜欢

转载自blog.csdn.net/weixin_38705903/article/details/81067534