【BIT数据库实验】openGauss数据库实验二:数据库查询

实验二:数据库查询

实验任务:

  • 使用putty和DataStudio连接Gauss数据库

  • 通过连接工具使用SQL建立数据库

  • 执行数据库查询

    • 使用“INSERT”语句向主表插入至少5行数据,向子表插入至少30行数据;

    • 在子表中输入含有不存在外键值的数据;

    • 观察数据库系统的反应

    • 使用SELECT * FROM ……观察数据;

    • 使用所有学习的查询语句对表格的进行查询(自拟题目);

    • 更新部分学生的学籍情况、成绩;

    • 删除部分同学的学籍信息;

实验内容:

自拟查询题目:

  1. 学“数据结构与算法设计”的学生学号,姓名
  2. 没有授课的教师
  3. 学生Nardack所选课程的总学分(相同课程学分不重复计算)
  4. 教授学生Nardack选修课程的教师编号,姓名
  5. 学生Nardack选择选修课程的名称和学分
  6. 计算机系学生所学的所有课程的编号、名称和学分
  7. 由设计与艺术学院老师传授的艺术类课程列表
  8. 将学生按照选课数量降序排序
  9. 挂过科(有一门及以上课程低于60分)同学的姓名,学号,班级
  10. 课程加权平均分最高的前10名的姓名,学号,加权平均分(保留到三位小数)

实验步骤:

以下实验均在本地openEuler虚拟机中进行。

一:使用putty和DataStudio连接Gauss数据库

以下步骤参考文档02

1.下载DataStudio并配置JDK

DataStudio和对应的1.8版本的JDK可以在这个网盘地址下载:

https://pan.baidu.com/s/1Utlmw6Gfrspybw-eV88eEw

提取码: 3g8z

然后我们将DataStudio直接解压到一个好找的位置,这里选择D:\Data Studio

在这里插入图片描述
在这里插入图片描述

然后点击相关软件文件夹的jdk-8u261-windows-x64.exe安装1.8版本的JDK:

在这里插入图片描述

之后点击“下一步”进行安装,确保自己的输入法已经切换成英文。

在这里插入图片描述

之后全部保持默认选项即可。

在这里插入图片描述

在这里插入图片描述

出现以下信息,说明安装完成。

在这里插入图片描述

再次提醒:

(1).JDK版本一定要使用openGauss官方提供的1.8版本,否则openGauss在尝试连接数据库时会出现如下的“内部未知错误”:
在这里插入图片描述

(2).在JAVA的安装界面,点击“下一步”之前一定要切换成英文输入法,否则可能会出现各种各样的玄学问题(例如点击“下一步”之后,窗口直接消失,后续没有其他响应)

2.准备连接环境,修改用户权限:

主要是在pg_hba.conf文件中增加一行host all all 0.0.0.0/0 sha256内容,具体操作如下:
在GS_HOME中查找pg_hba.conf文件,本实验中数据库GS_HOME的值设置为/gaussdb/data/Nardack,实际操作中GS_HOME地址可以查看安装时的配置文件:

<PARAM name="dataNode1" value="/gaussdb/data/Nardack"/>
cd /gaussdb/data/Nardack
cp pg_hba.conf pg_hba.conf.bak
gs_guc set -N all -I all -h "host all all 0.0.0.0/0 sha256"

运行结果如下:
在这里插入图片描述

如果openGauss数据库没有启动,需要手动进行启动:

su - omm
gs_om -t start

再次进入postgres数据库:

gsql -d postgres -p 26000 -r

之后我们使用实验一刚创建完的ds_nardack用户,并对其进行授权。

如果还没有创建的话,运行以下语句创建一个名称为ds_nardack的用户,其中{YourPassword}换成你的密码:

CREATE USER ds_nardack WITH PASSWORD "{YourPassword}";

然后对其进行授权:

ALTER USER ds_nardack sysadmin;

在这里插入图片描述

3.修改数据库监听地址

主要是将listen_addresses的值由原来IP地址修改成为*号,具体操作如下:
在GS_HOME中查找postgresql.conf文件,本实验中数据库GS_HOME设置的为/gaussdb/data/Nardack

cd /gaussdb/data/Nardack
cp postgresql.conf postgresql.conf.bak
gs_guc set -I all -c "listen_addresses='*'"

在这里插入图片描述

修改完成后重启数据库生效。

gs_om -t restart;

在这里插入图片描述

4.使用DataStudio连接数据库

进入DataStudio,点击“新建连接”,之后来到以下界面:
在这里插入图片描述

各个参数按照下表填写:

参数类型
名称随意,这个实验填写的是nardack_server
主机虚拟机enp0s3网卡的IP地址,在这个实验为192.168.56.104
端口26000
数据库准备连接环境步骤中创建的数据库,这个例子里面为db_nardack
用户名准备连接环境步骤中创建的用户,这个例子里面为ds_nardack
密码准备连接环境步骤中创建的用户密码
启用SSL不启用

设置完成后,单击"确定"按钮进行连接。

出现以下界面,说明DataStudio连接成功:
在这里插入图片描述

二:通过连接工具使用SQL建立数据库

在DataStudio的终端中,写这个命令来创建名字为db_nardack_2的数据库:

CREATE DATABASE db_nardack_2;

全选这个语句,然后点击上面的小三角按钮(编译/运行)。出现以下信息,说明运行成功。
在这里插入图片描述

添加或删除数据库的操作可能需要重新连接后才能看到效果。重新连接这个服务器,就可以观察到系统新添加了这个数据库:
在这里插入图片描述

然后我们如果想要删掉这个数据库时,执行以下语句即可。注意这时候如果你正在连接db_nardack_2,则删除会失败:

DROP DATABASE db_nardack_2;

在这里插入图片描述

重新连接后,可以看到这个数据库已经被删除:
在这里插入图片描述

三:向数据库中插入数据并查看数据

1.使用DataStudio观察实验一创建的表

我们注意到左侧的db_nardack数据库,以及我们在实验一创建的表:
在这里插入图片描述

点击之后我们可以看见各个表的列、约束以及索引。注意到OpenGauss已经给每个主键自动建立了对应的索引
在这里插入图片描述

然后右键“普通表”,之后点击“ER图”后,我们可以在DataStudio中直观看到各个数据之间的关系:
在这里插入图片描述

在界面右键后,可以通过改变显示样式来显示各个数据的数据类型:
在这里插入图片描述

2.使用INSERT语句添加数据

使用“INSERT”语句向主表插入至少5行数据,向子表插入至少30行数据。

为了方便进行这个实验,本人先准备好Excel表格,在其中填写数据,并且使用Python代码根据Excel表格中的内容生成随机数据,以及通过字符串处理生成SQL语句。
在这里插入图片描述

由于大多数数据都依赖于所属学院代号,而所属学院代号对应xyb表,且xyb表没有外键。因此这个实验中我们将xyb表作为主表,而其余的表作为子表。

在各个表中插入数据的sql语句如下,按照从上到下的顺序加入:

学院表(xyb)

一共7行数据:

INSERT INTO xyb (ydh,ymc) VALUES ('zy','设计与艺术学院');
INSERT INTO xyb (ydh,ymc) VALUES ('js','计算机学院');
INSERT INTO xyb (ydh,ymc) VALUES ('zd','自动化学院');
INSERT INTO xyb (ydh,ymc) VALUES ('yh','宇航学院');
INSERT INTO xyb (ydh,ymc) VALUES ('gl','管理与经济学院');
INSERT INTO xyb (ydh,ymc) VALUES ('jd','机电学院');
INSERT INTO xyb (ydh,ymc) VALUES ('jx','机械与车辆学院');
学生表(xs)

一共50行数据:

INSERT INTO xs (xm,xb,xh,ydh,bj,chrq) VALUES ('敏易文','男','1413974679','zy','08012003','10/05/1998');
INSERT INTO xs (xm,xb,xh,ydh,bj,chrq) VALUES ('芒怀蕾','女','1685653695','zy','08012001','10/01/1983');
INSERT INTO xs (xm,xb,xh,ydh,bj,chrq) VALUES ('战真一','男','1566662922','js','08012001','06/01/1997');
INSERT INTO xs (xm,xb,xh,ydh,bj,chrq) VALUES ('管巧香','女','1233961404','js','08012004','03/22/1997');
INSERT INTO xs (xm,xb,xh,ydh,bj,chrq) VALUES ('Iris','女','1972587625','zy','08012004','01/01/1996');
INSERT INTO xs (xm,xb,xh,ydh,bj,chrq) VALUES ('雪念双','女','1153697599','jd','08012002','02/18/1981');
INSERT INTO xs (xm,xb,xh,ydh,bj,chrq) VALUES ('Helen','女','1802616482','js','08012003','06/28/1980');
INSERT INTO xs (xm,xb,xh,ydh,bj,chrq) VALUES ('Dora','女','1511297874','zy','08012004','03/29/1988');
INSERT INTO xs (xm,xb,xh,ydh,bj,chrq) VALUES ('邶怀慕',NULL,'1014462526','js','08012004','08/12/1997');
INSERT INTO xs (xm,xb,xh,ydh,bj,chrq) VALUES ('Yusuf','男','1309592697','gl','08012002','06/19/1998');
INSERT INTO xs (xm,xb,xh,ydh,bj,chrq) VALUES ('Linda','女','1360232256','zy','08012003','05/12/1982');
INSERT INTO xs (xm,xb,xh,ydh,bj,chrq) VALUES ('Yusuf','男','1437120165','zd','08012004','12/08/1987');
INSERT INTO xs (xm,xb,xh,ydh,bj,chrq) VALUES ('Robert','男','1433528624','jd','08012003','06/14/2001');
INSERT INTO xs (xm,xb,xh,ydh,bj,chrq) VALUES ('Sandy','女','1242910341','gl','08012001','05/02/1996');
INSERT INTO xs (xm,xb,xh,ydh,bj,chrq) VALUES ('范森',NULL,'1778981777','gl','08012004','11/17/1987');
INSERT INTO xs (xm,xb,xh,ydh,bj,chrq) VALUES ('Peter','男','1370657918','jd','08012001','08/17/1997');
INSERT INTO xs (xm,xb,xh,ydh,bj,chrq) VALUES ('芒怀蕾','女','1898230703','zd','08012001','01/02/1999');
INSERT INTO xs (xm,xb,xh,ydh,bj,chrq) VALUES ('戚谷之','男','1062541594','yh','08012003','10/12/1994');
INSERT INTO xs (xm,xb,xh,ydh,bj,chrq) VALUES ('戊尔槐','男','1181331372','gl','08012004','01/26/1981');
INSERT INTO xs (xm,xb,xh,ydh,bj,chrq) VALUES ('Maxwell','男','1139432773','zy','08012001','12/16/2001');
INSERT INTO xs (xm,xb,xh,ydh,bj,chrq) VALUES ('昝依然','女','1139591738','yh','08012002','03/28/1991');
INSERT INTO xs (xm,xb,xh,ydh,bj,chrq) VALUES ('乌孙素','男','1674025032','gl','08012002','06/07/1991');
INSERT INTO xs (xm,xb,xh,ydh,bj,chrq) VALUES ('Victor','男','1621741704','zy','08012001','10/15/1989');
INSERT INTO xs (xm,xb,xh,ydh,bj,chrq) VALUES ('良乐蕊','女','1305089848','js','08012004','07/05/2001');
INSERT INTO xs (xm,xb,xh,ydh,bj,chrq) VALUES ('Maxwell','男','1482207116','jx','08012004','07/24/1981');
INSERT INTO xs (xm,xb,xh,ydh,bj,chrq) VALUES ('Bob','男','1380266671','gl','08012002','04/08/1999');
INSERT INTO xs (xm,xb,xh,ydh,bj,chrq) VALUES ('Eric',NULL,'1183109618','jd','08012004','02/03/1991');
INSERT INTO xs (xm,xb,xh,ydh,bj,chrq) VALUES ('Frank','男','1583270484','jx','08012001','12/13/1995');
INSERT INTO xs (xm,xb,xh,ydh,bj,chrq) VALUES ('竭贞静',NULL,'1460856188','gl','08012003','06/17/1988');
INSERT INTO xs (xm,xb,xh,ydh,bj,chrq) VALUES ('管巧香','女','1475176768','zd','08012001','04/05/1994');
INSERT INTO xs (xm,xb,xh,ydh,bj,chrq) VALUES ('邶怀慕',NULL,'1163770916','gl','08012004','11/21/1987');
INSERT INTO xs (xm,xb,xh,ydh,bj,chrq) VALUES ('乌孙素','男','1537273456','yh','08012003','12/26/2000');
INSERT INTO xs (xm,xb,xh,ydh,bj,chrq) VALUES ('寇晨希','女','1966924167','zy','08012002','04/19/1998');
INSERT INTO xs (xm,xb,xh,ydh,bj,chrq) VALUES ('Peter','男','1223718463','yh','08012004','11/26/1991');
INSERT INTO xs (xm,xb,xh,ydh,bj,chrq) VALUES ('William','男','1014159148','js','08012002','07/21/1997');
INSERT INTO xs (xm,xb,xh,ydh,bj,chrq) VALUES ('郭语梦','女','1757816083','jx','08012004','10/02/1998');
INSERT INTO xs (xm,xb,xh,ydh,bj,chrq) VALUES ('戊尔槐','男','1635046058','jd','08012001','03/29/1994');
INSERT INTO xs (xm,xb,xh,ydh,bj,chrq) VALUES ('良乐蕊','女','1708102687','yh','08012004','12/07/1982');
INSERT INTO xs (xm,xb,xh,ydh,bj,chrq) VALUES ('Gina','女','1527047399','js','08012002','03/17/2001');
INSERT INTO xs (xm,xb,xh,ydh,bj,chrq) VALUES ('Iris','女','1452773186','jd','08012001','12/14/1995');
INSERT INTO xs (xm,xb,xh,ydh,bj,chrq) VALUES ('Frank','男','1658823100','zd','08012002','01/05/1988');
INSERT INTO xs (xm,xb,xh,ydh,bj,chrq) VALUES ('巴妮娜','女','1977945439','js','08012002','09/28/1996');
INSERT INTO xs (xm,xb,xh,ydh,bj,chrq) VALUES ('乌孙素','男','1887592443','gl','08012001','04/27/2001');
INSERT INTO xs (xm,xb,xh,ydh,bj,chrq) VALUES ('Gina','女','1438908157','yh','08012002','09/23/1998');
INSERT INTO xs (xm,xb,xh,ydh,bj,chrq) VALUES ('Uriel',NULL,'1591604897','js','08012001','07/17/1992');
INSERT INTO xs (xm,xb,xh,ydh,bj,chrq) VALUES ('Linda','女','1851600341','yh','08012003','05/09/1985');
INSERT INTO xs (xm,xb,xh,ydh,bj,chrq) VALUES ('郭语梦','女','1737803536','yh','08012002','03/29/1986');
INSERT INTO xs (xm,xb,xh,ydh,bj,chrq) VALUES ('Kate','女','1604090165','jd','08012001','06/04/2000');
INSERT INTO xs (xm,xb,xh,ydh,bj,chrq) VALUES ('Gina','女','1243712858','yh','08012003','01/25/1985');
INSERT INTO xs (xm,xb,xh,ydh,bj,chrq) VALUES ('Uriel',NULL,'1350749819','gl','08012003','02/12/1984');
课程表(kc)

一共34行数据:

INSERT INTO kc (kcbh,kc,lx,xf) VALUES ('sm','设计构成','平台基础',2.0);
INSERT INTO kc (kcbh,kc,lx,xf) VALUES ('zx','造型综合表现','平台基础',2.0);
INSERT INTO kc (kcbh,kc,lx,xf) VALUES ('sc','色彩综合表现','平台基础',2.0);
INSERT INTO kc (kcbh,kc,lx,xf) VALUES ('sjm','设计美学','平台基础',2.0);
INSERT INTO kc (kcbh,kc,lx,xf) VALUES ('sjc','视觉传达设计','平台基础',2.0);
INSERT INTO kc (kcbh,kc,lx,xf) VALUES ('cts','插图设计','平台基础',4.0);
INSERT INTO kc (kcbh,kc,lx,xf) VALUES ('xms','视觉游牧——西方美术史','校公选课',2.0);
INSERT INTO kc (kcbh,kc,lx,xf) VALUES ('sjs','视觉审美与设计赏析','校公选课',2.0);
INSERT INTO kc (kcbh,kc,lx,xf) VALUES ('rbl','日本流行文化与社会','校公选课',2.0);
INSERT INTO kc (kcbh,kc,lx,xf) VALUES ('djj','大学计算机基础','平台基础',3.0);
INSERT INTO kc (kcbh,kc,lx,xf) VALUES ('dsa','数据结构与算法设计','平台基础',5.0);
INSERT INTO kc (kcbh,kc,lx,xf) VALUES ('csb','程序设计方法实践','平台基础',2.0);
INSERT INTO kc (kcbh,kc,lx,xf) VALUES ('web','互联网应用开发基础训练','平台基础',1.0);
INSERT INTO kc (kcbh,kc,lx,xf) VALUES ('se','软件工程基础训练','平台基础',1.0);
INSERT INTO kc (kcbh,kc,lx,xf) VALUES ('csa','程序设计基础','平台基础',3.0);
INSERT INTO kc (kcbh,kc,lx,xf) VALUES ('vis','走进机器视觉','校公选课',0.5);
INSERT INTO kc (kcbh,kc,lx,xf) VALUES ('xh','信号与系统','平台基础',3.0);
INSERT INTO kc (kcbh,kc,lx,xf) VALUES ('gs','光学系统设计与工艺','平台基础',3.0);
INSERT INTO kc (kcbh,kc,lx,xf) VALUES ('em','电动力学','平台基础',2.0);
INSERT INTO kc (kcbh,kc,lx,xf) VALUES ('lla','理论力学A','平台基础',6.0);
INSERT INTO kc (kcbh,kc,lx,xf) VALUES ('llx','理论力学C','平台基础',4.0);
INSERT INTO kc (kcbh,kc,lx,xf) VALUES ('gl','工程力学','平台基础',4.0);
INSERT INTO kc (kcbh,kc,lx,xf) VALUES ('zka','自动控制原理A','平台基础',4.0);
INSERT INTO kc (kcbh,kc,lx,xf) VALUES ('fxq','飞行器系统优化设计','校公选课',1.0);
INSERT INTO kc (kcbh,kc,lx,xf) VALUES ('mea','微观经济学','平台基础',3.0);
INSERT INTO kc (kcbh,kc,lx,xf) VALUES ('mec','微观经济学','校公选课',2.0);
INSERT INTO kc (kcbh,kc,lx,xf) VALUES ('syx','市场营销学','平台基础',2.0);
INSERT INTO kc (kcbh,kc,lx,xf) VALUES ('cwg','财务管理概论','平台基础',2.0);
INSERT INTO kc (kcbh,kc,lx,xf) VALUES ('cyg','创新创业管理','校公选课',2.0);
INSERT INTO kc (kcbh,kc,lx,xf) VALUES ('gtr','沟通与人生','校公选课',2.0);
INSERT INTO kc (kcbh,kc,lx,xf) VALUES ('zza','设计与制造基础 I','平台基础',4.0);
INSERT INTO kc (kcbh,kc,lx,xf) VALUES ('zzb','设计与制造基础 II','平台基础',4.0);
INSERT INTO kc (kcbh,kc,lx,xf) VALUES ('qca','汽车学 I','平台基础',3.0);
INSERT INTO kc (kcbh,kc,lx,xf) VALUES ('qcb','汽车学 II','平台基础',3.0);
教师表(js)

一共30行数据:

INSERT INTO js (xm,jsbh,zc,ydh) VALUES ('刘备','1025678504','蜀','zy');
INSERT INTO js (xm,jsbh,zc,ydh) VALUES ('关羽','1630619579','蜀','js');
INSERT INTO js (xm,jsbh,zc,ydh) VALUES ('张飞','1531525387','蜀','zd');
INSERT INTO js (xm,jsbh,zc,ydh) VALUES ('诸葛亮','1056527777','蜀','yh');
INSERT INTO js (xm,jsbh,zc,ydh) VALUES ('赵云','1854355842','蜀','gl');
INSERT INTO js (xm,jsbh,zc,ydh) VALUES ('马超','1291237556','蜀','jd');
INSERT INTO js (xm,jsbh,zc,ydh) VALUES ('曹操','2803009978','魏','jx');
INSERT INTO js (xm,jsbh,zc,ydh) VALUES ('司马懿','2179967243','魏','zy');
INSERT INTO js (xm,jsbh,zc,ydh) VALUES ('夏侯惇','2522715615','魏','js');
INSERT INTO js (xm,jsbh,zc,ydh) VALUES ('张辽','2735290365','魏','zd');
INSERT INTO js (xm,jsbh,zc,ydh) VALUES ('郭嘉','2880701633','魏','yh');
INSERT INTO js (xm,jsbh,zc,ydh) VALUES ('甄姬','2546714455','魏','gl');
INSERT INTO js (xm,jsbh,zc,ydh) VALUES ('孙权','3769660116','吴','jd');
INSERT INTO js (xm,jsbh,zc,ydh) VALUES ('甘宁','3461937823','吴','jx');
INSERT INTO js (xm,jsbh,zc,ydh) VALUES ('吕蒙','3460484429','吴','zy');
INSERT INTO js (xm,jsbh,zc,ydh) VALUES ('黄盖','3256131973','吴','js');
INSERT INTO js (xm,jsbh,zc,ydh) VALUES ('周瑜','3987920115','吴','zd');
INSERT INTO js (xm,jsbh,zc,ydh) VALUES ('大乔','3251367723','吴','yh');
INSERT INTO js (xm,jsbh,zc,ydh) VALUES ('陆逊','3348191361','吴','gl');
INSERT INTO js (xm,jsbh,zc,ydh) VALUES ('孙尚香','3746249085','吴','yh');
INSERT INTO js (xm,jsbh,zc,ydh) VALUES ('孙坚','3798374147','吴','gl');
INSERT INTO js (xm,jsbh,zc,ydh) VALUES ('华佗','4057072620','群雄','zy');
INSERT INTO js (xm,jsbh,zc,ydh) VALUES ('吕布','4155359299','群雄','js');
INSERT INTO js (xm,jsbh,zc,ydh) VALUES ('貂蝉','4309044143','群雄','zd');
INSERT INTO js (xm,jsbh,zc,ydh) VALUES ('袁绍','4314185094','群雄','yh');
INSERT INTO js (xm,jsbh,zc,ydh) VALUES ('董卓','4550593619','群雄','gl');
INSERT INTO js (xm,jsbh,zc,ydh) VALUES ('贾诩','4354369112','群雄','jd');
INSERT INTO js (xm,jsbh,zc,ydh) VALUES ('庞德','4734180006','群雄','jx');
INSERT INTO js (xm,jsbh,zc,ydh) VALUES ('左慈','4153167425','群雄','zy');
INSERT INTO js (xm,jsbh,zc,ydh) VALUES ('张角','4548210474','群雄','js');
授课表(sk)

一共90行数据:

INSERT INTO sk (kcbh,bh) VALUES ('sc','2880701633');
INSERT INTO sk (kcbh,bh) VALUES ('mea','4314185094');
INSERT INTO sk (kcbh,bh) VALUES ('gtr','3460484429');
INSERT INTO sk (kcbh,bh) VALUES ('em','1025678504');
INSERT INTO sk (kcbh,bh) VALUES ('sc','3798374147');
INSERT INTO sk (kcbh,bh) VALUES ('dsa','3769660116');
INSERT INTO sk (kcbh,bh) VALUES ('lla','1630619579');
INSERT INTO sk (kcbh,bh) VALUES ('web','4314185094');
INSERT INTO sk (kcbh,bh) VALUES ('sjs','4548210474');
INSERT INTO sk (kcbh,bh) VALUES ('xms','4354369112');
INSERT INTO sk (kcbh,bh) VALUES ('fxq','3987920115');
INSERT INTO sk (kcbh,bh) VALUES ('qca','1531525387');
INSERT INTO sk (kcbh,bh) VALUES ('csb','4314185094');
INSERT INTO sk (kcbh,bh) VALUES ('zka','3798374147');
INSERT INTO sk (kcbh,bh) VALUES ('fxq','3251367723');
INSERT INTO sk (kcbh,bh) VALUES ('djj','4155359299');
INSERT INTO sk (kcbh,bh) VALUES ('em','4155359299');
INSERT INTO sk (kcbh,bh) VALUES ('rbl','3798374147');
INSERT INTO sk (kcbh,bh) VALUES ('csa','2880701633');
INSERT INTO sk (kcbh,bh) VALUES ('mec','2179967243');
INSERT INTO sk (kcbh,bh) VALUES ('djj','4734180006');
INSERT INTO sk (kcbh,bh) VALUES ('rbl','3987920115');
INSERT INTO sk (kcbh,bh) VALUES ('sjm','2735290365');
INSERT INTO sk (kcbh,bh) VALUES ('zza','2546714455');
INSERT INTO sk (kcbh,bh) VALUES ('mec','1291237556');
INSERT INTO sk (kcbh,bh) VALUES ('qcb','3460484429');
INSERT INTO sk (kcbh,bh) VALUES ('gs','1630619579');
INSERT INTO sk (kcbh,bh) VALUES ('gtr','4057072620');
INSERT INTO sk (kcbh,bh) VALUES ('rbl','4550593619');
INSERT INTO sk (kcbh,bh) VALUES ('cwg','2880701633');
INSERT INTO sk (kcbh,bh) VALUES ('dsa','1291237556');
INSERT INTO sk (kcbh,bh) VALUES ('se','2803009978');
INSERT INTO sk (kcbh,bh) VALUES ('sc','4057072620');
INSERT INTO sk (kcbh,bh) VALUES ('zza','4550593619');
INSERT INTO sk (kcbh,bh) VALUES ('cyg','1025678504');
INSERT INTO sk (kcbh,bh) VALUES ('vis','4155359299');
INSERT INTO sk (kcbh,bh) VALUES ('cts','4057072620');
INSERT INTO sk (kcbh,bh) VALUES ('zka','4155359299');
INSERT INTO sk (kcbh,bh) VALUES ('sm','4057072620');
INSERT INTO sk (kcbh,bh) VALUES ('lla','4309044143');
INSERT INTO sk (kcbh,bh) VALUES ('mec','2803009978');
INSERT INTO sk (kcbh,bh) VALUES ('cwg','4309044143');
INSERT INTO sk (kcbh,bh) VALUES ('gtr','3769660116');
INSERT INTO sk (kcbh,bh) VALUES ('rbl','3746249085');
INSERT INTO sk (kcbh,bh) VALUES ('zzb','3987920115');
INSERT INTO sk (kcbh,bh) VALUES ('qcb','4153167425');
INSERT INTO sk (kcbh,bh) VALUES ('zzb','1531525387');
INSERT INTO sk (kcbh,bh) VALUES ('mec','4153167425');
INSERT INTO sk (kcbh,bh) VALUES ('lla','3798374147');
INSERT INTO sk (kcbh,bh) VALUES ('fxq','4734180006');
INSERT INTO sk (kcbh,bh) VALUES ('se','4057072620');
INSERT INTO sk (kcbh,bh) VALUES ('qcb','3769660116');
INSERT INTO sk (kcbh,bh) VALUES ('se','2735290365');
INSERT INTO sk (kcbh,bh) VALUES ('zka','1854355842');
INSERT INTO sk (kcbh,bh) VALUES ('sjs','3798374147');
INSERT INTO sk (kcbh,bh) VALUES ('web','4309044143');
INSERT INTO sk (kcbh,bh) VALUES ('mea','3251367723');
INSERT INTO sk (kcbh,bh) VALUES ('web','4734180006');
INSERT INTO sk (kcbh,bh) VALUES ('sjs','4354369112');
INSERT INTO sk (kcbh,bh) VALUES ('cyg','3251367723');
INSERT INTO sk (kcbh,bh) VALUES ('gtr','1056527777');
INSERT INTO sk (kcbh,bh) VALUES ('zka','3251367723');
INSERT INTO sk (kcbh,bh) VALUES ('csb','4153167425');
INSERT INTO sk (kcbh,bh) VALUES ('sc','2179967243');
INSERT INTO sk (kcbh,bh) VALUES ('zza','4548210474');
INSERT INTO sk (kcbh,bh) VALUES ('sjm','2880701633');
INSERT INTO sk (kcbh,bh) VALUES ('em','3251367723');
INSERT INTO sk (kcbh,bh) VALUES ('gl','3987920115');
INSERT INTO sk (kcbh,bh) VALUES ('gl','2735290365');
INSERT INTO sk (kcbh,bh) VALUES ('csb','3769660116');
INSERT INTO sk (kcbh,bh) VALUES ('zx','2522715615');
INSERT INTO sk (kcbh,bh) VALUES ('gtr','4354369112');
INSERT INTO sk (kcbh,bh) VALUES ('gl','3256131973');
INSERT INTO sk (kcbh,bh) VALUES ('zza','1531525387');
INSERT INTO sk (kcbh,bh) VALUES ('syx','2735290365');
INSERT INTO sk (kcbh,bh) VALUES ('qca','4548210474');
INSERT INTO sk (kcbh,bh) VALUES ('sjc','4354369112');
INSERT INTO sk (kcbh,bh) VALUES ('cts','3461937823');
INSERT INTO sk (kcbh,bh) VALUES ('cwg','2522715615');
INSERT INTO sk (kcbh,bh) VALUES ('se','3987920115');
INSERT INTO sk (kcbh,bh) VALUES ('web','3460484429');
INSERT INTO sk (kcbh,bh) VALUES ('sjc','3798374147');
INSERT INTO sk (kcbh,bh) VALUES ('lla','3256131973');
INSERT INTO sk (kcbh,bh) VALUES ('qca','3460484429');
INSERT INTO sk (kcbh,bh) VALUES ('llx','4314185094');
INSERT INTO sk (kcbh,bh) VALUES ('sjm','3461937823');
INSERT INTO sk (kcbh,bh) VALUES ('zka','2522715615');
INSERT INTO sk (kcbh,bh) VALUES ('gl','4734180006');
INSERT INTO sk (kcbh,bh) VALUES ('mec','1854355842');
INSERT INTO sk (kcbh,bh) VALUES ('cts','1056527777');
学生选课表(xk)

一共197行数据:

INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1243712858','sjm','2735290365',66.8);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1591604897','se','3987920115',63.7);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1887592443','em','1025678504',81.3);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1966924167','lla','3256131973',66.6);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1014159148','dsa','3769660116',80.8);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1437120165','vis','4155359299',88.7);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1482207116','zza','4550593619',85.0);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1851600341','gtr','1056527777',96.6);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1583270484','rbl','3987920115',96.5);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1452773186','zza','1531525387',62.3);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1309592697','cts','4057072620',96.2);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1139591738','dsa','3769660116',70.3);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1674025032','rbl','3746249085',70.1);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1305089848','qcb','4153167425',64.2);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1737803536','em','4155359299',79.2);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1223718463','em','4155359299',76.7);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1309592697','mec','4153167425',60.1);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1139432773','em','1025678504',63.2);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1778981777','sc','2880701633',68.2);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1977945439','mec','4153167425',80.6);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1242910341','cts','4057072620',62.5);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1685653695','sjm','3461937823',77.5);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1635046058','gtr','3769660116',53.1);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1014159148','gtr','4057072620',93.4);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1475176768','cwg','2880701633',89.2);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1139432773','dsa','1291237556',98.7);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1139591738','sc','2880701633',99.4);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1242910341','mec','1854355842',71.4);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1635046058','se','3987920115',68.0);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1183109618','gl','2735290365',84.0);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1380266671','cts','1056527777',87.2);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1370657918','zx','2522715615',88.0);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1380266671','zza','4548210474',88.9);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1153697599','qca','4548210474',89.9);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1242910341','syx','2735290365',63.2);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1163770916','gtr','4057072620',93.5);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1737803536','lla','1630619579',92.6);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1437120165','sjs','4354369112',95.6);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1604090165','qcb','4153167425',89.8);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1360232256','mec','1291237556',83.1);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1370657918','se','2803009978',95.2);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1139591738','qca','4548210474',98.0);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1309592697','gtr','1056527777',87.1);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1153697599','cwg','4309044143',70.7);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1537273456','web','4314185094',95.1);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1685653695','dsa','1291237556',66.4);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1183109618','sjc','4354369112',93.6);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1062541594','cwg','2522715615',79.3);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1778981777','qca','3460484429',62.9);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1305089848','web','3460484429',63.5);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1475176768','csb','3769660116',96.8);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1604090165','qca','4548210474',98.9);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1977945439','zka','2522715615',61.6);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1163770916','cwg','4309044143',67.1);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1802616482','sc','4057072620',94.0);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1635046058','qca','4548210474',36.2);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1438908157','llx','4314185094',74.2);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1635046058','csb','3769660116',88.0);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1014462526','dsa','3769660116',77.2);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1737803536','lla','3798374147',97.7);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1635046058','qca','3460484429',83.4);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1604090165','syx','2735290365',50.6);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1802616482','cts','3461937823',98.6);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1778981777','lla','1630619579',85.0);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1460856188','mea','4314185094',65.0);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1566662922','qcb','3769660116',84.5);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1887592443','cwg','2880701633',84.9);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1708102687','cwg','2880701633',68.5);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1460856188','sc','2880701633',83.0);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1778981777','lla','3256131973',77.3);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1527047399','qcb','4153167425',86.1);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1452773186','csb','4314185094',99.0);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1527047399','zka','4155359299',54.5);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1708102687','zka','3251367723',68.5);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1604090165','cwg','2522715615',80.3);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1452773186','em','4155359299',14.6);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1635046058','sjm','2735290365',66.5);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1460856188','se','2803009978',75.4);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1635046058','fxq','4734180006',66.4);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1977945439','gl','2735290365',59.5);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1737803536','gs','1630619579',18.4);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1233961404','sc','3798374147',72.0);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1685653695','xms','4354369112',79.9);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1658823100','gtr','3769660116',98.0);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1243712858','rbl','3987920115',93.1);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1851600341','web','3460484429',98.1);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1305089848','web','4309044143',61.4);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1438908157','cts','4057072620',45.2);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1413974679','rbl','3798374147',85.3);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1887592443','zka','4155359299',63.4);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1305089848','gtr','3769660116',87.8);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1139432773','mea','4314185094',89.3);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1708102687','fxq','4734180006',77.2);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1242910341','mec','4153167425',92.3);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1482207116','dsa','1291237556',74.5);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1153697599','zza','4550593619',60.7);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1223718463','gtr','3769660116',80.9);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1604090165','lla','1630619579',84.4);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1433528624','sjs','4548210474',72.1);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1223718463','zka','1854355842',76.5);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1139591738','mec','2803009978',90.8);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1163770916','sjm','2735290365',16.8);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1163770916','sjs','3798374147',63.6);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1887592443','qca','3460484429',86.0);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1243712858','web','4314185094',73.6);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1511297874','mec','1291237556',25.0);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1604090165','csa','2880701633',94.0);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1802616482','csb','3769660116',78.0);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1014159148','gl','3256131973',97.2);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1153697599','em','1025678504',74.5);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1977945439','sjm','3461937823',24.1);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1583270484','gtr','3460484429',95.0);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1380266671','se','2803009978',98.7);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1621741704','qca','4548210474',98.2);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1139591738','zx','2522715615',86.9);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1223718463','qca','3460484429',82.7);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1851600341','qcb','3460484429',74.3);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1242910341','lla','3798374147',84.2);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1163770916','zza','2546714455',94.7);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1966924167','rbl','3746249085',68.2);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1233961404','em','4155359299',83.4);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1014462526','gl','3256131973',73.1);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1181331372','gl','3256131973',71.2);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1566662922','zx','2522715615',98.2);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1370657918','sc','2179967243',93.0);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1566662922','qca','1531525387',71.1);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1566662922','fxq','4734180006',96.9);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1438908157','gl','4734180006',87.1);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1887592443','sc','3798374147',1.3);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1139591738','gl','4734180006',66.9);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1482207116','sc','3798374147',18.4);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1887592443','rbl','3798374147',92.5);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1685653695','zza','1531525387',85.7);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1737803536','xms','4354369112',90.9);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1437120165','cts','4057072620',98.6);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1243712858','zza','4548210474',78.4);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1757816083','fxq','3251367723',46.1);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1183109618','web','4309044143',87.4);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1887592443','zza','2546714455',84.1);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1183109618','zzb','3987920115',72.8);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1433528624','gtr','3769660116',47.5);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1977945439','lla','3256131973',66.6);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1757816083','csb','4314185094',97.5);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1413974679','qcb','3769660116',97.3);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1233961404','qca','1531525387',92.8);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1413974679','gl','2735290365',68.6);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1591604897','fxq','4734180006',83.1);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1370657918','sjm','3461937823',91.1);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1360232256','sjs','3798374147',95.2);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1511297874','zka','3251367723',83.0);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1233961404','zka','4155359299',80.5);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1778981777','djj','4734180006',83.1);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1223718463','gtr','3460484429',98.4);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1898230703','zka','4155359299',67.2);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1511297874','zza','4548210474',80.3);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1482207116','gtr','3460484429',51.5);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1438908157','xms','4354369112',99.0);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1737803536','sjm','3461937823',89.5);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1233961404','gl','3987920115',87.2);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1658823100','zka','4155359299',69.5);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1658823100','zza','4550593619',94.1);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1737803536','vis','4155359299',63.3);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1380266671','rbl','3798374147',86.3);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1163770916','gs','1630619579',86.2);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1966924167','fxq','3987920115',90.5);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1433528624','fxq','3251367723',93.3);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1360232256','lla','4309044143',77.1);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1243712858','cwg','2522715615',77.6);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1537273456','cyg','3251367723',90.1);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1475176768','rbl','3987920115',66.3);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1139432773','syx','2735290365',85.6);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1802616482','gs','1630619579',62.9);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1482207116','mec','1291237556',60.2);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1223718463','qcb','3769660116',84.2);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1635046058','mec','4153167425',81.2);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1163770916','mec','2179967243',92.4);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1183109618','rbl','4550593619',12.1);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1433528624','vis','4155359299',8.1);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1309592697','cwg','4309044143',63.9);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1972587625','zza','2546714455',68.5);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1972587625','gtr','3769660116',89.2);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1413974679','dsa','3769660116',90.4);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1674025032','csb','4153167425',75.9);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1139432773','sc','2880701633',5.3);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1014159148','web','4309044143',82.4);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1350749819','em','4155359299',89.1);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1413974679','cts','1056527777',84.7);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1511297874','zka','3798374147',94.2);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1977945439','web','4309044143',82.1);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1452773186','zza','4548210474',66.2);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1778981777','vis','4155359299',50.1);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1685653695','cwg','4309044143',64.5);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1635046058','lla','3256131973',69.7);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1163770916','zka','3798374147',52.8);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1243712858','gl','2735290365',64.9);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1233961404','cts','3461937823',90.8);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1181331372','gs','1630619579',99.9);

由于DataStudio可以批量运行sql语句,只需要把这些语句依次复制然后全选编译即可:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

之后,我们可以在左侧的对象浏览器查看各个表的数据。右键某个表,然后点击“查看数据”:
在这里插入图片描述

之后我们发现数据已经成功加进了各表中:
在这里插入图片描述

3.在子表中输入含有不存在外键值的数据,观察数据库系统的反应

我们以xs表的ydh,js表的ydh作为测试用外键,在数据库中运行以下语句:

INSERT INTO xs (xm,xb,xh,ydh,bj,chrq) VALUES ('Alice','女','1122334455',NULL,'08012003','10/05/1998');
INSERT INTO js (xm,jsbh,zc,ydh) VALUES ('徐庶','123456789','蜀',NULL);

可知尝试插入不存在外键值的数据时,仍能正常插入。
在这里插入图片描述

用对象浏览器的查看数据功能,可知上述两条数据已经成功插入:
在这里插入图片描述
在这里插入图片描述

结合上述实验我们可以得到这样的结论:

数据库的外键可以为空,也可以非空,但是如果非空,则这个值必须在主表中存在。

4.使用SELECT * FROM ……观察数据

除了使用DataStudio的对象管理器查看数据以外,也可以直接使用SELECT * FROM ……观察数据。

例如,如果要获取表xyb的所有数据,写法如下:

SELECT * FROM xyb;

运行之后该表的所有信息会在DataStudio的搜索结果中显示:
在这里插入图片描述

类似地,我们也可以查看其他表的数据:
在这里插入图片描述

之后,对数据的插入已经全部完成,接下来我们进行自拟题目,给定明确的输入输出,对已经建立好的数据库进行sql查询的过程。

四:构造针对性的特殊数据

为了确保我们获得的结果符合我们的预期需求,在进行查询题目之前,我们不妨在数据库中另外插入人为构造好的特殊数据,
在编写sql语句查询之前对输出结果有一定的预判,通过这些特殊数据的查询结果就可以确定自己的sql语句逻辑是否正确严谨,能否兼顾实际生活中各式各样的特殊情形。

针对这个实验的特殊数据,我们不妨假设这样的情景:

  1. 假设有一位名叫Nardack(女)的“同学”被添加进这个数据库,则她有以下特性:

    • 她的学号比其他同学的短(其他同学的学号都是10位);

    • 她的职业是专业插画师,因此毫无疑问在设计与艺术学院(学院代号为"zy");

    • 她选择了所有和艺类相关的课程(“设计构成”、“造型综合表现”、“色彩综合表现”、“设计美学”、“视觉传达设计”
      、“插图设计”、“视觉游牧——西方美术史”、“视觉审美与设计赏析”,包括同一门课程不同老师,课程不一定由来自设计与艺术学院的老师传授),并且每一门课程成绩均为100;

    • 她尤其擅长插图设计,因此所有30位老师为她额外开设了“插图设计”(主要是当助教),成绩均为100。

  2. 假设有一位教师“Krenz Cushart”被添加进这个数据库,他有以下特性:

    • 他的名称含有空格;

    • 他的教师编号为0;

    • 他从来没有授过任何一门课;

    • 他的职称为NULL,并且他不隶属于任何学院(即外键为NULL)。

  3. 假设有一位同学“Alice\Vegetable”(女)被添加进这个数据库,则她有以下特性:

    • 她的名称含有特殊字符;

    • 她的学号为“1120200000”,出生日期为NULL;

    • 她在计算机学院(js),选修了所有计算机学院的课程,但是因为她对艺类专业特别感兴趣,所以额外选择了艺类的所有课程,且每门仅选择一位老师。

    • 但是她太菜了,所以她的计算机专业必修课成绩均为60分(老师看她很可爱不忍心让她挂),她的艺类专业课程成绩均为0分(因为根本画不出来)。

然后针对以上情形,我们构造对应的特殊数据:

Nardack
INSERT INTO xs (xm,xb,xh,ydh,bj,chrq) VALUES ('Nardack','女','341433','zy','08012001','11/19/1987');

INSERT INTO sk (kcbh,bh) VALUES ('cts','1025678504');
INSERT INTO sk (kcbh,bh) VALUES ('cts','1630619579');
INSERT INTO sk (kcbh,bh) VALUES ('cts','1531525387');
INSERT INTO sk (kcbh,bh) VALUES ('cts','1854355842');
INSERT INTO sk (kcbh,bh) VALUES ('cts','1291237556');
INSERT INTO sk (kcbh,bh) VALUES ('cts','2803009978');
INSERT INTO sk (kcbh,bh) VALUES ('cts','2179967243');
INSERT INTO sk (kcbh,bh) VALUES ('cts','2522715615');
INSERT INTO sk (kcbh,bh) VALUES ('cts','2735290365');
INSERT INTO sk (kcbh,bh) VALUES ('cts','2880701633');
INSERT INTO sk (kcbh,bh) VALUES ('cts','2546714455');
INSERT INTO sk (kcbh,bh) VALUES ('cts','3769660116');
INSERT INTO sk (kcbh,bh) VALUES ('cts','3460484429');
INSERT INTO sk (kcbh,bh) VALUES ('cts','3256131973');
INSERT INTO sk (kcbh,bh) VALUES ('cts','3987920115');
INSERT INTO sk (kcbh,bh) VALUES ('cts','3251367723');
INSERT INTO sk (kcbh,bh) VALUES ('cts','3348191361');
INSERT INTO sk (kcbh,bh) VALUES ('cts','3746249085');
INSERT INTO sk (kcbh,bh) VALUES ('cts','3798374147');
INSERT INTO sk (kcbh,bh) VALUES ('cts','4155359299');
INSERT INTO sk (kcbh,bh) VALUES ('cts','4309044143');
INSERT INTO sk (kcbh,bh) VALUES ('cts','4314185094');
INSERT INTO sk (kcbh,bh) VALUES ('cts','4550593619');
INSERT INTO sk (kcbh,bh) VALUES ('cts','4354369112');
INSERT INTO sk (kcbh,bh) VALUES ('cts','4734180006');
INSERT INTO sk (kcbh,bh) VALUES ('cts','4153167425');
INSERT INTO sk (kcbh,bh) VALUES ('cts','4548210474');
INSERT INTO sk (kcbh,bh) VALUES ('cts','123456789');

INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('341433','sc','2880701633',100.0);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('341433','sc','3798374147',100.0);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('341433','sjs','4548210474',100.0);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('341433','xms','4354369112',100.0);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('341433','sjm','2735290365',100.0);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('341433','sc','4057072620',100.0);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('341433','sm','4057072620',100.0);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('341433','sjs','3798374147',100.0);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('341433','sjs','4354369112',100.0);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('341433','sc','2179967243',100.0);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('341433','sjm','2880701633',100.0);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('341433','zx','2522715615',100.0);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('341433','sjc','4354369112',100.0);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('341433','sjc','3798374147',100.0);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('341433','sjm','3461937823',100.0);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('341433','cts','1025678504',100.0);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('341433','cts','1630619579',100.0);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('341433','cts','1531525387',100.0);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('341433','cts','1056527777',100.0);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('341433','cts','1854355842',100.0);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('341433','cts','1291237556',100.0);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('341433','cts','2803009978',100.0);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('341433','cts','2179967243',100.0);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('341433','cts','2522715615',100.0);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('341433','cts','2735290365',100.0);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('341433','cts','2880701633',100.0);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('341433','cts','2546714455',100.0);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('341433','cts','3769660116',100.0);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('341433','cts','3461937823',100.0);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('341433','cts','3460484429',100.0);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('341433','cts','3256131973',100.0);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('341433','cts','3987920115',100.0);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('341433','cts','3251367723',100.0);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('341433','cts','3348191361',100.0);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('341433','cts','3746249085',100.0);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('341433','cts','3798374147',100.0);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('341433','cts','4057072620',100.0);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('341433','cts','4155359299',100.0);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('341433','cts','4309044143',100.0);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('341433','cts','4314185094',100.0);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('341433','cts','4550593619',100.0);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('341433','cts','4354369112',100.0);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('341433','cts','4734180006',100.0);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('341433','cts','4153167425',100.0);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('341433','cts','4548210474',100.0);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('341433','cts','123456789',100.0);
Krenz Cushart
INSERT INTO js (xm,jsbh,zc,ydh) VALUES ('Krenz Cushart','0',NULL,NULL);
Alice\Vegetable

注意插入语句时不需要使用转义符输入反斜杠:

INSERT INTO xs (xm,xb,xh,ydh,bj,chrq) VALUES ('Alice\Vegetable','女','1120200000','js','08012002',NULL);

INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1120200000','cts','1056527777',0.0);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1120200000','sc','2179967243',0.0);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1120200000','sjc','3798374147',0.0);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1120200000','sjm','2735290365',0.0);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1120200000','sjs','3798374147',0.0);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1120200000','sm','4057072620',0.0);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1120200000','xms','4354369112',0.0);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1120200000','zx','2522715615',0.0);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1120200000','csa','2880701633',60.0);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1120200000','csb','3769660116',60.0);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1120200000','csb','4153167425',60.0);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1120200000','csb','4314185094',60.0);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1120200000','djj','4155359299',60.0);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1120200000','djj','4734180006',60.0);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1120200000','dsa','1291237556',60.0);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1120200000','dsa','3769660116',60.0);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1120200000','se','2735290365',60.0);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1120200000','se','2803009978',60.0);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1120200000','se','3987920115',60.0);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1120200000','se','4057072620',60.0);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1120200000','vis','4155359299',60.0);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1120200000','web','3460484429',60.0);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1120200000','web','4309044143',60.0);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1120200000','web','4314185094',60.0);
INSERT INTO xk (xh,kcbh,jsbh,cj) VALUES ('1120200000','web','4734180006',60.0);

同时别忘了刚刚添加的两行数据:

INSERT INTO xs (xm,xb,xh,ydh,bj,chrq) VALUES ('Alice','女','1122334455',NULL,'08012003','10/05/1998');
INSERT INTO js (xm,jsbh,zc,ydh) VALUES ('徐庶','123456789','蜀',NULL);

我们依次执行插入以上数据后,观察数据的变化:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

五:自拟查询题目,对已经建立好的数据库进行sql查询

1.学“数据结构与算法设计”的学生学号,姓名

问题分析:

  • 我们需要从xk表中选出学“数据结构与算法设计”的学生,获取他们的学号,然后进行去重(因为可能有一名同学选择了两个及以上的“数据结构与算法设计”课程),得到新表tmp;

  • 将xs表和tmp表以学号为键值进行(内)连接,将xs的学号与姓名进行关联;

  • 获取新表中的学号,姓名。

sql代码:

SELECT xs.xh,xm FROM xs JOIN
(SELECT DISTINCT xh FROM xk WHERE kcbh = 'dsa') AS tmp
ON xs.xh = tmp.xh;

实验结果:
在这里插入图片描述

结果验证:

我们注意到Alice\Vegetable选择了所有计算机专业的课程,因此她肯定会选择“数据结构与算法设计”。

并且她选择了两门“数据结构与算法设计”课程,但是由于我们已经进行去重,因此这个数据只出现了一次,由此验证sql语句的正确性。

2.没有授课的教师

问题分析:

  • 我们需要选择sk表中的存在的bh,并对其去重(这样做的目的是提高效率),设返回的新表为table_1;

  • 在js表中查询jsbh不在table_1中的教师信息。

sql代码:

SELECT * FROM js WHERE jsbh NOT IN (SELECT DISTINCT bh FROM sk);

实验结果:
在这里插入图片描述

结果验证:

通过刚才构造好的特殊数据,我们可以得知因为其他所有教师(包括之前添加的外键含NULL值的“徐庶”)都给学生Nardack新加入了“插图设计”课程,因此其他所有教师都至少授课了一门“插图设计”。

只有后来添加的教师“Krenz Cushart”还没有添加任何的课程,因此最终查询的数据只有一行“Krenz Cushart”。

3.学生Nardack所选课程的总学分(相同课程学分不重复计算)

问题分析:

  • 由于我们构造好的Nardack的学号为“341433”,因此只需要在xk表中查询学号为“341433”的数据即可,返回新表t1;

  • 然后将t1与课程列表进行连接,返回新表t2;

  • 对得到的t2表选取课程编号和学分,并进行去重(根据相同课程学分不重复计算原则),返回新表t3;

  • 对t3执行sum函数,获取Nardack的总学分。

sql代码:

SELECT sum(xf) FROM (
  SELECT DISTINCT t1.kcbh,xf FROM (
    (SELECT kcbh FROM xk WHERE xh = '341433') AS t1 JOIN
    kc ON t1.kcbh = kc.kcbh
  )
);

实验结果:
在这里插入图片描述

结果验证:

由构造数据的特性我们可以得知,Nardack已经选了所有艺类课程(“设计构成”、“造型综合表现”、“色彩综合表现”、“设计美学”、“视觉传达设计”、“插图设计”、“视觉游牧——西方美术史”、“视觉审美与设计赏析”),并且“插图设计”选择了很多次。

经过验证可以知道Nardack所选课程的总学分为18.0,可知这个sql语句进行了有效的去重处理。

4.教授学生Nardack选修课程的教师编号,姓名

问题分析:

  • 我们需要在sk表中获取所有课程类型为“校公选课”的数据,返回新表tmp;

  • 将sk表和tmp表按照kcbh进行连接,返回新表t1;

  • 获取查询学号为“341433”的课程编号,教师编号,返回新表t2;

  • 对t1表和t2表按照(课程编号,教师编号)的键值进行连接,并获取教师编号信息,返回新表t3;

  • 将js表和t3表进行一次连接,获取教师编号以及姓名信息,注意进行去重(有可能一位老师同时教授多门选修课)。

sql代码:

SELECT DISTINCT jsbh,xm FROM (
  js JOIN (SELECT bh FROM (
    (SELECT sk.kcbh,bh FROM(
      sk JOIN (SELECT kcbh FROM kc WHERE lx = '校公选课') AS tmp
        ON sk.kcbh = tmp.kcbh
      )
    ) AS t1 JOIN (SELECT kcbh,jsbh FROM xk WHERE xh = '341433') AS t2
      ON (t1.kcbh,t1.bh) = (t2.kcbh,t2.jsbh)
    )
  ) ON js.jsbh = bh
)

实验结果:
在这里插入图片描述

结果验证:

由构造的数据性质可以知道,Nardack选择了所有的艺术类课程,其中选修课程包括“视觉游牧——西方美术史”、“视觉审美与设计赏析”。

为了验证结果正确性,我们可以查询这几个教师的授课信息:

SELECT * FROM sk WHERE bh in ('4354369112','3798374147','4548210474');

在这里插入图片描述

从以上结果可以看出教师“贾诩”同时教了“视觉游牧——西方美术史”、“视觉审美与设计赏析”这两门选修课,而“张角”和“孙坚”都只教了一门“视觉审美与设计赏析”,而Nardack一定会选中这些课程。由此验证sql语句正确做出了去重处理。

5.学生Nardack选择选修课程的名称和学分

问题分析:

  • 我们需要在sk表中获取所有课程类型为“校公选课”的数据,返回新表tmp;

  • 将sk表和tmp表按照kcbh进行连接,返回新表t1;

  • 获取查询学号为“341433”的课程编号,教师编号,返回新表t2;

  • 对t1表和t2表按照(课程编号,教师编号)的键值进行连接,并对kcbh进行去重,返回新表t3;

  • 将kc表和t3按照kcbh进行连接,并获取课程名称(kc)以及学分(xf)数据。

sql代码:

SELECT kc,xf FROM(
  kc JOIN (SELECT DISTINCT t1.kcbh FROM (
      (SELECT sk.kcbh,bh FROM (
        sk JOIN (SELECT kcbh FROM kc WHERE lx = '校公选课') AS tmp
        ON sk.kcbh = tmp.kcbh
      )) AS t1 
      JOIN (SELECT kcbh,jsbh FROM xk WHERE xh = '341433') AS t2
      ON (t1.kcbh,t1.bh) = (t2.kcbh,t2.jsbh))
  ) AS t3
  ON kc.kcbh = t3.kcbh
)

实验结果:
在这里插入图片描述

结果验证:

我们已知Nardack只会选择所有的艺类课程,也包括校公选的艺类课程,因此sql语句执行的结果正确。

6.计算机系学生所学的所有课程的编号、名称和学分

问题分析:

  • 获取所有计算机系(学院代号为js)的学生,返回新表t1;

  • 将t1与选课列表xk按照学号进行连接,并对课程编号进行去重,返回新表t2;

  • 将课程列表kc和t2按照课程编号进行连接,获取其中课程编号、名称和学分的信息。

sql代码:

SELECT kc.kcbh,kc,xf FROM (
  kc JOIN (SELECT DISTINCT kcbh FROM (
    (SELECT * FROM xs WHERE ydh = 'js') AS t1 JOIN
    xk ON t1.xh = xk.xh)
  ) AS t2
  ON kc.kcbh = t2.kcbh
)

实验结果:
在这里插入图片描述

结果验证:

我们注意到Alice\Vegetable作为计算机系学生,由于对艺类课程感兴趣,因此已经选择了所有的艺类课程,因此从结果中我们看到了所有的艺类课程都在其中。同时,她也选择了所有的原本属于计算机系的课程,因此所有的计算机相关课程也在其中。

由此进一步验证了sql语句的正确性。

7.由设计与艺术学院老师传授的艺术类课程列表

问题分析:

  • 课程表中所有的艺术类课程为(“设计构成”、“造型综合表现”、“色彩综合表现”、“设计美学”、“视觉传达设计”、“插图设计”、“视觉游牧——西方美术史”、“视觉审美与设计赏析”);

  • 设计与艺术学院的学院代号为zy,艺术类课程对应的课程编号为(‘sm’,‘zx’,‘sc’,‘sjm’,‘sjc’,‘cts’,‘xms’,‘sjs’);

  • 从授课表中选取课程编号在艺术类课程的数据,返回新表t1;

  • 从教师表中选取来自设计与艺术学院的老师,返回新表t2;

  • 将t1和t2表按照教师编号进行连接,返回新表t3;

  • 将新表t3和kc表按照课程编号进行连接,并获取课程编号,姓名,教师编号,课程,课程类型和学分信息。

sql代码:

SELECT t3.kcbh,xm,bh,kc,lx,xf FROM(
  (SELECT kcbh,bh,xm FROM(
    (SELECT * FROM sk WHERE kcbh in ('sm','zx','sc','sjm','sjc','cts','xms','sjs')) AS t1
      JOIN
    (SELECT * FROM js WHERE ydh = 'zy') AS t2
    ON t1.bh = t2.jsbh
  )) AS t3 JOIN kc
  ON t3.kcbh = kc.kcbh
)

实验结果:
在这里插入图片描述

结果验证:

由表中数据可知“刘备”,“司马懿”,“吕蒙”,“华佗”,“左慈”均属于设计与艺术学院,并且sql语句成功获取了课程类型,课程学分等附加信息。

8.将学生按照选课数量降序排序

问题分析:

  • 从xk表按照学号分组,通过COUNT函数,统计每个学号对应的行数cnt,返回新表t1;

  • 将xs表和t1表按照学号进行左连接,注意到这时候可能含有cnt这一项为空的数据,这时候需要使用NVL函数对其自动填充(默认值为0),并获取姓名,学号,选取课程数量信息xk_num;

  • 注意我们不能使用默认的内连接,而应该用左连接,因为可能有同学没有选择任何课程(比如学号为“1122334455”的Alice这个数据);

  • 对于获取的表按照xk_num进行降序排序。

sql代码:

SELECT * FROM (
  SELECT xm,xs.xh,NVL(cnt,0) AS xk_num FROM (
    xs LEFT JOIN (
      SELECT xh,COUNT(xh) AS cnt FROM xk GROUP BY xh
    ) AS t1
    ON xs.xh = t1.xh
  )
) ORDER BY xk_num DESC;

实验结果:
在这里插入图片描述
在这里插入图片描述

结果验证:

我们可以很明显发现我们构造的两个数据Nardack和Alice\Vegetable选区的课程数最多,符合我们的预期。

同时,对于学号为“1122334455”的Alice这个数据,由于我们没有给他添加任何课程,因此她的选课列表为空,她选取课程的个数视为0。

9.挂过科(有一门及以上课程低于60分)同学的姓名,学号,班级

问题分析:

  • 使用WHERE语句在xk表中查询成绩小于60分的课程对应学号,返回表t1;

  • 将xs表和t1表按照学号进行连接,同时获取其姓名,学号,班级信息。

sql代码:

SELECT xs.xm,xs.xh,xs.bj FROM(
  xs JOIN (
    SELECT DISTINCT xh FROM xk WHERE cj < 60
  ) AS t1
  ON xs.xh = t1.xh
)

实验结果:
在这里插入图片描述

结果验证:

由于构造Alice\Vegetable这个数据时她的艺类课程均为0分,因此她显然属于挂过科的学生。类似地,Nardack显然不属于挂过科的学生。

10. 课程加权平均分最高的前10名的姓名,学号,加权平均分(保留到三位小数);

问题分析:

  • 将xk表与kc表按照课程编号连接,返回新表tmp;

  • 将tmp表按照学号分组,通过SUM函数获取同学的总学分zxf,以及加权总成绩zcj,返回新表t1;

  • 将xs表和t1表按照学号进行左连接,返回新表t2;

  • 对新表t2进行数据计算。注意此时zxf有可能为空,因此此时需要使用CASE语句处理这种情况。如果zxf为空则设该学生为0分,zxf不为空则加权平均分为zcj/zxf,并保留三位小数;

  • 将得到的新表按照总成绩zcj进行降序排序,利用LIMIT 10关键字获取前10行数据。

sql代码:

SELECT * FROM (
  SELECT xm,xs.xh,(CASE WHEN zxf ISNULL THEN 0 ELSE ROUND(zcj/zxf,3) END) AS zcj FROM (
    xs LEFT JOIN (
      SELECT xh,SUM(xf) AS zxf,SUM(cj*xf) AS zcj FROM (SELECT * FROM (xk JOIN kc ON xk.kcbh = kc.kcbh))
      GROUP BY xh
    ) AS t1
    ON xs.xh = t1.xh
  )
) ORDER BY zcj DESC
LIMIT 10;

实验结果:
在这里插入图片描述

结果验证:

观察实验结果,显然Nardack因为每门课程均为100分,所以总成绩也为100分,而其他同学的成绩也均保留到三位小数。

至此,数据库查询已经结束。

六:更新部分学生的学籍情况、成绩

我们还是先用SELECT * FROM xs语句去查看所有的学生数据:
在这里插入图片描述

然后确定我们的更新内容:

  • 将学号为“1122334455”的Alice的ydh改为“js”;

  • 将学号为“1350749819”的Uriel的性别改为“女”;

  • 将学号为“1120200000”的Alice\Vegetable的出生日期改为“1/1/2000”。

然后执行以下sql语句:

UPDATE xs SET ydh = 'js' WHERE xh = '1122334455';
UPDATE xs SET xb = '女' WHERE xh = '1350749819';
UPDATE xs SET chrq = '1/1/2000' WHERE xh = '1120200000';

在这里插入图片描述

之后再次使用SELECT * FROM xs查看数据:
在这里插入图片描述

可知数据已经成功更改。同时我们注意到已经更新的数据被自动放在了最后面。

之后,假设我们计划更改Alice\Vegetable的某科成绩。

先执行以下sql语句查询相关信息:

SELECT * FROM xk WHERE xh = '1120200000';

在这里插入图片描述

我们假设要把Alice\Vegetable的“西方美术史”从0分改为60分,则执行以下语句:

UPDATE xk SET cj = 60.0 WHERE (xh,kcbh) = ('1120200000','xms');

之后再次进行查询,结果如下:
在这里插入图片描述

更新部分学生的学籍情况、成绩的步骤完成。

七:删除部分同学的学籍信息

删除部分同学的学籍信息,等同于将对应的值设为空。

比如,如果我们想要删除Alice\Vegetable的班级信息,则执行以下语句即可:

UPDATE xs SET bj = NULL WHERE xh = '1120200000';

在这里插入图片描述

之后查看数据,可知Alice\Vegetable的班级信息已经成功删除。
在这里插入图片描述

至此,实验二正式结束。

  • 7
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值