SQL语句题
SQL语句题
Student(Sno,Sname,Sage,Ssex)注释:学生表(学号,姓名,性别年龄,性别)
Course(Cno,Cname,Tno) 注释:课程表(课程号,课程名称,教师编号)
SC(Sno,Cno,score) 注释:成绩表(学号,课程号,成绩)
Teacher(Tno,Tname)注释:教师表(教师编号,教师名)
drop sequence s_student;
create sequence s_student;
drop table student cascade constraint purge;
create table Student(
Sno number primary key,
Sname varchar(30),
Sage number(3),
Ssex char(1)
);
insert into Student values(s_student.nextval,'张三1',21,'m');
insert into Student values(s_student.nextval,'张三2',22,'m');
insert into Student values(s_student.nextval,'张三3',23,'w');
insert into Student values(s_student.nextval,'张三4',24,'m');
commit;
drop sequence s_teacher;
create sequence s_teacher;
drop table teacher cascade constraint purge;
create table Teacher(
Tno number primary key,
Tname varchar(30)
);
insert into teacher values(s_teacher.nextval,'里老师1');
insert into teacher values(s_teacher.nextval,'张三');
insert into teacher values(s_teacher.nextval,'里老师3');
insert into teacher values(s_teacher.nextval,'里老师4');
commit;
成绩
drop table sc cascade constraint purge;
create table SC(
Sno number constraint sc_sno_fk references student(sno),
Cno number constraint sc_cno_fk references course(cno),
score number,
constraint sc_sno_cno_pk primary key(sno,cno)
) ;
insert into sc values(1,2,58);
insert into sc values(2,4,21);
insert into sc values(3,3,76);
insert into sc values(4,1,50);
insert into sc values(2,1,66);
insert into sc values(1,3,20);
insert into sc values(2,2,30);
insert into sc values(3,2,50);
insert into sc values(4,4,55);
commit;
课程
drop sequence s_course;
create sequence s_course;
drop table course cascade constraint purge;
create table Course(
Cno number primary key,
Cname varchar(30),
Tno number constraint course_tno_fk references teacher(tno)
);
insert into course values(s_course.nextval,'java',1);
insert into course values(s_course.nextval,'javascript',2);
insert into course values(s_course.nextval,'jdbc',3);
insert into course values(s_course.nextval,'hibernate',4);
commit;
1、查询每个学生的学号,姓名,所修课程及成绩;
select * from student st join sc s on st.sno=s.sno join course co on co.cno=s.cno;
2、查询学过“001”或者学过编号“002”课程的同学的学号、姓名;
非关联子查询
select * from student where sno in (select sno from course where cno=2 or cno=1);
关联子查询
select * from student s where exist (select 1 from course c where s.sno=c.sno and (cno=1 or cno=2));
3、将课程号为“002”的授课老师改为“张三”;
update course set tno=(select tno from teacher where tname='张三') where cno=4;
4、向SC表中插入一条记录,学号001,课程号003,成绩80;
delete from sc where sno=2 and cno=1;
5、删除“002”同学的“001”课程的成绩;
delete from sc where cno=1 and sno=4;
6、查询不及格的课程,并按课程号从大到小排列;
select score , cno from sc where score<60 order by cno desc;
7、查询两门以上不及格课程的同学的学号及其平均成绩;
select sno , avg(score) from sc
where score<60 group by sno having count(sno)>=2;
8、查询姓“李”的老师的姓名及授课情况;
select * from teacher t join course c on t.tno=c.tno where tname like '张%';
9、统计每门课程的学生选修人数(超过10人的课程才统计),要求输出课程号和选修人数查询结果按人数降序排序,若人数相同,按课程号升序排序;
select cno,count(cno) ,max(cname)
from(
select c.cno ,c.cname from sc s
join course c on s.cno=c.cno
)
group by cno
having count(cno)>1
order by cno desc;
10、统计列印各科成绩,各分数段人数:课程ID,课程名称[100-85],[85-70],[70-60],[<60]
select cname||'[85-100]' name,score,c.cno
from sc s join course c on s.cno=c.cno where score between 85 and 100
union
select cname||'[70-85]' name,score,c.cno
from sc s join course c on s.cno=c.cno where score between 70 and 85
union
select cname||'[60-70]' name,score,c.cno
from sc s join course c on s.cno=c.cno where score between 60 and 70
union
select cname||'[<60]' name,score,c.cno
from sc s join course c on s.cno=c.cno where score<60
SQL语句题的更多相关文章
- SQL语句题库
一. 填空题 Not Only SQL数据库 泛指 非关系型数据库 . SYS和SYSTEM用户都是Oracle 的系统用户,它们都使用SYSTEM表空间,其中 sys 拥有更大的权限. O ...
- 50道 Sql语句题
Student(S#,Sname,Sage,Ssex) 学生表 Course(C#,Cname,T#) 课程表 SC(S#,C#,score) 成绩表 Teacher(T#,Tname) 教师表 ...
- sql语句练习50题(Mysql版-详加注释)
表名和字段 1.学生表 Student(s_id,s_name,s_birth,s_sex) --学生编号,学生姓名, 出生年月,学生性别 2.课程表 Course(c_id, ...
- SQL语句50题
-- 一.创建教学系统的数据库,表,以及数据 --student(sno,sname,sage,ssex) 学生表--course(cno,cname,tno) 课程表--sc(sno,cno,sco ...
- sql语句练习50题(Mysql版)
表名和字段–1.学生表Student(s_id,s_name,s_birth,s_sex) –学生编号,学生姓名, 出生年月,学生性别–2.课程表Course(c_id,c_name,t_id) – ...
- 经典SQL语句基础50题
很全面的sql语句大全.都是很基础性的,今天特意整理了下.大家互相学习.大家有好的都可以分享出来, 分享也是一种快乐. --创建数据库 create database SQL50 --打开SQL50 ...
- -sql语句练习50题(Mysql学习练习版)
–1.学生表 Student(s_id,s_name,s_birth,s_sex) –学生编号,学生姓名, 出生年月,学生性别 –2.课程表 Course(c_id,c_name,t_id) – –课 ...
- sql语句练习50题(Mysql版) 围观
表名和字段 –.学生表 Student(s_id,s_name,s_birth,s_sex) –学生编号,学生姓名, 出生年月,学生性别 –.课程表 Course(c_id,c_name,t_id) ...
- MySQL经典练习题及答案,常用SQL语句练习50题
表名和字段 –1.学生表 Student(s_id,s_name,s_birth,s_sex) –学生编号,学生姓名, 出生年月,学生性别 –2.课程表 Course(c_id,c_name,t_id ...
随机推荐
- ORACLE根据两个表都含有的字段条件来判断两个表连接后有没有数据
A表 字段1 字段2 B表 字段1 字段3 A表的字段1=B表的字段1 SELECT DISTINCT A.字段2 FROM TABEL1 A ,TABEL2 B WHERE A.字段1 ...
- 2142: 逛超市(zznuoj)
2142: 逛超市 时间限制: 1 Sec 内存限制: 128 MB提交: 82 解决: 43[提交] [状态] [讨论版] [命题人:admin] 题目描述 “别人总说我瓜,其实我一点也不瓜,大 ...
- Django组件-中间件
1.中间件的概念 中间件顾名思义,是介于request与response处理之间的一道处理过程,相对比较轻量级,并且在全局上改变django的输入与输出.因为改变的是全局,所以需要谨慎实用,用不好会影 ...
- 将已经存在的异步请求callback转换为同步promise
由于js是单线程执行,为防止阻塞,会有很多异步回调函数callback,嵌套层次多了,可读性就差了很多.随着社区的发展,出现了promise.我们来将一些常见的回调函数做修改,变成promise的链式 ...
- 通过View.post()获取View的宽高
在Android里,获取View宽高的时机是个老生常谈的话题了.众所周知,在Oncreate里直接调用View.getWidth或者View.getMeasuredWidth返回都是0.所以获取宽高时 ...
- virtualenv Mac版
环境 MAC python 3.6.7 安装python python官网下载3.6.7版本,默认安装 安装完成后检查是否安装成功: python3.6 确认安装目录:which python3.6 ...
- Docker 学习8 Dockerfile详解2
一.继续上章节Docker学习7 CMD命令后. 11.ENTRYPOINT a.容器启动后相当于会启动ENTRYPOINT + CMD 命令,CMD相当于参数传给entrypoint的 [root@ ...
- git 相关学习
1.Git 的一些快捷键 第一次创建本git 本地仓库 :: git init //在本地创建一个 Git仓库 :要在该目录下 第一次 要配置GitHub 的 账号和邮箱: git config ...
- swool配置ssl
1 yum install openssl --enable-openssl -y 2 切换在swoole 安装目录 cd /usr/local/swoole 3 ./configure --en ...
- 免费获取SSL证书/一键安装SSL证书/https加密
因为我用的是恒创的香港服务器 虽然价格相较于大促的阿里云贵一些,但是有一个有点不用备案... 安装步骤: 1.登录云主机控制面板, 在 其他管理 中找到并进入 SSL证书 设置. 注意:如拥有多个域名 ...