有两张表,用户表,游戏角色表
题目一:查询'2019-04-20' 到 '2019-04-23'期间注册的角色个数(以日期为分组,reg_time数据类型需为date)
结果:
查询语句:
用group by和having子句联合来查出不重复的记录
having一般跟在group by之后,执行记录组选择的一部分来工作的。
select reg_time as '注册时间',count(*) as '数量' from user group by reg_time having reg_time between '2019-04-20' and '2019-04-23'
题目二:查询'2019-04-20' 到 '2019-04-23'期间注册的,角色等级大于3的用户名称和角色等级
结果:
查询语句:
select a.user_name as '用户名称',b.level as '角色等级' from user a join role b on a.role_id=b.role_id and a.reg_time between '2019-04-20' and '2019-04-23' and b.level>3
假如我们有如下一张数据表(很简单,只是举例而已),表名为student。现在我们要取出其中重复记录。重复是以name相同为判定标准。
shortname | age | height | weight | province | university |
---|---|---|---|---|---|
小王 | 20 | 170 | 150 | 河南 | 清华大学 |
小张 | 21 | 175 | 144 | 河北 | 北京大学 |
小李 | 20 | 160 | 122 | 福建 | 武汉大学 |
小赵 | 35 | 165 | 177 | 江西 | 浙江大学 |
小孙 | 40 | 164 | 188 | 西藏 | 华中科技大学 |
小宋 | 38 | 172 | 166 | 云南 | 四川大学 |
小王 | 21 | 170 | 150 | 河南 | 清华大学 |
小张 | 22 | 168 | 120 | 山东 | 山东大学 |
SELECT * FROM student WHERE shortname IN (SELECT shortname FROM student GROUP BY shortname HAVING COUNT(shortname)>1)//查找出所有的重复数据1
SELECT shortname,COUNT(*) FROM student GROUP BY shortname HAVING COUNT(*) > 1//查看重复数据的条数
MySQL知识点总结
存储引擎
一些常用命令
查看MySQL提供的所有存储引擎
mysql> show engines;
查看MySQL提供的所有存储引擎
从上图我们可以查看出 MySQL 当前默认的存储引擎是InnoDB,并且在5.7版本所有的存储引擎中只有