java小白入行面试总结——Mysql篇

  • 一、语法相关
    1、mysql中表连接有哪几种方式,分别用什么关键字?
    答:mysql表连接分为内连接(inner join。。。on),左连接(left join 。。。on),右连接(right join。。。on);注意:mysql不支持全连接,orcale支持
    2、几种不同的表连接有什么区别
    答:内连接要连接的两张表都包含的数据才会出现在查询结果中,左连接左边的表所有数据都会出现在查询结果中,右边的表则根据左表匹配,没有数据的以null表示,右连接与左连接相反。
    3、创建索引的语法?
    答:创建索引的方法有多种,这里拿其中一种举例:
    create index 索引名 on 表名 (字段) ;
    4、创建视图的语法?
    答:Create view —创建一个视图
    View_xxx —视图的名字为View_xxx
    AS —视图的内容为一下查询语句查询到的结果
    Select * from xxx where xxx
    5、创建触发器的语法?
    DELIMITER $ – 表示外层以$结束
    create TRIGGER t1
    before 什么时候触发(before/after)
    insert on ord – 哪张表执行什么操作时触发
    for each row – 行级触发器(mysql只支持行级触发器)
    begin – 触发操作的内容
    DECLARE rnum int; – 定义变量
    select num into rnum from goods where gid=new.gid;
    if new.much>rnum then
    set new.much=rnum;
    end if;
    update goods set num=num-new.much where gid=new.gid;
    end $
  • 二、事务相关

1、mysql事务默认什么时候开启什么时候提交
答:mysql默认是没执行一个sql语句开启和提交一次事务
2、事务的特性
答:隔离性,一致性,原子性,持久性
3、事务的隔离级别
答:读未提交,读已提交(oracle默认的隔离级别),可重复读(mysql默认的隔离级别),串行化。

  • 三、索引相关

1、为什么要添加索引
答:合理的添加索引可以提高查询速度,我们可以通俗的将索引理解为字典中的目录。
2、索引的分类
答:索引可分为主键索引,普通索引,唯一索引,复合索引等。
3、加入为a、b两个字段建立一个复合索引,哪些查询可使用索引?
答:查询ab字段,查询a字段均可使用索引,但单独查询b字段不可使用索引
4、mysql索引使用何种存储结构(过段时间单独写一篇关于mysql索引存储的文章,欢迎到家指正)
答:mysql索引使用B+树进行存储。

  • 四、优化相关

1、如何避免Mysql慢查询
答:关于避免慢查询主要是指从sql语句出发,这方面大家可以去查询一下mysql官方发布的30条军规,这里简单的说一下,例如合理使用索引,尽量避免在等号左边做运算、使用不能与等会是查询不走索引的操作
2、Mysql优化主要从哪些方面下手
答:关于优化,任何的优化几乎都是从硬优化和软优化两方面入手;硬优化方面我们主要是提高硬件的配置,分库分表,读写分离等方案,软优化方面主要从sql语句入手,比如用join代替子查询,合理使用索引等

你可能感兴趣的:(面试)