版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
项目六数据更新
数据表包括表结构和表数据二部分内容,创建与管理数据表只是完成了表结构的定义与维护,表中还没有数据。本项目将用SQL语句对“学生成绩管理”数据库的三个数据表进行数据更新操作,更新操作包括插入记录、修改记录和删除记录,数据更新操作必须满足数据表上定义的完整性约束条件。知识目标:识记INSERT、UPDATE、DELETE语句的语法。能力目标:能用INSERT语句插入记录。能用UPDATE语句修改记录。能用DELETE语句删除记录。任务6.1任务6.2插入记录修改记录任务6.3删除记录
任务6.1插入记录使用INSERT语句给“学生成绩管理”数据库的数据表插入记录,可以一次插入一行,也可以一次插入多行。
注:三个表的具体内容请参见教材中的表5-5、表5-6、表5-7【任务描述】插入记录6.1【相关知识】21
多行插入
单行插入6.1插入记录1.单行插入语法格式如下:
(1)INSERTINTO表名[(字段列表)]VALUES(值列表);(2)INSERTINTO表名SET字段名1=值1[,字段名2=值2……];说明:字段列表中字段间的分隔符以及值列表中值之间的分隔符均为英文逗号。VALUES子句提供的值列表要与字段列表一一对应,表示给新记录的相关字段赋值。(字段列表)是可选项,如果省略,VALUES子句要按顺序给每个字段提供值。数值列表中字符、日期型的数据要加单引号或双引号。自动增长列写成NULL或DEFAULT都可以。6.1【相关知识】插入记录默认列可以写成DEFAULT。记录要整条插入,没有提供值的字段不是默认值就是NULL。插入数据必须满足表中定义的数据完整性约束条件!主键值不能重复,主属性不能为空值先插入父表记录,再插入子表相关记录,子表外键的取值必须参考父表主键取值,当外
键不是主属性时可以取空值。有唯一约束的列的取值不能重复。有非空约束的列的取值不能为空值。6.1【相关知识】插入记录2.多行插入MySQL支持一条插入语句插入多行数据,可以在INSERT语句的VALUES子句后面跟上多个值列表,它们之间用逗号隔开。语法格式如下:INSERTINTO表名[(字段列表)]VALUES(值列表1),
…
…
(值列表n);6.1【相关知识】插入记录【任务实施】1.准备工作创建studb数据库及它的三个空表(stuinfo,stumarks,stucourse),各表结构如表5-5、表5-6、表5-7所示。6.1插入记录【任务实施】2.给stuinfo空表插入几条记录(一次插一条,并试着插入一条违反约束条件的记录)。第一次往表中插入数据前一般需要先用DESC或SHOWCREATETABLE语句查看一下stuinfo表的结构(字段名、数据类型、约束条件),如图6.1所示。6.1图6.1查看stuinfo表结构插入记录【任务实施】(1)插入第一条记录:('S001','刘卫平','男','1994-10-16',‘衡山市东风路78号’)。INSERTINTOstuinfo(stuno,stuname,stusex,stubirthday,stuaddress)VALUES('S001','刘卫平','男','1994-10-16','衡山市东风路78号');6.1图6.2stuinfo表插入第一条记录插入记录【任务实施】(2)插入第二条记录:('S002','张卫民','男','1995-08-11','地址不详')。INSERTINTOstuinfo
VALUES('S002','张卫民','男','1995-08-11',default);6.1插入记录图6.3stuinfo表插入第二条记录【任务实施】(3)插入第三条记录:学号为“S003”,姓名为“马东”。INSERTINTOstuinfo(stuno,stuname)VALUES(‘S003’,‘马东’);或者:INSERTINTOstuinfoSETstuno=‘S003’,stuname=‘马东’;6.1插入记录图6.4stuinfo表插入第三条记录【任务实施】(4)插入第四条记录:姓名为“钱达理”,性别为“男”。INSERTINTOstuinfo(stuname,stusex)VALUES('钱达理','男');6.1图6.5插入记录违反了主键约束(主键不能取空值)插入记录【任务实施】3.给stucourse空表一次插入几条记录。代码如下:INSERTINTOstucourse(cno,cname,credit)VALUES('0001','大学计算机基础',2),('0002','C语言程序设计',3),
('0003','SQLServer数据库及其应用',3);6.1图6.5stucourse表一次插入多条记录插入记录【任务实施】4.给stumarks表插入一条记录:('S001','0004',80)。INSERTINTOstumarksVALUES('S001','0004',80);6.1图6.6插入记录违反了外键约束插入记录任务6.2修改记录使用UPDATE语句给“学生成绩管理”数据库(stuDB)的数据表修改记录,具体任务如下:(1)把stuinfo表中“S005”学生的性别(stusex)改为“女”。(2)把stucourse表中所有课程的学分(credit)加1。(3)把“0001”这门课程的所有成绩(stuscore)都加5分。
【任务描述】修改记录6.2【相关知识】修改记录6.2要修改数据表中已有记录的字段值,可用UPDATE语句。语法格式如下:UPDATE表名SET字段名=表达式1[,字段名2=表达式2…][WHERE条件];说明:把表中指定字段的值更新为表达式的值,一次可以修改多个字段的值,用逗号隔开。WHERE子句用于选择要修改的记录,若没有,则表示修改所有记录。【任务实施】1.准备工作给studb数据库三个数据表插入记录,三个表的插入结果如教材中图6-7、图6-9、图6-11所示。修改记录6.2【任务实施】2.把stuinfo表中“S005”学生的性别(stusex)改为“女”
修改前查看stuinfo表中数据,如图6.7所示。修改记录6.2图6.7修改前stuinfo表的数据【任务实施】修改代码如下:UPDATEstuinfoSETstusex='女'WHEREstuno='S005';修改记录6.2图6.8修改后stuinfo表的数据【任务实施】3.把stucourse表中所有课程的学分(credit)都加1。
修改前查看stucourse表中数据,如图6.9所示。修改记录6.2图6.9修改前stucourse表的数据【任务实施】修改代码如下:UPDATEstucourseSETcredit=credit+1;修改记录6.2图6.10修改后stucourse表的数据【任务实施】4.把“0001”这门课程的所有成绩(stuscore)都加5分。修改前查看stumarks表中数据,如图6.11所示。修改记录6.2图6.11修改前stumarks表的数据【任务实施】修改代码如下:UPDATEstumarksSETstuscore=stuscore+5WHEREcno='0001';修改记录6.2图6.12修改后stumarks表的数据任务6.3删除记录使用SQL语句删除“学生成绩管理”数据库(stuDB)的数据表的记录,具体内容如下:(1)删除学生选课成绩表中“S003”学生的选课记录。(2)删除课程基本信息表中“0006”这门课的记录。(3)删除学生选课成绩表中的所有记录。(4)新建一个带自增列的表test,插入几条记录,分别用DELETE、TRUNCATE语句删除全部记录后再重新插入记录,观察自增列值有什么不同。【任务描述】6.3删除记录【相关知识】31DELETE与TRUNCATE语句的区别
DELETE语句6.32
TRUNCATE语句删除记录【相关知识】删除记录6.31.DELETE语句语法格式如下:DELETEFROM表名[WHERE条件];说明:WHERE子句用于选择要删除的记录,没有则删除所有行先删除子表相关记录,再删除父表记录!删除记录6.32.TRUNCATE语句语法格式如下:TRUNCATE[TABLE]表名;说明:此语句删除表中所有记录。不管子表是否为空表,父表记录都不能用TRUNCATE语句删除。【相关知识】删除记录6.33.DELETE与TRUNCATE语句的区别(1)DELETE语句后面可以跟WHERE子句,通过指定WHERE子句中的条件表达式只删除满足条件的部分记录,而TRUNCATE语句只能用于删除表中的所有记录(2)TRUNCATE语句的执行效率比DELETE语句高,但是用TRUNCATE语句删除的数据不可以恢复。(3)使用TRUNCATE语句删除表中的数据,再向表中添加记录时,自动增加字段的默认初始值重新由1开始;使用DELETE语句删除表中所有记录,再向表中添加记录时,自动增加字段的值为删除时该字段的最大值加1。【相关知识】【任务实施】1.删除stumarks表中“S003”学生的选课记录。删除前查看stumarks表的数据,如图6.13所示。6.3删除记录图6.13删除前stumarks表中的数据【任务实施】代码如下:DELETEFROMstumarksWHEREstuno='S003';6.3删除记录图6.14删除后stumarks表的数据【任务实施】2.删除stucourse表中课程号“0006”这门课的记录。DELETEFROMstucourseWHEREcno='0006';6.3删除记录6.15要删除的父表记录在子表中有对应记录【任务实施】3.删除stumarks表的所有记录。DELETEFROMstumarks;6.3删除记录图6.16删除stumarks表的所有记录【任务实施】4.新建一个带自增列的表test,插入几条记录,用DELETE语句全删后再重新插入记录,观察记录自增列值的变化,然后用TRUNCATE语句删除后再重新插入记录,观察记录自增列值的变化。创建test表的代码如下:CREATETABLEtest(useridintauto_incrementprimarykey,
userna
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年陕西省建筑工程总公司职工大学单招职业适应性测试题库及参考答案详解
- 2026年长沙幼儿师范高等专科学校单招综合素质考试题库附答案详解
- 2025年滁州理想建设投资发展有限公司公开招聘2名笔试历年参考题库附带答案详解
- 2026年重庆幼儿师范高等专科学校单招职业倾向性考试题库及参考答案详解一套
- 2026年资阳口腔职业学院单招职业倾向性测试题库带答案详解
- 2026年重庆市资阳地区单招职业适应性考试题库及参考答案详解
- 高碑店市东盛街道招聘社区网格员考试试题附答案详解
- 西城区展览路街道招聘社区网格员考试试题附答案详解
- 2025年度云南农垦集团高校毕业生招聘笔试历年参考题库附带答案详解
- 2025年广西供应链服务集团高校毕业生夏季招聘4人笔试历年参考题库附带答案详解
- 高校非学历教育质量评估标准
- 艾梅乙反歧视培训
- 水厂污泥排放管理办法
- 2025年湖南省长沙市初中学业水平考试中考(会考)生物试卷(真题+答案)
- 证券销售客户管理办法
- 公司小药箱物品管理制度
- 语文●全国Ⅰ卷丨2024年普通高等学校招生全国统一考试语文试卷及答案
- 兵棋测试题及答案
- 主体工程报价单-模板定稿
- 医院机房制度管理制度
- 电厂电力监控系统网络安全防护管理制度
评论
0/150
提交评论