回顾数据库视频(select)

   第 一遍看数据库视频是抱着知道知道了解的态度,第一遍看过后没什么赶脚,在敲机房的很多时候都会用到select语句查询数据表。但是用起来真不顺手啊!有时候查一个指定的行,要写好几个语句。这时让我想起了米老师增加说过的一句话:好的代码都是逻辑清晰,结构简单的。要是你的程序代码很复杂,实现起来很麻烦。那么一定是逻辑或结构出问题了。一定还有更好的办法解决这个问题(语意)。当我回过头在看数据库视频的时候,在一次证明米老师说的是对的。
   sql语句公分为三大类:DDL 、DML 、DCL  三种语言有各自不用的功能。接下来我就介绍下数据操纵语言:    DML数据操纵语言是对数据库中的数据进行操作的,我根据语句是直接改变、间接改变数据中的记录。
回顾数据库视频(select)_第1张图片
把DML分为两大类: 
1、直接:insert  、delete  
2、间接: select 、update

而select 语句我又根据是否对结果集进行处理 分为2大类:    
1、不处理   ALL  /DISTINCT , TOP n [percent] INTO , WHERE
2、处理      GROUP BY ,HAVING , ORDER  BY 
          

分析:不处理,顾名思义也就是对结果集没在在 进行操作。 

(1)  ALL/DISTINCT 是一列为筛选条件的,ALL是默认的可以有相同的列、DISTINCT 相反。

ps: 可以有相同的列和不同的列,本人感觉应该是在表合并的时候用到,一张表不应该有相 同的列(属性)

(2)TOP n [percent] 返回前n行,如果指定参数则返回n% 。
ps:select top(1)  *  from  BasicDate_Info  则返回表的第一行记录。
                                              
(3)INTO  从一个表中选取数据插入到另一个表中,常用于创建表的备份附件,或用于对记录进行存档。                      ps:在用into时会生成一个新表  。详细:http://www.excelpx.com/home/show.aspxid=34232                                                                                                     http://ryxxlong.iteye.com/blog/744049

(4) where   后加筛选记录的条件 。条件可以是指定列的值、也可以是一个select子句。  
总结: 写select 语句时按照如上顺序即可,加上一句:这些操作相对简单。
                  

对结果集再次进行操作。

(1)GROUP BY 子句 指定查询结果的分组条件。(个人理解:指定要筛选出来的列)

ps: select  cardID , studentID from cardNO_Info  where  sex = '男' 

(2)HAVING 子句 与GROUP BY 子句一起使用,用于对结果集在一次进行筛选。

(3)ORDER BY子句  按照指定列对结果集进行排序(默认是升序)
(4)COMPUTE子句对晒选结果进行汇总。(只能对 数字类型)
(5)UNION 子句将两个或两个以上的结果集合并为一个。
 例如:select studentno,cardno from cancelcard_info
       union 
       select userid,pwd from User_Info 
注意:<1>union子句默认的是把重复的记录去掉,要是现实全部记录则是:union all 
      <2> 两个表列的数目和顺序必须相同,数据类型必须兼容。
总结: 处理操作在运用时要考虑逻辑问题和筛选条件的限制。
             
附件:where子句中的查询条件—比较运算符、范围说明、可选值列表、模式匹配、是否空值、逻辑组合。这些特意那出来是想说多用这些可以提高效率。
  
总结:这些都是理论而且有的还没有详细讲解,重要的是要记住每个子句的功能。在以后遇到问题的时候可以知道有这个东西可以解决它。在一个理论要在实践中多多运用在能成为自己的能力。   

你可能感兴趣的:(回顾数据库视频(select))