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语句题的更多相关文章

  1. SQL语句题库

    一.    填空题 Not Only SQL数据库 泛指  非关系型数据库  . SYS和SYSTEM用户都是Oracle 的系统用户,它们都使用SYSTEM表空间,其中 sys 拥有更大的权限. O ...

  2. 50道 Sql语句题

    Student(S#,Sname,Sage,Ssex) 学生表 Course(C#,Cname,T#) 课程表 SC(S#,C#,score) 成绩表 Teacher(T#,Tname) 教师表   ...

  3. sql语句练习50题(Mysql版-详加注释)

    表名和字段 1.学生表       Student(s_id,s_name,s_birth,s_sex) --学生编号,学生姓名, 出生年月,学生性别 2.课程表       Course(c_id, ...

  4. SQL语句50题

    -- 一.创建教学系统的数据库,表,以及数据 --student(sno,sname,sage,ssex) 学生表--course(cno,cname,tno) 课程表--sc(sno,cno,sco ...

  5. sql语句练习50题(Mysql版)

    表名和字段–1.学生表Student(s_id,s_name,s_birth,s_sex) –学生编号,学生姓名, 出生年月,学生性别–2.课程表Course(c_id,c_name,t_id) – ...

  6. 经典SQL语句基础50题

    很全面的sql语句大全.都是很基础性的,今天特意整理了下.大家互相学习.大家有好的都可以分享出来,  分享也是一种快乐. --创建数据库 create database SQL50 --打开SQL50 ...

  7. -sql语句练习50题(Mysql学习练习版)

    –1.学生表 Student(s_id,s_name,s_birth,s_sex) –学生编号,学生姓名, 出生年月,学生性别 –2.课程表 Course(c_id,c_name,t_id) – –课 ...

  8. sql语句练习50题(Mysql版) 围观

    表名和字段 –.学生表 Student(s_id,s_name,s_birth,s_sex) –学生编号,学生姓名, 出生年月,学生性别 –.课程表 Course(c_id,c_name,t_id) ...

  9. MySQL经典练习题及答案,常用SQL语句练习50题

    表名和字段 –1.学生表 Student(s_id,s_name,s_birth,s_sex) –学生编号,学生姓名, 出生年月,学生性别 –2.课程表 Course(c_id,c_name,t_id ...

随机推荐

  1. SQL语句完整的执行顺序(02)

    这是对SQL语句完整的执行顺序(01)的补充: 数据库是mysql,使用的数据库表名称是my_student. 表的完整数据信息是: 完整语法是: Select [select选项] 字段列表[字段别 ...

  2. docker bulid命令

    使用当前目录的 Dockerfile 创建镜像,标签为 runoob/ubuntu:v1. docker build -t runoob/ubuntu:v1 . 使用URL github.com/cr ...

  3. celery 定时任务时间篇

    1.Celery加入定时任务 Celery除了可以异步执行任务之外,还可以定时执行任务.在实例代码的基础上写个测试方法: 1 #coding:utf-8 2 from celery.task.sche ...

  4. python-初识python

    一.计算机的初步认识 硬件:内存,主板,CPU,硬盘,显卡,显示器等 内存: 优点:存取速度快 缺点:断电后数据会全部丢失 硬盘: 优点:断电后数据也会永久保存 缺点:存取速度远远慢于内存 1.操作系 ...

  5. python设计模式---结构型之代理模式

    主要想着nginx:) from abc import ABCMeta, abstractmethod # 结构型设计模式---代理模式 class Actor: def __init__(self) ...

  6. java.util.ConcurrentModificationException 记一次坑

    集合在单线程,一个循环内,有添加又删除会出现此异常. 多线程时,在不同的循环操作同一个集合,会出现此异常. 因为,集合长度发生改变时,在迭代器未结束前,迭代器的大小不会发生变化. 1.保证在同一个进程 ...

  7. 物联网框架ServerSuperIO.Core(.netcore)跨平台,一套设备驱动通吃嵌入式、上位机、云服务

    1.      概述... 2 2.      ServerSuperIO.Core跨平台开发环境... 2 3.      ServerSuperIO.Core特点... 2 4.      Ser ...

  8. URL包里的URL.getpath()对路径中空格识别为%20的处理办法

    方法(1),使用repaceAll("%20",' ')替换后,只能解决空格问题.但是路径中包含%和中文就不行了. 方法(2),使用URLDecoder.decode(str,&q ...

  9. IE外挂

    //引用 Windows/system32/Shell32.dll //引用COM组件 shdocvw.dll (Microsoft Internet Controls) //引用COM组件 msht ...

  10. POJ 1966 Cable TV Network (点连通度)【最小割】

    <题目链接> 题目大意: 给定一个无向图,求点连通度,即最少去掉多少个点使得图不连通. 解题分析: 解决点连通度和边连通度的一类方法总结见   >>> 本题是求点连通度, ...