码迷,mamicode.com
首页 > 数据库 > 详细

数据库的查询笔记

时间:2017-11-05 14:29:29      阅读:265      评论:0      收藏:0      [点我收藏+]

标签:date   strong   字符   not   des   convert   name   escape   技术   

  数据库的查询笔记

1、 在字符查询语句中:WHERE 语句中的筛选条件应该用LIKE,NOT LIKE 来表达是否匹配。如下所示;

SELECT

     S.*

     FROM

     tb_Major AS S

     WHERE

     S.ShortName  LIKE ‘公共事业管理% ‘;

 

一定不能表示成

SELECT

     S.*

     FROM

     tb_Major AS S

     WHERE

     S.ShortName  = ‘公共事业管理% ‘;

 

2、 用户查询的字符串本身就含有通配符%或者-时,需要使用ESCAPE’<换码字符>’短语对通配符进行转义。

如下代码例子所示:

SELECT

Cno,Ccredit

FROM

Course

WHERE Cname LIKE ‘DB\_Design’ ESCAPE’\’;

 

 

3、为了进一步方便用户,SQL 语言提供了许多的聚集函数,主要有COUNT(*)、SUM、AVG、MAX、MIN 。在使用这些聚集函数时经常会出现以下情况

 技术分享

正确表达如下:

  SELECT

  S.*

  ,MIN(S.BirthDate)

  FROM

  vw_Student AS S

  GROUP BY

  S.BirthDate

 

 4、在SQL 语言中WHERE子句是不能用聚集函数作为条件表达式的,聚集函数只能作用于SELECT子句和GROUP BY 的HAVING 语句。

例:错误表达方式

 技术分享

 正确表达如下

技术分享

 

5、ISNULL 函数,判断是否为空值

例:

技术分享

 

语句执行后,若先修课程为空值,则输出结果‘无‘的数据类型与PreCourseNo 数据类型一致。

故因此可能会出现输出结果数据被截断或者出现空格情况,因此该函数在使用时常常连同着转变函数CONVERT 函数一起使用来转变输出结果的数据类型。

 

 6、字符串拼接时若拼接的某一部分的取值为NULL,则拼接后的输出结果只会是NULL

拼接的前部分将被覆盖丢失。

例、C.No+C.Name+C.PrecourseNo

  当C.PrecourseNo 取NULL时,拼接的最后输出结果为NULL。

修改后:C.No+C.Name+ RTRIM (ISNULL(C.PrecourseNo ,’’) 则避免了上述问题

 

7、SQL语言中IF不能用于语句内部,因为它控制的是整个流程,即该段语句是否执行。不能用来表达对语句中某一列的各种取值情况问题。

错误语句段:              

 

SELECT

S.Name

,S.No

,IF….

 

正确语句段

SELECT                        

S.Name

,S.No

,CASE

 8、查询数据库中所有表的各有多少条记录的代码片段如下所示:(以查询数据库EduBase中所有表各有多少条记录为例)

技术分享

执行结果如下:

 

技术分享

数据库的查询笔记

标签:date   strong   字符   not   des   convert   name   escape   技术   

原文地址:http://www.cnblogs.com/706xiaozu/p/7787318.html

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