mysql3.5 所有表_mysql学习笔记3.5

紧接着笔记3的训练

介绍一个对于我来说的比较难的难点!!!!

select * from sc;

d4af4be4aeb54ce9a5cdbe3a97064313.png

select student.sno,sname,avg(grade) as平均分fromstudent,scwhere student.sno=sc.snogroup bystudent.snohaving avg(grade)>90/*这一个条件我竟然忘记写了qwq*/

order by grade desc;

2228fe2dfe2b4c84c60a27389e2791a2.png

1d116a63d3a585534817cdc901f144d1.png

我刚才写的时候忘记了    平均分高于90分这个条件了!!!!!!!!!!!

分组之后还有一个having来筛选之!!!!!!

having子句与where有相似之处但也有区别,都是设定条件的语句。

having 是筛选组 而where是筛选记录。

13e81ab05cdc4c5d2b33c0e8ff2a80cc.png

go on----------->

select student.sno,sname,avg(grade) as 平均分

from student,sc

where student.sno=sc.sno

group by student.sno

having avg(grade)>90/*这一个条件我竟然忘记写了qwq*/

order by grade desc

limit 2;

64bacd6ceb0b3cc75c493d99862f6de5.png

1b54b7ac25e78e2182e9b1adb83c48e8.png

2.接下来开始自连接,外连接,全连接之类啦,学习领会掌握一边SQL语言化的关系代数语言哦,2333!

自连接:

0dd2723c6f04a59dc2951fb76726a015.png

select * from student;

29d9b95ae326339741fb6fbe1f1bcd46.png

/*查询和龙龙在同一学院学习的同学的姓名*/

select s2.sname

from student as s1,student as s2

where s1.sname='龙龙'

and s1.sdeptno=s2.sdeptno;

60a2e2bcfa95266f2c0bc05eabd3acce.png

查询每一门课的间接先修课

select c1.cno,c1.cname,c2.cpre ascpprefrom c as c1,c asc2where c1.cpre=c2.cno;/*求每一门课的间接选修课*/

454056d2dce8fdda51e9cf44f8f6c3e3.png

说上一句相关的话哒哒哦:

可以这样给表设置外码

课程表中的先修课就是课程表的外码!!!!!!!

604008b8de338405d05437195385832c.png

alter tablecadd constraintFK_cforeign key(cpre)references c(cno);/*将课程表c的cpre字段设置为c的外码,参照关系也是c*/

下一个问题--------》

358b21916f06a4b1c1e990d0e15f5eeb.png

代码和结果如下下:

select c1.cno,c1.cname,c2.cpre ascpprefrom c as c1,c asc2where c1.cpre=c2.cno;/*求每一门课的间接选修课*/

79c47a4a51475bd8a07e849d3d32eaac.png

eeeefd249f7be8441f2c057cefe892e6.png

dfccc08169a49d6e2dced7a301e81738.png

/*左外连接*/

/*查询所有学生的...情况*/

selectsname,cno,gradefrom student left join sc on student.sno=sc.sno;

5c004a4e8c687e72117f96c5fbb65340.png

右外连接

/*查询所有的课程信息,...*/

selectcname,sc.sno,gradefrom sc right outer join c on sc.cno=c.cno;/*右连接*/

00c63c2dda276e048b7e96d3daa0c8d5.png

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值