-- 条件查询 :关系运行符 > 、< 、=、>=、<= 、!=或者<>表示不等于--
逻辑运算符: 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
网友评论