zoukankan      html  css  js  c++  java
  • 单表数据查询

    一.避免重复查询-distinct

        语法格式:select distinct 字段一,字段二 from student

    select distinct groupNum,qq from student

    二.实现数学运算的查询

    MySQL中的数学运算符:+ - * / %

    select name,salary*12 as 年收入 from student 

    三.concat连字符查询

         格式化显示查询结果:使用字符串拼接函数将查询出来的数据进行再加工

        as是给查询出来的字段起的别名,在后续做视图查询或者应用程序对字段进行解析的时候会起到作用

    1 -- concat连字符查询
    2 select CONCAT('皇家大应用-',name,'同学') as 学生,email from student

    四.条件记录的数据查询

      4.1 带关系运算符和逻辑运算符的表达式

            MySQL中的关系运算符:> 、>=、<、<=、!=(<>)、=

            MySQL中的逻辑运算符:&&(and)‖(or)、!(not)

    1 -- 下面例子使用到了算术运算符和逻辑运算符
    2 -- 在逻辑表达式中,我们一般用and和or来表示
    3 select name,salary from student where salary>=3500 and salary<=4000

    4.2 带between and关键字的条件查询

     

    1 -- between and关键字查询
    2 -- 其中查询出来的结果集包含了4000和4500,在实际开发中,对日期类型的数据查询场景使用较多
    3 select name,salary from student where salary between 4000 and 4500

    -- 查询月薪不在4000到4500的
    select
    name,salary from student where not(salary between 4000 and 4500)

    4.3  is null关键字查询

    1 -- is null关键字查询
    2 -- 先设置一下
    3 -- update student set code=null,password=null,salary='',email='' WHERE name="林英方"
    4 select name from student where  code is null and  password is null 
    5 select name from student where salary='' or email=''

     

     

    其中不为空表示为is not null

    select name from student where salary is not null

    4.4 带in关键字的数据条件查询

     温馨小提示:查询的是一个集合

    select id,name from student where id in(1,3,5)

    select id,name from student where id not in(1,3,5)

    温馨小提示:不在某个集合范围内的查询

    select id,name from student where id not in(1,3,5)

    4.5 带like关键字的查询

    1 -- like关键字模糊查询
    2 select name from student where name like '阿%'-- 以阿开头,后面0~任意个字
    3 select name from student where name like '%果子'-- 前面0~任意个字,以果子结尾


     五.排序查询

    1 -- 排序查询 asc升序(从小到大) desc降序(从大到小)
    2 select * from student as s order by s.groupNum asc,salary desc

    温馨小提示:前面是将groupNum字段升序(从小到大),在groupNum相同的时候以salary字段以降序(从大到小)方式排序

    六.限制数据记录的查询

    1 -- 限制数据记录的查询数量
    2 -- 在实际的程序开发中,我们不可能一次性的把所有数据都查询出来
    3 -- 然后在服务器中对数据进行分页的过滤
    4 -- 所以我们在数据查询的时候自己进行分页
    5 -- limit后面的两个参数代表着从哪一行开始,查询几行记录
    6 select * from student as s order by s.groupNum asc,s.salary desc LIMIT 0,3

    七.统计函数和分组数据查询

    7.1 统计查询

    除了count函数外,其它函数如果没有找到记录,返回值是null,count函数返回0

    1 -- 统计函数查询
    2 select avg(salary) as 平均薪水 from student -- 平均数
    3 select max(salary) as 最高薪水 from student -- 最大值
    4 select min(salary) as 最低薪水 from student -- 最低值
    5 select sum(salary) as 所有人薪水总和 from student-- 求和
    6 select count(*) from student-- 代表student表中有多少条记录
    7 select avg(salary) as 平均薪水 from student  where id='-1'-- 平均数
    8 select count(*) from student where groupNum='10' -- groupNum等于10的记录有几条

           

        

              

    7.2  分组查询

     1 -- 分组查询执行顺序分析
     2 -- 先以groupNum字段执行分组,查询groupNum字段
     3 -- group_concat(name)每组中的成员姓名
     4 -- 再计算出每组的平均薪水
     5 select groupNum ,GROUP_CONCAT(name),AVG(salary)
     6 from student 
     7 group by groupNum
     8 
     9 -- 先以groupNum字段执行分组,再以age字段执行分组
    10 -- 查询groupNum,age
    11 -- 查询出同一组且同一年龄有哪些成员
    12 select groupNum,age,GROUP_CONCAT(name) 
    13 from student 
    14 group by groupNum,age


    7.3 使用HAVING对聚合完的数据进行条件限制查询

     1 -- 使用having对聚合完的数据进行条件限制查询
     2 -- having就是用来聚合函数进行条件过滤的
     3 -- 先执行age='20'进行数据过滤
     4 -- 在进行group by分组
     5 -- 再执行select后的所有代码
     6 -- 最后having对聚合完成的数据进行再次过滤
     7 select groupNum,GROUP_CONCAT(name),avg(salary)
     8 from student 
     9 where age='20'
    10 group by groupNum
    11 HAVING avg(salary)>3500

  • 相关阅读:
    例题6-8 Tree Uva548
    例题6-7 Trees on the level ,Uva122
    caffe Mac 安装
    Codeforces Round #467 (Div. 1) B. Sleepy Game
    Educational Codeforces Round37 E
    Educational Codeforces Round 36 (Rated for Div. 2) E. Physical Education Lessons
    Good Bye 2017 E. New Year and Entity Enumeration
    Good Bye 2017 D. New Year and Arbitrary Arrangement
    Codeforces Round #454 D. Seating of Students
    浙大紫金港两日游
  • 原文地址:https://www.cnblogs.com/zjm1999/p/10106561.html
Copyright © 2011-2022 走看看