javaMysql面试题

.数据库的三范式是什么?

第一范式:强调的是列的原子性,即数据库表中的每一列都是不可分割的原子数据项

第二范式:要求实体的属性完全依赖于主关键字,所谓完全依赖是指不能存在仅依赖关键字一部分的属性

第三范式:任何非主属性不依赖于其他非主属性

2.一张自增表里面总共有7条数据,删除了最后两条数据,重启 MySql 数据库,又插入一条数据,此时ID是几?

表类型如果是 MyISAM,那id 就是8
表类型如果是InnoDB,那id 就是6
InnoDB 表只会把自增主键的最大id 记录在内存中,所以重启之后会导致最大id丢失。

3.如何获取当前数据库版本

使用 select version() 获取当前MySQL 数据库版本

4.ACID 是什么?

Atomicity(原子性):一个事务(transanction)中的所有操作,或者全部完成,或者全部不完成,不会结束在某个中间环节,事务在执行过程中发生错误,会被恢复(Rollback)到事务开始之前的状态,就像这个事务从来没有执行过一样,即事务不可分割,不可约简。
Consistency(一致性):在事务开始之前和事务结束以后,数据库的完整性没有被破坏。这表示写入的资料必须完全符合所有的预设约束、触发器、级联回滚等。
Isolation(隔离性):数据库允许多个并发事务同时对其数据进行读写和修改的能力,隔离性可以防止多个事务并发执行的时由于交叉执行而导致数据的不一致。事务隔离分为不同级别,包括读未提交(Read Uncommitted)、读提交(Read committed)、可重复读(repeatable)、串行化(Serializable)
Durability(持久性):事务处理结束之后,对数据的修改就是永久的,即便系统故障也不会丢失。
5.char 和 varchar 的区别是什么?

char(n):固定长度类型,比如char(10),当输入qwe 三个字符时,所占空间还是10个字节,其他7个是空字节
varchar(n):可变长度,存储的值是每个值占用的字节再加上一个用来记录其长度的字节的长度
char 优点:效率高,缺点:占用空间。所以从空间上考虑varchar 比较合适,从效率上考虑 char 比较合适

6.float 和 double 的区别是什么?

float 最多可以存储 8 位的十进制数,并在内存中占4 字节。
double最多可以存储16 位的十进制数,并在内存中占 8 字节
7.MySql 的内连接,左连接,右连接有什么区别?

内连接:inner join 左连接:left join 右连接:right join

内连接是把匹配的关联数据显示出来,左连接是把左边的表全部显示出来,右边的表显示出符合条件的数据,右连接正好相反。

8.MySql 的索引是怎么实现的?

索引是满足某种特定查找算法的数据结构,而这些数据结构会以某种方式指向数据,从而实现高效数据查找。具体来说 MySql 中的索引,不同数据引擎实现有所不同,但目前主流的数据库引擎都是B+树实现的,B+树的搜索效率,可以达到二分法的性能,找到数据区域之后就找到了完整的数据结构了。

9.怎么验证 MySql 的索引是否满足需求?

使用 explain 查看 SQL 语句是如何执行查询语句的,从而分析你的索引是否满足需求

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值