1、索引滥用会降低更新表的速度,更新表时,MySQL不仅要更新数据,保存数据,还要更新索引,保存索引,索引会占用磁盘空间。
2、数据库索引采用B+树是因为B+树在提高了磁盘IO性能的同时解决了元素遍历效率低下的问题。
3、DELETE可用于删除表中的行数据;CLOSE可用于关闭游标;REVOKE可用于收回语句或对象许可;DROP可以删除视图。
4、
在SQL中,UNION操作符可以合并多个SELECT语句的结果集,但是只使用UNION操作符的时候,他只会列出不重复的值;如果想要获取重复值,就要用UNION ALL操作符才行。两者的语法如下:
-
SELECT col_name FROM tab_name UNION SELECT col_name FROM tab_name ORDER BY col_name;
-
SELECT col_name FROM tab_name UNION ALL SELECT col_name FROM tab_name ORDER BY col_name;
5、SQL利用Case When Then多条件判断
CASE
WHEN 条件1 THEN 结果1
WHEN 条件2 THEN 结果2
WHEN 条件3 THEN 结果3
WHEN 条件4 THEN 结果4
.........
WHEN 条件N THEN 结果N
ELSE 结果X
END
6、求和用累加sum(),求行的个数用累计count()。
7、inner join意思是左右表中的birth、name都不为NULL时才会匹配上。
8、外模式是面向数据库用户或应用程序的局部数据视图。
9、模式并不涉及数据的物理存储细节。
10、索引的组织方式是B+树索引,还是Hash索引与数据库的内模式有关。
11、having子句 = 指定组所对应的条件,having子句必须于group by 子句同时使用,不能单独使用。
12、Mysql(版本8.0.25)不支持full join。
13、count(name) 时不包括null值。
14、
(1)数据定义(SQL DDL)用于定义SQL模式、基本表、视图和索引的创建和撤消操作。
(2)数据操纵(SQL DML)数据操纵分成数据查询和数据更新两类。数据更新又分成插入、删除、和修改三种操作。
(3)数据控制(DCL)包括对基本表和视图的授权,完整性规则的描述,事务控制等内容。
(4)嵌入式SQL的使用规定(TCL)涉及到SQL语句嵌入在宿主语言程序中使用的规则。
15、
MySQL查询语句的执行顺序
正确的执行顺序应该是
-
先找到要查询表格或连接要查询的表格,因此FROM才是第一步;
-
接下来是进行条件筛选,所以是WHERE紧随其后;
-
然后如果遇到表格有分组的需要,则需要先GROUP BY;
-
分组时如果也存在筛选条件,这里就要用HAVING进行分组筛选;
-
这些执行过后才是查询操作SELECT;
-
SELECT的时候如果遇到重复数据,就需要去重,即使用DISTINCT;
-
接下来如果要对查询后的数据进行排序,会用到ORDER BY;
-
最后如果要指定返回的查询数据范围、条数则要用LIMIT/OFFSET函数。
16、可以避免脏读、幻读、重复读的隔离级别——SERIALIZABLE.
17、使用SHOW GRANTS语句查询root用户权限的语句
SHOW GRANTS FOR 'root'@'localhost'
18、使用CREATE USER语句创建新用户,用户名为user2,密码为123
CREATE USER 'user2'@'localhost' IDENTIFIED BY '123'
19、关于MySQL中的事务的说法:
事务就是针对数据库的一组操作
事务提交后其中的操作才会生效
事务中的语句要么都执行,要么都不执行
20、MySQL默认隔离级别——REPEATABLE READ。
21、关于局部变量的说法:
局部变量用DECLARE语句定义
局部变量的名称和数据类型是必选参数
局部变量可以通过函数返回值的方式返回给外部调用者
22、不能激活触发器的操作是——SELECT。
23、关于READ UNCOMMITTED的描述:
READ UNCOMMITTED是事务隔离级别中最低的
READ UNCOMMITTED会出现脏读
24、能在MySQL中实现循环操作的语句——LOOP、REPEAT、WHILE
25、事务隔离级别中,不可以避免脏读的是——READ UNCOMMITTED。
26、可以修改存储过程的语句——ALTER PROCEDURE 过程名称。
27、隔离级别中,性能最低的是——SERIALIZABLE。
28、实现收回user4用户INSERT权限的语句:
REVOKE INSERT ON *.* FROM 'user4'@'localhost'
29、关于游标的描述:
利用FETCH语句检索游标
游标名称是唯一勇于区分不同游标的标识
定义游标关联的SELECT语句中不能含有INTO关键字
30、删除存储函数——DROP FUNCTION。