项目4 数据插入、删除、修改和查询
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Page 15
任务1 插入、修改、删除表数据
五、任务实施 3.使用INSERT…SELECT语句 要求:先建立Product备用表格Producr1,然后使用INSERT…SELECT语句 的方法插入数。 据INSERT...SELECT语句利用SELECT子句的结果集与INSERT语句结合使 用,可以将结果集数据插入到制定的表中,该方法可以将一条或多条数据 插入表中,也可用于将一个或多个其他表或者视图的值添加到表中。 (2)在建立备用表格的基础上利用INSERT…SELECT语句插入数据 Insert into product1 (ProCode,CatCode,ProName,Price,StockNum,Description) Select ProCode,CatCode,ProName,Price,StockNum,Description From product where price<100
创建数据库和表的目的在于存储数据,系统开发过程中,更多的时候 是对表的数据进行管理,包括数据的插入、修改(更新)、删除、查 询。通常这些操作都是通过SQL语句来完成的,所以本项目需要重点 掌握应用SQL语句来进行数据的管理。 数据查询是数据库的重要技术,是数据库的主要应用目的;熟练掌握 各种查询为数据库应用系统的开发奠定基础;因此,本项目用三个任 务详细学习各种查询。
任务1 插入、修改、删除表数据
五、任务实施 1.基本格式插入实例 要求:使用INSERT语句向Product表添加两条记录。 程序代码如下: insert into product (ProCode,CatCode,ProName,Price,StockNum,Description) Values ('A0103','A01','金士顿16G',200,100,'略') Insert into product (ProCode,CatCode,ProName,Price,StockNum,Description) Values ('A0208','A02','品胜充电器',154,100,'略')
Page 8
任务1 插入、修改、删除表数据
四、知识要点 (二)数据更新 Transact-SQL语言中的UPDATE语句用于更新修改表中的数据,该语句 可以用于一次修改表中一行或多行数据,其语法格式如下: UPDATE table_name SET { column_name = { expression | DEFAULT | NULL } | @variable = expression | @variable = column_name = expression } [ ,...n ] [ FROM { < table_source > } [ ,...n ] ] [ WHERE < search_condition > ]
Page
6
任务1 插入、修改、删除表数据
四、知识要点 (一)数据插入 Transact-SQL语言中主要使用INSERT语句向表或视图中插入新的数据 行。用于查询的SELECT语句也可用于向表中插入数据。 表数据的插入的语法格式如下: INSERT [ INTO ] {table_name | view_name} { (column_name [ ,...n] ) { VALUES({ DEFAULT | NULL | expression } [ ,...n] )| derived_table } }
Page
11
任务1 插入、修改、删除表数据
四、知识要点 (3)删除数据
TRUNCATE TABLE语句的语法格式如下: TRUNCATE TABLE [{database_name.[schema_name]. | schema_name.}]table_name [;] 其中,table_name表示要删除数据的表的名称。 TRUNCATE TABLE语句的语法说明如下: (1)TRUNCATE TABLE语句可删除指定表中的所有数据行,表结构及其所有 索引继续保留,为该表所定义的约束、规则、默认值和触发器仍然有效。 (2)与DELETE语句相比,TRUNCATE TABLE语句删除速度更快。因为 DELETE语句在每删除一行时都要把删除操作记录到日志中,而TRUNCATE TABLE语句则是通过释放表数据页面的方法来删除表中数据,它只在释放页 面后做一次事务日志。 (3)使用TRUNCATE TABLE语句删除数据后,这些行时不可恢复的,而 DELETE操作则可回滚,能够恢复原来数据。 (4)TRUNCATE TABLE语句不能操作日志,它不能激活触发器,所有 TRUNCATE TABLE语句不能删除一个被其他表通过FOREIGN KEY约束所 参照的表。 Page 12
Page
5
任务1 插入、修改、删除表数据
三、任务分析 此任务的需求主要是进行表数据的管理,主要包括表数据的插入、修 改和删除。通常,表和视图数据管理可使用SQL Server2008管理平 台和Transact-SQL语言两种方法来完成。 使用SQL server2008管理平台管理表数据的方法是:启动SQL Server2008管理平台,在“对象资源管理器”中逐级展开其中的树形 目录,在GoodsDB数据库下右击要数据管理的具体表格(如Product 表、Account表),从弹出的快捷菜单中选择“打开表(O)”命令, 而后即可进行表数据的添加、更新与删除。 后文中将会具体介绍使用Transact-SQL语言进行数据库管理的操作。
Page
9
任务1 插入、修改、删除表数据
四、知识要点 命令说明: (1)UPDATE table_name:指定需要更新的表的名称为table_name所表示的 名称。 (2)SET:该子句表示对指定的列或变量名称赋予新值。 (3)column_name = { expression | DEFAULT | NULL}:将变量、字符、表达 式的值,或默认值,或空值替换column_name所指定列的现有值。不能修改 标识列数据。 (4)@variable = expression:指定将变量、字符、表达式的值赋予一个已经声 明的局部变量。(局部变量见项目5“T-SQL语言编程”任务) (5)@variable = column_name = expression:指定将变量、字符、表达式的 值同时赋予一列和一个变量。 (6)FROM { < table_source >:表示要依据一个表(可以是本表或其他表)中 的数据进行更新操作。 (7)WHERE < search_condition >:指定修改数据的条件,如果省略此选项, 则修改每一行中的该列数据。有WHERE子句时,仅修改符合WHERE条件的 行。 (8)在一个UPDATE中,可以一次修改多列的数据,只要在SET后面写入多个 列名及其表达式,每个用逗号隔开。 (9)UPDATE不能修改具有IDENTITY属性的列值。
SQL Server2008数据库项目案例教程
项目4
数据插入、删除、修改和查询
技能目标及知识目标
√熟悉数据增加、删除、修改的SQL语法; √掌握数据增加、删除、的方法 √掌握简单查询,条件查询、连接查询、嵌套查询的方法; √掌握聚合函数的用法; √掌握分组筛选,计算汇总的方法;
Page
2
项目导引
Page
14
wk.baidu.com
任务1 插入、修改、删除表数据
五、任务实施 3.使用INSERT…SELECT语句 要求:先建立Product备用表格Producr1,然后使用INSERT…SELECT语句的方法插 入数。 据INSERT...SELECT语句利用SELECT子句的结果集与INSERT语句结合使用,可以 将结果集数据插入到制定的表中,该方法可以将一条或多条数据插入表中,也可 用于将一个或多个其他表或者视图的值添加到表中。 (1)新建Product备用表格Product1 CREATE TABLE Product1 (ProCode char(5) NOT NULL, CatCode char(3) NOT NULL, ProName varchar(30) NOT NULL, Price decimal(10, 2) NULL, StockNum int NULL, Description varchar(200) NULL, CONSTRAINT PK_Product1 PRIMARY KEY(procode)) ON [PRIMARY]
Page
3
任务1 插入、修改、删除表数据
一、任务背景 表数据操作。 DML、DDL、DCL的概念。
Page
4
任务1 插入、修改、删除表数据
二、任务需求 1. 使用INSERT语句向Product表添加两条记录; 2. 使用省略INSERT子句列表方法向Product表添加两条数据; 3. 建立Product备用表格Producr1,然后使用INSERT…SELECT语句的 方法插入数据; 4. 使用SELECT…INTO语句完成新建“飞毛腿商品”表格的同时插入数 据; 5. 将Product表格中所有Catcode为“A01”的商品的Price降低5元; 6. 使用DELETE语句删除Product表格中价格小于100的商品; 7. 使用TRUNCATE TABLE语句删除Product1表格中的剩余数据。
Page 10
任务1 插入、修改、删除表数据
四、知识要点 (三)数据删除 Transact-SQL语言中删除表中数据的方法有两种,在指定的表或视图中 删除满足给定条件的数据可以使用DELETE语句;如果要清除表中全 部数据,则还可以使用TRUNCATE TABLE语句。DELETE语句的语 法如下: DELETE[ FROM ] { table_name | view_name } [ FROM { < table_source >}] [ WHERE < search_condition >] 命令说明: (1)DELETE语句中的语法项目含义与UPDATE语句相同。 (2)WHERE子句给出删除数据所必须满足的条件,省略WHERE子句 时将删除所有数据。
Page
7
任务1 插入、修改、删除表数据
四、知识要点 (一)数据插入 命令说明: (1)INSERT [ INTO ]:指定要向表中插入数据,INTO可以省略。 (2){table_name | view_name}:表示要插入数据的表或视图的名称。 (3)(column_name [ ,...n]):表示要插入数据的表或视图的列名清单。 (4)VALUES :该关键字指定要插入数据的列表清单。 (5){ DEFAULT | NULL | expression } [ ,...n]:该数据列表清单中包括 默认值、空值和表达式的数量、次序和数据类型必须与列清单中指定 列的定义相匹配。如果在VALUES清单中按表中定义的列的顺序提供 每列的值,则可以省略列清单。 (6)derived_table:这是一个导入表中数据的SELECT子句。通常 INSERT命令一次只能在表中插入一行数据,但可以采用SELECT子 句替代VALUES子句,将一张表中的多行数据导入到要插入数据的表 中。
Page
13
任务1 插入、修改、删除表数据
五、任务实施 2.省略INSERT子句列表 要求:使用省略INSERT子句列表方法插入两条数据。 从表数据的插入的语法格式中可以看出,INSERT INTO子句后可以不带列名, 但若不带指定列的列表,输入值的顺序必须与表或者视图中的列顺序一致, 数据类型、数据精度和小数位数必须与列的列表中对应列一致。 程序代码如下,结果如图4.1.4所示: Insert into product Values ('A0104','A01','乐风数据线',24,56,'略') Insert into product (ProCode,CatCode,ProName,Price,StockNum,Description) Values ('A0308','A03','乐风手机音响',98,200,'略')
任务1 插入、修改、删除表数据
五、任务实施 3.使用INSERT…SELECT语句 要求:先建立Product备用表格Producr1,然后使用INSERT…SELECT语句 的方法插入数。 据INSERT...SELECT语句利用SELECT子句的结果集与INSERT语句结合使 用,可以将结果集数据插入到制定的表中,该方法可以将一条或多条数据 插入表中,也可用于将一个或多个其他表或者视图的值添加到表中。 (2)在建立备用表格的基础上利用INSERT…SELECT语句插入数据 Insert into product1 (ProCode,CatCode,ProName,Price,StockNum,Description) Select ProCode,CatCode,ProName,Price,StockNum,Description From product where price<100
创建数据库和表的目的在于存储数据,系统开发过程中,更多的时候 是对表的数据进行管理,包括数据的插入、修改(更新)、删除、查 询。通常这些操作都是通过SQL语句来完成的,所以本项目需要重点 掌握应用SQL语句来进行数据的管理。 数据查询是数据库的重要技术,是数据库的主要应用目的;熟练掌握 各种查询为数据库应用系统的开发奠定基础;因此,本项目用三个任 务详细学习各种查询。
任务1 插入、修改、删除表数据
五、任务实施 1.基本格式插入实例 要求:使用INSERT语句向Product表添加两条记录。 程序代码如下: insert into product (ProCode,CatCode,ProName,Price,StockNum,Description) Values ('A0103','A01','金士顿16G',200,100,'略') Insert into product (ProCode,CatCode,ProName,Price,StockNum,Description) Values ('A0208','A02','品胜充电器',154,100,'略')
Page 8
任务1 插入、修改、删除表数据
四、知识要点 (二)数据更新 Transact-SQL语言中的UPDATE语句用于更新修改表中的数据,该语句 可以用于一次修改表中一行或多行数据,其语法格式如下: UPDATE table_name SET { column_name = { expression | DEFAULT | NULL } | @variable = expression | @variable = column_name = expression } [ ,...n ] [ FROM { < table_source > } [ ,...n ] ] [ WHERE < search_condition > ]
Page
6
任务1 插入、修改、删除表数据
四、知识要点 (一)数据插入 Transact-SQL语言中主要使用INSERT语句向表或视图中插入新的数据 行。用于查询的SELECT语句也可用于向表中插入数据。 表数据的插入的语法格式如下: INSERT [ INTO ] {table_name | view_name} { (column_name [ ,...n] ) { VALUES({ DEFAULT | NULL | expression } [ ,...n] )| derived_table } }
Page
11
任务1 插入、修改、删除表数据
四、知识要点 (3)删除数据
TRUNCATE TABLE语句的语法格式如下: TRUNCATE TABLE [{database_name.[schema_name]. | schema_name.}]table_name [;] 其中,table_name表示要删除数据的表的名称。 TRUNCATE TABLE语句的语法说明如下: (1)TRUNCATE TABLE语句可删除指定表中的所有数据行,表结构及其所有 索引继续保留,为该表所定义的约束、规则、默认值和触发器仍然有效。 (2)与DELETE语句相比,TRUNCATE TABLE语句删除速度更快。因为 DELETE语句在每删除一行时都要把删除操作记录到日志中,而TRUNCATE TABLE语句则是通过释放表数据页面的方法来删除表中数据,它只在释放页 面后做一次事务日志。 (3)使用TRUNCATE TABLE语句删除数据后,这些行时不可恢复的,而 DELETE操作则可回滚,能够恢复原来数据。 (4)TRUNCATE TABLE语句不能操作日志,它不能激活触发器,所有 TRUNCATE TABLE语句不能删除一个被其他表通过FOREIGN KEY约束所 参照的表。 Page 12
Page
5
任务1 插入、修改、删除表数据
三、任务分析 此任务的需求主要是进行表数据的管理,主要包括表数据的插入、修 改和删除。通常,表和视图数据管理可使用SQL Server2008管理平 台和Transact-SQL语言两种方法来完成。 使用SQL server2008管理平台管理表数据的方法是:启动SQL Server2008管理平台,在“对象资源管理器”中逐级展开其中的树形 目录,在GoodsDB数据库下右击要数据管理的具体表格(如Product 表、Account表),从弹出的快捷菜单中选择“打开表(O)”命令, 而后即可进行表数据的添加、更新与删除。 后文中将会具体介绍使用Transact-SQL语言进行数据库管理的操作。
Page
9
任务1 插入、修改、删除表数据
四、知识要点 命令说明: (1)UPDATE table_name:指定需要更新的表的名称为table_name所表示的 名称。 (2)SET:该子句表示对指定的列或变量名称赋予新值。 (3)column_name = { expression | DEFAULT | NULL}:将变量、字符、表达 式的值,或默认值,或空值替换column_name所指定列的现有值。不能修改 标识列数据。 (4)@variable = expression:指定将变量、字符、表达式的值赋予一个已经声 明的局部变量。(局部变量见项目5“T-SQL语言编程”任务) (5)@variable = column_name = expression:指定将变量、字符、表达式的 值同时赋予一列和一个变量。 (6)FROM { < table_source >:表示要依据一个表(可以是本表或其他表)中 的数据进行更新操作。 (7)WHERE < search_condition >:指定修改数据的条件,如果省略此选项, 则修改每一行中的该列数据。有WHERE子句时,仅修改符合WHERE条件的 行。 (8)在一个UPDATE中,可以一次修改多列的数据,只要在SET后面写入多个 列名及其表达式,每个用逗号隔开。 (9)UPDATE不能修改具有IDENTITY属性的列值。
SQL Server2008数据库项目案例教程
项目4
数据插入、删除、修改和查询
技能目标及知识目标
√熟悉数据增加、删除、修改的SQL语法; √掌握数据增加、删除、的方法 √掌握简单查询,条件查询、连接查询、嵌套查询的方法; √掌握聚合函数的用法; √掌握分组筛选,计算汇总的方法;
Page
2
项目导引
Page
14
wk.baidu.com
任务1 插入、修改、删除表数据
五、任务实施 3.使用INSERT…SELECT语句 要求:先建立Product备用表格Producr1,然后使用INSERT…SELECT语句的方法插 入数。 据INSERT...SELECT语句利用SELECT子句的结果集与INSERT语句结合使用,可以 将结果集数据插入到制定的表中,该方法可以将一条或多条数据插入表中,也可 用于将一个或多个其他表或者视图的值添加到表中。 (1)新建Product备用表格Product1 CREATE TABLE Product1 (ProCode char(5) NOT NULL, CatCode char(3) NOT NULL, ProName varchar(30) NOT NULL, Price decimal(10, 2) NULL, StockNum int NULL, Description varchar(200) NULL, CONSTRAINT PK_Product1 PRIMARY KEY(procode)) ON [PRIMARY]
Page
3
任务1 插入、修改、删除表数据
一、任务背景 表数据操作。 DML、DDL、DCL的概念。
Page
4
任务1 插入、修改、删除表数据
二、任务需求 1. 使用INSERT语句向Product表添加两条记录; 2. 使用省略INSERT子句列表方法向Product表添加两条数据; 3. 建立Product备用表格Producr1,然后使用INSERT…SELECT语句的 方法插入数据; 4. 使用SELECT…INTO语句完成新建“飞毛腿商品”表格的同时插入数 据; 5. 将Product表格中所有Catcode为“A01”的商品的Price降低5元; 6. 使用DELETE语句删除Product表格中价格小于100的商品; 7. 使用TRUNCATE TABLE语句删除Product1表格中的剩余数据。
Page 10
任务1 插入、修改、删除表数据
四、知识要点 (三)数据删除 Transact-SQL语言中删除表中数据的方法有两种,在指定的表或视图中 删除满足给定条件的数据可以使用DELETE语句;如果要清除表中全 部数据,则还可以使用TRUNCATE TABLE语句。DELETE语句的语 法如下: DELETE[ FROM ] { table_name | view_name } [ FROM { < table_source >}] [ WHERE < search_condition >] 命令说明: (1)DELETE语句中的语法项目含义与UPDATE语句相同。 (2)WHERE子句给出删除数据所必须满足的条件,省略WHERE子句 时将删除所有数据。
Page
7
任务1 插入、修改、删除表数据
四、知识要点 (一)数据插入 命令说明: (1)INSERT [ INTO ]:指定要向表中插入数据,INTO可以省略。 (2){table_name | view_name}:表示要插入数据的表或视图的名称。 (3)(column_name [ ,...n]):表示要插入数据的表或视图的列名清单。 (4)VALUES :该关键字指定要插入数据的列表清单。 (5){ DEFAULT | NULL | expression } [ ,...n]:该数据列表清单中包括 默认值、空值和表达式的数量、次序和数据类型必须与列清单中指定 列的定义相匹配。如果在VALUES清单中按表中定义的列的顺序提供 每列的值,则可以省略列清单。 (6)derived_table:这是一个导入表中数据的SELECT子句。通常 INSERT命令一次只能在表中插入一行数据,但可以采用SELECT子 句替代VALUES子句,将一张表中的多行数据导入到要插入数据的表 中。
Page
13
任务1 插入、修改、删除表数据
五、任务实施 2.省略INSERT子句列表 要求:使用省略INSERT子句列表方法插入两条数据。 从表数据的插入的语法格式中可以看出,INSERT INTO子句后可以不带列名, 但若不带指定列的列表,输入值的顺序必须与表或者视图中的列顺序一致, 数据类型、数据精度和小数位数必须与列的列表中对应列一致。 程序代码如下,结果如图4.1.4所示: Insert into product Values ('A0104','A01','乐风数据线',24,56,'略') Insert into product (ProCode,CatCode,ProName,Price,StockNum,Description) Values ('A0308','A03','乐风手机音响',98,200,'略')