美文网首页
mysql查询

mysql查询

作者: 3d7be2e0434d | 来源:发表于2018-07-19 12:31 被阅读0次

    1.查询所有语句

    select * from 表名;

    2.查询单个列名

    select 列名 from 表名;

    3.查询多个字段

    select 字段名1,字段名2。。。字段名n from 表名;

    4.查询指定记录

    select * from 表名 where 查询条件;

    如 age >20。可以是 =,<> !=,<,<=,>,>=,between

    5.带IN关键字的查询

    select * from 表名 where 字段 IN (值1,值2,。。。);

    6.带between and 的范围查询

    select * from 表名 where 字段 between 值1 and 值2;

    7.带like的字符匹配查询

    select * from 表名 where 字段 like ' %_ ';

    8.查询空值

    select * from 表名 where 字段 is null;    相反的是 is not null

    9.带and的多条件查询

    select * from 表名 where 条件1 and 条件2;

    10.单列排序

    select * from 表名 order by 字段;

    11.多列排序

    select * from 表名 order by 字段1,字段2;

    12.指定排序方向

    select * from 表名 order by 字段1 DESC,字段2;其中ASC是默认的排序方式。

    13.分组查询

    group by 字段 [having 条件表达式];

    如;select 班级字段 count(*) from 学生表 group by 班级 having count(*)>30;

    按班级对学生分组,显示超过30人的班级。其中having 在数据分组之后进行过滤来选择分组,而where在分组之前用来选择记录。

    14.group by 和 order by 一起使用

    如:select 用户id sum(数量*单价) as total from 订单表

     group by 用户id having sum(数量*单价)>100 order by total;

    查询花费超过100的用户和总订单价格,按用户分组,按消费金额排序。

    15.使用 limit 限制查询结果的数量

    limit [位置偏移量 ,] 行数

    16.有时候并不需要返回实际表中的数据,而是对数据进行总结。mysql提供一些查询功能,可以对获取的数据进行分析和报告,这就是聚合函数。group by 通常和聚合函数一起使用。

    17.count() 计算某列的行数。

    用法 count(*)计算表的总行数,不管某列有数值或为空值。

            count(字段)计算指定列下总的行数,计算时忽略空值。

    sum() 计算某列值的和

    min()返回某列值的最小值

    max()返回某列值的最大值

    avg()返回某列值的平均值

    18.内连接查询

    select * from 表1,表2 where 连接条件;

    select *  from 表1 inner join 表2 on 连接条件

    19.外连接查询

    左连接

    select 字段列表 from 表1 left outer join 表2 on 连接条件;

    右连接

    select 字段列表 from 表1 right outer join 表2 on 连接条件;

    全连接

    MySQL不支持全外连接,所以只能采取关键字UNION来联合左、右连接的方法:

    查询语句:SELECT s.*,subject,score FROM student s LEFT JOIN mark m ON s.id=m.id 

    UNION 

    SELECT s.*,subject,score FROM student s RIGHT JOIN mark m ON s.id=m.id;

    20.子查询

        a. 带any 、some 关键字的子查询,表示满足其中任一条件

            select * from 表名 where 字段 > any ( 子查询)

        b. 带all关键字的子查询,需要同时满足所有内层查询的条件

        c.带exists关键字的子查询,系统对子查询进行运算以判断它是否至少返回一行,如果返回一行则

        为ture.   select * from 表 where exists (子查询)

        d.带 in 关键字的子查询 select * from 表名 where 字段 in (子查询);

    相关文章

      网友评论

          本文标题:mysql查询

          本文链接:https://www.haomeiwen.com/subject/qivzpftx.html