而今

导航

第七章 数据表的数据操作(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 学生信息表

 

    

 

 

 

  

 

posted on 2019-11-15 16:07  而今  阅读(167)  评论(0)    收藏  举报