博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
查出选修的课的数目至少在3门以上的学生
阅读量:5149 次
发布时间:2019-06-13

本文共 1517 字,大约阅读时间需要 5 分钟。

首先需要的建立表数据如下:

  1. create table if not exists student  
  2. (  
  3.     SNO varchar(20) primary key,  
  4.     SNAME varchar(20) character set gbk,  
  5.     AGE int,  
  6.     SEX  char(2) character set gbk CHECK(SEX IN('男','女'))   
  7. );  
  8. insert into student values('1','李强',23,'男');  
  9. insert into student values('2','刘丽',22,'女');  
  10. insert into student values('5','张友',22,'男');  
  11.   
  12. create table if not exists course  
  13. (  
  14.     CNO varchar(20) primary key,  
  15.     CNAME varchar(20) character set gbk,  
  16.     TEACHER varchar(20) character set gbk  
  17. );  
  18. insert into course values('K1','C语言','王华');  
  19. insert into course values('K5','数据库原理','程军');  
  20. insert into course values('K8','编译原理','程军');  
  21.   
  22. create table if not exists sc  
  23. (  
  24.     SNO varchar(20) NOT NULL,  
  25.     CNO varchar(20) NOT NULL,  
  26.     SCORE int NOT NULL,  
  27.     primary key (SNO,CNO),  
  28.     foreign key (SNO) references student(SNO),  
  29.     foreign key (CNO) references course(CNO)  
  30. );  
  31. insert into sc values('1','K1',83);  
  32. insert into sc values('2','K1',85);  
  33. insert into sc values('5','K1',92);  
  34. insert into sc values('2','K5',90);  
  35. insert into sc values('5','K5',84);  
  36. insert into sc values('5','K8',80);  

 

方案一:

 select * from (select s.sname,count(*) num from

    student s,sc sc1,course c where s.sno=sc1.sno and c.cno=sc1.cno group by s.sno) res where res.num>=3;

方案一得思路就是把所有学生的信息全部通过内连接查询出来,并且分组,把该结果当做是一个res表,之后再从表里通过num查询出num>=3的学生

 

方案二:

 select * from student s,sc sc1,course c where s.sno=sc1.sno and c.cno=sc1.cno and group by s.sno having count(*)>=3

方案二的思路和上面差不多,但是更为简洁,直接having语句直接分组,由代码可以看得出,having count(*)>=3相当于方案一的把结果集封装为表,再通过表的字段判断

 

转载于:https://www.cnblogs.com/Booker808-java/p/8264734.html

你可能感兴趣的文章
关于PHP会话:session和cookie
查看>>
jQuery on(),live(),trigger()
查看>>
treegrid.bootstrap使用说明
查看>>
[Docker]Docker拉取,上传镜像到Harbor仓库
查看>>
导航,头部,CSS基础
查看>>
[USACO 2017 Feb Gold] Tutorial
查看>>
gzip
查看>>
转负二进制(个人模版)
查看>>
LintCode-Backpack
查看>>
查询数据库锁
查看>>
我对于脚本程序的理解——百度轻应用有感
查看>>
面试时被问到的问题
查看>>
注解小结
查看>>
list control控件的一些操作
查看>>
一月流水账
查看>>
判断字符串在字符串中
查看>>
HashPump用法
查看>>
cuda基础
查看>>
Vue安装准备工作
查看>>
oracle 创建暂时表
查看>>