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

    1.模糊查询

      select * from 表名 where 字段 like ‘%w%’;

      select * from grade where name like '%java%';   %号中间写查询数据的内容     这个用的比较多

      select * from grade where name like 'java%';   百分号写在后面的意思是 查询java开头的数据

      select * from grade where name like '%java';   百分号写在前面的意思是 查询java结尾的数据

      

      select * from 表名 where 字段 like ‘_’;

      select * from grade where name like 'java_';  一个下划线的意思是查询这条数据后面只有一个字符的数据 而且是必须有一个字符

    2.去除重复数据

      select distinct 字段1 from 表名;

       select distinct tid  from grade;  去除tid这个字段下重复的数据 主要是distinct这个词

    3.排序

      select *from 表名 order by 列名 asc(asc升序默认;desc降序)  order by 这个是排序的关键字

      select *from score order by score; 这个是升序排序 没写就是默认的asc

      select *from score order by score desc;这个是降序排序  是desc

    4.聚合函数查询

      select  关键词(列名)  from 表名

      select max(score) from score;这个是找最大值

      select min(score) from score;这个是找最小值

      select avg(score) from score;这个是找平均值

      select sum(score) from score;这个是值得求和

      select count(*) from score;查询一共有多少条数据就是统计行数 这个关键词里面必须有参数 所以写了个通配符*号

    5.分组查询

      查询 最大值 最小值...                                                     加tid这一列   表名      根据tid来分组    

      select max(score),min(score),avg(score),sum(score),count(*),tid from score group by tid; 关键词是 group by

      分组后筛选使用

      select tid from score group by tid having count(*)>3; 这个是分组查询后在用having 来限制查询条件的输出

      select tid from score where score=90 group by tid having count(*); 如果在加where限制条件的输出 需要加到group by前面

    6.分页查询

      0是从哪一行开始 2是显示几行  页码减一然后乘以行数

      select * from score limit 0,2;  

           

     7.多表联合查询

      select * from 表1 as a join 2 as b on a.id=b.lid where a.id =3;

     

      select * from teacher as a join grade as b on a.id = b.tid where a.id = 1;   as后面的a b是起的别名为了在where好写 这是查询a表id=1老师教的班级

      select * from teacher as a join grade as b on a.id = b.tid where a.id = 2;   as后面的a b是起的别名为了在where好写 这是查询a表id=2老师教的班级

      select * from teacher as a left join grade as b on a.id = b.tid ;  加了left是意思是查左边表的所有内容左边表就是a表 如果改为right就是查询有表的所有信息

           

      select * from grade where tid=(select id from teacher where name ='朱老师'); 子查询 先查出括号内表的信息 然后用这个信息来限制查询前面表的信息

       select g.* from grade as g join teacher as  t on g.tid=t.id where t.name='朱老师';  这是用多表联合查询 这个查到的和上面这个子查询的结果是一样的,前面g.*号的意思是只查询g这个表的信息

    8. union

      操作符用于连接两个以上的 SELECT 语句的结果组合到一个结果集合中。多个 SELECT 语句会删除重复的数据。

          select sname as name,ssex as sex,sbirthday as birthday from student  union  select tname as name,tsex as sex,tbirthday as birthday from teacher;

    9.in

      select * from score where degree in(86,75);  

      select * from score where degree not in(86,75);  not in就是排除这括号内值

  • 相关阅读:
    第十二周作业
    第11周学习总结
    第十周学习总结(五一作业)
    第九周作业
    第八周作业
    第七周作业
    PAT1049、1048、1047
    例题3-5,例题4-2,例题4-3
    PAT甲级真题打卡:1002. A+B for Polynomials
    PAT甲级真题打卡:1001.A+B Format
  • 原文地址:https://www.cnblogs.com/sheep-fu/p/13023940.html
Copyright © 2011-2022 走看看