Java知识分享网 - 轻松学习从此开始!    

Java知识分享网

Java1234官方群25:java1234官方群17
Java1234官方群25:838462530
        
SpringBoot+SpringSecurity+Vue+ElementPlus权限系统实战课程 震撼发布        

最新Java全栈就业实战课程(免费)

springcloud分布式电商秒杀实战课程

IDEA永久激活

66套java实战课程无套路领取

锋哥开始收Java学员啦!

Python学习路线图

锋哥开始收Java学员啦!

sql数据库面试必须品 PDF 下载


分享到:
时间:2020-10-23 13:36来源:http://www.java1234.com 作者:转载  侵权举报
sql数据库面试必须品 PDF 下载
失效链接处理
 sql数据库面试必须品 PDF 下载


本站整理下载:
提取码:kugi 
 
 
相关截图:
 
主要内容:

一.子查询
在SQL语言中,一个SELECT…FROM…WHERE语句称为一个查询块,将一个查询块嵌套在另一个查询块的WHERE子句中的查询称为子查询。子查询分为嵌套子查询和相关子查询两种。
嵌套子查询的求解方法是由里向外处理,即每个子查询在其上一级查询处理之前求解,子查询的结果作为其父查询的查询条件。子查询只执行一次,且可以单独执行;
嵌套子查询使得可以用一系列简单查询构成复杂的查询,从而明显增强了SQL的查询处理能力。
a)带有比较运算符的嵌套子查询(要求子查询返回的值为一行一列)
b)In的嵌套子查询(子查询返回的值为多行一列)
c)EXISTS的嵌套子查询:如果子查询的结果非空,即记录条数1条以上,则EXISTS (子查询)将返回真(true),否则返回假(false)。
d)相关子查询:子查询依靠外部查询获得值。这意味着子查询是重复执行的,为外部查询可能选择的每一行均执行一次。子查询不能单独执行。
 
二.视图
1.视图的概念
视图是另一种查看数据库中一个或多个表中的数据的方法。视图基于实际的数据表(基表)或别的视图而创建。视图是一种虚拟表,也就是说,视图中并不存储实际的数据。任何对视图的操作,都会转换为到基表的操作。
 
2.视图的用途:
筛选表中的行
防止未经许可的用户访问敏感数据
将多个物理数据表抽象为一个逻辑数据表
 
3.创建视图
语法:
CREATE VIEW view_name
AS
<SELECT语句>
 
4.对视图的编辑:
因为视图中的数据来源基表,因此对视图进行增删改操作时,其命令中只能包含一个基表的数据。因此通过视图来修改数据有许多的限制,所以在实际开发中一般视图仅作查询使用。
 
三.索引
1.索引的概念
索引是通过创建索引页的方式将表中指定列的数据进行存放,并提供指针以指向数据表中的数据,然后根据指定的排列次序排列这些指针。数据库使用索引的方式与使用书的目录很相似:通过搜索索引找到特定的值,然后跟随指针到达值的行。
2.索引的优点
通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性;
可以大大加快数据的检索速度,这也是创建索引的最主要的原因;
可以加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义;
通过使用索引,可以在查询的过程中,使用优化隐藏器,提高系统的性能。
 
3.索引的缺点
创建索引和维护索引要耗费时间,这种时间随着数据量的增加而增加;
索引需要占物理空间,除了数据表占数据空间之外,每一个索引还要占一定的物理空间,如果要建立聚簇索引,那么需要的空间就会更大;
当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,这样就降低了数据的维护速度。
 
4.适合建立索引的列
在经常需要搜索的列上,可以加快搜索的速度;
在作为主键的列上,强制该列的唯一性和组织表中数据的排列结构;
在经常用在连接的列上,这些列主要是一些外键,可以加快连接的速度;
在经常需要根据范围进行搜索的列上创建索引,因为索引已经排序,其指定的范围是连续的;
在经常需要排序的列上创建索引,因为索引已经排序,这样查询可以利用索引的排序,加快排序查询时间;
 
5.不适合建立索引的列
表中只会包含不多的数据。为小型表创建索引反而可能影响效率。通过索引进行查询所花的时间比在表中逐行搜索更多。
对于那些只有很少数据值的列也不应该增加索引。这是因为,由于这些列的取值很少,例如人事表的性别列,在查询的结果中,结果集的数据行占了表中数据行的很大比例,即需要在表中搜索的数据行的比例很大。增加索引,并不能明显加快检索速度;
对于那些定义为text, image和bit数据类型的列不应该增加索引。这是因为,这些列的数据量要么相当大,要么取值很少;
当修改性能远远大于检索性能时,不应该创建索引。这是因为,修改性能和检索性能是互相矛盾的。当增加索引时,会提高检索性能,但是会降低修改性能。当减少索引时,会提高修改性能,降低检索性能。因此,当修改性能远远大于检索性能时,不应该创建索引。
 
6.索引的类型
根据索引的顺序与数据表的物理顺序是否相同,可以把索引分成两种类型
聚集索引:数据表的物理顺序与索引顺序一致(物理排序);
因为表中的数据将按照索引页中的数据排序方式来进行排序,因此,只能为一个表创建一个聚集索引。默认情况会为主键列创建唯一聚集索引
 
非聚集索引:数据表的物理顺序与索引顺序不一致(逻辑排序)
索引页上的数据将进行排序,但是和数据表中的数据排列顺序不一致。因此可以为一个表最多创建249个非聚集索引


 

------分隔线----------------------------

锋哥公众号


锋哥微信


关注公众号
【Java资料站】
回复 666
获取 
66套java
从菜鸡到大神
项目实战课程

锋哥推荐