1、第第3章数据表的操作章数据表的操作3.1任务描述任务描述 本章完成项目的第3个任务:在大学生选课管理数据库Student中,完成如下操作:1创建数据库的5个数据表:学生信息表,教师信息表,课程 信息表,教师教课信息表,学生选课信息表。2输入这5个数据表的记录内容。3向有关数据表中添加新的记录。4调整有关课程的学时量和收费标准。5删除有关学生的记录和有关教师的记录。3.2 SQL Server数据类型、表达式和常用函数数据类型、表达式和常用函数3.2.1 SQL Server3.2.1 SQL Server数据类型数据类型1 1整型数据整型数据(1)bigint:可以存储从-263到263-1范
2、围之间的所有整数。(2)int:可以存储从-231到231-1范围之间的所有整数。(3)smallint:可以存储从-215到215-1范围之间的所有整数。(4)tinyint:可以存储从0到255范围之间的所有整数。2 2浮点型数据浮点型数据(1)real:可以存储正的或者负的十进制数值,其范围从-3.40E+38到3.40E+38。(2)float(n):可以精确到第15位小数,其范围从-1.79E+308到1.79E+308,其中n为精度,n是从1到53的整数。(3)decimal(p,s):可以提供小数所需要的实际存储空间,但也有一定的限制,可以用2到17个字节来存储从-1038+1到
3、1038-1之间的数值。其中p为十进制数的最大位数,p是从1到38的整数,默认值为18;s为小数的最大位数,s是从0到p的整数,默认值为0。(4)numeric(p,s):同decimal(p,s)。3字符型数据字符型数据(1)char(n):为固定长度存储字符串的数据类型,其中n为字符串的长度,n从1到8000取值。(2)varchar(n):为可变长度存储字符串的数据类型,其中n为字符串的最大长度,n从1到8000取值。(3)nchar(n):存储固定长度的Unicode字符数据,其中n为字符串的长度,n从1到4000取值。(4)nvarchar(n):存储可变长度的Unicode字符数据
4、,其中n为字符串的最大长度,n从1到4000取值。4日期时间型数据日期时间型数据(1)date:用于存储从公元0001年1月1日至9999年12月31日的日期型数据,格式为:YYYY-MM-DD。(2)time:用于存储从00:00:00至23:59:59之间的时间数据,格式为:hh:mm:ss。(3)datetime2:用于存储日期和时间的结合体。它可以存储从公元0001年1月1日0时起到公元9999年12月31日23时59分59秒之间的所有日期和时间,格式为:YYYY-MM-DD hh:mm:ss。(4)datetime:用于存储日期和时间的结合体。它可以存储从公元1753年1月1日0时起
5、到公元9999年12月31日23时59分59秒之间的所有日期和时间。(5)smalldatetime:与datetime数据类型类似,但其日期时间范围较小,它存储从1900年1月1日到2079年6月6日内的日期时间。3.2.1 SQL Server数据类型数据类型5文本型数据文本型数据(1)text:用于存储大量文本数据,其容量理论上为0到2GB个字节,但实际应用时要根据硬盘的存储空间而定。(2)ntext:与text数据类型类似,存储在其中的数据通常是直接能输出到显示设备上的字符(即存储Unicode字符数据),显示设备可以是显示器、窗口或者打印机。6货币型数据货币型数据(1)money:用
6、于存储货币值,存储在money数据类型中的数值以一个整数部分和一个小数部分存储在两个4字节的整型值中,存储范围为-263到263-1,精度为货币单位的千分之十。(2)smallmoney:与money数据类型类似,但其存储的货币值范围比money类型小,其存储范围为-214748.3648到214748.3647,精度为货币单位的千分之十。在输入货币数据时必须在货币数据前加$,输入负货币值时必须在$后面加一个减号(-)。7位数据位数据 bit:称为位数据类型,其数据有两种取值:0和1,长度为1字节。8二进制型数据二进制型数据(1)binary(n):用于存储固定长度的二进制数据,存储空间大小为
7、n个字节,n的取值从1到8000。(2)varbinary(n):用于存储可变长度的二进制数据,最大存储空间为n个字节,n的取值从1到8000。(3)image:用于存储可变长度的二进制数据,存储的最大长度为231-1个字节,常用于存储图形类数据,比如照片、图片等。3.2.1 SQL Server数据类型数据类型3.2.2 SQL Server中的常量中的常量 SQL Server主要有以下几种类型的常量:整型常量,例如:34,-890 实型常量,例如:56.78,-789.675,1.2E+5 字符型常量,例如:abCFR12,张大友 日期型常量,例如:1987-6-23,或者 6/23/1
8、9873.2.3 SQL Server中的表达式中的表达式1算术表达式算术表达式 算术运算符可以在两个表达式上执行数学运算,这两个表达式可以是数字数据类型分类的任何数据类型。算术运算符包括:加(+)、减()、乘(*)、除(/)和取模(%)。2字符表达式字符表达式 字符串串联运算符允许通过加号(+)进行字符串串联,这个加号即被称为字符串串联运算符。3关系表达式关系表达式 关系运算符用于比较两个表达式值的大小或者是否相同,其比较的结果是布尔值,即TRUE(表示表达式的结果为真)、FALSE(表示表达式的结果为假)。常用的关系运算符有:大于()、小于(=)、小于等于(=)、等于(=)、不等于()。4
9、逻辑表达式逻辑表达式 逻辑运算符可以把多个逻辑表达式连接起来。常用的逻辑运算符有:not,and,or,其中not表示逻辑非,求一个逻辑表达式的非;and表示逻辑与,求两个逻辑表达式的与;or表示逻辑或,求两个逻辑表达式的或。5数据表字段专用的逻辑表达式数据表字段专用的逻辑表达式(1)判断字段的取值范围 字段名 between下界值 and 上界值:表示当字段值在下界值与上界值之间时为真。例如:工资 between 2590 and 5600 字段名 not between下界值 and 上界值:表示当字段值不在下界值与上界值之间时为真。例如:工资 not between 2590 and 5
10、600(2)判断字段的离散取值字段名 in(常量表):表示当字段值为常量表中某一个值时为真。例如:姓名 in(张大有,李芳芳,吴军,孙晓丽)字段名 not in(常量表):表示当字段值不为常量表中的任何一个值时为真。例如:姓名 not in(张大有,李芳芳,吴军,孙晓丽)(3)判断字符型字段相匹配字段名 like 字符串:表示字段值与指定的字符串相匹配时为真。例如:姓名 like 王%;职称 like%工程师字段名 not like 字符串:表示当字段值与指定的字符串不相匹配时为真。例如:姓名 not like 王%;职称 not like%工程师(4)判断字段是否为空值字段名 is null
11、:表示当字段值为空时为真。例如:中文成绩 is null字段名 is not null:表示当字段值不为空时为真。例如:中文成绩 is not null3.2.3 SQL Server中的表达式中的表达式3.2.4 SQL Server中的常用函数中的常用函数1数学函数数学函数常用的数学函数有:(1)abs(数学表达式):返回指定数学表达式值的绝对值。(2)rand():返回(0,1)之内一个随机数。(3)ceiling(数学表达式):返回指定数学表达式值的整数部分。(4)round(数学表达式,小数位数):对指定数学表达式的值进行四舍五入,并返回四舍五入后的值。(5)sqrt(数学表达式):
12、返回指定数学表达式值的算术平方根。(6)power(x,y):返回xy的值。2字符函数字符函数常用的字符函数有:(1)lower(字符串):将指定字符串中的大写字母转为小写字母,并返回转后的字符串。(2)upper(字符串):将指定字符串中的小写字母转为大写字母,并返回转后的字符串。(3)len(字符串):返回指定字符串的长度。(4)left(字符串,n):返回指定字符串的前n个字符组成的字符串。(5)right(字符串,n):返回指定字符串的后n个字符组成的字符串。(6)substring(字符串,i,n):从指定字符串的第i个字符开始取n个字符,并返回这n个字符组成的字符串。(7)str(
13、数学表达式,):将指定数学表达式的值转为字符型,并返回转后的值,其中n为转后字符串的长度,m为转后小数的位数。(8)reverse(字符串):将字符串进行反转,并返回反转后的字符串。3日期函数日期函数常用的日期函数有:(1)getdate():返回当前系统日期和时间。(2)year(日期):返回指定日期中的年。(3)month(日期):返回指定日期中的月。(4)day(日期):返回指定日期中的天。(5)datediff(day,日期1,日期2):返回日期2与日期1之间相差的天数。4转换函数转换函数cast(表达式 as 目标类型):将指定表达式的值转为指定的类型,并返回转后的值。3.2.4 S
14、QL Server中的常用函数中的常用函数5其他函数其他函数(1)nullif(表达式1,表达式2):表示若两个表达式的值不相等,则返回前一个表达式1的值,否则返回前一个表达式1所属类型的空值(null)(2)case函数语法格式:(case when条件1 then 表达式1when条件2 then 表达式2when条件n then 表达式nelse 表达式n+1end)功能:从条件1开始依次向后判断每个条件,当某个条件值为真时,则返回该条件后面的then所指定的表达式的值;若所有条件的值都不为真,则返回else后面所指定的表达式的值。(3)rank函数语法格式:rank()over(ord
15、er by 字段表达式 asc/desc):返回有关记录在“字段表达式”值上的排列名次。“字段表达式”值相同的记录,其排名相同。3.2.4 SQL Server中的常用函数中的常用函数3.3 SQL Server数据表数据表1数据表的概述数据表的概述 表是关系模型中表示实体的方式,是用来组织和存储数据,具有行列结构的数据库对象。数据库中的数据或信息都是存储在表中的。在一个关系数据库中可以包含有多个表,表是对数据进行存储和操作的一种逻辑结构,每一个表表示数据库中的一个关系实体。表是由定义的列数和可变的行数组成的逻辑结构,以二维表格形式显示。行称为记录,列是一组相同数据类型的值,称为字段。在每个列
16、和行的相交处是一个称为值的数据项,是指某个记录的某个字段的值。2数据表的组成数据表的组成 数据表有表名确定。其由数据表结构和数据表内容两部分组成。3数据表结构数据表结构 数据表结构包括:表由几列(几个字段)组成以及每个字段的字段名、字段类型、字段大小和字段约束的定义等。字段名必须遵循为标识符指定的规则。字段类型为SQL Server提供的系统数据类型。字段约束包括:该字段是否定义为主键、是否允许取空值、取值应满足的条件、取值是唯一、字段的默认值和是否定义为外键等。4数据表内容数据表内容 数据表内容是指该表中所有记录的集合。如表3-1,表3-23.3 SQL Server数据表数据表3.4 创建
17、创建SQL Server数据表数据表3.4.1 利用利用SQL Server Management Studio创建数据表创建数据表1启动SQL Server Management Studio,并连接到SQL Server 2008中的数据库,在“对象资源管理器”窗口中展开“数据库”节点,再展开新建表所属的数据库名(比如Student),右击其“表”节点,出现弹出单,如图3-1所示:2在弹出菜单中执行【新建表】命令,打开“表设计器”窗口。在此窗口中,输入和设置每个列的:列名称、数据类型、长度、精度、小数位数、是否允许为空;在下面的“列属性”窗口中,可设置当前列的:默认值、标识列(标识列的初始
18、值、增量值和是否有行的标识)其中:列名称、数据类型、长度 这三项是必须的,如图3-2所示3可右击指定的列名,在出现的弹出菜单中,执行【设置主键】命令设置该指定列为主键。4定义好所有列之后,单击工具栏上的【保存】按钮,保存表,完成表的创建,如图3-3所示:3.4.1 利用利用SQL Server Management Studio创建数据表创建数据表3.4.2利用利用SQL命令创建数据表命令创建数据表语法格式:语法格式:CREATE TABLE 数据库名数据库名.架构名架构名 新建新建的表名的表名(字段名字段名 字段类型字段类型AS 计算字段的字段值表达式计算字段的字段值表达式NULL|NOT
19、NULLDEFAULT 字段的默认值表达式字段的默认值表达式 PRIMARY KEY|UNIQUE|FOREIGN KEY REFERENCES 主键表主键表(主键主键表的主键列表的主键列)|CHECK(字段的约束条件表达式字段的约束条件表达式),n,PRIMARY KEY(表的主键表的主键),CHECK(表的约束条件表达式表的约束条件表达式),FOREIGN KEY(表的外键表的外键)REFERENCES 对应的主键表对应的主键表(该主键表的主键该主键表的主键))其中:其中:NULL|NOT NULL:用于指定列是:用于指定列是否允许为空值否允许为空值DEFAULT:用于指定列的缺省值:用于
20、指定列的缺省值AS:用于指定计算列的列值的表达:用于指定计算列的列值的表达式式PRIMARY KEY :用于指定列为主:用于指定列为主键键UNIQUE:用于指定列取唯一值,:用于指定列取唯一值,不取重复值不取重复值CHECK:用于指定列所满足的约束:用于指定列所满足的约束条件条件FOREIGN KEY REFERENCES:用于指定列为外键用于指定列为外键【例例3-1】创建上述数据库Teaching中的学生成绩表sgrade。Use TeachingGo CREATE TABLE sgrade(xh char(6)PRIMARY KEY ,xm varchar(8)NOT NULL ,xb c
21、har(2)NOT NULL DEFAULT 男男 ,rxsj date NOT NULL ,szx varchar(20)NOT NULL ,bj varchar(20)NOT NULL ,zw decimal(4,1)CHECK(zw=0 and zw=0 and yw=0 and sx=18 and nl1【例例3-6】在上述数据库Teaching中,复制数据表sgrade的表结构成为一新表sgrade_1,要求只复制xh,xm,zw,yw,sx这5个字段。Use TeachingGoSelect xh,xm,zw,yw,sx Into sgrade_1 From sgrade Wher
22、e 01Go3.5.2利用利用SQL命令修改数据表命令修改数据表3.6创建数据表的约束创建数据表的约束3.6.1约束的类型约束的类型1PRIMARY KEY(主键)约束(主键)约束 主键约束用来强制实现数据的实体完整性,它是在表中定义一个主键来唯一标识表中的每行记录。2UNIQUE(唯一)约束(唯一)约束 唯一约束用来强制实现数据的实体完整性,它主要用来限制表的非主键列中不允许输入重复值。3NOT NULL(非空)约束(非空)约束 非空约束用来强制实现数据的域完整性,它用于设定某列值不能为空。如果指定某列不能为空,则在添加记录时,必须为此列添加数据。4CHECK(检查)约束(检查)约束 检查约
23、束用来强制数据的域完整性,它使用逻辑表达式来限制表中的列可以接受的数据范围。5DEFAULT(默认)约束(默认)约束 默认约束用来强制数据的域完整性,它为表中某列建立一个默认值。当用户插入记录时,如果没有为该列提供输入值,则系统会自动将默认值赋给该列。6FOREIGN KEY(外键)约束(外键)约束 外键是指一个表中的一列或列组合,它虽不是该表的主键,但却是另外一个表的主键。通过外键约束可以为相关联的两个表建立联系,实现数据的引用完整性,维护两表之间数据的一致性关系。3.6.2利用利用SQL Server Management Studio建立约束建立约束1创建主键约束创建主键约束(1)启动S
24、QL Server Management Studio,并连接到SQL Server 2008中的数据库。在“对象资源管理器”窗口中,展开“数据库”节点,再展开建立约束的表所属的数据库名(比如Student),展开其“表”节点,右击要建立约束的表名称(比如“学生选课表”),执行弹出菜单中的【设计】命令,打开“表设计器”对话框。(2)在表设计器对话框中,选定要设置主键的列或多个列组合(比如:“学号、课程号”,注意:选定多个列时,可按住Ctrl键进行选定),然后于选定的列上右击,出现弹出菜单,执行菜单中的【设置主键】命令即可,如图3-7所示。2创建唯一约束创建唯一约束(1)启动SQL Server
25、 Management Studio,并连接到SQL Server 2008中的数据库。在“对象资源管理器”窗口中,展开“数据库”节点,再展开建立约束的表所属的数据库名(比如Student),再展开其“表”节点,右击要建立约束的表名称(比如“课程表”),执行弹出菜单中的【设计】命令,打开“表设计器”对话框,在表设计对话框中右击任意字段,执行弹出菜单中的【索引/键】命令,打开“索引/键”对话框。(2)在索引/键对话框中,单击“添加”按钮,系统给出默认的唯一约束名称:“IX_课程表”,显示在“选定的主/唯一键或索引”列表中,如图3-8所示。3.6.2利用利用SQL Server Managemen
26、t Studio建立约束建立约束(3)选择唯一约束名“IX_课程表”,可在其右侧的“属性”窗口中:通过“标识”项中的“名称”属性,修改约束名称;通过单击“常规”项中的“列”属性,再单击其右侧出现的“”按钮,打开“索引列”对话框,如图3-9所示,在“列名”下拉框中选择要建立唯一约束的字段名称(比如“课程名”),还可设置其排序顺序。(4)设置完成后,单击“确定”按钮,返回到“索引/键”对话框,再把“常规”项中的“是唯一的”属性的属性值改为“是”即可,如图3-10所示。3.6.2利用利用SQL Server Management Studio建立约束建立约束3创建检查约束创建检查约束(1)启动SQL
27、 Server Management Studio,并连接到SQL Server 2008中的数据库。在“对象资源管理器”窗口中展开“数据库”节点,再展开建立约束的表所属的数据库名(比如Student),再展开其“表”节点,右击要建立约束的表名称(比如“学生表”),执行弹出菜单中的【设计】命令,打开“表设计器”对话框,于表设计对话框中右击任意字段,执行弹出菜单中的【CHECK约束】命令,打开“CHECK约束”对话框。(2)在CHECK约束对话框中,单击“添加”按钮,系统给出默认的CHECK约束名:“CK_学生表”,显示在“选定的CHECK约束”列表如图3-11所示。3.6.2利用利用SQL S
28、erver Management Studio建立约束建立约束(3)选择CHECK约束名“CK_学生表”,可在其右侧的“属性”窗口中:通过“标识”项中的“名称”属性,修改约束名称;通过单击“常规”项中的“表达式”属性,在其对应的文本输入框中,输入约束条件表达式,或者通过其右侧出现的“”按钮,打开“CHECK约束表达式”对话框,在其中输入约束条件表达式。如图3-12所示。3.6.2利用利用SQL Server Management Studio建立约束建立约束4创建外键约束创建外键约束(1)启动SQL Server Management Studio,并连接到SQL Server 2008中的数
29、据库。在“对象资源管理器”窗口,中展开“数据库”节点,再展开建立约束的表所属的数据库名(比如Student),再展开其“表”节点,右击要建立约束的表名称(比如“教师教课表”),执行弹出菜单中的【设计】命令,打开“表设计器”对话框,于表设计对话框中右击任意字段,执行弹出菜单中的【关系】命令,打开“外键关系”对话框。(2)在外键关系对话框中,单击“添加”按钮,系统给出默认的外键约束名:“FK_教师教课表_教师教课表”,显示在“选定的关系”列表中,如图3-13所示。3.6.2利用利用SQL Server Management Studio建立约束建立约束(3)选择外键约束名“FK_教师教课表_教师教
30、课表”,可在其右侧的“属性”窗口中:通过“标识”项中的“名称”属性,修改约束名称;通过单击“常规”项中的“表和列规范”属性,再单击其右侧出现的“”按钮,打开“表和列”对话框,如图3-14所示。(4)在表和列对话框中:可修改外键关系名,即外键约束名(比如改为:“FK_教师教课表_教师表”);通过“主键表”下拉框选择主键表名(比如“教师表”)和主键表中的主键列(组)(比如“教师号”);通过“外键表”下拉框选择其外键列(组)(比如“教师号”)。(5)设置完成后,单击“确定”按钮,回到“外键关系”对话框,展开“属性”窗口中的“表和列规范”属性,如图3-15所示。3.6.2利用利用SQL Server
31、Management Studio建立约束建立约束3.6.3利用利用SQL命令建立约束命令建立约束1设置数据表的主键设置数据表的主键语法格式:ALTER TABLE 表名 ADD CONSTRAINT 约束名 PRIMARY KEY(字段组合)2设置字段的默认值设置字段的默认值语法格式:ALTER TABLE 表名 ADD CONSTRAINT 约束名 DEFAULT 表达式 FOR 字段3设置字段只取唯一值,不取重复值设置字段只取唯一值,不取重复值语法格式:ALTER TABLE 表名 ADD CONSTRAINT 约束名 UNIQUE(字段)4设置字段取值限制的约束条件设置字段取值限制的约
32、束条件语法格式:ALTER TABLE 表名 ADD CONSTRAINT 约束名 CHECK(字段条件表达式)5设置数据表的外键设置数据表的外键语法格式:ALTER TABLE 表名 ADD CONSTRAINT 约束名FOREIGN KEY(外键列,.)REFERENCES 对应的主键表(该主键表的主键列,.)3.6.4查看和删除约束查看和删除约束1利用SQL Server Management Studio查看约束(略)2利用SQL命令查看约束语法格式:EXEC sp_helptext 约束名3利用SQL Server Management Studio删除约束(略)4利用SQL命令删除
33、表的约束语法格式:ALTER TABLE 表名 DROP CONSTRAINT 约束名3.7 为数据表创建为数据表创建IDENTITY列列1启动SQL Server Management Studio,并连接到SQL Server 2008中的数据库。在“对象资源管理器”窗口中展开“数据库”节点,再展开创建IDENTITY列的表所属的数据库名(比如Student),再展开其“表”节点,右击要建立IDENTITY列的表名称,执行弹出菜单中的【设计】命令,打开“表设计器”窗口。2在表设计器窗口中,添加一列,列名(比如为ID),数据类型为int,然后,在其下面的“列属性”窗口中,展开“标识规范”属性
34、,设置其“是标识”属性值为“是”,修改其“标识种子”属性值(比如100),其“标识增量”属性值(比如1),这样即可创建一个IDENTITY列。如图3-16所示。3.8更新数据表的内容更新数据表的内容3.8.13.8.1利用利用SQL Server Management StudioSQL Server Management Studio输入表内容输入表内容1 1利用利用SQL Server Management StudioSQL Server Management Studio输入表内容(步骤略)输入表内容(步骤略)由学生参照课本由学生参照课本6262页完成。页完成。2 2利用利用SQL S
35、erver Management StudioSQL Server Management Studio查看和更新表内容(步查看和更新表内容(步骤略)骤略)由学生参照课本由学生参照课本62-6362-63页完成。页完成。3.8.2 利用利用SQL命令更新表内容命令更新表内容1向数据表中添加单个记录向数据表中添加单个记录语法格式:Insert into 表名(字段名列表)Values(字段值列表)其中:l“字段值列表”中的各个字段值表达式与“字段名列表”中的各个字段,从个数、类型和顺序必须一一对应;各个字段名之间和各个字段值之间都是用逗号隔开。l若“(字段名列表)”缺省,指数据表的所有字段。【例例
36、3-14】在上述数据库Teaching的学生成绩表sgrade中添加3条记录。Use TeachingGoInsert into sgrade values(100011,孙阳,女,2009-9-1,计算机系,09网络,89,56,76.8)Insert into sgrade values(100013,解晓东,男,2008-9-1,电气系,08机电,98.7,67,76)Insert into sgrade values(100019,张大名,男,2007-9-1,机械系,07制造,80,50,70)Go2修改数据表中的记录内容修改数据表中的记录内容语法格式:UPDATE 表名 SET 字
37、段=表达式,n WHERE 条件表达式其中:“WHERE 条件表达式”缺省,指数据表的所有记录。【例例3-15】在上述数据库Teaching的学生成绩表sgrade中,把中文、英文和数学都不及格的学生记录的中文增加10分,英文提高15%,数学改为及格。Use TeachingGoUpdate sgrade Set zw=zw+10,yw=1.15*yw,sx=60 Where zw60 and yw60 and sx=4Go5清空数据表内容清空数据表内容语法格式:TRUNCATE TABLE 表名3.8.2 利用利用SQL命令更新表内容命令更新表内容3.9 任务实现任务实现1创建数据库创建数据
38、库Student中的各个数据表中的各个数据表 以创建学生信息表为例:(1)创建学生信息表 Use Student Go Create Table stab (xh char(6)PRIMARY KEY ,xm varchar(8)NOT NULL ,xb char(2)NOT NULL DEFAULT 男 ,csrq date NOT NULL ,rxsj date NOT NULL ,ssx varchar(20)NOT NULL ,bj varchar(20)NOT NULL ,dh char(11)Go3.9 任务实现任务实现2 2输入数据库输入数据库StudentStudent中各个数据表的内容中各个数据表的内容利用SQL Server Management Studio输入数据库Student中的各个数据表的记录内容。略.(学生自己完成)3 3向数据库向数据库StudentStudent中的有关数据表中添加新的记录中的有关数据表中添加新的记录4 4调整数据库调整数据库StudentStudent中有关课程的学时量和收费标准中有关课程的学时量和收费标准5 5从数据库从数据库StudentStudent中删除有关学生记录和有关教师记录中删除有关学生记录和有关教师记录3.9 任务实现任务实现