数据更新操作
1.插入数据
- 插入单个元组
格式如下
insert
into <表名> [(<属性列1>) [,(<属性列1> ...)]
values (<常量1> [,<常量1>] ...)]
【例1-1】插入学生信息
insert into 学生 values('S001','张三','男',21,'计算机')
insert into 学生 values('S002','李四','男',19,'数学')
insert into 学生 values('S003','王五','男',22,'工商')
insert into 学生 values('S004','张雁','女',21,'数学')
insert into 学生 values('S005','张言','女',21,'工商')
insert into 学生 values('S006','王言','女',22,'计算机')
insert into 学生 values(null,'张明','男',21,'计算机') --错误!主属性不能为空
insert into 学生 values('S003','张魏','大',21,'计算机') --错误!违反用户自定义约束
insert into 学生(姓名,学号) values('刘刘','S007') --部分列
【例1-2】插入课程信息
insert into 课程 values('C001','C++',null)
insert into 课程 values('C002','OS',null)
insert into 课程 values('C003','DB','C001')
insert into 课程 values('C004','JAVA','C005')
insert into 课程 values('C005','DS','C003')
【例1-3】插入选课信息
insert into 选课 values('S001','C001',0)
insert into 选课 values('S001','C002',60)
insert into 选课 values('S002','C001',70)
insert into 选课 values('S003','C003',81)
- 插入子查询结果集
2.修改数据
修改指定表中满足where子句条件的元组
格式如下
update <表名>
set <列名>=<表达式>[,<列名>=<表达式>]...
[where <条件>]
【例2-1】将所有学生的年龄增加2岁
update 学生
set 年龄 = 年龄 + 2
【例2-2】将学生’S004’的年龄改为22岁
update 学生
set 年龄 = 22
where 学号='S004'
【例2-3】将‘选课表’中的’数据库课程的成绩’乘以1.2
select *from 课程
update 选课
set 成绩 = 成绩*1.2
where 课程号='C003'
select *from 选课
【补充例】 将’S001’学生的’C001’成绩置90。
update 选课
set 成绩=90
where 学号='S001' and 课程号='C001'
3.删除数据
删除指定表中满足where子句条件的元组
格式如下
delete
[from] <表名>
[where <条件>]
【例3-1】删除学生选课
delete 学生 --删除全部数据 不能执行,被选课表参照了‘学号’
delete 课程 --同上,被选课表参照了‘课程号’
delete 选课 --未被参照,可执行
delete 学生 where 学号='S006' --没有被参照,可以删
delete 学生 where 学号='S001' --被参照,不可以删