【教学课件】第八章表数据操作.ppt
《【教学课件】第八章表数据操作.ppt》由会员分享,可在线阅读,更多相关《【教学课件】第八章表数据操作.ppt(35页珍藏版)》请在三一办公上搜索。
1、第八章表数据操作,1,本章主题,如何进行表中数据的添加、删除、修改如何进行数据的导入、导出,表数据操作,前一章讨论了使用SELECT语句在表中查询数据,但是SELECT语句只能检索数据,不能在表中添加、修改、删除数据,若要实现这些功能,则需要通过INSERT、UPDATE和DELETE等语句来实现,这些操作也称为插入查询、更新查询和删除查询,统称为操作查询。操作查询能够对数据库的内容进行更改,但不能返回结果集。,3,第一节 添加数据,4,数据库中的表建好了以后,可以使用INSERT语句添加单条记录,也可以使用INSERT SELECT语句添加子查询结果集。无论采用那种方式添加数据,添加的数据都
2、必须符合相应列的数据类型、约束等,以保证表中数据的完整性。,第一节 INSERT 语句,5,使用INSERT语句可以向已建好的表中每次添加一条记录。该语句的基本语法格式如下:INSERT INTO(列名列表)VALUES()其中:目标表名,是指接受数据的表名。列名列表,欲插入数据的各个列。这些列必须在目标表中存在,顺序可以任意;当对目标表中所有列都添加数据时,列名列表可以省略。列名列表必须用圆括号括起来。值列表,欲添加的数据值。各数据值与中列的顺序一一对应,且数据都必须符合相应列的数据类型、约束等,以保证表中数据的完整性。若对新记录的所有列都添加数据,并省略了列名列表,则值列表中数据的排列顺序
3、要与目标表中列的顺序一致。值列表也要用圆括号括起来。,6,INSERT 语句,使用INSERT语句时要注意以下几点:(1)必须为主键、不允许为空的列添加数据。(2)添加的数据必须符合相应列的数据类型、约束,以保证表中数据的完整性。(3)若添加的数据是char、varchar、datetime数据类型,则该值要用单引号括起来。(4)对于指定有默认值的列,若要使该列获得其默认值,则在值列表的相应位置上使用DEFAULT关键字。,(1)为新记录的每个列都添加数据,7,为新记录的每个列都添加数据,可以省略列名列表。若省略了列名列表,则值列表中数据的排列顺序要与目标表设计的字段顺序一致;若不省略列名列表
4、,在列名列表中各列的排列顺序可以是任意的,但值列表中数据要与列名列表中各列一一对应。例8-1:在学生表中添加学号为15003、姓名是张三的男生、汉族、生日1987-12-1、入学时间2004-9-1、所在班级为2004015、重庆籍、备注信息为空的学生信息。分析:题目要求在案例数据库的表Students中添加数据,该表中的所有字段及其顺序是Student_id、Student_name、Student_sex、Student_nation、Student_birthday、Student_time、Student_classid、Student_home、Student_else,要求输入的数
5、据涉及到了所有的字段,即要为新记录的所有字段添加数据,则可以省略,中数据的顺序要与上述字段的先后顺序一致。语句如下:USE STUDENTINSERT INTO StudentsVALUES(15003,张三,男,01,1987-12-1,2004-9-1,2004015,重庆,NULL),8,为新记录的每个列都添加数据,执行结果如图8.1所示,从图中可以看到在消息区有“(1 行受影响)”的提示,即表示成功添加了一条记录。可用下列语句查看目的表中新插入的记录。USE STUDENTSELECT*FROM Students 语句执行结果如图8.2所示。,图 8.1 为新记录的所有列添加数据,图8
6、.2 查看输入的新纪录,(2)给新记录的部分列添加数据,9,也可以只为新记录的部分列添加数据,对于没有添加数据的列,系统将按照下面的规则为其填充数据:(1)设置有默认值的列填充其默认值。(2)具有IDENTITY属性的列,且该表IDENTITY_INSERT选项的参数是OFF(默认值是OFF),使用下一个增量标识值。(3)数据类型为timestamp的列,不必为其添加数据,系统自动使用当前的时间戳值。(4)若该列允许为空,则使用空值NULL。若上述四条都不符合,则记录添加失败,新记录不能添加到目标表中。,10,给新记录的部分列添加数据例题,例8-2:在学生表中添加学号为15004、姓名是李四的
7、男生、所在班级为2004015的学生信息。分析:要求在案例数据库的表Students中添加数据,题目提供了学号、姓名、性别、所在班级的信息,即要为新记录的部分字段添加数据,在列名列表中填写上述字段名(Student_id,Student_name,Student_sex,Student_classid),顺序不限,但在中数据的顺序要与中字段的先后顺序一一对应。语句如下:USE StudentINSERT INTO Students(Student_id,Student_name,Student_sex,Student_classid)VALUES(15004,李四,男,2004015),(3)
8、给新记录的每个字段都使用默认值,11,如果想在新行的全部列中都使用创建表时所指定的默认值,则INSERT语句可以写成下面的形式:INSERT INTO DEFAULT VALUES,(4)为标识列添加数值,12,若欲添加新记录的目标表有标识列,则要注意该表的IDENTITY_INSERT选项,该选项用于控制能否为标识列指定数值插入,每个表的IDENTITY_INSERT选项的默认值都是OFF。若表的IDENTITY_INSERT选项的参数是OFF,表示不能为标识列输入指定数值,只能由系统自动填充,用INSERT语句添加记录时,在值列表中直接忽略标识列的数值。自动填充标识列数据的规则:每次添加新
9、记录时,系统会在前一次自动填充数值的基础上(注意:不是表中自动标识列的最大值),按标识列数值递增的规律计算出一个新值作为新记录的标识列的填充数据。,13,为标识列添加数值例题,例8-3:在学生成绩表中添加一条学号为“11001”、第3个学期开设的课程号为“4001”的成绩为85的新成绩记录。分析:成绩表中有一字段SC_id是标识列,在默认情况下,IDENTITY_INSERT选项的默认值是OFF,因添加的数据涉及到除了标识列以外的所有字段,故可以省略列名列表,但在中不用为标识列SC_id指定数据。语句如下:USE StudentINSERT INTO Student_courseVALUES(
10、11001,4001,85,3)若表的IDENTITY_INSERT选项的参数值设置为ON,则添加新记录时必须为标识列指定要输入的数值,系统不再为其自动填充。可用下面的语句设置表的IDENTITY_INSERT选项的参数:SET IDENTITY_INSERT ON|OFF,(二)INSERT SELECT语句,14,在INSERT语句中使用SELECT子查询,可以将子查询结果集中的记录全部插入到目标表中。其基本语法格式如下:INSERT INTO()SELECT FROM 源表名WHERE 使用INSERT SELECT语句时,应注意下面几点:(1)INSERT的要放在圆括号里面,且不使用V
11、ALUES。(2)不要将SELECT子查询写在在圆括号里面,这一点和前面介绍的子查询不一样,要特别注意。(3)若SELECT子句的和目标表的结构完全一样,则可以省略INSERT子句的。(4)INSERT子句的和SELECT子句的要注意按顺序一一对应,若省略了INSERT的,则SELECT子句的要和目标表的字段的顺序一一对应,相互对应字段的数据类型、长度、精度等要一致。,15,INSERT SELECT语句例题,例8-4:在Student数据库中建立一个新表ABC,在新表中添加学生表所有记录的学号、姓名、性别、班级信息。分析:新表ABC中存放学生的学号、姓名、性别、班级等信息,则表ABC只需要这
12、几个字段即可,而且这些字段要和学生表Students中对应字段的数据类型等要一致,比较便捷的方法就是先用SELECT语句,以表Students为源表,建一个空表,语句如下:USE StudentSELECT Student_id,Student_name,Student_sex,Student_classid INTO ABC FROM StudentsWHERE 1=2 语句中条件“12”显然不成立,所以结果集为空,即建了一个空表。然后用下面的语句添加记录:USE StudentINSERT INTO ABCSELECT Student_id,Student_name,Student_sex
13、,Student_classid FROM Students,第二节 修改数据,16,UPDATEFROM 语句,UPDATE 语句,有时需要修改表中现有的数据,在SQL SERVER 2005中,可以用UPDATE语句或UPDATEFROM语句来实现这个功能。,(一)UPDATE语句,17,UPDATE语句可以修改表中的一条或者多条记录,其语法格式如下:UPDATE SET 列名=表达式|NULL|DEFAULT,nWHERE 搜索条件其中:是欲修改记录的表。SET子句指定要修改的列和所用的数据。修改后的数据由表达式确定,但是必须要符合相应字段的数据类型、长度、精度和约束,以保证数据的完整性
14、。另外,对具有默认值的列可以使用DEFAULT修改为默认值;对允许使用空值的列,也可以使用NULL修改为空值。WHERE子句用来筛选记录,只对符合搜索条件的记录修改,当省略WHERE子句时,将对表中的所有记录都修改。例8-5:将成绩表中课程代码为4001的所有成绩在70分以下(不含70)的成绩都加5分。语句如下:USE StudentUPDATE Student_courseSET Student_Grade=Student_Grade+5WHERE Course_id=4001 AND Student_Grade70,(二)UPDATEFROM语句,18,UPDATEFROM语句可扩展UPD
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 教学课件 教学 课件 第八 数据 操作
链接地址:https://www.31ppt.com/p-5679301.html