MySQL的基本语法

1.多表联查
#查询所有学生的信息和班级
select s.*,c.cla_name,c.cla_teacher from stu_info s,cla_info c where s.cla_id=c.id;
    
2.关联查询
#左连接 left join  以左表为主表 ,右边的表展示能匹配上的行
select * from stu_info a left
join cla_info b on a.cla_id=b.id;
#右连接 right join 以右表为主表 ,左边的表展示能匹配上的行
select * from stu_info a right
join cla_info b on a.cla_id=b.id;
#内连接 相当于多表联查
select * from stu_info a inner
join cla_info b on a.cla_id=b.id;

3.主键与外键
# 外键定义:表A中的一个字段c,跟表B的主键相关联,则字段c就是表A的外键;我们称表A为主表,表B为从表。

# 主键具有唯一性,主键可以是一个字段,也可以是多个字段的组合
# 外键可以有多个

4.分页 limit
select * from stu_info limit 3;#查询前几行
#limit 0,3
select * from stu_info limit 1,3;

#pageNo 页码  pageCount 页数(每页查询的行数)
#第一页 pageNo=1 limit (pageNo-1)*3,3
select * from stu_info limit 0,3
#第二页 pageNo=2 limit (pageNo-1)*3,3
select * from stu_info limit 3,3;
#第三页 pageNo=3 limit (pageNo-1)*3,3
select * from stu_info limit 6,3;

5.排序
#示例:查询所有学生信息,按照成绩从大到小的顺序
select * from stu_info order by grade desc;
select * from stu_info order by grade asc;

6.分组查询 group by 

#分组往往结合聚合函数使用
#对那个字段进行分组,查询出来的结果只能展示该字段
#对哪个字段进行分组,查询出来的结果集,只展示当前分组的第一行
#示例 统计每个班的学生人数
select cla_id,count(*) from stu_info group by cla_id;
#统计学生所在的班级有哪些
select cla_id from stu_info group by cla_id
having cla_id is not null;#not isnull(cla_info)

#统计每个班的女生人数
select cla_id,count(*) from (select * from stu_info where sex=0) t1 group by cla_id;

#展示每个班的女生人数
select cla_id,count(case when sex=0 then 1 else null end) from stu_info group by cla_id;
#where必须放在order by前面
select * from stu_info where sex = 0 order by grade desc;
#where必须放在limit前面
select * from stu_info where sex=0 limit 2;
#group by必须在order by前面  
#group by必须在limit前面
#order by 必须在limit的前面
select sex,count(*) s1 from stu_info group by sex order by s1 desc  limit 3;

# where > order by > limit
# order > limit
# group > order by >limit

7.子查询 column in(结果集)
select * from stu_info where cla_id in(select cla_id from cla_info)

8.运算符
#--()优先级最高
#算术运算符 + - * / %
#比较运算符 > < >= <=!=
#in 判断一个字段是否属于一个结果集
#and 且 连接多个筛选条件,要求所有筛选条件都要成立
#or 或 至少一个条件成立
select * from stu_info where cla_id=1 or cla_id=2;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值