MySQL--三(杂)

warning: 这篇文章距离上次修改已过416天,其中的内容可能已经有所变动。

1、索引有哪些类型?

       普通索引:普通索引是最基本的索引,没有任何限制,值可以为空;仅加速查询;

        唯一索引:与普通索引类似,不同的是:索引的列必须唯一,但可以为空值,如果是组合索引,则列值的组合必须唯一;

        主键索引:主键索引是特殊的唯一索引,一个表只能有一个主键,不许有空值;

        组合索引:组合索引指在多个字段上创建的索引,只有在查询条件中使用了创建索引时的第一个字段,索引才会被使用。使用组合索引时遵循最左前缀集合;

        全文索引:全文索引主要用来查找文本中的关键字,而不是直接与索引中的值相比较。

2、union和union all的区别

        union和union all 都是对于多个查询结果的并集进行操作,但:union会去重并排序,而union all会将所有结果显示出来,不去重也不排序。

3、索引的作用,和他的优缺点是什么?

        索引就一种特殊的查询表,数据库的搜索可以利用它加速对数据的检索。它很类似与现实生活中书的目录,不需要查询整本书内容就可以找到想要的数据。索引可以是唯一的,创建索引允许指定单个列或者是多个列。缺点是它减慢了数据录入的速度,同时也增加了数据库的尺寸大小。一般唯一、不为空、经常被查询的字段适合建索引。

4、MySQL哪些字段适合建立索引?

       数量超过300的表应该有索引;

        表的主键、外键必须有索引;

        经常与其他表进行连接的表,在连接字段上应该建立索引;

        经常出现在where语句中的字段,特别是大表的字段,应该建立索引;

        频繁进行数据操作的表,不要建立太多索引;

5、主键和外键的区别?

       主键是能确定一条记录的唯一标识,比如,一条记录包括身份证号、姓名、年龄。其中,身份证号是唯一能确定你这个人的,其他的都有可能重复,但身份证号不会,所以,身份证号是主键。

        外键用于与另一张表的关联。是能确定另一张表记录的字段,用于保持数据的一致性。比如,A表中的一个字段,是B表的主键,那他就可以是A表的外键。

6、order by 和 group by 的区别是什么?

       order by:order by的作用就是排序。asc:升序,desc:降序。order by后面跟多个字段时,排序按照就近原则;

        group by:聚合分组,值相等即为一组。聚合的意思就是聚合函数,例如sum()、avg()、count()、max()等;

注意:having只能用在group by之后,对分组后的结果进行筛选(即:要使用having,你必须先用group by分组);如果还要使用where,那么where要放在group by 之前where后的条件表达式里不允许使用聚合函数,但having可以
最后修改于:2023年03月31日 17:37

添加新评论