MySQL的基本查询
查询表中所有字段信息:
查询表中的部分字段信息:
select name.age from students;
给表起别名:
为字段起别名:
去重:
查询版本:
比较运算符
等于: =
大于: >
大于等于: >=
小于: <
小于等于: <=
不等于: != 或 <>
逻辑运算符
and 这个符号两边都为真的时候,结果才为真,也就是才满足条件。
or 这个符号两边只要有一个为真的时候,结果就为真,也就是才满足条件。
not
模糊查询like
%表示任意多个任意字符
_表示一个任意字符
范围查询
in表示在一个非连续的集合内:
between … and …表示在一个连续的范围内:
查询填写了身高的学生:
优先级
优先级由高到低的顺序为:小括号,not,比较运算符,逻辑运算符
and比or先运算,如果同时出现并希望先算or,需要结合()使用
排序:
asc从小到大排列,即升序
desc从大到小排序,即降序默认按照列值从小到大排列:
下面的排序是优先使用身高进行排序的,如果身高一样的,就再使用年龄进行排序:
count()表示计算总行数:
统计id大于10的
为了保证统计的数据是最准确,所以count()。
max(列)表示求此列的最大值
min(列)表示求此列的最小值sum(列)表示求此列的和
avg(列)表示求此列的平均值
分组的基本使用
按照字段分组:此字段相同的数据会被放到一个组中,分组后,分组的依据列会显示在结果集中,其他列不会显示在结果集中,可以对分组后的数据进行统计,做聚合运算。
分组的目的还是为了做统计。
默认情况下:分组之后会对分组的数据执行一次升序排序的操作。
查看按着性别分组以后,组里人的姓名:
与group_concat()函数一起使用
与聚合函数一起使用:
分组后的数据筛选
having后面的条件运算符与where的相同
对比where与having
where是对from后面指定的表进行数据筛选,属于对原始数据的筛选
having是对group by的结果进行筛选
总结:有group by语句的出现不一定有having语句的出现,那有having语句的出现就一定会有group by语句的出现。
用limit限制查询结果的数量:
(1)、不指定初始位置
不指定初始位置时,记录从第一条记录开始显示。显示记录的条数有limit关键字指定。
mysql> select * from xueshengdenjibiao limit 3;
(2)、指定初始位置
我们也可以指定从哪条记录开始显示,并且可以指定显示多少条记录。
mysql> select * from xueshengdenjibiao limit 2,3;
limit2,3:2表示下标为2的,3表示往后数3个
mysql> select id,name,yuwen from q7 order by yuwen desc limit 5;
分页的查询语句:
求出总页数: if allSum % pageSize == 0 allSum / pageSize
esle allSum / pageSize + 1
用变量pageCount。
现在我想要得到第1页的数据信息:limit (pageNow - 1)*pageSize, pageSize