美文网首页程序员
mysql 的筛选Retrieve

mysql 的筛选Retrieve

作者: AAA年华 | 来源:发表于2017-12-19 21:43 被阅读0次


    -- 条件查询 :关系运行符 > 、< 、=、>=、<= 、!=或者<>表示不等于--

    逻辑运算符: and or not -- 判断空 is null 非空 IS NOT NULL --

     as 可以起别名 。注意:这里面的大小写不区分。

    select * from hero where age >30 and age <40; 筛选hero这个表中age>30 和age<40的数据

    select * from hero where age !=35 OR age >35;筛选hero这个表age不等于35或者大于35的数据

    -- select * from hero where age IS not NULL;筛选hero这个表age是不是空的数据

    -- select * from hero where age IS  NULL;筛选hero这个表age是空的数据

    -- select * from hero where age=30; 筛选hero这个表age为30的数据

    -- select * from hero where age in(30,35) 筛选hero表中age为30或者age为35的所有数据

    --  select * from hero where age>=35 AND age <=40; 筛选表中age在[35,40]这个闭区间的数据

    -- select * from hero where age BETWEEN 35 AND 40;筛选表中age在[35,40]这个闭区间的数据

    1.1.1.1范围查询

    ·in   表示在一个非连续的范围内

    ·查询编号是1或3或8的学生

    select * from students where id in(1,3,8);

    ·between ... and ...表示在一个连续的范围内

    ·查询学生是3至8的学生

    select * from students where id between 3 and 8;


    --消除重复行

    ·在   select  后面列前使用  distinct     可以消除重复的行

    select   distinct      gender    from    user;

    -- 聚合函数 SUM()、 MAX()、min()、 AVG()、count()、

    -- SELECT count(age) FROM hero  表示查询表中的总数量

    -- SELECT MAX(age) FROM hero  表示查询表中age 这列的最大值

    -- SELECT Min(age) FROM hero  表示查询表中age 这列的最小值

    -- SELECT AVG(age) FROM hero  表示查询表中age 这列的平均值

    -- where 模糊查询  类似于我们学的match正则表达式

    -- SELECT * FROM hero WHERE `name` LIKE "%hua%"  筛选包含hua的名称的用户。

    -- SELECT * FROM hero WHERE `name` LIKE "hua%"  筛选以hua为开头的用户数据

    -- SELECT * FROM hero WHERE `name` LIKE "hua"  这样是筛选必须name为hua的用户数据

    -- SELECT * FROM hero WHERE `name` LIKE "_hua"  筛选第二位以hua为开头的用户数据 ,

    注意:_表示必须占据一个位置。 %相当于0个或者多个通配符

    -- SELECT * FROM hero WHERE `name` LIKE "hua"  就相当于SELECT * FROM hero WHERE `name`= "hua"

    -- SELECT * FROM hero WHERE `name` like "_%rong"   

    注意:"_"和 "%" 可以同时使用

    -- 条件查询:

    -- 排序 order by

    -- Select * from 表名  where 条件 order by 字段名称 [asc|desc]

    --  asc 表示升序,也就是从小到大。desc表示降序,也就是从大到小。

    -- SELECT * FROM hero WHERE `level` ORDER BY `level` ASC , age DESC;  多个字段用逗号隔开

    -- 分组查询: GROUP BY

    -- SELECT  gender, COUNT(*) from `hero` GROUP BY gender  表示以gender为标准进行分组,查到它的数量。

    --  SELECT  age as 类别, COUNT(*) as 数量 from `hero` GROUP BY age

    -- 筛选表示age相同的进行分组,查到每个age相同的数量。as表示起别名,也可以省略不写

    -- Having 筛选

    -- 注意,having是配合group by存在的,即有了分组才能有筛选,前后筛选对象要一致。

    -- SELECT `level`,COUNT(*) from hero GROUP BY `level` HAVING `level`>85;

    -- 前后的筛选对象要一致,比如这里的level、都已level为判断标准。

    -- 分页查询:Limit

    /**

    四个变量:

    当前页:pageNow 有用户决定

    页面大小:pageSize 一页显示多少条数据 有程序员决定

    共有多少条记录: allCount count 查询出来的

    共有多少页:pageCount 计算出来的值 pageCount = Math.ceil(allCount/pageSize)

    **/

    -- Select * from hero limit 0,2 #查询前2条数据

    -- Select * from hero limit (pageNow -1)*pageSize, pageSize

    -- 条件查询-顺序问题

    /*

    Select

    from

    Where

    Group by

    Having

    Order by

    limit

    */

    相关文章

      网友评论

        本文标题:mysql 的筛选Retrieve

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