MySQL查询语句

*************MySQL查询语句*************
1、单表查询
(1)、查询所有字段
        select 字段1,字段2,字段3,字段..... from 表名;
        select t.*,t.rowid from t_student t;
 (2)、查询指定字段
        select 字段1,字段2,字段3 from 表名;
        select stuName from t_student;
 (3)、where条件查询
        select 字段1,字段2,字段3  from 表名 where 条件表达式;
        select t.* from t_student t where t.age ='18';
 (4)、带in关键字查询
        select 字段1,字段2,字段3 ...from 表名 where 字段 [not] in (元素1,元素2,元素3);
        select t.* from t_student where t.age in ('18','19','20');
 (5)、带between and的范围查询
        select 字段1,字段2,字段3...from 表名 where 字段 [not]  取值1 and 取值2;
         select t.* from t_student where t.age between 12 and 25;
 (6)、带like的模糊查询
        select 字段1,字段2,字段3...from 表名 where 字段 [not] like '字符串';
        “%”-->匹配所有字符
        “_”-->匹配单个字符
 (7)空值查询
 select 字段1,字段2,字段3 ... from 表名 where 字段 is [not]null;
  (8)、带and的多条件查询
  select 字段1,字段2,字段3... from 表名 where 条件表达式1 and 条件表达式2...
  (9)带or的多条件查询
   select 字段1,字段2,字段3... from 表名 where 条件表达式1 or 条件表达式2...
 (10)、distinct 去重复查询
    select distinct 字段名from 表名;
 (11)对查询结果排序
    select 字段1,字段2,字段3...from 表名 order by 属性名[asc|desc]
    (12)、group by分组查询
    group by 属性名 [having 条件表达式]
    <1>单独使用(没什么意义)
    <2>与group_concat()函数一起使用
    select gradName, group_concat(stuName)from t_student group by gradName;
一年级    张三,李四
三年级    许xx,赵XX
二年级    王五,陈xx,李xx
四年级    张凤,宫佳伟
    <3>与聚合函数一起使用
    select stuName ,count(stuName) from t_student group by gradName;
张三    2
许xx    2
王五    3
张凤    2
    <4>与having一起使用(限制输出结果)
select stuName,count(stuName) from t_student group by gradName having count(stuName)<3;
stuName    count(stuName)
张三                2
许xx                2
张凤                2
    <5>与with rollup 一起使用(最后加入总和行)
        select stuName ,count(stuName) from t_student group by gradName with rollup;
张三    2
许xx    2
王五    3
张凤    2
张凤    9             <新加的行>
 
  (13)、分页查询 limit
  select 字段1,字段2,字段3... from 表名 limit 初始位置,记录数;
  select t.* from t_student t limit 0,3;
  select t.* from t_student t limit 3,3;
 
 
 2、聚合函数
 (1)、count()函数
        <1>count ()函数用来统计记录的条数
        select count(*) from t_student;
        <2>与group by 关键字一起使用
        select  count (*) total from t_student group by gradName;
 (2)、sum()函数
        <1>sum ()用来求和
        <2>与group by一起使用
  (3)、avg()函数
        <1>age()用来求平均值
        <2>与group by关键字一起使用
  (4)、max()函数
            <1>max()用来求最大值
            <2>与group by关键字一起使用
  (5)、min()函数
             <1>min()用来求最小值
            <2>与group by关键字一起使用
            
3、连接查询(将两个或两个以上表根据某种关系连接起来,从中选取所需数据)
 (1)、内连接
            内连接查询是最常用的连接查询,内连接查询可以查询两个或两个以上的表
            select t1.bookName,t1.author,t2.bookType from t_book t1,t_bookType t2 where t1.id =t2.id;
  (2)、外链接
        查出某张表的所有信息
        select 属性列表 from 表名 1 left|right join 表名2 on 表1属性=表2属性  注释:on 之后的为条件
      (2.1)左连接
            罗列表1的所有信息而表2只能查出匹配记录(不匹配的null显示)
      (2.2)右连接
            罗列表2所有信息而表1只能查出匹配记录(不匹配的null显示)
 (3)多条件查询

 4、子查询
(1)、带in关键字的子查询
    一个查询语句的条件可能落在另一个select语句的查询结果中
(2)、带比较运算符的子查询
    子查询可使用比较运算符
(3)带exits关键字的子查询
    加入子查询到记录,则进行外层查询,否则不进行外层查询
(4) 带any关键字的子查询
     any关键字表示满足其中任意一个条件
(5)带all关键字的子查询
    all关键字表示满足所有条件
    
5、合并查询
(1)、union
        使用union关键字,会将查询到的所有结果合并到一起,然后去除相同的记录
(2)、union all
        使用union all关键字,是合并所有查询结果,不去除相同记录

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员晓凡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值