10-10 46—50

______egon新书python全套来袭请看:https://egonlin.com/book.html

46.简述leftjoin和rightjoin的区别?

left join:外链接之左连接:优先显示左表全部记录
					#以左表为准,即找出所有员工信息,当然包括没有部门的员工
					#本质就是:在内连接的基础上增加左边有右边没有的结果
right join:外链接之右连接:优先显示右表全部记录
          #以右表为准,即找出所有部门信息,包括没有员工的部门
          #本质就是:在内连接的基础上增加右边有左边没有的结果

47.索引有什么作用,有那些分类,有什么好处和坏处?

作用:
索引提供指向存储在表的指定列中的数据值的指针,然后根据您指定的排序顺序对这些指针排序。数据库使用索引以找到特定值,然后顺指针找到包含该值的行。这样可以使对应于表的SQL语句执行得更快,可快速访问数据库表中的特定信息。

分类:
1、唯一索引

唯一索引是不允许其中任何两行具有相同索引值的索引。当现有数据中存在重复的键值时,大多数数据库不允许将新创建的唯一索引与表一起保存。

2、主键索引

数据库表经常有一列或多列组合,其值唯一标识表中的每一行。该列称为表的主键。在数据库关系图中为表定义主键将自动创建主键索引,主键索引是唯一索引的特定类型。该索引要求主键中的每个值都唯一。当在查询中使用主键索引时,它还允许对数据的快速访问。

3、聚集索引

在聚集索引中,表中行的物理顺序与键值的逻辑(索引)顺序相同。一个表只能包含一个聚集索引。如果某索引不是聚集索引,则表中行的物理顺序与键值的逻辑顺序不匹配。与非聚集索引相比,聚集索引通常提供更快的数据访问速度。

4、索引列

可以基于数据库表中的单列或多列创建索引。多列索引可以区分其中一列可能有相同值的行。如果经常同时搜索两列或多列或按两列或多列排序时,索引也很有帮助。例如,如果经常在同一查询中为姓和名两列设置判据,那么在这两列上创建多列索引将很有意义。

优点:

1、大大加快数据的检索速度。
2、创建唯一性索引,保证数据库表中每一行数据的唯一性。
3、加速表和表之间的连接。
4、在使用分组和排序子句进行数据检索时,可以显著减少查询中分组和排序的时间。

缺点:

1、索引需要占物理空间。
2、当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,降低了数据的维护速度。

48.写sql语句

​ TableA

ID NAME KECHENG FENSHU
1 张三 语文 81
2 张三 数学 75
3 李四 语文 76
4 李四 数学 90
5 王五 语文 81
6 王五 数学 100
7 王五 英语 90

​ TableB

ID NAME
1 张三
2 李四
3 王五
4 赵六

查询:

1.查询出每门课程都大于80分的学生姓

SELECT
	`NAME` 
FROM
	TableA 
WHERE
	`NAME` NOT IN (
	SELECT
		`NAME` 
	FROM
		TableA 
	WHERE
		FENSHU < 80 
	GROUP BY
		`NAME` 
	) 
GROUP BY
	`NAME`;

2.查询出语文成绩最大的学生姓名

SELECT
	TableA.`NAME` 
FROM
	TableA 
WHERE
	FENSHU = (
	SELECT
		`FENSHU` 
	FROM
		TableA 
	WHERE
		KECHENG = "语文" 
	GROUP BY
		FENSHU 
	ORDER BY
		FENSHU DESC 
		LIMIT 1 
	) 

3.查询没有成绩的学生姓名

SELECT
	`NAME` 
FROM
	TableB 
WHERE
	NAME NOT IN ( SELECT `NAME` FROM TableA GROUP BY `NAME` )

49.试列出至少三种目前流行的大型关系型数据库的名称

  试列出至少三种目前流行的大型关系型数据库的名称
  其中您最熟悉的是
  什么时候开始使用
  
  “”“
  Oracle
  SQL Server
  MySQL
  ”“”

50.什么是MySQL慢日志?

慢日志查询的主要功能就是,记录sql语句中超过设定的时间阈值的查询语句。例如,一条查询sql语句,我们设置的阈值为1s,当这条查询语句的执行时间超过了1s,则将被写入到慢查询配置的日志中.
慢查询主要是为了我们做sql语句的优化功能.

配置项说明:
	登陆mysql服务:
	> show variables like '%query%';
	关注三个配置项即可。
  1.slow_query_log
  该配置项是决定是否开启慢日志查询功能,配置的值有ON或者OFF.
  2.slow_query_log_file
  该配置项是慢日志查询的记录文件,需要手动创建.
  3.long_query_time
  该配置项是设置慢日志查询的时间阈值,当超过这个阈值时,慢日志才会被记录.配置的值有0(任何的sql语句都记录下来),或者>0(具体的阈值).该配置项是以秒为单位的,并且可以设置为小数.
  4.log-queries-not-using-indexes
  该配置项是为了记录未使用到索引的sql语句.
posted @ 2019-10-22 22:14  小猿取经-林海峰老师  阅读(820)  评论(0编辑  收藏  举报