【MySQL】细谈SQL高级查询

在这里插入图片描述

在这里插入图片描述

文章目录

  • 一、前言 & 准备工作
  • 二、简易高级查询
    • ⚙ 准备工作
    • 1、查询每一门课程及其先修课程
    • 2、查询和“刘涛”在一个班级的学生的信息
    • 3、查询选修了‘计算机基础’课的学生的学号、姓名
      • ③ 连接方式
      • ④ 子查询嵌套方式
    • 4、查询没有选修课程的学生的信息
      • ① 子查询in方式
      • ② 子查询exists方式
    • 5、查询每个学生超过该门课程平均成绩的学号, 课号
    • 6、查询既选修了“计算机基础”又选修了“C语言基础”的学生的学号
      • ① 自连接
      • ② 求交集
      • ③ 子查询
  • 三、复杂高级查询
    • ⚙ 准备工作
    • 1、查询选修了全部课程的学生号码
    • 2、查询被全部学生选修的课程号码
    • 3、查询至少选修了学号是2号的学生所选修的全部课程的学生号码【⭐】
      • Way1:exists表双重否定
      • Way2:优先筛选group统计
      • Way3:最牛的简易除法🐂
  • 四、SQL数据展示(自取)
  • 五、总结与提炼

一、前言 & 准备工作

Hello大家好,本文要为大家带来的是有关SQL的高级查询,在上一文学习了一些 基础语法 后,我们应该更进一步地去学习一些复杂性的SQL查询语句,提升自己写SQL的能力💪

二、简易高级查询

⚙ 准备工作

在做高级查询之前,我们先来做一些准备工作

  • 我们来新建一个教学管理jxgl数据库
create database jxgl;
  • 然后为了简易起见,就不创建教师表了,主要涉及以下的三个表,SQL语句供读者使用:
-- Table: Course
CREATE TABLE Course
 (
	cno char(7) NOT NULL, 
	cname char(40) NULL,
	cpno char(7) NULL,
	ccredit smallint NULL,
    PRIMARY KEY ( cno )	
);

-- Table: Student
CREATE TABLE Student
 (
	sno char(7) NOT NULL,
	sname char(8) NOT NULL,
	class char(20) NULL,
	ssex char(2) NULL,
	bday datetime NULL,
	bplace char(10) NULL,
	mgrade smallint NULL,
	photo char(50) NULL,
	sfzh char(18) NULL,
	zxf smallint NULL,
    PRIMARY KEY ( sno )
) ;

-- Table: SC
CREATE TABLE SC
 (
	term smallint NOT NULL,
	sno char(7) NOT NULL ,
	cno char(7) NOT NULL ,
	grade smallint NULL,
	point decimal(2, 1) NULL,
    PRIMARY KEY (term,sno,cno),
    FOREIGN KEY (sno) REFERENCES Student (sno),
    FOREIGN KEY (cno) REFERENCES Course (cno) ON UPDATE CASCADE
); 

⇒ 然后我们还需要再去插入一些数据(具体见文末的整体SQL代码)

1、查询每一门课程及其先修课程

查询每一门课程及其先修课程,查询结果中显示课程号、课程名和先修课程名
  • 首先我们来看第一个简易的高级SQL查询,提到了需要我们去查询每一门课程及其先修课程,那查询每一门课很简单,但是要去查询这门课的先修课程的话就需要有些技巧了
  • 因为从上面所定义的表结构来看,我们只能查询到先修课程的 课程号,但是 课程名 却无法直接知晓。所以我们要先去查询先修课程号,然后再对其进行转换
  • 而先修课程号作为一门课程,它只不过是 course表中的另外一条记录,需要两个course表(别名分别取A、B)做一个等值连接

我们可以从下面这张图来进行查看,那当我们有两张临时表时,查询的工作就很好做了,使用A表的cpno去B表中进行定位,便可以找到那个课程号

在这里插入图片描述

select A.cno, A.cname, B.cno from course A, course B where A.cpno = B.cno;
  • 我们来看看执行结果,发现成功了!

在这里插入图片描述

2、查询和“刘涛”在一个班级的学生的信息

查询和“刘涛”在一个班级的学生的信息

面对这么一个查询,你首先会想到什么呢?

⇒ 如果是我的话,我会首先想到:既然要查询和“刘涛”在一个班级的学生的信息,那总得知道刘涛是哪个班级的吧😎

  • 这个SQL语句相信大家如果学习过基本的SQL查询一定都会使用
select class from student where sname = '刘涛'
  • 那在知晓了班级后,就可以根据这个班级去找到其他学生的信息了,这里我们使用到的是SQL中的嵌套查询
select * from student where class in (
    select class from students where sname = '刘涛'
);

或者我们可以换个思路,使用自连接的形式来做

  • 那在这里我们就需要两张表了,就和第一题差不多。我们可以将条件都写在where子句中,使用【class】这个字段来连接两个临时表
select s1.* from student s1,student s2
    where s1.class = s2.class and s2.sname = '刘涛';

最后我们来看一下执行结果:

在这里插入图片描述

3、查询选修了‘计算机基础’课的学生的学号、姓名

查询选修了‘计算机基础’课的学生的学号、姓名
  • 还是老样子,我们得先来分析一下,题目要我们去查询 选修了‘计算机基础’课的学生的学号、姓名,首先我们要考虑的是:这个查询需要我们显示哪几个字段?涉及哪几张表?

③ 连接方式

  • 很明显,因为“计算机基础”这门课程,所以我们需要【course表】,又因为要知道是哪个学生选修了,所以还需要涉及到【sc表】,最后,因为还需要显示选修了这门课的学生的学号、姓名,所以还需要涉及【student表】

我们可以根据三个表的snocno来进行相连

select student.sno, sname from student, sc, course 
    where student.sno = sc.sno and sc.cno = course.cno and cname = '计算机基础';

我们来看看执行结果:

在这里插入图片描述

④ 子查询嵌套方式

然后我们再来看一种:子查询嵌套方式。这种方法就需要考察大家的逻辑嵌套思维

  1. 首先最内层的查询应该是通过“计算机基础”去获取到这门课的课程号,那么
select cno from course where cname = '计算机基础';
  1. 但找到这个cno之后,我们就可以根据这个字段去【sc】表里找那些选修了这门课的学生,然后返回它们的学生学号
select sno from sc where cno in(
	select cno from course where cname = '计算机基础'
);
  1. 最后我们再通过这个学号去【student表】中找到对应的那个学生,然后输出其学号与姓名
select sno,sname from student where sno in(
	select sno from sc where cno in(
		select cno from course where cname = '计算机基础'
	)
);

通过执行结果我们可以看出最后都是一样的

在这里插入图片描述

4、查询没有选修课程的学生的信息

首先一样先分析一下当前查询需要涉及到的表,很明显查询的语句中写选修课程学生信息这两块,那我们就需要涉及【student】、【sc】表

① 子查询in方式

  • 那首先的话我们拿子查询in的方式来展开,先去这个【sc表】里以去重的形式寻找选修了课程的学生学号
select distinct sno from sc
  • 那题目要求我们查询的是 没有选修课程的学生的信息,所以此刻我们要使用not in比较合适一些
select * from student where sno not in(
	select distinct sno from sc
);

可以发现我们查询到了很多的记录

在这里插入图片描述

② 子查询exists方式

  • 再介绍一种方式,也就是我们所学习过的exists这个谓词,每次取到外层循环中这个学生的学号sno,判断其是否在【sc】表中出现过,使用not exists就是去找没有出现过的那个学生学号
select * from student where not exists(
	select * from sc where sno = student.sno
);

来看下运行结果就可以看出它们的效果是等同的

在这里插入图片描述

5、查询每个学生超过该门课程平均成绩的学号, 课号

查询每个学生超过该门课程平均成绩的学号,课号
  • 首先一样来分析一下,此查询涉及了哪张表?通过成绩、学号、课号可以看出只涉及到了【sc】表中的字段

那在考虑本查询之前呢,我们先来考虑一个简单的问题

根据cno分组,求每门课的平均成绩

  • 对于这个查询只要有学习过基础的SQL语法,那相信都难不倒大家,那既然要求平均成绩,那这里就会用到一个聚合函数叫做avg()
select cno, avg(grade) from sc group by cno
  • 好,接下去的话我们就按照题目的要求来,要我们求的是超过该门课的平均成绩,所以我们可以沿用上面的思想。在【sc表】中查询相关学生信息的时候
select sno, cno from sc as sc1 where grade > (
    select avg(grade) as avg_grade from sc group by cno having sc1.cno = cno
);

来看看执行结果可以看出,确实按照每个学生的学号显示出了它们超过平均成绩的课程号

在这里插入图片描述

6、查询既选修了“计算机基础”又选修了“C语言基础”的学生的学号

查询既选修了“计算机基础”又选修了“C语言基础”的学生的学号

① 自连接

  • 从题目本身我们可以看出,这里有两个限制条件,一个是选修“计算机基础”、另一个则是“C语言基础”,那在这里的话我们就可以去定义出两张有关【sc表】的临时表,然后通过自连接的方式将他们相连即可
select sc1.sno from sc sc1, sc sc2
    where sc1.sno = sc2.sno 
        and sc1.cno = (select cno from course where cname = '计算机基础')
        and sc2.cno = (select cno from course where cname = 'C语言基础');

通过运行来看,就是有那么一位天之骄子👼既选了“计算机基础”又选了“C语言基础”

在这里插入图片描述

② 求交集

  • 第二种方法的话则是通过求交集的方式来找到最后的结果。意思是说,我们可以用关系逻辑代数中的intersect来拼接下面两个SQL
select sno from sc,course where sc.cno = course.cno and cname = '计算机基础'
select sno from sc,course where sc.cno = course.cno and cname = 'C语言基础'

不过在MySQL中可没有intersect这个关键字,读者如果想继续研究的话可以用inner join来实现~

③ 子查询

  • 最后我们再来看一种查询方式 means 【子查询】,具体SQL如下
select sno from sc,course where 
    sc.cno = course.cno and cname = '计算机基础' and sno in (
        select sno from sc, course where sc.cno = course.cno and cname = 'C语言基础'
    );

在这里插入图片描述

三、复杂高级查询

看完了简易的高级查询后,我们再来看看一些复杂的高级查询🎈

⚙ 准备工作

  • 同样,在做复杂高级查询之前我们也需要去做一些简易的查询工作,先创建一个专门存放我们进行高级查询的数据库
create database ad_select;
  • 接下去我们要创建几张数据表来承载相应的数据,分别是 学生信息表student、课程信息表course、学生选课信息表sc
-- 学生信息表
create table student(
    sno int primary key,
    sname varchar(15)
);

-- 课程信息表
create table course(
    cno int primary key,
    cname varchar(15)
);

-- 学生选课信息表
create table sc(
    sno int,
    cno int,
    grade int,
    foreign key (sno) references student (sno),
    foreign key (cno) references course (cno)
);
  • 接下去呢我们再往数据表中插入一些数据来进行观察
-- 插入数据
insert into student values (1, '张三');
insert into student values (2, '李四');
insert into student values (3, '王五');
insert into student values (4, '马六');

insert into course values (1, '数据库');
insert into course values (2, '离散数学');
insert into course values (3, '操作系统');

insert into sc values (1, 1, 78);
insert into sc values (1, 2, 87);
insert into sc values (2, 1, 66);
insert into sc values (3, 2, 80);
insert into sc values (3, 3, 56);
insert into sc values (4, 3, 86);
insert into sc values (4, 1, 90);
insert into sc values (1, 3, 77);
insert into sc values (4, 2, 81);
insert into sc values (2, 2, 83);
  • 然后来看看数据是否被插入进去了

在这里插入图片描述

1、查询选修了全部课程的学生号码

首先我们可以写出它的 关系代数表达式πSno, Cno(SC)÷ πCno(C)

那它的SQL语句应该怎么实现呢?

  • 有些同学一开始可能想到了这样的写法,去【course表】中找到那些课程的课程号,若是【sc表】中有这些课程号的话就输出这个课程号所对应的学生号
select sno from sc where cno in (
    select cno from course
);

通过执行结果去查看就可以发现每当条件成立的时候,就会对应地将这个课程号是哪个学生所选的学生号给打印出来,那这个逻辑其实就已经错误了,我们要找的是 选修了全部课程的学生学号而不是只选修了一门或者多门课程的学生学号

在这里插入图片描述
💬 那有同学问:这该怎么办呢?

  • 其实这并不难,本题的着手点就在于这个【全部课程】,那我们就需要先获取到全部的课程有多少
select  count(*) from c  -- 得到全部课程数3
  • 那当我们知晓了全部的课程数后,就可以根据每个学生的学号去做分组统计,看看每个学生到底选修了那些课程
select sno, count(*) from sc group by sno 
  • 那很简单,将上面两个SQL做个合并即可,当我们根据学号统计完后,再使用 having子句去做一个筛选即可
select sno, count(*) from sc group by sno having count(*) = (select count(*) from c);
  • 执行一下结果我们可以看到,有两个学生选修了全部课程,所以他们的课程代码就被打印出来了

在这里插入图片描述

2、查询被全部学生选修的课程号码

首先我们可以写出它的 关系代数表达式πCno, Sno(SC)÷ πsno(S)

  • 本题还是一样我们要先去找到突破口,即这个【全部学生】,我们去S表中进行统计即可,然后可以得到总的学生人数为 4
select count(*) from student;
  • 然后我们再按课号去进行统计,观察当前这课程有多少人进行了选修
select cno,count(*) from sc group by cno
  • 最后还是一样,将上面二者进行一个拼接
select cno, count(*) from sc group by cno having count(*) = (select count(*) from student);

执行结果,就可以看到课程号为2号的选课情况

在这里插入图片描述

3、查询至少选修了学号是2号的学生所选修的全部课程的学生号码【⭐】

如果你觉得上面两个只是小case的话,那就再来看看这题吧

同样,我们先写出它的 关系代数表达式πCno, Sno(SC)÷ π(σsno='2' (SC))

  • 可能很多同学一上来就会想到这样的写法:
select sno from sc where cno in (
    select cno from sc where sno = '2'
);
  • 然后我们去看一下执行结果发现属实是有些混乱了,有些只找到一门2号同学所学过的课程就停下来了

在这里插入图片描述
💡 此时的我灵机一动,想到了找exists这个谓词来帮忙,请读者先观看下面的这个SQL语句

not exists (
    select * from sc as y where sno = '2' and not exists (
        select * from sc where sno = h and cno = y.cno
    )
)
  • 仔细观察可以发现,我在这里使用到了两个not exists,这指的就是我在小标题中所讲到的双重否定,这句SQL的语义是:不存在这样的课程,学号为2号的学生选了,而学号为h的学生却没有选

可能有的读者一时半会接收不了,没事,下面我会一一地进行分层解说

Way1:exists表双重否定

  • 以下就是我们本题的SQL正解
select distinct sno from sc as x where not exists(
    select * from sc as y where sno = '2' and not exists (
        select * from sc where sno = x.sno and cno = y.cno
    )
);

马上我们就来一一解析一下🔍

  1. 首先是最外层的这个临时表x的建立,代表的是 我们要去定位的那个同学的学号
select distinct sno from sc as x
  1. 接下去第二层这个临时表y的建立,代表的是 我们要去定位的那个2号同学
select * from sc as y where sno = '2'
  1. 相信阅读本文的读者多多少少有些编程基础,那我们就可以来做这样一个比喻:把外层的两个查询看做是 两个嵌套的for循环,而下面的这个查询则可以看作是 if条件判断
    • 对于sno = x.sno这个条件对应的是第一个查询,依次拿到当前学生的学号进行判断
    • 对于cno = y.cno这个条件对应的是第二个查询,获取到学号为2号学生的课号进行判断
select * from sc where sno = x.sno and cno = y.cno

执行一下SQL语句我们可以看到找出了那几个至少学过了学号为2号同学所学课程的学生号

在这里插入图片描述

Way2:优先筛选group统计

看完了上面这种解法后,不知读者理解了多少,我们再来看一种解法

  • 对于此种方法,我的思路是分别去【sc表】中做两次的查找,临时表x代表的是要搜寻的那些学生,而临时表y代表的则是学号为2号的学生,where子句后面跟的就是课程号相等的情况。

那么最后查询出来的结果就如下所示,筛选掉了那些2号同学没学习过的课程:

在这里插入图片描述
具体的SQL语句如下

select * from sc as x ,(select * from sc where sno = '2') as y  where x.cno = y.cno
  • 那有了上面的这个思想之后,我们再去想出当前这个问题的解决方案就简单很多了,以下是具体的SQL语句
select  x.sno from sc as x ,(select * from sc where sno = '2') as y  
where x.cno = y.cno  group by  x.sno 
having count(*) = (select count(*) from sc where sno = '2');

💬 我们来分析一下吧:

  • 可以看到,我在上面上面这个语句的基础上加了一个group by子句,代表将查询出来的记录即哪个学生选了哪门课按照每一位学生的学号来进行统计
group by x.sno
  • 最后还有一个having子句代表的则是在统计完成之后再去做一个筛选的工作,筛选出所选课程的数量和2号同学所选课程数一致的学生,最后输出的便是这些学生的学号
having count(*) = (select count(*) from sc where sno = '2');

最后来看一下执行结果:

在这里插入图片描述

Way3:最牛的简易除法🐂

不过上面的这一些算不得什么,下面我来介绍一个更加奇妙的写法,是从一位【高级工程师】那里学来的

读者可以先看看下面这句SQL(利用existsexcept相结合)

select * from s where not exists (
    select cno from sc where sno = '2' except
        select cno from sc where sno = s.sno
);

💬 好,我们马上来分析一下:

  • 内部的where子句相信读者在认真看下来之后应该很熟悉了,这里的s.sno可以看作是我们写循环时的循环变量i,它是每一轮循环都会发生变化的,即一直在做判断看哪个学号的学生是符合条件的
where sno = s.sno
  • 这里的 except 意思是 第一个查询结果中排除第二个查询结果中存在的行。那么下面两句你就可以理解为 从学号为2号的学生所选的课程中除去当前这个学生所选的课程
select cno from sc where sno = '2' except
    select cno from sc where sno = s.sno
  • 那从整体来看,上面的这个查询是包在一个not exists的谓词中,还记得我们在第一个方法中所谈到过的【exists表双重否定】吗?这里其实也有同样的含义,既然我们要找到 至少选修了学号是2号的学生所选修的全部课程的学生,就需要让我们所查询出来的内容是一个空集才可以
select * from s where not exists (
    select cno from sc where sno = '2' except
        select cno from sc where sno = s.sno
);
  • 就上面这样说的话太抽象了,我们可以画个图来理解一下,上面的except子句指的就是右边 - 左边,如果我们得到的是空集的话,则代表学号为h的那位同学一定学习了学号为2号同学所学的全部课程。当返回结果后再根据not exists双重否定表肯定,那么这个学生就是符合条件的那一个

在这里插入图片描述

以上就是本文所要涉及的全部高级查询,你学废了吗︿( ̄︶ ̄)︿

四、SQL数据展示(自取)


-- 注意:需要先建立一个空的数据库,然后再执行本脚本 !!!
-- 本来可以加这句 create database jxgl ,但创建库后需要刷新,否则执行下面的语句失败

use jxgl;

-- Table: Course
CREATE TABLE Course
 (
	cno char(7) NOT NULL, 
	cname char(40) NULL,
	cpno char(7) NULL,
	ccredit smallint NULL,
    PRIMARY KEY ( cno )	
);
INSERT INTO Course (cno, cname, cpno, ccredit) VALUES ('0000001', 'DB_Design           ', '0000006', 4);
INSERT INTO Course (cno, cname, cpno, ccredit) VALUES ('0000002', 'C语言基础           ', '0000027', 8);
INSERT INTO Course (cno, cname, cpno, ccredit) VALUES ('0000003', 'UNIX                ', '0000013', 5);
INSERT INTO Course (cno, cname, cpno, ccredit) VALUES ('0000004', 'C#程序设计          ', '0000002', 6);
INSERT INTO Course (cno, cname, cpno, ccredit) VALUES ('0000005', '现代物流概论        ', null, 4);
INSERT INTO Course (cno, cname, cpno, ccredit) VALUES ('0000006', '数据库原理          ', '0000010', 6);
INSERT INTO Course (cno, cname, cpno, ccredit) VALUES ('0000007', 'JAVA程序设计        ', '0000002', 8);
INSERT INTO Course (cno, cname, cpno, ccredit) VALUES ('0000008', '电子商务            ', '0000027', 4);
INSERT INTO Course (cno, cname, cpno, ccredit) VALUES ('0000009', '实用英语            ', null, 6);
INSERT INTO Course (cno, cname, cpno, ccredit) VALUES ('0000010', '数据结构            ', '0000002', 4);
INSERT INTO Course (cno, cname, cpno, ccredit) VALUES ('0000011', '邓小平理论          ', null, 2);
INSERT INTO Course (cno, cname, cpno, ccredit) VALUES ('0000012', '体育                ', null, 4);
INSERT INTO Course (cno, cname, cpno, ccredit) VALUES ('0000013', '操作系统            ', '0000002', 4);
INSERT INTO Course (cno, cname, cpno, ccredit) VALUES ('0000014', '经济基础知识        ', null, 4);
INSERT INTO Course (cno, cname, cpno, ccredit) VALUES ('0000027', '计算机基础          ', null, 4);
INSERT INTO Course (cno, cname, cpno, ccredit) VALUES ('0000032', '多媒体技术          ', '0000027', 5);
INSERT INTO Course (cno, cname, cpno, ccredit) VALUES ('0000034', '高等数学            ', null, 6);
INSERT INTO Course (cno, cname, cpno, ccredit) VALUES ('0000039', '基础会计            ', null, 2);
INSERT INTO Course (cno, cname, cpno, ccredit) VALUES ('0000045', '软件工程            ', '0000010', 4);
INSERT INTO Course (cno, cname, cpno, ccredit) VALUES ('0000052', '财务会计            ', '0000039', 4);

-- Table: Student
CREATE TABLE Student
 (
	sno char(7) NOT NULL,
	sname char(8) NOT NULL,
	class char(20) NULL,
	ssex char(2) NULL,
	bday datetime NULL,
	bplace char(10) NULL,
	mgrade smallint NULL,
	photo char(50) NULL,
	sfzh char(18) NULL,
	zxf smallint NULL,
    PRIMARY KEY ( sno )
) ;

INSERT INTO Student (sno, sname, class, ssex, bday, bplace, mgrade, photo, sfzh, zxf) VALUES ('0301101', '陈红    ', '03计算应用1         ', '女', '1982-12-2', '宁波      ', 400, null, '330102198212020021', 17);
INSERT INTO Student (sno, sname, class, ssex, bday, bplace, mgrade, photo, sfzh, zxf) VALUES ('0301102', '黄圣依  ', '03计算应用1         ', '女', '1983-6-9', '杭州      ', 325, null, '330102198306090020', 16);
INSERT INTO Student (sno, sname, class, ssex, bday, bplace, mgrade, photo, sfzh, zxf) VALUES ('0301103', '刘涛    ', '03计算应用1         ', '女', '1982-9-18', '绍兴      ', 311, null, '330102820918182   ', 15);
INSERT INTO Student (sno, sname, class, ssex, bday, bplace, mgrade, photo, sfzh, zxf) VALUES ('0301104', '宁静    ', '03计算应用1         ', '女', '1983-3-10', '温州      ', 298, null, '330104830310163   ', 20);
INSERT INTO Student (sno, sname, class, ssex, bday, bplace, mgrade, photo, sfzh, zxf) VALUES ('0301105', '许晴    ', '03计算应用1         ', '女', '1983-6-24', '温州      ', 367, null, '330105830624004   ', 20);
INSERT INTO Student (sno, sname, class, ssex, bday, bplace, mgrade, photo, sfzh, zxf) VALUES ('0301106', '黎明    ', '03计算应用1         ', '男', '1983-3-15', '台州      ', 412, null, '330122198303152826', 20);
INSERT INTO Student (sno, sname, class, ssex, bday, bplace, mgrade, photo, sfzh, zxf) VALUES ('0301107', '古天乐  ', '03计算应用1         ', '男', '1982-1-19', '宁波      ', 351, null, '330124198201191421', 25);
INSERT INTO Student (sno, sname, class, ssex, bday, bplace, mgrade, photo, sfzh, zxf) VALUES ('0301108', '林志颖  ', '03计算应用1         ', '男', '1981-9-23', '宁波      ', 326, null, '330203198109230655', 28);
INSERT INTO Student (sno, sname, class, ssex, bday, bplace, mgrade, photo, sfzh, zxf) VALUES ('0301109', '陈奕迅  ', '03计算应用1         ', '男', '1982-6-25', '杭州      ', 361, null, '330203198206252418', 22);
INSERT INTO Student (sno, sname, class, ssex, bday, bplace, mgrade, photo, sfzh, zxf) VALUES ('0301110', '徐若萱  ', '03计算应用1         ', '女', '1982-7-9', '宁波      ', 376, null, '330203198207090617', 22);
INSERT INTO Student (sno, sname, class, ssex, bday, bplace, mgrade, photo, sfzh, zxf) VALUES ('0301111', '陈冠希  ', '03计算应用1         ', '男', '1981-3-21', '杭州      ', 401, null, '330203810321003   ', 22);
INSERT INTO Student (sno, sname, class, ssex, bday, bplace, mgrade, photo, sfzh, zxf) VALUES ('0311101', '赵薇    ', '03物流1             ', '女', '1982-2-11', '台州      ', 289, null, '330203820211092   ', 16);
INSERT INTO Student (sno, sname, class, ssex, bday, bplace, mgrade, photo, sfzh, zxf) VALUES ('0311102', '董洁    ', '03物流1             ', '女', '1982-2-17', '金华      ', 378, null, '330203820217001   ', 24);
INSERT INTO Student (sno, sname, class, ssex, bday, bplace, mgrade, photo, sfzh, zxf) VALUES ('0311103', '王力宏  ', '03物流1             ', '男', '1982-5-31', '温州      ', 361, null, '330203820531002   ', 24);
INSERT INTO Student (sno, sname, class, ssex, bday, bplace, mgrade, photo, sfzh, zxf) VALUES ('0311104', '李嘉欣  ', '03物流1             ', '女', '1981-5-28', '宁波      ', 287, null, '330204198105281056', 24);
INSERT INTO Student (sno, sname, class, ssex, bday, bplace, mgrade, photo, sfzh, zxf) VALUES ('0311105', '苏有朋  ', '03物流1             ', '男', '1982-4-16', '宁波      ', 372, null, '330204198204162036', 24);
INSERT INTO Student (sno, sname, class, ssex, bday, bplace, mgrade, photo, sfzh, zxf) VALUES ('0311106', '夏雨    ', '03物流1             ', '男', '1982-10-12', '绍兴      ', 384, null, '330204198210121046', 16);
INSERT INTO Student (sno, sname, class, ssex, bday, bplace, mgrade, photo, sfzh, zxf) VALUES ('0311107', '郭富城  ', '03物流1             ', '男', '1982-10-17', '台州      ', 343, null, '330204198210173022', 16);
INSERT INTO Student (sno, sname, class, ssex, bday, bplace, mgrade, photo, sfzh, zxf) VALUES ('0311108', '袁咏仪  ', '03物流1             ', '女', '1981-11-16', '杭州      ', 376, null, '330204811116101   ', 18);
INSERT INTO Student (sno, sname, class, ssex, bday, bplace, mgrade, photo, sfzh, zxf) VALUES ('0311109', '张柏芝  ', '03物流1             ', '女', '1982-3-29', '温州      ', 421, null, '330204820329201   ', 18);
INSERT INTO Student (sno, sname, class, ssex, bday, bplace, mgrade, photo, sfzh, zxf) VALUES ('0311110', '张信哲  ', '03物流1             ', '男', '1982-7-14', '宁波      ', 408, null, '330204820714502   ', 24);
INSERT INTO Student (sno, sname, class, ssex, bday, bplace, mgrade, photo, sfzh, zxf) VALUES ('0311111', '陈坤    ', '03物流1             ', '男', '1982-7-19', '宁波      ', 326, null, '330204820719604   ', 24);
INSERT INTO Student (sno, sname, class, ssex, bday, bplace, mgrade, photo, sfzh, zxf) VALUES ('0311201', '王祖贤  ', '03物流2             ', '女', '1982-7-25', '绍兴      ', 337, null, '330204820725301   ', 20);
INSERT INTO Student (sno, sname, class, ssex, bday, bplace, mgrade, photo, sfzh, zxf) VALUES ('0311202', '佟大为  ', '03物流2             ', '男', '1982-6-7', '金华      ', 322, null, '330205198206070617', 22);
INSERT INTO Student (sno, sname, class, ssex, bday, bplace, mgrade, photo, sfzh, zxf) VALUES ('0311203', '谢霆锋  ', '03物流2             ', '男', '1982-11-2', '杭州      ', 364, null, '330205198211020964', 22);
INSERT INTO Student (sno, sname, class, ssex, bday, bplace, mgrade, photo, sfzh, zxf) VALUES ('0311205', '胡军    ', '03物流2             ', '男', '1981-7-16', '宁波      ', 316, null, '330206198107163128', 22);
INSERT INTO Student (sno, sname, class, ssex, bday, bplace, mgrade, photo, sfzh, zxf) VALUES ('0311206', '陈红    ', '03物流2             ', '女', '1981-11-9', '金华      ', 327, null, '330206198111095710', 20);
INSERT INTO Student (sno, sname, class, ssex, bday, bplace, mgrade, photo, sfzh, zxf) VALUES ('0311207', '蒋勤勤  ', '03物流2             ', '女', '1982-1-9', '杭州      ', 424, null, '330206198201094616', 24);
INSERT INTO Student (sno, sname, class, ssex, bday, bplace, mgrade, photo, sfzh, zxf) VALUES ('0311208', '吴彦祖  ', '03物流2             ', '男', '1982-6-1', '金华      ', 297, null, '330206198206013416', 28);
INSERT INTO Student (sno, sname, class, ssex, bday, bplace, mgrade, photo, sfzh, zxf) VALUES ('0311209', '刘德华  ', '03物流2             ', '男', '1982-10-31', '宁波      ', 281, null, '330206198210313462', 28);
INSERT INTO Student (sno, sname, class, ssex, bday, bplace, mgrade, photo, sfzh, zxf) VALUES ('0311210', '伊能静  ', '03物流2             ', '女', '1983-1-16', '金华      ', 356, null, '330206198301161425', 28);
INSERT INTO Student (sno, sname, class, ssex, bday, bplace, mgrade, photo, sfzh, zxf) VALUES ('0311211', '李亚鹏  ', '03物流2             ', '男', '1981-11-10', '湖州      ', 288, null, '330206811110312   ', 21);
INSERT INTO Student (sno, sname, class, ssex, bday, bplace, mgrade, photo, sfzh, zxf) VALUES ('0311301', '刘烨    ', '03物流3             ', '男', '1981-12-23', '宁波      ', 293, null, '330206811223462   ', 18);
INSERT INTO Student (sno, sname, class, ssex, bday, bplace, mgrade, photo, sfzh, zxf) VALUES ('0311302', '周迅    ', '03物流3             ', '女', '1976-8-7', '台州      ', 357, null, '330206820201141   ', 18);
INSERT INTO Student (sno, sname, class, ssex, bday, bplace, mgrade, photo, sfzh, zxf) VALUES ('0311303', '朱茵    ', '03物流3             ', '女', '1982-2-14', '湖州      ', 381, null, '330206820214091   ', 19);
INSERT INTO Student (sno, sname, class, ssex, bday, bplace, mgrade, photo, sfzh, zxf) VALUES ('0311304', '刘嘉玲  ', '03物流3             ', '女', '1982-7-18', '绍兴      ', 405, null, '330206820718142   ', 25);
INSERT INTO Student (sno, sname, class, ssex, bday, bplace, mgrade, photo, sfzh, zxf) VALUES ('0311305', '周杰    ', '03物流3             ', '男', '1982-8-5', '温州      ', 332, null, '330206820805031   ', 28);
INSERT INTO Student (sno, sname, class, ssex, bday, bplace, mgrade, photo, sfzh, zxf) VALUES ('0311306', '李若彤  ', '03物流3             ', '女', '1982-8-9', '宁波      ', 311, null, '330206820809031   ', 25);
INSERT INTO Student (sno, sname, class, ssex, bday, bplace, mgrade, photo, sfzh, zxf) VALUES ('0311307', '陆毅    ', '03物流3             ', '男', '1983-1-20', '绍兴      ', 367, null, '330203830120184   ', 25);
INSERT INTO Student (sno, sname, class, ssex, bday, bplace, mgrade, photo, sfzh, zxf) VALUES ('0311308', '袁莉    ', '03物流3             ', '女', '1982-10-1', '宁波      ', 325, null, '330203821001094   ', 30);
INSERT INTO Student (sno, sname, class, ssex, bday, bplace, mgrade, photo, sfzh, zxf) VALUES ('0311309', '刘亦菲  ', '03物流3             ', '女', '1982-5-26', '湖州      ', 354, null, '330203820526062   ', 24);
INSERT INTO Student (sno, sname, class, ssex, bday, bplace, mgrade, photo, sfzh, zxf) VALUES ('0311310', '萧亚轩  ', '03物流3             ', '女', '1982-3-31', '温州      ', 405, null, '330203820331002   ', 20);

-- Table: SC
CREATE TABLE SC
 (
	term smallint NOT NULL,
	sno char(7) NOT NULL ,
	cno char(7) NOT NULL ,
	grade smallint NULL,
	point decimal(2, 1) NULL,
    PRIMARY KEY (term,sno,cno),
    FOREIGN KEY (sno) REFERENCES Student (sno),
    FOREIGN KEY (cno) REFERENCES Course (cno) ON UPDATE CASCADE
); 
INSERT INTO SC (term, sno, cno, grade, point) VALUES (1, '0301101', '0000011', 88, 1);
INSERT INTO SC (term, sno, cno, grade, point) VALUES (1, '0301102', '0000011', 75, 1.5);
INSERT INTO SC (term, sno, cno, grade, point) VALUES (1, '0301102', '0000027', 79, 1.5);
INSERT INTO SC (term, sno, cno, grade, point) VALUES (1, '0311101', '0000008', 86, 1);
INSERT INTO SC (term, sno, cno, grade, point) VALUES (1, '0311101', '0000009', 58, 0);
INSERT INTO SC (term, sno, cno, grade, point) VALUES (1, '0311101', '0000011', 85, 1);
INSERT INTO SC (term, sno, cno, grade, point) VALUES (1, '0311101', '0000027', 87, 1);
INSERT INTO SC (term, sno, cno, grade, point) VALUES (1, '0311101', '0000034', 88, 1);
INSERT INTO SC (term, sno, cno, grade, point) VALUES (1, '0311101', '0000039', 85, 1);
INSERT INTO SC (term, sno, cno, grade, point) VALUES (1, '0311101', '0000052', 63, 0);
INSERT INTO SC (term, sno, cno, grade, point) VALUES (1, '0311102', '0000006', 61, 0);
INSERT INTO SC (term, sno, cno, grade, point) VALUES (1, '0311102', '0000008', 78, 1);
INSERT INTO SC (term, sno, cno, grade, point) VALUES (1, '0311102', '0000009', 76, 1);
INSERT INTO SC (term, sno, cno, grade, point) VALUES (1, '0311102', '0000011', 75, 1);
INSERT INTO SC (term, sno, cno, grade, point) VALUES (1, '0311102', '0000027', 84, 1);
INSERT INTO SC (term, sno, cno, grade, point) VALUES (1, '0311102', '0000034', 78, 1);
INSERT INTO SC (term, sno, cno, grade, point) VALUES (1, '0311102', '0000052', 72, 1.5);
INSERT INTO SC (term, sno, cno, grade, point) VALUES (1, '0311111', '0000008', 75, 1);
INSERT INTO SC (term, sno, cno, grade, point) VALUES (1, '0311111', '0000009', 74, 1);
INSERT INTO SC (term, sno, cno, grade, point) VALUES (1, '0311111', '0000011', 95, 1);
INSERT INTO SC (term, sno, cno, grade, point) VALUES (1, '0311111', '0000027', 82, 1);
INSERT INTO SC (term, sno, cno, grade, point) VALUES (1, '0311111', '0000034', 72, 1);
INSERT INTO SC (term, sno, cno, grade, point) VALUES (1, '0311111', '0000039', 66, 0);
INSERT INTO SC (term, sno, cno, grade, point) VALUES (1, '0311111', '0000052', 78, 1.5);
INSERT INTO SC (term, sno, cno, grade, point) VALUES (1, '0311201', '0000008', 68, 1);
INSERT INTO SC (term, sno, cno, grade, point) VALUES (1, '0311201', '0000009', 81, 1);
INSERT INTO SC (term, sno, cno, grade, point) VALUES (1, '0311201', '0000011', 78, 1.5);
INSERT INTO SC (term, sno, cno, grade, point) VALUES (1, '0311201', '0000027', 84, 1);
INSERT INTO SC (term, sno, cno, grade, point) VALUES (1, '0311201', '0000034', 64, 0);
INSERT INTO SC (term, sno, cno, grade, point) VALUES (1, '0311201', '0000039', 77, 1.5);
INSERT INTO SC (term, sno, cno, grade, point) VALUES (1, '0311201', '0000052', 71, 2);
INSERT INTO SC (term, sno, cno, grade, point) VALUES (1, '0311202', '0000008', 78, 1);
INSERT INTO SC (term, sno, cno, grade, point) VALUES (1, '0311202', '0000009', 70, 1);
INSERT INTO SC (term, sno, cno, grade, point) VALUES (1, '0311202', '0000011', 65, 0);
INSERT INTO SC (term, sno, cno, grade, point) VALUES (1, '0311202', '0000027', 80, 1);
INSERT INTO SC (term, sno, cno, grade, point) VALUES (1, '0311202', '0000034', 79, 1);
INSERT INTO SC (term, sno, cno, grade, point) VALUES (1, '0311202', '0000039', 59, 0);
INSERT INTO SC (term, sno, cno, grade, point) VALUES (1, '0311202', '0000052', 87, 1);
INSERT INTO SC (term, sno, cno, grade, point) VALUES (1, '0311211', '0000006', 70, 1.5);
INSERT INTO SC (term, sno, cno, grade, point) VALUES (1, '0311211', '0000008', 74, 1);
INSERT INTO SC (term, sno, cno, grade, point) VALUES (1, '0311211', '0000009', 52, 0);
INSERT INTO SC (term, sno, cno, grade, point) VALUES (1, '0311211', '0000011', 79, 1);
INSERT INTO SC (term, sno, cno, grade, point) VALUES (1, '0311211', '0000027', 75, 1);
INSERT INTO SC (term, sno, cno, grade, point) VALUES (1, '0311211', '0000034', 79, 1);
INSERT INTO SC (term, sno, cno, grade, point) VALUES (1, '0311211', '0000052', 82, 1);
INSERT INTO SC (term, sno, cno, grade, point) VALUES (2, '0301101', '0000002', 80, 1);
INSERT INTO SC (term, sno, cno, grade, point) VALUES (2, '0301101', '0000006', 91, 1.5);
INSERT INTO SC (term, sno, cno, grade, point) VALUES (2, '0301101', '0000007', 87, 1);
INSERT INTO SC (term, sno, cno, grade, point) VALUES (2, '0301101', '0000008', 55, 0);
INSERT INTO SC (term, sno, cno, grade, point) VALUES (2, '0301101', '0000010', 66, 0);
INSERT INTO SC (term, sno, cno, grade, point) VALUES (2, '0301101', '0000013', 90, 1.5);
INSERT INTO SC (term, sno, cno, grade, point) VALUES (2, '0301101', '0000034', 81, 1);
INSERT INTO SC (term, sno, cno, grade, point) VALUES (2, '0301102', '0000002', 110, 1.5);
INSERT INTO SC (term, sno, cno, grade, point) VALUES (2, '0301102', '0000008', 83, 1);
INSERT INTO SC (term, sno, cno, grade, point) VALUES (2, '0301102', '0000009', 76, 1);
INSERT INTO SC (term, sno, cno, grade, point) VALUES (2, '0301102', '0000010', 78, 1);
INSERT INTO SC (term, sno, cno, grade, point) VALUES (2, '0301102', '0000013', 82, 1);
INSERT INTO SC (term, sno, cno, grade, point) VALUES (2, '0301102', '0000034', 64, 0);
INSERT INTO SC (term, sno, cno, grade, point) VALUES (3, '0301101', '0000001', 85, null);
INSERT INTO SC (term, sno, cno, grade, point) VALUES (3, '0311211', '0000001', 80, null);

-- Table: Teacher
CREATE TABLE Teacher
(
	tno char(3) NOT NULL,
	tname char(8) NULL,
	ps char(10) NULL,
	wday datetime NULL,
	dept char(16) NULL,
	pay smallint NULL,
	marry smallint NULL,
	resume varchar(200) NULL,
    PRIMARY KEY ( tno )
) ;
INSERT INTO Teacher (tno, tname, ps, wday, dept, pay, marry, resume) VALUES ('001', '王涛    ', '讲师      ', '2001-9-1', '基础部          ', 2100, 0, null);
INSERT INTO Teacher (tno, tname, ps, wday, dept, pay, marry, resume) VALUES ('002', '姚明    ', '助教      ', '2002-2-3', '基础部          ', 2100, 0, null);
INSERT INTO Teacher (tno, tname, ps, wday, dept, pay, marry, resume) VALUES ('003', '蔡振华  ', '副教授    ', '2002-4-10', '经管系          ', 4800, 1, null);
INSERT INTO Teacher (tno, tname, ps, wday, dept, pay, marry, resume) VALUES ('004', '田亮    ', '助教      ', '2003-7-10', '计算机系        ', 2100, 0, null);
INSERT INTO Teacher (tno, tname, ps, wday, dept, pay, marry, resume) VALUES ('005', '李小双  ', '讲师      ', '2001-9-10', '应用技术系      ', 2600, 1, null);
INSERT INTO Teacher (tno, tname, ps, wday, dept, pay, marry, resume) VALUES ('006', '孙继海  ', '讲师      ', '2001-1-20', '国际交流系      ', 2600, 0, null);
INSERT INTO Teacher (tno, tname, ps, wday, dept, pay, marry, resume) VALUES ('007', '卡佩罗  ', '教授      ', '2001-5-16', '基础部          ', 5500, 0, null);
INSERT INTO Teacher (tno, tname, ps, wday, dept, pay, marry, resume) VALUES ('008', '孔令辉  ', '助教      ', '2003-7-10', '基础部          ', 2100, 0, null);
INSERT INTO Teacher (tno, tname, ps, wday, dept, pay, marry, resume) VALUES ('009', '刘玉栋  ', '助教      ', '2001-10-12', '基础部          ', 2100, 0, null);
INSERT INTO Teacher (tno, tname, ps, wday, dept, pay, marry, resume) VALUES ('010', '隋菲菲  ', '助教      ', '2002-7-10', '国际交流系      ', 2100, 0, null);
INSERT INTO Teacher (tno, tname, ps, wday, dept, pay, marry, resume) VALUES ('011', '张蓉芳  ', '副教授    ', '2001-12-13', '基础部          ', 4800, 1, null);
INSERT INTO Teacher (tno, tname, ps, wday, dept, pay, marry, resume) VALUES ('012', '李宁    ', '讲师      ', '2003-10-19', '基础部          ', 2600, 1, null);
INSERT INTO Teacher (tno, tname, ps, wday, dept, pay, marry, resume) VALUES ('013', '赵蕊蕊  ', '助教      ', '2003-7-1', '计算机系        ', 2100, 0, null);
INSERT INTO Teacher (tno, tname, ps, wday, dept, pay, marry, resume) VALUES ('014', '谢军    ', '讲师      ', '2003-8-18', '计算机系        ', 2600, 1, null);
INSERT INTO Teacher (tno, tname, ps, wday, dept, pay, marry, resume) VALUES ('015', '刘国梁  ', '讲师      ', '2003-9-10', '基础部          ', 2600, 0, null);
INSERT INTO Teacher (tno, tname, ps, wday, dept, pay, marry, resume) VALUES ('016', '李永波  ', '副教授    ', '2002-8-3', '国际交流系      ', 2600, 1, null);
INSERT INTO Teacher (tno, tname, ps, wday, dept, pay, marry, resume) VALUES ('017', '郎平    ', '副教授    ', '2003-3-30', '经管系          ', 4800, 1, null);
INSERT INTO Teacher (tno, tname, ps, wday, dept, pay, marry, resume) VALUES ('018', '王军霞  ', '助教      ', '2001-5-19', '经管系          ', 2100, 0, null);
INSERT INTO Teacher (tno, tname, ps, wday, dept, pay, marry, resume) VALUES ('019', '马晓春  ', '讲师      ', '2003-10-20', '国际交流系      ', 2600, 1, null);
INSERT INTO Teacher (tno, tname, ps, wday, dept, pay, marry, resume) VALUES ('020', '章秋红  ', '讲师      ', '2003-9-1', '计算机系        ', 2600, 1, null);
INSERT INTO Teacher (tno, tname, ps, wday, dept, pay, marry, resume) VALUES ('021', '罗雪娟  ', '助教      ', '2000-12-21', '经管系          ', 2100, 0, null);
INSERT INTO Teacher (tno, tname, ps, wday, dept, pay, marry, resume) VALUES ('022', '聂卫平  ', '副教授    ', '2001-3-8', '应用技术系      ', 2600, 0, null);
INSERT INTO Teacher (tno, tname, ps, wday, dept, pay, marry, resume) VALUES ('023', '陈忠和  ', '副教授    ', '2003-7-1', '计算机系        ', 2100, 1, null);
INSERT INTO Teacher (tno, tname, ps, wday, dept, pay, marry, resume) VALUES ('024', '葛菲    ', '助教      ', '2003-7-1', '计算机系        ', 2100, 1, null);
INSERT INTO Teacher (tno, tname, ps, wday, dept, pay, marry, resume) VALUES ('025', '孙俊    ', '助教      ', '2002-1-21', '基础部          ', 2100, 1, null);
INSERT INTO Teacher (tno, tname, ps, wday, dept, pay, marry, resume) VALUES ('026', '邹振先  ', '副教授    ', '2003-8-20', '经管系          ', 4800, 1, null);
INSERT INTO Teacher (tno, tname, ps, wday, dept, pay, marry, resume) VALUES ('027', '袁伟民  ', '教授      ', '2000-8-25', '校办            ', 5500, 1, null);
INSERT INTO Teacher (tno, tname, ps, wday, dept, pay, marry, resume) VALUES ('028', '乔丹    ', '教授      ', '2000-10-1', '经管系          ', 5500, 1, null);
INSERT INTO Teacher (tno, tname, ps, wday, dept, pay, marry, resume) VALUES ('029', '许海峰  ', '教授      ', '2003-2-20', '计算机系        ', 5500, 1, null);

-- Table: TC
CREATE TABLE TC
 (
    list smallint,
	term smallint,
	class varchar(40) NULL,
	cno char(7) NULL,
	tno char(3) NULL,
	period smallint NULL,
    PRIMARY KEY (list),
    FOREIGN KEY (cno) REFERENCES Course (cno) ON UPDATE CASCADE,
    FOREIGN KEY (tno) REFERENCES Teacher (tno)
) ;
INSERT INTO TC (list, term, class, cno, tno, period) VALUES (1, 1, '03物流1             ', '0000011', '001', 36);
INSERT INTO TC (list, term, class, cno, tno, period) VALUES (2, 1, '03物流1             ', '0000034', '002', 72);
INSERT INTO TC (list, term, class, cno, tno, period) VALUES (3, 1, '03物流1             ', '0000052', '003', 60);
INSERT INTO TC (list, term, class, cno, tno, period) VALUES (4, 1, '03物流1             ', '0000027', '004', 108);
INSERT INTO TC (list, term, class, cno, tno, period) VALUES (5, 1, '03物流1             ', '0000039', '005', 36);
INSERT INTO TC (list, term, class, cno, tno, period) VALUES (6, 1, '03物流1             ', '0000005', '006', 72);
INSERT INTO TC (list, term, class, cno, tno, period) VALUES (7, 1, '03物流1             ', '0000001', '007', 36);
INSERT INTO TC (list, term, class, cno, tno, period) VALUES (8, 1, '03物流2             ', '0000011', null, 36);
INSERT INTO TC (list, term, class, cno, tno, period) VALUES (9, 1, '03物流2             ', '0000034', '002', 72);
INSERT INTO TC (list, term, class, cno, tno, period) VALUES (10, 1, '03物流2             ', '0000052', '003', 60);
INSERT INTO TC (list, term, class, cno, tno, period) VALUES (11, 1, '03物流2             ', '0000027', '004', 108);
INSERT INTO TC (list, term, class, cno, tno, period) VALUES (12, 1, '03物流2             ', '0000039', '009', 36);
INSERT INTO TC (list, term, class, cno, tno, period) VALUES (13, 1, '03物流2             ', '0000005', '010', 72);
INSERT INTO TC (list, term, class, cno, tno, period) VALUES (14, 1, '03物流2             ', '0000001', '007', 36);
INSERT INTO TC (list, term, class, cno, tno, period) VALUES (15, 1, '03计算应用1         ', '0000011', '022', 36);
INSERT INTO TC (list, term, class, cno, tno, period) VALUES (16, 1, '03计算应用1         ', '0000034', null, 54);
INSERT INTO TC (list, term, class, cno, tno, period) VALUES (17, 1, '03计算应用1         ', '0000045', '013', 108);
INSERT INTO TC (list, term, class, cno, tno, period) VALUES (18, 1, '03计算应用1         ', '0000027', '014', 144);
INSERT INTO TC (list, term, class, cno, tno, period) VALUES (19, 1, '03计算应用1         ', '0000039', '015', 36);
INSERT INTO TC (list, term, class, cno, tno, period) VALUES (20, 1, '03计算应用1         ', '0000005', '016', 72);
INSERT INTO TC (list, term, class, cno, tno, period) VALUES (21, 1, '03计算应用1         ', '0000001', '007', 36);
INSERT INTO TC (list, term, class, cno, tno, period) VALUES (22, 2, '03物流1             ', '0000007', '017', 108);
INSERT INTO TC (list, term, class, cno, tno, period) VALUES (23, 2, '03物流1             ', '0000012', null, 54);
INSERT INTO TC (list, term, class, cno, tno, period) VALUES (24, 2, '03物流1             ', '0000005', '019', 72);
INSERT INTO TC (list, term, class, cno, tno, period) VALUES (25, 2, '03物流1             ', '0000008', '020', 108);
INSERT INTO TC (list, term, class, cno, tno, period) VALUES (26, 2, '03物流1             ', '0000032', '007', 36);
INSERT INTO TC (list, term, class, cno, tno, period) VALUES (27, 2, '03物流1             ', '0000004', '021', 72);
INSERT INTO TC (list, term, class, cno, tno, period) VALUES (28, 2, '03物流1             ', '0000003', '022', 36);
INSERT INTO TC (list, term, class, cno, tno, period) VALUES (29, 2, '03物流2             ', '0000007', '017', 108);
INSERT INTO TC (list, term, class, cno, tno, period) VALUES (30, 2, '03物流2             ', '0000012', '018', 54);
INSERT INTO TC (list, term, class, cno, tno, period) VALUES (31, 2, '03物流2             ', '0000005', '010', 72);
INSERT INTO TC (list, term, class, cno, tno, period) VALUES (32, 2, '03物流2             ', '0000008', '020', 108);
INSERT INTO TC (list, term, class, cno, tno, period) VALUES (33, 2, '03物流2             ', '0000032', '007', 36);
INSERT INTO TC (list, term, class, cno, tno, period) VALUES (34, 2, '03物流2             ', '0000004', '021', 72);
INSERT INTO TC (list, term, class, cno, tno, period) VALUES (35, 2, '03物流2             ', '0000003', '022', 36);
INSERT INTO TC (list, term, class, cno, tno, period) VALUES (36, 2, '03计算应用1         ', '0000002', '023', 144);
INSERT INTO TC (list, term, class, cno, tno, period) VALUES (37, 2, '03计算应用1         ', '0000010', '014', 72);
INSERT INTO TC (list, term, class, cno, tno, period) VALUES (38, 2, '03计算应用1         ', '0000013', null, 72);
INSERT INTO TC (list, term, class, cno, tno, period) VALUES (39, 2, '03计算应用1         ', '0000034', '025', 54);
INSERT INTO TC (list, term, class, cno, tno, period) VALUES (40, 2, '03计算应用1         ', '0000005', '016', 72);
INSERT INTO TC (list, term, class, cno, tno, period) VALUES (41, 2, '03计算应用1         ', '0000032', '007', 36);
INSERT INTO TC (list, term, class, cno, tno, period) VALUES (42, 2, '03计算应用1         ', '0000003', '001', 36);

五、总结与提炼

最后来总结一下本文所学习的内容📖

  • 本文我们所涉及的是SQL中的高级查询,从简易的查询入手,在学习了基础的SQL语法后,我们再去看一些略带复杂性的查询就没那么难了,其中不仅涉及group byhaving等这些子句,而且涉及inexists这些谓词,有了它们我们在作一些复杂查询的时候也显得没那么难哩!
  • 接下去又涉及了一些复杂的高级查询,通过逻辑的转换、逐步地分析,发现只要将复杂的查询切分成一个个的逻辑块,然后再将他们一一拼接起来,逻辑上就显得很清楚了
  • 只有将所学习过的知识给运用起来,我们才可以对SQL语句做到融汇贯通

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/167363.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

typora整理markdown笔记

效果 符号 快捷键 斜体 * * ctrlB(代表同时按) 加粗 ** ** ctrlI 竖线 > 超链接 清除样式 ctrl\ 图片 ![图片描述][图片绝对路径/相对路径] 如何在Typora中插入图像? ➊ 使用Markdown语法 (不推荐,太慢) ➋ 直接拷贝图…

nvm 安装后出现的各种问题解决方法

1、nvm安装后无法安装node版本 首先需要确定删除了电脑上所有的node版本,如果不会卸载那么请移步到 查看 ,我们是要通过nvm来下载node环境,所以之前下载的node有冲突,所以都要清除。 2、下载后的nvm环境,无法使用node、…

Linux入门攻坚——6、磁盘管理——分区及文件系统管理

磁盘管理主要涉及分区的管理,以及分区后的文件系统管理。 磁盘的使用大体要分两步: 文件系统也是一个软件,根是自引用的。 文件系统的全局结构:物理格式: 一个磁盘刚被生产出来的时候,它里边没有划分扇区…

[OpenAirInterface-01]什么是OAI?OAI在github中源代码的存放结构

文章目录 前言:什么是软件无线电SDR第1章 什么是OAI(OpenAirInterface)1.1 来自官网的概述1.2 来自github的概述1.3 来自我的解读 第2章 什么是OSA2.1 OSA概述:2.2 OSA联盟职责2.3 OpenAirInterface github成员的角色 第3章 常见的…

服务号转为订阅号可以吗

服务号和订阅号有什么区别?服务号转为订阅号有哪些作用?很多小伙伴想把服务号改为订阅号,但是不知道改了之后具体有什么作用,今天跟大家具体讲解一下。首先我们知道服务号一个月只能发四次文章,但是订阅号每天都可以发…

赴日开发工程师是做什么的?

日本的软件开发岗位对技术要求和沟通能力都有较高的要求,赴日开发工程师主要负责软件设计、开发和测试,包括编写代码、测试代码和修复漏洞等工作。开发人员必须对软件架构、设计模式和业务逻辑有深入的理解,并能做出合适的技术决策。 当然&a…

探索SPI:深入理解原理、源码与应用场景

文章目录 一、初步认识1、概念2、工作原理3、作用场景 二、源码分析1、ServiceLoader结构2、相关字段3、核心方法 三、案例connector连接器小案例1、新建SPI项目2、创建扩展实现项目1-MongoDB3、创建扩展实现项目2-Oracle4、测试 Spring应用1、创建study工程2、创建forlan-test…

系列六、多线程集合不安全

一、多线程List集合不安全 1.1、List集合不安全案例代码 /*** Author : 一叶浮萍归大海* Date: 2023/11/20 12:38* Description: 多线层环境下List集合不安全案例代码*/ public class NotSafeListMainApp {public static void main(String[] args) {List<String> list …

使用JDK自带java.util.logging.Logger引起的冲突问题

现象&#xff1a; 应用代码如下&#xff1a; import javax.script.ScriptEngineManager;ScriptEngineManager manager new ScriptEngineManager(); manager.getEngineByName("JavaScript"); 在TongWeb8上运行出错&#xff0c;日志如下&#xff1a; Servlet.servi…

反渗透水处理成套设备有哪些

反渗透水处理成套设备主要包括反渗透装置、预处理系统、控制系统等部分。 反渗透装置&#xff1a;反渗透水处理设备的核心部分&#xff0c;由反渗透膜、压力容器、膜组件等组成。反渗透膜是一种高分子材料制成的半透膜&#xff0c;能够截留水中的溶解盐、有机物、细菌等杂质&a…

Docker部署MinIO对象存储服务器结合Cpolar实现远程访问

&#x1f525;博客主页&#xff1a; 小羊失眠啦. &#x1f3a5;系列专栏&#xff1a;《C语言》 《数据结构》 《Linux》《Cpolar》 ❤️感谢大家点赞&#x1f44d;收藏⭐评论✍️ 文章目录 前言1. Docker 部署MinIO2. 本地访问MinIO3. Linux安装Cpolar4. 配置MinIO公网地址5. 远…

同城跑腿服务预约小程序的作用是什么

随着生活质量逐渐提升&#xff0c;围绕人们生活的行业或产品非常多&#xff0c;同时互联网赋能下&#xff0c;也出现了很多便捷人们日常消费的场景&#xff0c;如外卖服务、快递服务等。 跑腿仅依赖微信私聊及电话预约是很低效且容易出错及造成极大工作压力的&#xff0c;同时…

Matlab论文插图绘制模板第127期—进阶气泡矩阵/热图

​在之前的文章中&#xff0c;分享了Matlab散点图矩阵的绘制模板&#xff1a; 也分享过气泡矩阵图的绘制模板&#xff1a; 考虑到规范性和便捷性&#xff0c;再来分享一下进阶版的气泡矩阵/热图。 先来看一下成品效果&#xff1a; 特别提示&#xff1a;本期内容『数据代码』已…

ospf路由选路及路由汇总

一、知识补充 1、ABR和ASBR 1.1 ABR ABR指的是边界路由&#xff0c;通常位于两个或多个区域之间&#xff0c;用于在不同的OSPF区域之间传递信息。当一个路由器同时连接到两个或多个区域时&#xff0c;它就成为了ABR&#xff0c;它需要维护每个区域的拓扑信息和路由表&#x…

SSL证书对网站SEO的好处

随着网络安全意识的提高&#xff0c;越来越多的网站开始采用SSL证书来保护自己的数据传输过程。那么&#xff0c;SSL证书真的能为网站SEO带来好处吗&#xff1f;下面将为您分析这个问题。 加强用户体验和信任度 SSL证书不仅能确保数据传输的安全性&#xff0c;还能让客户感受…

医院陪诊服务预约小程序的作用如何

对陪诊服务提供者及需求者来说&#xff0c;平台很重要&#xff0c;对服务提供者而言&#xff0c;通过微信私信/电话联系的形式很容易出现漏服务的情况&#xff0c;如遇需求者内容/地址/联系方式/哪家医院等信息提供不清或临时改变主意等&#xff0c;非常烦恼&#xff0c;同时各…

宝塔站点配置

我这里使用的thinkphp 框架部署的

计算机毕业设计选题推荐-个人博客微信小程序/安卓APP-项目实战

✨作者主页&#xff1a;IT毕设梦工厂✨ 个人简介&#xff1a;曾从事计算机专业培训教学&#xff0c;擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Py…

在Linux上安装RStudio工具并实现本地远程访问【内网穿透】

文章目录 前言1. 安装RStudio Server2. 本地访问3. Linux 安装cpolar4. 配置RStudio server公网访问地址5. 公网远程访问RStudio6. 固定RStudio公网地址 前言 RStudio Server 使你能够在 Linux 服务器上运行你所熟悉和喜爱的 RStudio IDE&#xff0c;并通过 Web 浏览器进行访问…

SIMULIA|Abaqus 2022x新功能介绍第三弹

Abaqus 线性分析的功能增强 模态分析中增加connector单元的输出 模态线性动力学分析中增加下列Connector单元的输出&#xff0c;无需指定* connector MOTION即可实现&#xff1a;AXIAL&#xff0c;BUSHING&#xff0c;CARDAN&#xff0c;CARTESIAN和ROTATION。 而且改进了CT…
最新文章