第7章表的操作 2021/2/20 Information College. ChangJun
1 2021/2/20 Information College · ChangJun 第7章 表的操作
[本章概要] 71表数据的增加一一插入记录 72表数据的删除—删除记录 73表数据的修改一一更新记录 74表数据的检索一一查询记录 75视图 2021/2/20 Information College. ChangJun
2 2021/2/20 Information College · ChangJun [本章概要] 7.1 表数据的增加——插入记录 7.2 表数据的删除——删除记录 7.3 表数据的修改——更新记录 7.4 表数据的检索——查询记录 7.5 视图
7.1表数据的增加 插入记录 7.1.1使用企业管理器 7.1.2使用 Transact-SQL语言(DML) 将新行添加到表。 语法: INSERT[INTO][() VALUES(值列表) 其中:中的列名必须是表定义中有的 列名,值列表中的值可以是常量也可以是NULL 值,各值之间用逗号分隔。 2021/2/20 Information College. ChangJun
3 2021/2/20 Information College · ChangJun 7.1 表数据的增加 —— 插入记录 7.1.1 使用企业管理器 7.1.2 使用Transact-SQL语言(DML) 将新行添加到表。 语法: INSERT [INTO] [()] VALUES (值列表) 其中:中的列名必须是表定义中有的 列名,值列表中的值可以是常量也可以是NULL 值,各值之间用逗号分隔
示例 1、使用简单的 INSERT 例1.将新生记录(95020,陈冬,男,信息 系,18岁)插入到S表中。 INSERT INTO Student values (9521105′,“陈冬’,男,18,’信息系) 2021/2/20 Information College. ChangJun
4 2021/2/20 Information College · ChangJun 示例 1、使用简单的 INSERT 例1.将新生记录(95020,陈冬,男,信息 系,18岁)插入到S表中。 INSERT INTO Student VALUES (‘9521105’, ‘陈冬’, '男', 18, '信息系')
2、插入与列顺序不同的数据 例2.将新课程, cname为“数据库基础” cno为“c04”、 semeter为6、 ccredit为6的记 录插入C表中。 INSERT INTO C(cname, Cno, semester ccredit) VALUES(‘数据库基础’,‘c04’,6,6) 注:对于例2,由于插入与列顺序不同的数据, 因此此时必须列出列名。 2021/2/20 Information College. ChangJun
5 2021/2/20 Information College · ChangJun 2、插入与列顺序不同的数据 例2.将新课程,cname为“数据库基础”、 cno为“c04”、 semeter为6、ccredit为6的记 录插入C表中。 INSERT INTO C(cname, Cno,semester, ccredit) VALUES(‘数据库基础’, ‘c04’,6,6) 注:对于例2,由于插入与列顺序不同的数据, 因此此时必须列出列名
3、插入值少于列个数的数据 例3.在SC表中插入一新记录,成绩暂缺 INSERT INTO SC (Sno, Cno) VALUES(9521105,’c01) 注:对于例3,由于提供的值个数与表中的列 个数不一致,因此此时必须列出列名。而且SC 中的 Grade必须允许为NUL。 此句实际插入的值为:(95211053,’c01 NULL) 2021/2/20 Information College. ChangJun
6 2021/2/20 Information College · ChangJun 3、插入值少于列个数的数据 例3.在SC表中插入一新记录,成绩暂缺。 INSERT INTO SC(Sno, Cno) VALUES('9521105', 'c01') 注:对于例3,由于提供的值个数与表中的列 个数不一致,因此此时必须列出列名。而且 SC 中的Grade必须允许为NULL。 此句实际插入的值为:('9521105', 'c01', NULL)
7.2表数据的删除 删除记录 7.2.1使用企业管理器 7.2.2使用 Transac-SQL语言(DML) 当确定不再需要某些记录时,就可以用删除 语句。 DELETEI FROM][ WHERE 其中:说明了要删除哪个表中的数据。 WHERE子句说明要删除表中的哪些记录一一只删除满 足 WHERE条件的记录。如果省略 WHERE子句,则是 无条件删除,表示要删除表中的全部记录。 2021/2/20 Information College. ChangJun
7 2021/2/20 Information College · ChangJun 7.2 表数据的删除 —— 删除记录 7.2.1 使用企业管理器 7.2.2 使用Transac-SQL语言(DML) 当确定不再需要某些记录时,就可以用删除 语句。 DELETE [ FROM ] [WHERE ] 其中:说明了要删除哪个表中的数据。 WHERE子句说明要删除表中的哪些记录――只删除满 足WHERE条件的记录。如果省略WHERE子句,则是 无条件删除,表示要删除表中的全部记录
示例 1、无条件删除 无条件删除是删除表中全部数据,但保留表 的结构。 例1.删除所有学生的选课记录 DELETE FROM SC SC成空表 2、有条件删除 (1)基于本表条件的删除。 例2.删除所有不及格学生的修课记录。 DELETE FROM SC WHERE Grade< 60 (2)基于其他表条件的删除(学过查询后再讲) 2021/2/20 Information College. ChangJun
8 2021/2/20 Information College · ChangJun 示例 1、无条件删除 无条件删除是删除表中全部数据,但保留表 的结构。 例1.删除所有学生的选课记录。 DELETE FROM SC -- SC成空表 2、有条件删除 (1)基于本表条件的删除。 例2.删除所有不及格学生的修课记录。 DELETE FROM SC WHERE Grade < 60 (2)基于其他表条件的删除(学过查询后再讲)
7.3表数据的修改 更新记录 7.3.1使用企业管理器 7.3.2使用 Transac-SQL语言(DM) 更改表中的现有数据 语法: UPDATESET[…m TWHERE给出了需要修改数据的表的名称。SET 子句指定要修改的列,表达式指定修改后的新值。 WHERE子句用于指定需要修改表中的哪些记录。如果 省略 WHERE子句,则是无条件更新,表示要修改SET 中指定的列的全部值。 2021/2/20 Information College. ChangJun
9 2021/2/20 Information College · ChangJun 7.3 表数据的修改 —— 更新记录 7.3.1 使用企业管理器 7.3.2 使用Transac-SQL语言(DML) 更改表中的现有数据 语法: UPDATE SET [,… n] [WHERE ] 其中:给出了需要修改数据的表的名称。SET 子句指定要修改的列,表达式指定修改后的新值。 WHERE子句用于指定需要修改表中的哪些记录。如果 省略WHERE子句,则是无条件更新,表示要修改SET 中指定的列的全部值
示例 1.无条件更新 例1.将所有学生的年龄加1。 UPDATE Student SET Sage= Sage+ 1 2.有条件更新 (1)基于本表条件的更新。 例2.将“9512101’学生的年龄改为21岁。 UPDATE Student SET Sage =21 WHERE Sno =9512101 (2)基于其他表条件的更新(学过查询后再讲) 2021/2/20 Information College. ChangJun
10 2021/2/20 Information College · ChangJun 示例 1.无条件更新 例1.将所有学生的年龄加1。 UPDATE Student SET Sage = Sage + 1 2.有条件更新 (1)基于本表条件的更新。 例2.将‘9512101’学生的年龄改为21岁。 UPDATE Student SET Sage = 21 WHERE Sno = '9512101' (2)基于其他表条件的更新(学过查询后再讲)