数据库技术与应用—SQL Server 2008(第2版)第7章 操纵数据表中的数据.ppt
《数据库技术与应用—SQL Server 2008(第2版)第7章 操纵数据表中的数据.ppt》由会员分享,可在线阅读,更多相关《数据库技术与应用—SQL Server 2008(第2版)第7章 操纵数据表中的数据.ppt(100页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、第7章 操纵数据表中的数据 1主要内容l 7.1 概述 l 7.2 数据操作l 7.3 检索数据概述 l 7.4 使用select子句进行简单查询 l 7.5 使用where子句选择数据l 7.6 聚合函数l 7.7 分组查询 l 7.8 排序l 7.9 连接查询l 7.10 子查询技术l 7.11 集合运算l 本章小结2 27.1 概述 l 表创建以后,往往只是一个没有数据的空表。因此,向表中输入数据可能是创建表之后首先要执行的操作。无论表中是否有数据,都可以根据需要向表中添加数据。当表中的数据不合适或者出现了错误时,可以更新表中的数据。如果表中的数据不再需要了,则可以删除这些数据。l 打开
2、SQL Server Management Studio,选中需要更新数据的表,如student,单击右键,选择“编辑前200行”,可以打开student表,查看并修改表数据,如图7.1所示。该窗口显示了表中已经存储的数据,数据列表的最后有一个空行。插入数据时,将光标定位在空白行某个字段的编辑框中,就可以输入新数据。编辑完成后,单击其他某一行,即可提交新数据。3 37.2 数据操作l 7.2.1 用INSERT语句插入数据l 7.2.2 用UPDATE语句更新数据l 7.2.3 用DELETE语句删除数据4 47.2.1 用INSERT语句插入数据l INSERT语句的基本格式:INSERT
3、INTO table_or_view_name(column_list)VALUES(DEFAULT|NULL|expression,.n),.n)|derived_table|DEFAULT VALUES 5 5各参数含义如下:l table_or view_name:要接收数据的表或视图的名称;l(column_list):要在其中插入数据的一列或多列的列表。必须用括号将 column_list 括起来,并且用逗号进行分隔。如果某列不在 column_list 中,则SQL SERVER必须能够基于该列提供一个值;否则不能加载行。如果列满足下面的条件,则SQL SERVER将自动为列提供值
4、:l 具有 IDENTITY 属性。使用下一个增量标识值。l 有默认值。使用列的默认值。l 具有 timestamp 数据类型。使用当前的时间戳值。l 可为 NULL值。使用 NULL 值。l 是计算列。使用计算值。6 6l VALUES:引 入 要 插 入 的 数 据 值 的 列 表。对 于 column_list(如果已指定)或表中的每个列,都必须有一个数据值。并且必须用圆括号将值列表括起来。l DEFAULT:强制数据库引擎加载为列定义的默认值。如果某列并不存在默认值,并且该列允许NULL值,则插入 NULL。l derived_table:任何有效的 SELECT 语句,它返回将加载到
5、表中的数据行。l DEFAULT VALUES:强制新行包含为每个列定义的默认值。7 7(1)插入所有列数据 l【例7.1】在Student表中插入一条新的学生信息。INSERT INTO StudentVALUES(8,曾玉林,男,1991-2-25,计算机,20,NULL,123456,NULL)l 注意:l 向表中插入数据时,数字数据可以直接插入,但是字符数据和日期数据要用英文单引号引起来,不然就会提示系统错误。l 当VALUES子句中数据值个数和顺序与表中定义的列的个数和顺序完全一致时,(column_list)可以省略。否则,不能省略。8 8(2)插入部分列l【例7.2】在Stude
6、nt表中插入一条新的学生信息:学号为9,姓名李林,性别为男,院系为计算机,周学时为18。执行下面语句:INSERT INTO Student(studentID,studentName,sex,speciality,credithour)VALUES(9,李林,男,计算机,18)l 注意,该语句不能写成:INSERT INTO StudentVALUES(9,李林,男,计算机,18)因为值列表的值个数与表中列的个数不一致 9 9(3)插入多行数据 l 使用INSERT INTO derived_table命令可以一次插入多行数据。derived_table可以是任何有效的 SELECT 语句。
7、l【例7.3】将学生基本信息(学号、姓名、性别)插入到学生名册表stu_Info中。INSERT INTO stu_InfoSELECT studentID,studentName,sex FROM studentl 使用INSERTINTO形式插入多行数据时,需要注意下面两点:l 要插入的数据表必须已经存在;l 要插入数据的表结构必须和SELECT语句的结果集兼容,也就是说,二者的列的数量和顺序必须相同、列的数据类型必须兼容等。10 10(4)插入标识列数据l 标识列的值由系统自动计算并保存在相应的记录中,因此不能手工插入。在使用INSERT命令向包含有标识列的表插入数据时,可直接忽略标识列
8、。l【例7.4】将一条学生信息插入到表StuInfo中(表结构参考6.4.1节表6.2)。INSERT INTO StuInfoVALUES(张羽,女)l 表StuInfo中有3列,第一列学号为标识列,插入数据时忽略不计,该列的值由系统自动生成。11 11l 那么标识列的数据是不是永远都没有办法手工更新呢?不是的。如果想手工更新学号的值,可以通过以下方法实现。l 首先,使用SET命令打开INSERT_IDENTIYT选项:SET IDENTITY_INSERT student ONl 然后使用INSERT命令插入数据。此时一定要显式指出更新哪些列数据,包括标识列,即列列表不能省略。命令如下:I
9、NSERT INTO StuInfo(stuID,stuName,sex)VALUES(3,汪华,男)l 注意:INSERT_IDENTIYT选项为ON时,系统将不再自动为标识列填入值。如果想恢复自动输入,需要再次执行SET IDENTITY_INSERT student OFF,将IDENTITY_ INSERT选项设置为OFF。12 127.2.2 用UPDATE语句更新数据l 可以使用UPDATE语句更新表中已经存在的数据,该语句既可以一次更新一行数据,也可以一次更新多行数据。l UPDATE语句的基本语法如下:UPDATE TOP(n)PERCENT table_or_view_nam
10、eSET column_name=expression|DEFAULT|NULL|variable=column+=|-=|*=|/=|%=|&=|=|=expression WHERE l 参数说明:l TOP(n)PERCENT:指定将要更新的行数或行百分比;l table_or view_name:要更新行的表或视图的名称;l SET:指定要更新的列或变量名称的列表l WHERE:指定条件来限定所更新的行。l:为要更新的行指定需满足的条件。13 13l 当执行UPDATE语句时,如果使用了WHERE子句,则指定表中所有满足WHERE子句条件的行都将被更新,如果没有指定WHERE子句,则表
11、中所有的行都将被更新。l【例7.5】将学生表Student中“李林”所属的学院由“计算机”改为“数学”。UPDATE Student SET speciality=数学WHERE studentName=李林l 更新数据时,每个列既可以被直接赋值,也可以通过计算得到新值。l【例7.6】将所有计算机系学生的选课成绩加5分。UPDATE Grade SET grade=grade+5WHERE studentID IN(SELECT studentID FROM student WHERE speciality=计算机)14 147.2.3 用DELETE语句删除数据l 当表中的数据不再需要的时候
12、,可以将其删除。一般情况下,可以使用DELETE语句删除表中的数据。该语句可以从一个表中删除一行或多行数据。l 使用DELETE语句删除数据的基本语法形式如下:l DELETE FROM table_namel WHERE search_condition l 在DELETE语句中,如果使用了WHERE子句,表示从指定的表中删除满足WHERE子句条件的数据行。如果没有使用WHERE子句,则表示删除指定表中的全部数据。15 15l【例7.7】删除student表中姓名为“李林”的数据记录。DELETE FROM studentWHERE studentName=李林l 如果想删除Exam表中的所
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库技术与应用SQL Server 2008第2版第7章 操纵数据表中的数据 数据库技术 应用 SQL 2008 操纵 数据表 中的 数据
限制150内