版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
项目4操作数据《数据库应用基础(SQLServer2019)》项目目标掌握向表中添加数据的方法掌握更新表中数据的方法掌握从表中删除数据的方法掌握导入和发出数据的方法掌握使用AIGC辅助数据操作的方法本章目录4.1添加数据4.2更新数据4.3删除数据4.4导入和导出数据添加数据4.1任务4.1添加数据对于数据库中的表,可以使用SSMS图形界面向表中添加数据,也可以使用INSERT语句向表中添加数据,还可以使用BULKINSERT语句以用户指定的格式将数据文件导入到表中,或者使用INSERT...SELECT语句将来自其他表的数据添加到表中。通过本任务将学习和掌握向表中添加数据的各种方法。任务目标掌握使用SSMS添加数据的方法掌握使用INSERT语句添加数据的方法掌握使用BULKINSERT语句复制数据的方法掌握使用INSERT...SELECT语句添加数据的方法4.1.1使用SSMS添加数据SSMS提供直观的网格编辑方式,适合小批量数据录入用SSMS添加数据操作步骤连接到数据库引擎实例,展开对象资源管理器展开“数据库”,展开目标表所在的数据库展开“表”,右键单击该表,选择“编辑前200行”在“结果”窗格中可执行:查看数据、添加新行、修改数据、删除数据使用导航栏按钮快速跳转:首记录、上一条、下一条、末记录添加新行:单击“移动到新行”按钮,输入各列数据,离开该行后自动保存例4.1:向班级表添加班级信息右键单击班级表→“编辑前200行”在空白行输入班级编号、专业、系部等数据离开数据行时自动保存4.1.2使用INSERT语句添加数据(1/2)INSERT语句基本语法INSERT[INTO]表名称[(列名列表)]VALUES({DEFAULT|NULL|表达式}[,...]),[,...]|派生表|DEFAULTVALUES关键要点未在列名列表中指定的列,必须能自动获取值
(标识列、默认值、允许NULL等)向标识列插入显式值时,需设置
SETIDENTITY_INSERT表名ON一次插入多行:VALUES后使用逗号分隔多个值列表4.1.2使用INSERT语句添加数据(2/2)例4.2:向课程表和教师表添加数据USE教务管理;GO--向课程表插入多行(课程名称、课程类别、课时)INSERTINTO课程(课程名称,课程类别,课时)VALUES('数学','基础课',72),('语文','基础课',72),('英语','基础课',72);GO--向教师表插入数据(列名列表与VALUES对应)INSERTINTO教师(姓名,性别,出生日期,入职时间,政治面貌,学历,系部)VALUES('张丽娜','女','1983-07-12','2006-09-20','党员','研究生','基础部');GO注意事项:字符、日期值需用单引号;表达式不能包含SELECT或EXECUTE4.1.3使用BULKINSERT语句导入数据(1/2)应用场景将外部数据文件快速导入数据库表,适合大量数据迁移语法格式BULKINSERT表名称FROM'数据文件'WITH(FIELDTERMINATOR='字段终止符',ROWTERMINATOR='行终止符');参数说明数据文件路径:本地或UNC网络路径FIELDTERMINATOR:字段分隔符,默认\t(制表符)ROWTERMINATOR:行结束符,默认\n(换行符)4.1.3使用BULKINSERT语句导入数据(2/2)例4.3:从文本文件导入学生表和教学安排表USE教务管理;GOBULKINSERT学生FROM'D:\SQLServer2019\Data\学生.txt'WITH(FIELDTERMINATOR=',',ROWTERMINATOR='\n');GOBULKINSERT教学安排FROM'D:\SQLServer2019\Data\教学安排.txt'WITH(FIELDTERMINATOR=',',ROWTERMINATOR='\n');GO4.1.4使用INSERT...SELECT语句从其他表复制数据(1/2)语法格式INSERTINTO目标表[(列名列表)]SELECT选择列表FROM来源表[WHERE搜索条件];匹配要求SELECT的选择列表必须与INSERT的列名列表数量、顺序、数据类型匹配若省略列名列表,则选择列表必须与目标表的所有列匹配4.1.4使用INSERT...SELECT语句从其他表复制数据(2/2)例4.4:从学生表和教学安排表向成绩表添加学号和课程编号USE教务管理;GOINSERTINTO成绩(学号,课程编号)SELECT学生.学号,教学安排.课程编号FROM学生,教学安排WHERE(学生.学号NOTIN(SELECT学号FROM成绩))AND(教学安排.班级编号=学生.班级编号);GO条件说明学号不能已存在于成绩表(避免重复)教学安排表的班级编号与学生表的班级编号匹配执行结果:成绩表自动生成对应记录,成绩列为NULL更新数据4.2任务4.2更新数据通过SSMS或INSERT语句在表中添加记录之后,如果某些列值发生了变化,则应该及时地对表中已有数据进行修改。在SQLServer2019中,既可以使用SSMS图形界面对表中的数据进行编辑,也可以使用UPDATE语句对表中的一行或多行数据进行修改,还可以使用FROM子句对UPDATE语句进行扩展,以便从一个或多个已经存在的表中获取修改时要用到的数据,此外还可以使用TOP子句来限制UPDATE语句中修改的行数。通过本任务将学习和掌握更新表中现有数据的各种方法。任务目标掌握使用SSMS更新数据的方法掌握使用UPDATE语句更新数据的方法掌握在UPDATE语句使用FROM子句的方法掌握使用TOP限制更新行数的方法4.2.1使用SSMS更新数据使用SSMS更新数据操作步骤连接到数据库引擎实例,展开对象资源管理器展开“数据库”,展开目标表所在的数据库展开“表”,右键单击该表,选择“编辑前200行”定位到要更改的单元格,键入新值光标移出该行即自动保存要编辑更多数据:打开“SQL”窗格,删除“TOP(200)”,按Ctrl+R刷新输入空值:以大写字母形式键入NULL,显示为斜体例4.5:填写成绩表删除TOP限制,在“结果”窗格中为每行成绩列输入数值按向下箭头移出单元格,数据自动保存若输入超出CHECK约束范围(0~100),将弹出错误消息框4.2.2使用UPDATE语句更新数据(1/2)UPDATE语法格式UPDATE[TOP(表达式)[PERCENT]]目标表SET{列名称={表达式|DEFAULT|NULL}}[,...][FROM<来源>[,...]][WHERE<搜索条件>]关键要点TOP:指定要更新的行数或百分比SET:指定要更新的列和新值DEFAULT:用列默认值替换,若允许NULL则设为NULLWHERE:限定更新条件,省略则更新所有行注意:不能更新标识列应用场景:精确更新指定条件的一行或多行数据4.2.2使用UPDATE语句更新数据(2/2)例4.6:更新成绩表USE教务管理;GOUPDATE成绩SET成绩=82WHERE学号='20240001'AND课程编号=1;UPDATE成绩SET成绩=76WHERE学号='20240001'AND课程编号=2;--...为多行记录更新成绩每条UPDATE语句根据学号和课程编号定位唯一记录进行更新4.2.3在UPDATE语句中使用FROM子句(1/2)带FROM子句的UPDATE语法UPDATE目标表SET{列名称={表达式|DEFAULT|NULL}}[,...]FROM<表源>[,...][WHERE<搜索条件>]使用场景需要从其他表获取数据作为更新条件目标表中缺少用于筛选的列(如姓名、课程名称)4.2.3在UPDATE语句中使用FROM子句(2/2)例4.7:根据学生姓名和课程名称更新成绩USE教务管理;GOUPDATE成绩SET成绩=91FROM学生,课程WHERE学生.姓名='唐晓芙'AND课程.课程名称='数学'AND学生.学号=成绩.学号AND课程.课程编号=成绩.课程编号;--...为其他学生和课程更新关键联接条件:学号相等、课程编号相等,确保准确定位成绩记录若省略联接条件,将对所有行进行更新(图4.12)设计提示:FROM子句与WHERE子句配合,实现跨表条件的精确更新4.2.4使用TOP限制更新行数带TOP的UPDATE语法UPDATETOP(表达式)[PERCENT]目标表SET{列名称={表达式|DEFAULT|NULL}}[,...][FROM<表源>[,...]][WHERE<搜索条件>]TOP子句说明表达式:指定要更新的行数或行百分比PERCENT:按百分比更新被更新的行按随机顺序选择,不保证特定排序示例USEAdventureWorks2019;GOUPDATETOP(10)Sales.StoreSETSalesPersonID=276;删除数据4.3任务4.3删除数据对于不再需要的数据,应当及时从表中删除。在SQLServer2019中,删除数据有多种方法:既可以使用SSMS从表中删除数据,也可以使用DELETE语句从表中删除满足指定条件的若干行数据,还可以使用TOP语句限制删除的行数,或者使用TRUNCATETABLE语句从表中快速删除所有行。通过本任务将学习和掌握从表中删除数据的各种方法。任务目标掌握使用SSMS删除数据的方法掌握使用DELETE语句删除数据的方法掌握使用TOP限制删除行数的方法掌握使用TRUNCATETABLE删除所有行的方法4.3.1使用SSMS删除数据使用SSMS删除数据操作步骤连接到数据库引擎实例,展开对象资源管理器展开“数据库”,展开目标表所在的数据库展开“表”,右键单击该表,选择“编辑前200行”在“结果”窗格中单击待删除行的选择器选中该行多行:按住Ctrl键依次单击各行的选择器所有行:单击标题行的选择器右键单击所选行,选择“删除”命令或按Delete键(图4.13)在确认消息框中单击“是”注意事项删除的行从数据库中永久移除,不能恢复若所选行中有任意行无法删除,则所有行都不会删除,并显示错误消息4.3.2使用SQL语句删除数据语法格式DELETE[FROM]目标表[FROM<表源>[...]][WHERE<搜索条件>];关键要点FROM(第一个):可选关键字目标表:指定要从其中删除行的表FROM(第二个):指定其他表或视图及联接条件,用于限定删除范围DELETE仅从第一个FROM子句指定的表中删除行WHERE:指定删除行的限定条件,省略则删除表中所有行应用场景按条件精确删除指定行,或删除表中所有行4.3.2使用SQL语句删除数据删除数据示例:根据学生姓名,删除李云飞的所有成绩记录USE教务管理;GODELETEFROM成绩FROM学生WHERE学生.姓名='李云飞'AND学生.学号=成绩.学号;注意事项DELETE只删除行,表结构仍保留在数据库中若要删除整个表,应使用DROPTABLE4.3.3使用TOP限制删除行数带TOP的DELETE语法DELETETOP(表达式)[FROM]目标表[FROM<表源>[...]][WHERE<搜索条件>];TOP子句说明表达式:指定要删除的行数删除的行按随机顺序选择,不保证特定排序示例USEAdventureWorks2019;GODELETETOP(20)FROMPurchasing.PurchaseOrderDetailWHEREDueDate<'2002-07-01';4.3.4使用TRUNCATETABLE删除所有行(1/2)TRUNCATETABLE语法
TRUNCATETABLE{数据库名.架构名.表名|架构名.表名|表名};功能删除表中的所有行表结构、列、约束、索引保持不变与DELETETABLE对比的优势事务日志空间更小使用的锁通常较少表中不留下任何页(更高效)不能使用TRUNCATETABLE的情况被FOREIGNKEY约束引用的表(可截断引用自身的外键表)参与索引视图的表通过事务复制或合并复制发布的表4.3.4使用TRUNCATETABLE删除所有行(1/2)示例USEAdventureWorks2019;GOTRUNCATETABLEHumanResources.JobCandidate;GO选择建议:需要快速清空表数据且保留表结构时,优先使用TRUNCATETABLE导入和导出数据4.4任务4.4导入和导出数据在SQLServer2019中,可以使用导入和导出向导在支持的数据源和目标之间复制和转换数据。既可以位于在相同或不同SQLServer服务器的数据库之间导入或导出数据,也可以在SQLServer数据库与其他数据库或数据格式之间转换数据。例如,利用这个向导工具可以将Access或FoxPro等桌面数据库或Excel电子表格中的数据导入到SQLServer数据库,也可以将SQLServer数据库中的数据导出到其他数据库文件。通过本任务将学习和掌握导入和掌握数据的操作方法和步骤。任务目标掌握导入数据的方法掌握导出数据的方法4.4.1导入数据(1/2)使用向导导入数据导入向导支持多种数据源(SQLServer、Excel、Access等),可在图形界面中完成数据复制。例4.8:将Access数据库导入SQLServer在SQLServer中创建目标数据库“罗斯文”启动“SQLServer2019导入和导出数据”向导选择数据源数据源:MicrosoftAccess(MicrosoftACEOLEDB16.0)浏览选择源文件:罗斯文.accdb选择目标目标:MicrosoftOLEDBProviderforSQLServer选择服务器,使用Windows身份验证数据库:罗斯文(步骤1创建)4.4.1导入数据(2/2)使用向导导入数据例4.8:将Access数据库导入SQLServer指定表复制或查询:选择“复制一个或多个表或视图的数据”选择源表和源视图:勾选Access数据库中的表和查询对象查看数据类型映射:检查源列与目标列的数据类型对应关系保存并运行包:勾选“立即运行”和“保存SSIS包”选择“
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 第4章 职业生涯规划
- 农业灌区土壤盐分空间分布检测报告
- 报废汽车回收行业回收员形象规范
- 靶向PD-L1的抗体偶联药物在非小细胞肺癌中的疗效研究报告
- 2026年地理会考全四册知识默写通关
- DB15T 4142-2025 风电场和光伏发电站消防管理规程
- 自然语言处理(微课版)课件 第5-9章 情感分析-对话系统
- 一级建造师考试(机电工程管理与实务)题库含答案(2025年绵阳)
- 抚顺市一级建造师考试(机电工程管理与实务)题库含答案(2025年)
- 2026年资产评估师资产评估方法专项练习及答案
- 2026上半年四川遂宁产业投资集团有限公司招聘11人笔试历年备考题库附带答案详解
- 2026年镇江市交通运输系统事业单位人员招聘考试备考试题及答案详解
- 2026年昆明市政务服务中心(综合窗口)人员招聘考试备考试题及答案详解
- 2026年上海市高考语文备考之古诗鉴赏答题总结梳理
- 2026智能体原生网络AN白皮书
- 2026年中考道德与法治考前冲刺复习:常考考点答题模板分类汇编
- 2026中华全国供销合作总社直属事业单位招聘27人考试参考题库及答案解析
- 事故隐患排查治理基本知识
- 煤矿防治水知识培训
- 2026江铜铜箔科技股份有限公司第一批次春季校园招聘89人建设笔试参考题库及答案解析
- 2026年建安杯信息通信建设行业安全竞赛重点题库(新版)
评论
0/150
提交评论