MySQL的基本语法

2022/1/6 2:41:39

本文主要是介绍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;



这篇关于MySQL的基本语法的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程