• 数据库的查询笔记


      数据库的查询笔记

    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中所有表各有多少条记录为例)

    执行结果如下:

  • 相关阅读:
    541. Reverse String II
    540. Single Element in a Sorted Array
    初识python
    openCV
    openCV
    win环境下安装配置openCV-4.3.0
    力扣Leetcode 198. 打家劫舍
    力扣Leetcode 680. 验证回文字符串 Ⅱ
    力扣Leetcode 560. 和为K的子数组
    华师2019软件专硕复试机试题最后一题G:找数
  • 原文地址:https://www.cnblogs.com/706xiaozu/p/7787318.html
Copyright © 2020-2023  润新知