Mysql查询
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mysql查询相关的知识,希望对你有一定的参考价值。
一:简单查询
1. and、or、not
如果and与or共同出现在where条件中,则and的优先级高。
查询remark不为null的记录
select * from student where remark is not null;
2. 模糊查询(like)
通配符:% 任意个数的任意字符
eg:将姓名中含有‘东‘字的学生信息查出来
select * from student where name like ‘%东%‘;
_ 代表一个字符
eg: 将姓名中第二个字为‘京‘的人查询出来
select * from student where name like ‘_京%‘;
3.对查询结果排序
order by 字段名1[desc],字段名2[desc]...;
4.限制数量的查询
limit 查询数量;
limit 查询记录的初始偏移量(从0开始计算偏移量),查询数量;
eg:
查询student表中的前三条记录
select * from student limit 3;
查询第2到第4条记录
select * from student limit 1,3;
查询前三名的学生信息;
select * from student order by score desc limit 3;
二、分组查询
1. 聚合函数
max(字段) 返回某字段的最大值 eg: select max(price) from product;
min(字段) 返回某字段的最小值 eg: select min(price) from product;
sum(字段) 返回某字段的和
avg(字段) 返回某字段的平均值
count(*) 返回记录数
count(字段名) 返回不为null的某个字段的记录数
2.分组查询
group by 字段名1,字段名2 [having 条件]
注意:在分组查询时,select后面的字段名必须与group by后面的分组字段一致,当然,
select后也可跟聚合函数(用来计算分组后每组的信息)。
如果分组字段与查询字段不一致,则查询结果无意义。
eg:
按照种类分组,并计算每组的平均价格:
select kind,avg(price) from product group by kind;
只查询水果组的平均价格。
select kind,avg(price) from product group by kind having kind=‘水果‘;
三:子查询(内层查询)
子查询中的关键字
1.any(some)
any是在关系运算符后出现的,表示只要符合子查询结果中的任何一个数据。
2.all
all是在关系运算符后出现的,表示符合子查询结果中的所有数据。
3.exists
如果子查询的结果中至少存在一行记录,则返回true.
not exists 如果子查询的结果中不存在记录,则返回true.
4.in
如果外层查询的字段包含于子查询的结果列表中,则返回该外层查询的记录。
not in
四:连接查询
1.等值连接
select 列1,列2... from 表1,表2 where 连接条件;
2.外连接
左外连接(left join): 左表中的记录全部查询出,右表只查询出符合连接条件的记录。
select 列1,列2... from 左表 left join 右表 on 连接条件;
eg:
select student.name,school.school_name from student left join school
on student.school_id=school.id;
右外连接(right join):右表中的记录全部查询出,左表只查询出符合连接条件的记录。
select 列1,列2... from 左表 right join 右表 on 连接条件;
3.内连接
select 列1,列2... from 表1 inner join 表2 on 连接条件;
五:外键(Foreign Key)约束
主要用来设置“一对多”的两张表的关联关系。
外键在子表中设置,用来与父表关联。
create table emp(
id int primary key auto_increment,
emp_name varchar(10) not null,
dept_id int not null,
constraint fk_emp foreign key(dept_id) references dept(id)
);
alter table emp drop foreign key fk_emp; // 删除外键
以上是关于Mysql查询的主要内容,如果未能解决你的问题,请参考以下文章