第七章 数据表的数据操作(DML)(第三部分)
此篇将介绍除select的dml关键词 insert update delete语句的用法
7.1 添加数据 (insert)
7.1.1 添加数据的基本用法
使用insert 表名 values (值1,值2,值3,...)语 句插入行
例:在student数据库中的student表插入新学生的信息 学号:100506 年龄:李小珑 性别:女 年龄:23 专业:计算机
/* 语法格式: insert [into] 表名[(属性名1,[属性名2,....])] values(插入的数据1,[插入的数据2,...]) */ use student insert into student(sno,sname,sex,sag,sdept) values(100506 , '李小珑', '女' , 23 , '计算机系')
执行该例子成功后会返回一行受影响
7.1.2 使用insert和select插入行
在insert语句中使用select子句可以将一个或多个表或视图中的值添加到另一个表中
使用select子句可以同时插入多个行
例:新建一个表,接着插入学生信息到该表
/* 语法格式: insert [into] 表名[(属性名1,[属性名2,....])] select 查询列名 from 查询表名 */ create table 新学生信息表 ( 学号 varchar(50), 班级编号 varchar(50), 姓名 varchar(50) ) insert 新学生信息表 select 学号,班级编号,姓名 from 学生信息
使用where子句指定条件insert select语句,将这些数据批量添加到目的表中
例:1.新建一个成绩表2.将'stu'数据库的'成绩表'表中成绩大于70并且课程编号是1003的数据插入到'成绩表2'中
use stu create table 成绩表2 ( 学号 varchar(50), 课程编号 varcahr(50), 成绩 int ) insert into 成绩表2 select * from 成绩表 where 成绩表 > 70 and 课程编号 = '1003'
7.2 修改数据(update语句)
使用update语句修改表中数据的语法形式为 update 表名 set 列名 = 表达式
set子句指定要更改的列和这些列的新值
7.2.1.使用简单的update语句
例:基于'stu'数据库中的表成绩,将成绩设置为90
update 成绩表 set 成绩 = 90
例:使用计算值或值表达式,为每个成绩在原有的基础上增加5
update 成绩表 set 成绩 = 成绩 + 5
7.2.2带where子句的update语句
假设将成绩为95,并在'1002'到'1005'之间课程编号的所有学生设置学号是3
update 成绩表 set 学号 = '3' where 课程编号 between '1002' and '1003' and 成绩 = 95
7.2.3更新多列
例:在stu数据库中对成绩表进行了重组和调整,原来编号为1003的课程编号变为'我是1003',成绩变为98
update 成绩表 set 课程编号 = '我是1003',成绩 = 98 where 课程编号 = 1003
如果条件不统一更改的值也不一样需要分开来写
例:更新'课程编号'为1001的行同时更新'课程编号'为1002的行,成绩改为89和88,这时需要用到多个update语句为每个单独条件编写update语句
update 成绩表 set 成绩 = 89 where 课程编号 = '1001' update 成绩表 set 成绩 = 88 where 课程编号 = '1002'
例:将计算机系全体学生的成绩加5分
--写法1 子查询 use student update 成绩表 set grade = grade + 5 where sno in ( select sno from 学生信息表 where sdept = '计算机系' ) --写法2:多表连接实现 update 成绩表 set grade = grade + 5 from 成绩表 join 学生信息表 on 成绩表.sno = 学生信息表.sno and sdept = '计算机系'
7.3使用delete语句删除数据
delet语句可删除表或视图中的一行或多行
7.3.1 delete的基本用法
delete语法的简化形式为:
delete from 表名 where 选择条件
例:成绩表2中删除成绩表大于90分的记录
delet from 成绩表2 where 成绩>90
例:删除成绩表2中表的所有记录
delete from 成绩表2
7.3.2 删除固定行
例:在数据库中删除20%学生信息
delete top(20) percent from 学生信息表
例:在数据库中删除前5行
delete top(5) from 学生信息表
浙公网安备 33010602011771号