mysql查询语句

myaql 语句的查询

简单查询

最基础的查询,直接从表中查处需要的数据

select 列名 from 表名
还可以加上别名
select 列名 as 别名 from 表名

条件查询

在简单查询的基础上在后面加上条件

select 列名 from 表名 where 条件

case....end用法:

case stu_sex when 1 then '男' else '女' end as 性别

表示在查询出来的表中,stu_sex列中如果为1则显示为男,否则就为女,将stu_sex别名为性别

当数据中有空值时不能数据=null,而应该表示为 数据 is null or 数据 is not null

注意
分组以前的数据筛选使用where,分组以后的筛选使用having
在条件筛选过程中还要注意 =in的使用。
例:

-- 查询111122223333这三门课平均成绩大于等于90的学生学号和平均成绩
select
	stu_id as 学号,
    round(avg(score),2) as 平均成绩
from tb_record
where cou_id in (1111,2222,3333)
group by stu_id 
having 平均成绩>=90;

聚合函数

排序: 升序:order by 数据 asc;;降序:order by 数据 desc;
去重: 在需要去重的数据前面加上distinct
curdate():计算当前时间
datediff(): 计算时间差
floor(): 向下取整
max()、min()、avg()、sum()、std():计算最大、最小、平均值、总和、标准差
ifnull(): 遇到空值将其替换成指定值
limit x,y:跳过x条数据拿到y条数据
limit x:拿到x条数据
offset x:跳过x条数据
round():原来保留几位小数

子查询(嵌套查询)

在查询语句中有两个或多个select

-- 查询年龄最大的学生的姓名(子查询)
select
	stu_name as 姓名 from tb_student 
	where stu_birth=(
		select min(stu_birth) from tb_student
        );

连接查询

当要查询的数据在多个表中,需要将多个表连接起来
内连接
表1 inner join 表2 on 表1.key=表2.key
表1,表2 where 表1.key=表2.key
表1 natural join 表2
外连接
– 左外连接:确保左表(写在join前面的表)中所有记录都能查出来,不满足连接条件的补充null
表1 left outer join 表2 on 表1.key=表2.key
– 右外连接:确保右表(写在join后面的表)中所有记录都能查出来,不满足连接条件的补充null
表1 right outer join 表2 on 表1.key=表2.key
– 全外连接:确保左表,右表中所有记录都能查出来,不满足连接条件的补充null
– mysql不支持全外连接,可以用左外连接并右外连接

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值