mysql 从后面查询查询_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; // 删除外键

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值