其中有一个查询,这次就较为全面的写一下MySQL的查询
查询的基本语法为:
select * from 表名;
在select后面列使用distinct可以消除重复行,语法为:
select distinct 字段名 from 表名;
使用where字句对表中的数据筛选,结果为true的行会出现在结果集中,语法为:
select * from 表名 where 条件;
比较运算符:
等于 =
大于 >
大于等于 >=
小于 <
小于等于 <=
不等于 != 或 <>
查询标号不大于4的科目
select * from 表名 where id <= 4;
查询姓名不是张三的学生
select * from 表名 where name != "张三";
查询没被删除的男生
select * from 表名 where isdelete=0 and sex=1;
逻辑运算符:
and or not
查询编号大于3的女同学
select * from 表名 where id>3 and sex=0;
模糊查询:
like
%表示任意多个任意字符
_表示一个任意字符
查询姓黄的学生:
select * from 表名 where name like '黄%';
范围查询:
in 表示在一个非连续的范围内
between...and... 表示在一个连续的范围内
优先级:
小括号,not,比较运算符,逻辑运算符
and比or选运算,如果同时出现并希望先算or,需要结合()使用
聚合函数:
count()表示计算总行数,括号中写星或列名,结果是相同的
max(列) 表示求此列的最大值
min(列) 表示求此列的最小值
sum(列) 表示求此列的和
avg(列) 表示求此列的平均值
分组:
语法:select 列1,列2,聚合... from 表名 group by 列1,列2,列3...
分组后的数据筛选:
select 列1,列2,聚合...from 表名
group by 列1,列2,列3...
having 列1,....聚合...
having后面的条件运算符与where的相同
对比where与having
where 是对from 后面指定的表进行数据筛选,属于对原始数据的筛选
having是对group by的结果进行筛选
排序:
语法为下
slelect * from 表名
order by 列1 asc(从小倒下排列,即升序)
select * from 表名
orser by 列1 desc(从大到小排列,即降序)
分页
select * from 表名
limit start,count
从start开始,获取count条数据
start索引从0开始
网友评论