掌握基本的sql语句的使用方法,以及常见的sql增删改查、聚合函数以及各类条件查询、子查询的命令。同时需要了解Sql数据库在诸如接口和性能测试中扮演的“角色”和意义
①数据库的基本概念:什么是数据库,数据库都有哪些类型;
数据库:数据库是一个长期存储在计算机内,有组织的,有共享的,统一化管理数据集合。是一个数据存储仓库,为了方便数据存储和管理,它将数据按照特定的规律存储在磁盘上。通过数据库管理系统,可以有效的组织和管理存储在数据中的数据
数据库类型:关系型---mysql、oracle、sqlserver 非关系型—redis、mongoDB
②数据库语法:学习掌握Sql语句的基本语法;where用于筛选原有字段,having用于筛选新建字段
去重--distinct(只能在select中使用) 计数--count() 平均值--avg() 浮点数平均值--round()
字符串的截取:substring(字符串,起始位置,截取字符数)
字符串的拼接:concat(字符串1,字符串2,字符串3,...)、字母大写:upper(字符串)
sql查询语句的顺序:
Select (distinct)xx,xx,xx(聚合函数) from xx (left/rigth/full) join xx on 多表的连接条件 (left/rigth/full) join xx on 多表的连接条件 where 无聚合函数的条件 group by xx , xx having 聚合函数的条件 order by xx (desc) limit x,x
eg: 每个学校每种性别的用户数、30天内平均活跃天数和平均发帖数量
每个学校每种性别:按学校和性别分组:group by gender, university
用户数:count(device_id) 30天内平均活跃天数:avg(active_days_within_30)
Select gender, university, count(device_id) as user_num, avg(active_days_within_30) as avg_active_days, avg(question_cnt) as avg_question_cnt from user_profile group by gender, university having avg_active_days > 5
Sql基本语法:
表:添加列 alter table mytable add age int (first/after)
删除列 alter table mytable drop column age
修改列 alter table mytable change age age1 int
行数据:删除 delete from mytable where id =1
新增 insert into mytable values (值1,值2 ……)
列数据:新增 insert into mytable (列1,列2...) values (值1,值2...)
修改 update mytable set 列1=xx ,列2=xx where id =1
主键:删除 alter table mytable drop primary key
新增 alter table mytable add constraint 主键1 primary key (列1)
③数据库查询:学习和掌握多种数据库的查询方法,比如复杂查询、多表查询 、条件查询等等;
多表查询:左连接--left join 、右连接---right 、自连接/内连接---(inner)join、全连接---full join
条件查询:where(无聚合函数)、 having (group by)
复杂查询:子查询、union(all)
联系参考:https://www.cnblogs.com/Diyo/p/11424844.html
④数据库索引:了解和掌握数据库索引以及数据库事务相关的概念;
索引:primary key 主键索引、unique 唯一索引、index 普通索引
创/查索引:CREATE UNIQUE INDEX id_index on table1 (id) / SHOW INDEXES FROM table1
添加索引:alter table biao add index id_index (id)
删除索引:DROP INDEX id_index on table1
事务:开始事务—start transaction
设置保存点---savepoint a
事务回滚—rollback (to a)
事务提交—commit
⑤redis:缓存数据库(非关系型)、区别于mysql等关系型数据库
1、 Mysql将持久化数据存储在磁盘中,而请求绝大部分都是读取(I/O),读取速度慢、Redis将数据储存在内存中,读取速度快,经常用于数据和页面缓存
2、 Redis缓存数据一多,就需要清除不用的数据,就有了定时扫描清理机制,而定时清理花费时间且影响数据存储,就有了随机扫描,但随机扫描会有未扫描到的数据,就有了惰性删除(删除查询到过期数据),惰性删除还会遗留部分数据,就有了8种内存淘汰策略。
set、setex/expire/ttl、mset/mget、append、get、del、keys、exists、type
hset键字段值、hmset、type、hkeys、hget/hmget 键字段、hvals 键、hgetall、hdel 键字段
⑥数据库客户端:常见的数据库客户端的使用方法,以及不同的客户端的优劣和应用场景。
常见数据库链接工具:navicat、plsql、sqlyog、dbeaver