java常见面试题_2022最新版
序列号 |
内容 |
链接 |
1 |
Java基础面试题 |
https://www.gsm-guard.net/weixin_46030002/article/details/126399353 |
2 |
Java集合容器面试题 |
https://www.gsm-guard.net/weixin_46030002/article/details/126425298 |
3 |
Java线程面试题 |
https://www.gsm-guard.net/weixin_46030002/article/details/126518395 |
4 |
Java异常面试题 |
https://www.gsm-guard.net/weixin_46030002/article/details/126482778 |
5 |
spring常见面试问题 |
https://www.gsm-guard.net/weixin_46030002/article/details/127281194 |
6 |
SpringMVC常见面试题 |
https://www.gsm-guard.net/weixin_46030002/article/details/127057785 |
7 |
Mybatis常见面试题 | https://www.gsm-guard.net/weixin_46030002/article/details/126026561 |
8 |
MySQL常见面试题 |
https://www.gsm-guard.net/weixin_46030002/article/details/126557564 |
9 |
Redis常见面试题 |
https://www.gsm-guard.net/weixin_46030002/article/details/126435834 |
文章目录
- Java常见面试题_2022最新版本
-
- 1。了解基本概念
-
- 什么是数据库
- 关系型数据库和非关系型数据库
- 什么是SQL
- 2. 常见面试问题
-
- 数据库SQL语言有哪些
- MySQL常用搜索引擎
- MySQL、Oracle 默认端口号
- SQL中常用的数据类型
- SQL 中的日期和时间类型
- SQL中日期时间和时间戳的区别
- varchar 和 char 有什么区别?
- 关联查询、分组、排序、分页、数据库聚合功能
- MySQL 中用到了哪些函数
- 表之间的关系
- 拥有和哪里的区别
- 查询时写入订单
- 查询时的执行顺序
- 丢弃、删除和截断的区别
- union和union all的区别
- 内连接和外连接的区别
- 数据库的五个约束
- 什么是交易
- 如何在项目中使用事务:
- 如何操作数据库中的事务
- 交易四大特征
- 事务隔离级别
- 什么是视图,什么是光标
- 什么是简单视图,什么是复杂视图
- 如何优化数据库查询
- MySQL和Oracle的区别
- 三大数据库范式
- 常用数据库对象
- 如何在MySQL中实现远程连接
- 您使用过哪些数据连接池?数据库连接池有什么用?
- 索引
-
- 什么是索引
- 描述创建索引的几种方法
- 指标分类
- 如何检查SQL是否使用索引进行检索
- 说说数据库索引的优缺点
- 什么情况下,我们考虑给字段添加索引
- 索引失败的场景以及什么情况下会导致索引失败
MySQL官网
MySQL官网
1。了解基本概念
什么是数据库
数据库(DataBase)是用来组织、存储和管理数据的仓库。
关系型数据库和非关系型数据库
- 关系数据库:关系数据库是一种结构化数据库,基于关系模型(二维表格模型)创建,一般面向记录。
- 非关系型数据库:NoSQL(NoSQL = Not Only SQL),意思是“不仅仅是SQL”,是非关系型数据库的总称。
- Redis(键值类型)、MongoDB(文档类型)、HBase(列存储)、Neo4J(图)
什么是SQL
SQL(英文全称:Structured Query Language)是一种结构化查询语言,是一种专门用于访问和处理数据库的编程语言。
- SQL 是一种数据库编程语言
- SQL语言只能在关系型数据库中使用
2. 常见面试问题
数据库SQL语言有哪些
DQL
数据查询语言
DML
数据操作语言
DDL
数据定义语言
DCL
数据控制语言
MySQL常用搜索引擎
- InnoDB(常用,唯一支持事务的搜索引擎)
- MyISAM(常用,查询多时性能好,ISAM的升级版)
- ISAM(不常用)
- 内存(不常用)
MySQL、Oracle默认端口号
SQL中常用的数据类型
SQL 中的日期和时间类型
- 年
- 日期
- 时间
- 日期时间
- 年月日时分秒
YYYY-MM-DD HH:MM:SS
- 时间戳
- 混合日期和时间,可用作时间戳
YYYY-MM-DD HH:MM:SS
- 可设置默认值
timestamp
的值与时区有关
- 存储在
UTC
(Universal Time Cooperative)系统协调时区(所有时间的统一通用时间),并以系统当前时区 显示
SQL中日期时间和时间戳的区别
比较 |
时间戳 |
日期时间 |
储物空间 |
4 字节 |
8 字节 |
时区 |
取决于时区 | 不受时区影响 |
时间范围 |
1970-01-01 00:00:01 ~ 2038-01-19 03:14:07 |
1000-01-01 00:00:00 ~ 9999-12-31 23:59:59 |
varchar 和 char 有什么区别?
- char 是固定长度类型。不足的部分用隐藏的空间来填充。使用空间会被浪费
- varchar是变长类型,节省空间
- Char查询效率比varchar高
- 一般固定长度数据使用char类型,比如身份证号、手机号码、电话号码等,如果长度变化较大,可以使用varchar类型
关联查询、分组、排序、分页、数据库聚合功能
- 相关查询
- 组
分组依据
- 订购
订购者
- 寻呼
限制
- 限制 num1(跳过的项目数)、num2(每页的项目数)
- 聚合功能
- max(最大值)
- min(最小值)
- 总和(总和)
- avg(平均)
- 计数(统计数)
MySQL中用到了哪些函数
- 数值函数
abs(x)
绝对值
ceil(x)
返回大于或等于 x 的最大整数
round(x)
返回四舍五入的整数
floor(x)
返回等于或小于 x 的最大整数
mod(x)
获取a / b的余数(如果id需要为偶数或奇数,可以使用mod
)
- 字符串函数
- 日期功能
- MySQL高级功能
表之间的关系
- 一对一(不常用)
- 一个人 => 一个身份证号码
- 一个人=>一个国籍
- 学生 => 学号
- 一对多/多对一
- 从班级表来看:一班=>多名学生
- 从学生表来看:多个学生=>一个班级
- 在一对多或多对一的表关系中,我们会在more表中维护两个表之间的关系
- 多对多
- 从学生表来看:一名学生=>多门课程
- 从课程角度来看:一门课程=>多名学生
- 所以对于多对多的关系,我们通常会有一个中间表来维护两个表之间的关系