数据库学习第四篇(对基本表数据的查询2)

来源:互联网 发布:c4d r18 for mac迅雷 编辑:程序博客网 时间:2024/06/05 04:36

此篇衔接的是上一篇


三、查询经过计算的值

例如:罚款分类罚金的总和

select sum(罚金)
from 罚款分类;

 其他的计算:  count(*) 统计一个表中的元组个数

                           count(column_name1) 统计某一列中值的个数

                           sum(column_name) 计算某一列的总和

                           avg(column_name) 计算某一列的平均值

                           max(column_name) 求一列中的最大值

                           min(column_name) 求一列中的最小值


四、取消重复行

例如我们在借阅表中查询被借阅过的书的图书编号,那么我们会发现有的书如果被借出过两次,那么它的图书编号就会出现两次

而我们只需要一次,那么我们就需要取消重复行。

例如:(只需要在要查询的列名前加distinct就可以了)

select distinct 图书编号
from 借阅;


五、查询满足条件的元组

     (1)比较(符号包括: =,<,>,>=,<=,!=,<>,!<,!>,not+上述比较符)

               例如:我们要查询罚金为10的罚款信息

               select *
               from 罚款分类
               where 罚款分类.罚金='10';

     (2)确定范围(between...and...,not between...and...)

              例如:查询罚金在10~50之间的罚款信息

              select *

              from 罚款分类
              where 罚款分类.罚金 between '10'and '50';

     (3)确定集合(in,not in)

               例如我们要查询人民出版社和作家出版社的书的信息

               select *
               from 书目
               where 出版单位 in('人民出版社','作家出版社');

    (4)字符匹配(like,not  like)

               //   % 表示任意长度的字符串  例如 a%b表示以a开头以b结尾的字符串

               //    _(下划线)代表任意单个字符  例如 a_ 表示以a开头的长度为2的字符串

               例如我们要查询所有姓张的读者的信息

               select *
               from 读者
              where 读者.姓名 like '张%';

              !!!数据库字符集为ascII时一个汉字需要两个下划线

              可是我们遇到查询以刘_开头的怎么办?

              这就涉及到转义字符

              select *

              from 读者

              where 姓名 like '刘\_%' escape '\';

              即要标明转义字符。

   (5)空值(is null ,is not null)

            例如:从借阅表中查询有哪些书还没有还,我们只要查询哪些归还日期没有值即可

            select *
            from 借阅
            where 归还日期 is null;

  (6)多重逻辑判断(AND ,OR,NOT)


六、使用ORDER BY 字句查询

       order by 【ASC(升序)   |  DESC(降序)】语句可以用来对数据按照一个或者多个属性进行排序

       例如我们按照罚款数额从大到小排列

          select *
          from 罚款分类
         order by 罚款分类.罚金 desc;

七、使用group by 子句

        group by 子句将查询结果按某一列或者多列的值分组,值相等的为一组;

         例如 求出被借过的书的编号,以及借阅过他们的人数

           select 图书编号,count(借书证号)
           from 借阅
          group by 图书编号;

原创粉丝点击