目的,学会用 SQL语句对表记录的插入、修改、删除。
模块四
教学流程
课题一 Insert 语句
的基本语法
课题二 Update 语句
的基本语法
课题三 Delete 语句
的基本语法
任务一 插入
一行数据
任务二 插入
多行数据
任务一 修改
一列数据
任务二 修改
多列数据
任务一 删除
一行数据
任务二 删除
多行数据
Insert 语句
小结与提示
Update 语句
小结与提示
Delete 语句
小结与提示
引言,提出问题
引出主要内容。
总结本专题内容
期待解决
的问题
理论作业
实训作业
引 言
前面我们介绍了如何在 SQL Server中创
建数据库和表,那么当数据库和表建好后,
又怎样向其中添加数据呢?当数据添加到表
中,又怎样修改数据呢?对不需要的数据行,
又怎样去删除呢?这些问题,就是本专题要
学习的内容,即由数据操纵语言 DML 完成的
操作。
返回
主要内容介绍
--数据操纵语言 DML
? 插入语句, INSERT语句
? 修改语句,UPDATE语句
? 删除语句,DELETE语句
INSERT语句 —基本功能与语法
? 功能:
– 一行或者多行数据插入到表中 。
– 把从其它表中所选择的数据插入到表中。
? 语法:
INSERT INTO <表名 > [(<列名表 >)]
VALUES (<对应列的值表 >)
其中:
– <表名 >是要插入数据的表名。
– <列名表 >这是一个可选项,它是要插入数据值的列名的列表。
– <对应列的值表 >这是按照表定义或者 <列名表 >所规定次序的列值表。
返回
任务一 INSERT语句 --插入一行数据
? 示例 1,往班级表中插入下表所示的一行数据。
班级表
班级编号
(BJBH)
班级名称
(BJMC)
班级人数
(BJRS)
在 【 查询分析器 】 中执行下列 SQL语句:
041022021 电子商务 1班 52
insert into bj values (‘041022021’,‘电子商务 1班’,52)
在 【 查询分析器 】 执行情况如下:
(所影响的行数为 1 行)
这说明要插入的数据行已经插入到数据库表中。
返回
? 示例 2,往学生基本信息表中插入下表所示的一行数据。
学生基本信息表
在 【 查询分析器 】 中执行下列 SQL语句:
insert into stu values (‘041022021001’,‘曹静’,‘女’,null,
‘0410222021',null,null,null,null)在 【 查询分析器 】 执行情况如下:
(所影响的行数为 1 行)
这说明要插入的数据行已经插入到数据库表中。
041022021001 曹静 女 041022021
学号
( xh)
姓名
(xm)
性别
(xb)
出生日期
(csrq)
班级编号
(bjbh)
注册
(zc)
总成绩
(zcj)
名次
(mc)
? 插入操作需要注意以下问题,
– Values子句中列的个数必须与表定义的个数相同 。
– Values子句中列的数据类型必须与表定义的数据类型相容 。
? 数值类型:总成绩列 (zcj),直接输入数值就可以了。
? 字符型:例如,学号( xh)、姓名 (xm)等要使用单引号。
? 日期型:日期型要使用单引号引起来,一般缺省格式
为:’ YYYY-MM-DD HH:MM:SS?。
– 如果对应的某一列没有值,也就是该列值为空( null),那么应该
在 INSERT语句中使用 null来表示插入空值。
– 不需要对整个表中的所有列全部插入数据,这时需要使用 <列名表
>,但要注意列名顺序 与数据之间的相互对应。
? 示例 3
? 实现原理:使用子查询可以实现一次插入多行,实际上把
子查询的结果作为数据插入到表中 。
? 语句格式为:
insert into <表名 >
[(<列名表 >)] <子查询 >
其中:
– <表名 >是要插入数据的表名。
– <列名表 >这是一个可选项,它是要插入数据值的列名
的列表。
– <子查询 >这是一个查询语句( SELECT)。
任务二 INSERT语句 --插入多行数据
返回
? 示例 4,首先建立一张名为 xuesheng的表,执行下列语句:
create table xuesheng(
xuehao char(10) not null,xingming char(8))
使用前面介绍的 INSERT语句插入三行数据,如下所示:
insert into xuesheng values(?01?,?张三’ )
insert into xuesheng values(?02?,?李四’ )
insert into xuesheng values(?03?,?王五’ )
则得到下列表格,xuesheng表
xuehao xingming
01 张三
02 李四
03 王五
? 示例 4,(续上 )下面又建立了一张名为 student的空表,
create table student(
sno char(10) not null,sname char(8))
利用 xuesheng表中数据,一次向 student表插入多行,
insert into student(sno,sname)
select xuehao,xingming from xuesheng
Student表
sno sname
01 张三
02 李四
03 王五
INSERT语句 --小结与提示
? 利用 insert语句插入一行数据时一定要注意列名表与
values后面数据的对应关系。
– 个数的对应
– 顺序的对应
– 数据类型的对应
? 利用 insert语句插入多行数据时一定要注意 <列名表 >与
select子查询后面列名之间的对应关系。
返回
UPDATE语句 —基本功能与语法
? 功能:
– 修改已经存在的数据。
? 语法:
update <表名 >
set <列 >=<值 > [,<列 >=<值 >]
[where <定位条件 >]
其中:
– <表名 >是要修改数据的表名。
– <列 >是要修改数据的列名。
– <值 >是修改之后的新列值。
– <定位条件 >是定位被修改数据行的条件。
返回
任务一 UPDATE语句 --修改一列数据
? 示例 5:把班级表( bj)中“计算机软件”班的班级人数 (bjrs)
改为,35”人。在 【 查询分析器 】 中执行下列 SQL语句:
update bj
set bjrs=35
where bjmc=?计算机软件’
? 示例 6:在成绩表 (cj)中把课程编号 (kcbh)为的,10920001,
的平时成绩 (pscj)加 2分。则执行下列 SQL语句:
update cj
set pscj=pscj+2
where kcbh=“10920001”
返回
? 如果 UPDATE语句的 SET子句有多对列名和列值,则能修
改多列数据。
? 示例 7:把班级表( bj)中班级编号 (bjbh)为
,041022051,班的班级名称 (bjmc)修改为” WEB应用
程序 1班”,并把班级人数 (bjrs)改为,22”人。在 【 查询
分析器 】 中执行下列 SQL语句:
update bj
set bjmc=?WEB应用程序 1班’,bjrs=22
where bjbh=?041022051?
任务二 UPDATE语句 --修改多列数据
返回
UPDATE语句 --小结与提示
? UPDATE语句的 SET子句只有一对列名和列值,则只能修改一列
数据 ; UPDATE语句的 SET子句有多对列名和列值,则能修改多列
数据。
? WHERE条件子句非常重要,一定要定位准确,如果精确定位,使
用能够唯一标识一行的列名,则只修改一行的数据;使用的
where子句定位的数据行多于一行时,就可以修改多个行。
? 修改数据的异常情况,当使用 UPDATE语句修改数据时,会出现
一些异常情况,例如:
– 没有要修改的数据
– 设置新值时,数据类型不兼容
– 修改数据时违背了约束
返回
DELETE语句 —基本功能与语法
? 功能:
– 删除表中的数据行。
? 语法:
delete from <表名 >
[ where <条件 > ]
其中:
– <表名 >是要删除数据行的表名。
– <条件 >是定位那些要删除数据行的条件。
返回
任务一 DELETE语句 --删除一行数据
? 示例 8,把课程表 (kc)中课程编号 (kcbh)为
,10220052,的记录删除,对应的 SQL语句如下:
delete from kc
where kcbh=?10220052?
返回
任务二 DELETE语句 --删除多行数据
? 示例 9:在成绩表 (cj)中把学号为,041022021001,
的选课记录全部删除。对应的 SQL语句如下:
delete from cj
where xh=?041022021001?
? 示例 10:将课程表 (kc)的数据全部删除,对应的
SQL语句如下:
delete from kc
返回
DELETE语句 --小结与提示
? DELETE语句删除数据后不能恢复,大家在删除数据之前,
最好做好数据备份。
? 为了防止误删除数据,WHERE子句非常重要,使用时要
小心谨慎。
? 注意 DELETE语句与 DROP TABLE语句之间的差异,
DELETE语句只是清理表中全部数据,表的结构或者说是
定义信息还存在; DROP TABLE语句不仅删除全部表中数
据,并且删除表的定义信息。
返回
总 结
? 主要介绍 DML语句,包括 insert,update,delete
语句,能够对数据库表中的数据进行插入、修改和
删除的操作。学习本章时,应重点理解和掌握 insert、
update,delete语句在交互方式下的使用。
返回
其 它
1、下次内容:数据查询
2、巩固知识,完成作业。
实训作业
返回
目的:通过对实例数据库表的实际操作,学会用 SQL语
句对表记录的插入、修改、删除。
INSERT语句的使用
根据 stucj数据库,其中有班级表 (bj)、学生基本信息表 (stu)、课
程表 (kc)、选课表 (xk),在查询分析器写出完成下列要求的 SQL
语句 。
1、向表 班级表 (bj)中插入一条记录,班级编号为 ‘ 041022021‘,
班级名称 为‘ 电子商务 1班’,班级人数是 52。
2、向 学生基本信息表 (stu)中插入一条记录。
UPDATE语句的使用
3,把班级表( bj)中“计算机软件”班的班级人数 (bjrs)改为
,35”人。
4,在成绩表 (cj)中把课程编号 (kcbh)为的,10920001,的平时
成绩 (pscj)加 2分。
5,把班级表( bj)中班级编号 (bjbh)为,041022051,班的
班级名称 (bjmc)修改为” WEB应用程序 1班”,并把班
级人数 (bjrs)改为,22”人。
DELETE语句的使用
6、在 班级表 (bj)中 删除班级编号为,041022021”的班级信息。
7、把课程表 (kc)中课程编号 (kcbh)为,10220052,的记录删除。
8、在成绩表 (cj)中把学号为,041022021001,的选课记录全部删除。
模块四
教学流程
课题一 Insert 语句
的基本语法
课题二 Update 语句
的基本语法
课题三 Delete 语句
的基本语法
任务一 插入
一行数据
任务二 插入
多行数据
任务一 修改
一列数据
任务二 修改
多列数据
任务一 删除
一行数据
任务二 删除
多行数据
Insert 语句
小结与提示
Update 语句
小结与提示
Delete 语句
小结与提示
引言,提出问题
引出主要内容。
总结本专题内容
期待解决
的问题
理论作业
实训作业
引 言
前面我们介绍了如何在 SQL Server中创
建数据库和表,那么当数据库和表建好后,
又怎样向其中添加数据呢?当数据添加到表
中,又怎样修改数据呢?对不需要的数据行,
又怎样去删除呢?这些问题,就是本专题要
学习的内容,即由数据操纵语言 DML 完成的
操作。
返回
主要内容介绍
--数据操纵语言 DML
? 插入语句, INSERT语句
? 修改语句,UPDATE语句
? 删除语句,DELETE语句
INSERT语句 —基本功能与语法
? 功能:
– 一行或者多行数据插入到表中 。
– 把从其它表中所选择的数据插入到表中。
? 语法:
INSERT INTO <表名 > [(<列名表 >)]
VALUES (<对应列的值表 >)
其中:
– <表名 >是要插入数据的表名。
– <列名表 >这是一个可选项,它是要插入数据值的列名的列表。
– <对应列的值表 >这是按照表定义或者 <列名表 >所规定次序的列值表。
返回
任务一 INSERT语句 --插入一行数据
? 示例 1,往班级表中插入下表所示的一行数据。
班级表
班级编号
(BJBH)
班级名称
(BJMC)
班级人数
(BJRS)
在 【 查询分析器 】 中执行下列 SQL语句:
041022021 电子商务 1班 52
insert into bj values (‘041022021’,‘电子商务 1班’,52)
在 【 查询分析器 】 执行情况如下:
(所影响的行数为 1 行)
这说明要插入的数据行已经插入到数据库表中。
返回
? 示例 2,往学生基本信息表中插入下表所示的一行数据。
学生基本信息表
在 【 查询分析器 】 中执行下列 SQL语句:
insert into stu values (‘041022021001’,‘曹静’,‘女’,null,
‘0410222021',null,null,null,null)在 【 查询分析器 】 执行情况如下:
(所影响的行数为 1 行)
这说明要插入的数据行已经插入到数据库表中。
041022021001 曹静 女 041022021
学号
( xh)
姓名
(xm)
性别
(xb)
出生日期
(csrq)
班级编号
(bjbh)
注册
(zc)
总成绩
(zcj)
名次
(mc)
? 插入操作需要注意以下问题,
– Values子句中列的个数必须与表定义的个数相同 。
– Values子句中列的数据类型必须与表定义的数据类型相容 。
? 数值类型:总成绩列 (zcj),直接输入数值就可以了。
? 字符型:例如,学号( xh)、姓名 (xm)等要使用单引号。
? 日期型:日期型要使用单引号引起来,一般缺省格式
为:’ YYYY-MM-DD HH:MM:SS?。
– 如果对应的某一列没有值,也就是该列值为空( null),那么应该
在 INSERT语句中使用 null来表示插入空值。
– 不需要对整个表中的所有列全部插入数据,这时需要使用 <列名表
>,但要注意列名顺序 与数据之间的相互对应。
? 示例 3
? 实现原理:使用子查询可以实现一次插入多行,实际上把
子查询的结果作为数据插入到表中 。
? 语句格式为:
insert into <表名 >
[(<列名表 >)] <子查询 >
其中:
– <表名 >是要插入数据的表名。
– <列名表 >这是一个可选项,它是要插入数据值的列名
的列表。
– <子查询 >这是一个查询语句( SELECT)。
任务二 INSERT语句 --插入多行数据
返回
? 示例 4,首先建立一张名为 xuesheng的表,执行下列语句:
create table xuesheng(
xuehao char(10) not null,xingming char(8))
使用前面介绍的 INSERT语句插入三行数据,如下所示:
insert into xuesheng values(?01?,?张三’ )
insert into xuesheng values(?02?,?李四’ )
insert into xuesheng values(?03?,?王五’ )
则得到下列表格,xuesheng表
xuehao xingming
01 张三
02 李四
03 王五
? 示例 4,(续上 )下面又建立了一张名为 student的空表,
create table student(
sno char(10) not null,sname char(8))
利用 xuesheng表中数据,一次向 student表插入多行,
insert into student(sno,sname)
select xuehao,xingming from xuesheng
Student表
sno sname
01 张三
02 李四
03 王五
INSERT语句 --小结与提示
? 利用 insert语句插入一行数据时一定要注意列名表与
values后面数据的对应关系。
– 个数的对应
– 顺序的对应
– 数据类型的对应
? 利用 insert语句插入多行数据时一定要注意 <列名表 >与
select子查询后面列名之间的对应关系。
返回
UPDATE语句 —基本功能与语法
? 功能:
– 修改已经存在的数据。
? 语法:
update <表名 >
set <列 >=<值 > [,<列 >=<值 >]
[where <定位条件 >]
其中:
– <表名 >是要修改数据的表名。
– <列 >是要修改数据的列名。
– <值 >是修改之后的新列值。
– <定位条件 >是定位被修改数据行的条件。
返回
任务一 UPDATE语句 --修改一列数据
? 示例 5:把班级表( bj)中“计算机软件”班的班级人数 (bjrs)
改为,35”人。在 【 查询分析器 】 中执行下列 SQL语句:
update bj
set bjrs=35
where bjmc=?计算机软件’
? 示例 6:在成绩表 (cj)中把课程编号 (kcbh)为的,10920001,
的平时成绩 (pscj)加 2分。则执行下列 SQL语句:
update cj
set pscj=pscj+2
where kcbh=“10920001”
返回
? 如果 UPDATE语句的 SET子句有多对列名和列值,则能修
改多列数据。
? 示例 7:把班级表( bj)中班级编号 (bjbh)为
,041022051,班的班级名称 (bjmc)修改为” WEB应用
程序 1班”,并把班级人数 (bjrs)改为,22”人。在 【 查询
分析器 】 中执行下列 SQL语句:
update bj
set bjmc=?WEB应用程序 1班’,bjrs=22
where bjbh=?041022051?
任务二 UPDATE语句 --修改多列数据
返回
UPDATE语句 --小结与提示
? UPDATE语句的 SET子句只有一对列名和列值,则只能修改一列
数据 ; UPDATE语句的 SET子句有多对列名和列值,则能修改多列
数据。
? WHERE条件子句非常重要,一定要定位准确,如果精确定位,使
用能够唯一标识一行的列名,则只修改一行的数据;使用的
where子句定位的数据行多于一行时,就可以修改多个行。
? 修改数据的异常情况,当使用 UPDATE语句修改数据时,会出现
一些异常情况,例如:
– 没有要修改的数据
– 设置新值时,数据类型不兼容
– 修改数据时违背了约束
返回
DELETE语句 —基本功能与语法
? 功能:
– 删除表中的数据行。
? 语法:
delete from <表名 >
[ where <条件 > ]
其中:
– <表名 >是要删除数据行的表名。
– <条件 >是定位那些要删除数据行的条件。
返回
任务一 DELETE语句 --删除一行数据
? 示例 8,把课程表 (kc)中课程编号 (kcbh)为
,10220052,的记录删除,对应的 SQL语句如下:
delete from kc
where kcbh=?10220052?
返回
任务二 DELETE语句 --删除多行数据
? 示例 9:在成绩表 (cj)中把学号为,041022021001,
的选课记录全部删除。对应的 SQL语句如下:
delete from cj
where xh=?041022021001?
? 示例 10:将课程表 (kc)的数据全部删除,对应的
SQL语句如下:
delete from kc
返回
DELETE语句 --小结与提示
? DELETE语句删除数据后不能恢复,大家在删除数据之前,
最好做好数据备份。
? 为了防止误删除数据,WHERE子句非常重要,使用时要
小心谨慎。
? 注意 DELETE语句与 DROP TABLE语句之间的差异,
DELETE语句只是清理表中全部数据,表的结构或者说是
定义信息还存在; DROP TABLE语句不仅删除全部表中数
据,并且删除表的定义信息。
返回
总 结
? 主要介绍 DML语句,包括 insert,update,delete
语句,能够对数据库表中的数据进行插入、修改和
删除的操作。学习本章时,应重点理解和掌握 insert、
update,delete语句在交互方式下的使用。
返回
其 它
1、下次内容:数据查询
2、巩固知识,完成作业。
实训作业
返回
目的:通过对实例数据库表的实际操作,学会用 SQL语
句对表记录的插入、修改、删除。
INSERT语句的使用
根据 stucj数据库,其中有班级表 (bj)、学生基本信息表 (stu)、课
程表 (kc)、选课表 (xk),在查询分析器写出完成下列要求的 SQL
语句 。
1、向表 班级表 (bj)中插入一条记录,班级编号为 ‘ 041022021‘,
班级名称 为‘ 电子商务 1班’,班级人数是 52。
2、向 学生基本信息表 (stu)中插入一条记录。
UPDATE语句的使用
3,把班级表( bj)中“计算机软件”班的班级人数 (bjrs)改为
,35”人。
4,在成绩表 (cj)中把课程编号 (kcbh)为的,10920001,的平时
成绩 (pscj)加 2分。
5,把班级表( bj)中班级编号 (bjbh)为,041022051,班的
班级名称 (bjmc)修改为” WEB应用程序 1班”,并把班
级人数 (bjrs)改为,22”人。
DELETE语句的使用
6、在 班级表 (bj)中 删除班级编号为,041022021”的班级信息。
7、把课程表 (kc)中课程编号 (kcbh)为,10220052,的记录删除。
8、在成绩表 (cj)中把学号为,041022021001,的选课记录全部删除。