题目:

学生表:Student(S#,Sname,Sage,Ssex) ,学号:S#,学生姓名:Sname,学生年龄:Sage,学生性别:Ssex

课程表:Course(C#,Cname,T#),课程编号:C#,课程名字:Cname,教师编号:T#

成绩表:SC(S#,C#,score), 学号:S#,课程编号:C#,成绩:score

教师表:Teacher(T#,Tname),教师编号:T#,教师名字:Tname

创建表格:

--学生表
CREATE TABLE s_student(
s_id VARCHAR(20),
s_name VARCHAR(20) NOT NULL,
s_birth VARCHAR(20) NOT NULL,
s_sex VARCHAR(10) NOT NULL,
PRIMARY KEY(s_id)
);
--课程表
CREATE TABLE c_course(
c_id VARCHAR(20),
c_name VARCHAR(20) NOT NULL,
t_id VARCHAR(20) NOT NULL,
PRIMARY KEY(c_id)
);
--教师表
CREATE TABLE t_teacher(
t_id VARCHAR(20),
t_name VARCHAR(20) NOT NULL,
PRIMARY KEY(t_id)
);
--成绩表
CREATE TABLE s_score(
s_id VARCHAR(20),
c_id VARCHAR(20),
s_score number(3),
PRIMARY KEY(s_id,c_id)
);
--插入学生表测试数据
insert into s_student(s_id, s_name, s_birth, s_sex) values('01' , '赵雷' , '1990-01-01' , '男');
insert into s_student(s_id, s_name, s_birth, s_sex) values('02' , '钱电' , '1990-12-21' , '男');
insert into s_student(s_id, s_name, s_birth, s_sex) values('03' , '孙风' , '1990-05-20' , '男');
insert into s_student(s_id, s_name, s_birth, s_sex) values('04' , '李云' , '1990-08-06' , '男');
insert into s_student(s_id, s_name, s_birth, s_sex) values('05' , '周梅' , '1991-12-01' , '女');
insert into s_student(s_id, s_name, s_birth, s_sex) values('06' , '吴兰' , '1992-03-01' , '女');
insert into s_student(s_id, s_name, s_birth, s_sex) values('07' , '郑竹' , '1989-07-01' , '女');
insert into s_student(s_id, s_name, s_birth, s_sex) values('08' , '王菊' , '1990-01-20' , '女');
commit;
--课程表测试数据
insert into c_course(c_id, c_name, t_id) values('01' , '语文' , '02');
insert into c_course(c_id, c_name, t_id) values('02' , '数学' , '01');
insert into c_course(c_id, c_name, t_id) values('03' , '英语' , '03');
commit;

--教师表测试数据
insert into t_teacher(t_id, t_name) values('01' , '张三');
insert into t_teacher(t_id, t_name) values('02' , '李四');
insert into t_teacher(t_id, t_name) values('03' , '王五');
commit;

--成绩表测试数据
insert into s_score(s_id, c_id, s_score) values('01' , '01' , 80);
insert into s_score(s_id, c_id, s_score) values('01' , '02' , 90);
insert into s_score(s_id, c_id, s_score) values('01' , '03' , 99);
insert into s_score(s_id, c_id, s_score) values('02' , '01' , 70);
insert into s_score(s_id, c_id, s_score) values('02' , '02' , 60);
insert into s_score(s_id, c_id, s_score) values('02' , '03' , 80);
insert into s_score(s_id, c_id, s_score) values('03' , '01' , 80);
insert into s_score(s_id, c_id, s_score) values('03' , '02' , 80);
insert into s_score(s_id, c_id, s_score) values('03' , '03' , 80);
insert into s_score(s_id, c_id, s_score) values('04' , '01' , 50);
insert into s_score(s_id, c_id, s_score) values('04' , '02' , 30);
insert into s_score(s_id, c_id, s_score) values('04' , '03' , 20);
insert into s_score(s_id, c_id, s_score) values('05' , '01' , 76);
insert into s_score(s_id, c_id, s_score) values('05' , '02' , 87);
insert into s_score(s_id, c_id, s_score) values('06' , '01' , 31);
insert into s_score(s_id, c_id, s_score) values('06' , '03' , 34);
insert into s_score(s_id, c_id, s_score) values('07' , '02' , 89);
insert into s_score(s_id, c_id, s_score) values('07' , '03' , 98);
commit;

1.查询"001"课程比"002"课程成绩高的所有学生的学号

--先查询001课程成绩,002课程成绩
select * from s_score where c_id='01';
select * from s_score where c_id='02';
--方法一
select c1.s_id s_id,c1.s_score score1,c2.s_score score2 from (select * from s_score where c_id='01') c1,(select * from s_score where c_id='02') c2
where c1.s_id=c2.s_id and c1.s_score>c2.s_score;
--方法二
select s1.s_id from s_score s1,s_score s2
where s1.s_id=s2.s_id and s1.c_id='01' and s2.c_id='02' and s1.s_score>s2.s_score;
--扩展,需要查找学生姓名时,用连接将学生表与其他两表连接
select s_student.*,s1.s_score,s2.s_score from s_student, s_score s1,s_score s2
where s_student.s_id=s1.s_id and s_student.s_id=s2.s_id
and s1.s_id=s2.s_id and s1.c_id='01' and s2.c_id='02' and s1.s_score>s2.s_score;

select s_student.*,s1.s_score,s2.s_score from s_student inner join s_score s1 on s_student.s_id=s1.s_id
inner join s_score s2 on s_student.s_id=s2.s_id
where s1.s_id=s2.s_id and s1.c_id='01' and s2.c_id='02' and s1.s_score>s2.s_score;

SQL数据库经典题型(1)查询“001“课程比“002“课程成绩高的所有学生的学号相关推荐

  1. 数据库作业(1.查询姓‘’王‘’的学生个数;2.查询“数学”比“语文”成绩高的所有学生的学号;)

    SQL查询姓''王''的学生个数 #一.创建学生.班级.成绩表 #二.打开mysql 1.快捷的win+r,输入cmd,打开命令提示符: 2.连接数据库,在cmd种输入:MySQL -u root - ...

  2. 查询课程编号为“01”的课程比“02”的课程成绩高的所有学生的学号

    查询课程编号为"01"的课程比"02"的课程成绩高的所有学生的学号 方法一. select s1.s_id from (select * from score ...

  3. SQL数据库经典题型(2)列出有二门以上(含两门)不及格课程的学生姓名及其平均成绩

    1.查询平均成绩不及格的学生姓名及平均成绩 select s1.s_id,s1.s_name,round(avg(s2.s_score))  from s_student s1,s_score s2 ...

  4. mysql查询01课程比02课程_practice01-数据库01---查询课程编号为01的学生比课程编号为02的学生成绩高的所有学生的编号...

    查询课程编号为01的学生比课程编号为02的学生成绩高的所有学生的编号 1. 首先建立数据表 建立四张数据表(, 成绩表(score)) 1. 学生表(students) 1.学生id  ----  s ...

  5. 从学生表中查询每门课都是80分以上的学生的学号与姓名。

    如果你想查询每门课都是80分以上的学生的学号与姓名,你可以使用以下的 SQL 查询语句: SELECT student_id, name FROM students WHERE NOT EXISTS ...

  6. MySql 三表联查 查询数学成绩比语文成绩高的所有学生信息

    最近面试中遇到这样一个面试题,其要求是这样的: 查询所有学生信息(数学成绩比语文成绩高) 有三张表,其关系结构如下 表1:student 表2:course 表3:studeng_course   解 ...

  7. mysql sql 连接查询语句_Mysql——sql数据库中的连接查询

    1.1.1   交叉连接(CROSS JOIN) 交叉连接(CROSS JOIN):有两种,显式的和隐式的,不带ON子句,返回的是两表的乘积,也叫笛卡尔积. 例如:下面的语句1和语句2的结果是相同的. ...

  8. 10. 查询表sc——查询考试成绩有不及格的学生的学号

    SELECTsno FROMsc WHEREgrade < 60 GROUP BYsno;

  9. mysql中select 的题型_MYSQL经典题型详情解析

    学完了mysql后发现有很多地方不是很明白,于是总结了mysql的经典题型,不论是工作还是面试,我相信还是有一定帮助的. 例题一 ​ 在我的数据库中数据如下(排序有些差别,但是不影响结果) ​ 分析: ...

最新文章

  1. erlang的进程池。
  2. Django 入门项目案例开发(上)
  3. Oracle 内、外连接
  4. python经典项目实战_2个Python入门级的实战项目
  5. python爬虫进阶(初始)
  6. 计算机网络(十六)-轮询访问介质访问控制
  7. div 夸站点加载html,使用jQuery加载html页面到指定的div实现方法
  8. python爬虫-Python爬虫入门这一篇就够了
  9. 操作系统——进程管理
  10. HTML5教程7-实战:调色板
  11. matlab画概率密度图
  12. 【保险分享】出门旅游是否需要够买旅行险?
  13. 【pandas】--DataFrame数据筛选(二)
  14. win7 共享计算机 网络密码怎么设置,Win7无线网络共享设置方法丨Win7无线网络共享设置方法图解...
  15. 【秒杀】一、系统设计要点,从卖病鹅说起
  16. 盘点2018程序员才懂的100个段子/搞笑图(上篇)
  17. 基于SPI的OLED显示
  18. 使用TIM3和TIM4,驱动外接LED和STM32上已焊接的LED,实现2个 LED呼吸灯的效果
  19. java面试题大汇总,京东校招java面试题
  20. 洛谷 P3014 [USACO11FEB]牛线Cow Line

热门文章

  1. MySQL数据库基础操作(一)
  2. Android开发之Zip下载解压
  3. e城e家携新奥智慧共创美丽枣庄
  4. 4.第K个数(快速选择排序)
  5. 使用代码给ACCESS窗体中32个文本框赋不同值的实例
  6. torch.randint()
  7. IE浏览器对象不支持Blob属性或方法,IE浏览器不支持canvas toBlob()方法的Polyfill
  8. 数中有术:看大数据如何让“时光倒流”
  9. 认识一下CCSA(中国通信标准化协会)
  10. Linux(Ubuntu)配置防火墙