MySQL面试题

这篇博客总结了MySQL的面试重点,包括存储引擎的对比(MyISAM与InnoDB)、字符集与校对规则、索引的类型和原理、查询缓存的使用、事务及其四大特性(ACID)和隔离级别,以及锁机制。博客还讨论了InnoDB的行级锁与表级锁,以及如何应对大表优化问题,如限定数据范围、读/写分离、垂直分区和水平分区等策略。
摘要由CSDN通过智能技术生成

有两张表,用户表,游戏角色表

题目一:查询'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版本所有的存储引擎中只有

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值