【MySQL】细谈SQL高级查询

news2024/11/25 7:46:47

在这里插入图片描述

在这里插入图片描述

文章目录

  • 一、前言 & 准备工作
  • 二、简易高级查询
    • ⚙ 准备工作
    • 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.coloradmin.cn/o/1229758.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python爬虫技术系列-03/4flask结合requests测试静态页面和动态页面抓取

python构建web服务 flask内容参考:Flask框架入门教程(非常详细) flask安装与运行测试 安装flask pip install flask创建一个webapp.py文件,内容如下 from flask import Flask# 用当前脚本名称实例化Flask对象,方便flask从该脚…

赠人玫瑰,手有余香,分享5款精致小巧的软件

​ 分享是一种美好的事情,它能让快乐变得更多,它能让悲伤变得更少,我会持续分享一些好用的软件给大家。 1.矢量图形设计——Affinity Designer ​ Affinity Designer是一款屡获殊荣的矢量图形设计软件,适用于 Windows、macOS 和…

wvp gb28181 pro 拉流代理功能

前言 不是所有的摄像机都支持国标或者推流的,但是这些设备可以得到一个视频播放地址,通常为rtsp协议, 以大华为例。可以得到这样一个流地址,可以直接用vlc进行播放,此时我们可以通过拉流代理功能将这个设备推送给其他国…

如何构建更简洁的前端架构?

目录 为什么需要前端架构? 那么,前端架构是什么样的呢? 使用了哪些层? 那么,这种架构会出什么问题呢? 我们应该如何避免这些错误? 哪些原则应适用于组件? Anti-Patterns 反模…

不会制作电子期刊怎么办?新发现

​电子期刊已经成为当今社会中非常流行的一种出版形式,它不仅方便快捷,而且易于分享和传播。如果你一直想尝试制作电子期刊,但又不知道如何开始,那么不用担心!今天我将为你揭秘制作电子期刊的秘籍,让你轻松…

家电电器展示预约小程序的作用是什么

电器产品已经成为人们生活的必备品,如冰箱、电视机、洗衣机等,而这些产品的购买方式也很多,可以到线下门店购买,也可以到线上多个电商平台购买,如今互联网高速发展以及民众享受线上服务带来的便捷性,同时商…

Openlayer【二】—— 绘制不同的点、线以及给其添加监听事件

Openlayer【二】—— 绘制不同的点、线以及给其添加监听事件 接上篇:OpenLayer初始化 在openlayer当中,图层Layer与地图源Source是一对一的关系。当创建了一个图层Layer,相应的需要给图层添加地图源Source,然后将图层Layer添加到…

【Android】画面卡顿优化列表流畅度六(终篇)

上一篇: 【Android】画面卡顿优化列表流畅度五之下拉刷新上拉加载更多组件RefreshLayout修改 场景回顾: 业务经过一年半左右的运行后,出现了明显的列表卡顿情况;于是开始着手进行列表卡顿优化。目前的情况是: 网络图…

8年资深测试,自动化测试常见问题总结,惊险避坑...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 1、自动化测试简介…

好的CRM系统有哪些核心能力?

CRM是企业管理的重要工具,可以维护管理客户关系,提高企业的核心竞争力。市场营销、销售、客户服务和技术支持等相关领域都需要用到CRM系统。那么一个好的CRM,最核心的能力有哪些? 1.销售自动化 这里简单介绍下销售自动化的功能&…

非关系型数据库Redis(缓存型数据库)

关系型数据库和非关系型数据库的区别 关系型数据库 是一个结构化的数据库,记录方式是行(记录对象属性)和列(声明对象) 表与表之间是有关联的,使用sql语句来对指定的表、库进行增删改查 在创建表的时候&…

尽快调整心态,切莫自讨苦吃

退休多年的老龄人的本“人民体验官”闲得无聊,怕被闲出更多病痛,更怕被闲死,所以天天上网坚持职业新闻人的老习惯——上网读新闻,并以一孔之见置评,旨在抛砖引玉。 11月8日,本“人民体验官 ”在推广人民日…

从矿源到指尖——周大福天然钻石的非凡实力

(2023年11月20日,北京)在近百年历程中,周大福珠宝集团一直致力珠宝工艺传承与创新设计的孕育,于1929年创立周大福品牌,凭借对中国传统黄金工艺的传承与创新、对中国传统文化的融合与发扬,将黄金…

技术岗位竞业协议规避的坑

​ 前言 技术岗位竞业协议指员工在离开公司后,不能在指定期限内从事与公司业务有竞争关系的工作。 有的公司在入职的时候签订,有的在离职的时候签订(更有的公司在工作中途补签),但是要记住,签了就生效了…

kettle创建数据库资源库kettle repository manager

数据库资源库是将作业和转换相关的信息存储在数据库中,执行的时候直接去数据库读取信息,很容易跨平台使用。 创建数据库资源库,如图 1.点击Connect 2.点击Repository Manager 3.点击Other Repository 4.点击Database Repository 在选择Ot…

控制原理 | PID控制的三个参数如何影响控制效果?(附参数整定方法)

目录 0 专栏介绍1 PID控制基本原理2 比例控制的作用3 积分控制的作用4 微分控制的作用5 参数整定方法5.1 经验法5.2 临界比例度法5.3 衰减曲线法 0 专栏介绍 🔥附C/Python/Matlab全套代码🔥课程设计、毕业设计、创新竞赛必备!详细介绍全局规…

面试题c/c++--语言基础

一 、语言基础 1.1 指针 野指针:指针指向的位置是不可知的 悬空指针:指针最初指向的内存已经被释放了的一种指针 两种指针都指向无效内存空间, 即不安全不可控 。需要在定义指针后且在使用之前完成初始化或者使用 智能指针来避免 智能指针 智…

10个Logo设计资源网站,绝对值得你收藏!

看似简单的标志背后的设计过程一点也不简单。优秀的标志个性鲜明,视觉冲击力强,易于识别和记忆。小标志使品牌的理念和形象一目了然地传达给消费者,使消费者产生良好的品牌联想,从而引导和促进消费。 在设计LOGO时,我…

Linux mmap 的作用是什么?

文章目录 1.简介2.相关函数3.mmap和常规文件操作的区别4.作用参考文献 1.简介 mmap&#xff08;memory map&#xff09;即内存映射&#xff0c;用于将一个文件或其它对象映射到进程的地址空间。 2.相关函数 创建映射函数&#xff1a; #include <sys/mman.h>void *mm…

跨境出海人必备的营销指南:海外各大社交媒体的对比

随着全球数字化的加速&#xff0c;社交媒体已经成为人们交流、分享、获取信息的主要渠道。根据最新的全球数字报告 “DIGITAL 2022: GLOBAL OVERVIEW REPORT”显示&#xff0c;截至2022年&#xff0c;全球有46.2亿社交媒体用户&#xff0c;这个数字相当于世界总人口的58.4%。这…