码迷,mamicode.com
首页 > 其他好文 > 详细

期末总结(基础)

时间:2018-06-18 23:19:21      阅读:253      评论:0      收藏:0      [点我收藏+]

标签:从表   height   学习   code   依据   原则   记录   重要   select   

(一)问题总结

  期末了,同学们学习数据库的情绪高涨,问题涌现,让我们总结一下都出现了哪些问题呢?

  1. delete,remove,drop都是“删除”分别在啥时候用呢?alter什么时候用呢?
  2. DML,DCL,DDL都是啥?
  3. 5种连接我还是不懂。。。。。。
  4. 范式的概念根本看不懂啊。。。(暂未写完)
  5. 。。。。。(欢迎添加)

(二)问题解决

1.delete,remove,drop都是“删除”分别在啥时候用呢?alter什么时候用呢?

想解决这个问题我们可以先查查F1

  1. DELETE只有一行简单的解释:从表中删除行。
  2. REMOVE则出现在ALTER目录下:技术分享图片
  3. DROP则有多个目录:

    技术分享图片

那么现在你有两个选择:1.背下来remove,drop,alter,delete它们都在什么时候出现。

           2.找到规律

有什么规律呢?

  先说delete,它最单纯,它只负责删除“行”(删除数据)别的地方你不会见到他

  再说drop,它最复杂,它负责删除“东西”(删除一些数据库特有的“东西”),这里我将东西加了引号,什么意思?这里的东西指数据库的“库”、“表”、“视图”。。。。。。一些非实体数据库特有。(非实体:不是文件)

  最后说 ALTER 和 REMOVE ,你可以将ALTER看成一个“高等级的”关键词, REMOVE, ADD, MODIFY等是它的“附庸”关键词,这些“低级关键词”是不可能单独出现的,必须有ALTER出现时,它们才能出现。ALTER是对REMOVE,ADD,MODIFY的一种概括,ALTER是改变的意思,(删除,重定义(名字,大小。。。),增加)这些都是比ALTER更为具体的行动,因此ALTER之后才能出现这些低级关键词

  换个角度讲,那去掉ALTER行不行呢?答案是不行,为什么?我们的每一条语句都遵从一个最高原则:不能引起歧义.REMOVE, ADD, MODIFY这些关键词只作用与(文件,数据库的某些属性)这些往往都是可能和其他数据库混淆的,必须有一个关键词来标识我要对哪个数据库ADD,对哪个数据库REMOVE......所以ALTER出现在这些具体操作前是必须的很有必要的.

2.DML,DCL,DDL都是啥?

  先看看它们的英文全拼:DML:data manipulation(操作) language,DCL:Data Control Language,DDL:data definition(定义) language

  它们都有一个Data开头language结尾,所以它们各自代表一类操作数据(Data)的语言(language),其中我们常用的是DDL和DML,DCL几乎不会用到,下面我们看看它们各自都包含哪些具体的关键词.

  DDL:

      技术分享图片

  DML:

      技术分享图片

从这里我们也能看出(DROPALTER)都和DELETE不是一个类型的关键词.

最后还有DCL:(不常用也只能先记住)

      技术分享图片

                                                            跟着数据库学英语:manipulation(操作)

3.五种连接

  先来了解一下"连接"的样子: 

1 SELECT * FROM XS *** JOIN JY ON XS.借书证号 = JY.借书证号 

  简单解释一下这句话,这句话意思是:以***这种方式连接两个表,返回两个表的所有列(区分XS,JY的即若两表都存在的列也会输出成两列)

"***"三个星号省略的是连接方法,都有哪些连接方法呢?

ps:我接下来将用我们最熟悉的XS(学生信息表),JY(借阅信息表)为例来说明以下三种连接

先让我们看看两张表XS,JY原来是什么样的:

技术分享图片技术分享图片

  两个表的连接大类分可以分为三大类:1.内连接(重要:自然连接,数据库默认连接)2.外连接3.交叉连接.这其中最简单的是交叉连接,我们先说交叉连接

  1.交叉连接(cross join):重点:(没有代码示例中的ON及以后的代码)

最粗暴的一种连接方式,将A表的每一个数据与B表的每一个数据"怼"在一起,不太能想象出来那个情形????

下面看一下交叉后的结果吧:

技术分享图片

 

和你想的一样么?

XS表的第一行王娟的记录与JY表的所有记录来了个依次连接,这张新连接的表有99行!!(9×11)XS表有9行JY表有11行,现在你理解什么是交叉连接了么?

  2.内连接(inner join):内连接的小名有很多:自然连接,数据库默认连接,这些一定熟记,内连接相比其他连接的特点就是()它往往行数最少

在A表与B表同时满足条件时它才会将两行记录连接在一起.我们先看一下结果再来仔细分析.

 技术分享图片

可以看出这张表中以赵朋中为首的不借书党没有出现在连接表中,why?因为我的要求是XS.借书证号 = JY.借书证号,必须两张表里都有的借书证号才能连接

   3.外连接(outer join):外连接分为左外连接,右外连接,全连接


左右连接比较粗暴(没有交叉连接粗暴→_→)所以先讲这两个:

左(右)连接搞懂一个另一个就懂了

以左连接为例 : 首先, 左表全部输出, 再检查符合条件的借书证号在右表里是否存在,若存在则连接并输出,不存在用NULL补全

我们来看看实际情况:

技术分享图片

 

王娟的记录在左边有,而且借了了6次书,所以在新表里她的记录出现了6次,赵朋中为首的不借书党也出现了,但是右边是NULL,因为他们没有借过书.

那右连接你能想到是什么样的吗?

可以翻到上面看一下XS,JY表,依据这两张表自己想一下,再看答案

↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓答案在下面↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓答案在下面↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓答案在下面↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓答案在下面↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓答案在下面↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓答案在下面↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓答案在下面↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓答案在下面↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

 

 

 

 

 

技术分享图片

 

 

 

 今天2018-06-18 22:46:40太晚了,明天继续更新.....

 

动作描述 使用聚集索引 使用非聚集索引
列经常被分组排序
返回某范围内的数据 不应
一个或极少不同值 不应 不应
小数目的不同值 不应
大数目的不同值 不应
频繁更新的列 不应
外键列
主键列
频繁修改索引列 不应

期末总结(基础)

标签:从表   height   学习   code   依据   原则   记录   重要   select   

原文地址:https://www.cnblogs.com/MyBlog-MrY/p/9196022.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!