数据库—DML4(数据更新)

数据库—DML(数据更新)


数据插入

  • 向基本表插入单个元组
    • INSERT INTO T [(A1, …, Ak) ]VALUES (c1, …, ck)
    • 其中T通常是基本表,也可以是视图,A1, …, Ak是T的属性,c1, …, ck是常量
  • 将查询的结果(多个元组)插入基本表
    • INSERT INTO T [(A1, …, Ak) ]
//将学号为201616010、姓名为司马相如、性别为男、生日为1997-01-28
//入校年份为2016年、专业为计算数学、所在院系为MATH的学生元组插入到Students表中

key 1:
INSERT INTO Students 
VALUES (201616010, ‘司马相如’, ‘男’, 1997-01-28,2006, ‘计算数学’, ‘MATH’) 

key 2:
INSERT INTO Students (Sno, Sname, Sex, Birthday, Enrollyear, Speciality, Dno)
VALUES (200616010, ‘司马相如’, ‘男’, 1985-01-28,2006, ‘计算数学’, ‘MATH’);

//第一种方法插入时,数据顺序必须和Students中列顺序完全一致
//第二种方法插入时则可自定义插入顺序,且部分列可缺省
INSERT INTO Cardinf (Card-no, Name, Balance)
SELECT Tno, Tname, 100.00
FROM Teachers
WHERE Dno= ‘IE’;
//设存放就餐卡登记信息关系Cardinf具有如下模式
// Cardinf (Card-no, Name, Balance)
//其中Card-no为持卡人编号,Name为持卡者姓名,而Balance为卡中余额
//假设信息工程学院要为本院每位教师办理一个校内就餐卡,直接用教师号作为持卡人编号,并预存100元。

数据删除

  • DELETE语句格式为: DELETE FROM T [ WHERE <删除条件> ]
  • 其中T通常是基本表,但也可以是某些视图
  • <删除条件>与SELECT语句中的查询条件类似
//删除学号为201624010的学生记录可以用。 
DELETE FROM Students
WHERE Sno =201624010;

//删除所有学生的记录可以用:
DELETE FROM Students; 
DELETE FROM SC
WHERE Sno IN
(SELECT Sno
FROM Students
WHERE Speciality=‘计算机软件与理论’);
//删除计算机软件与理论专业的所有学生的选课记录

数据修改

  • UPDATE语句格式为
  • UPDATE T SET A1 = e1, …, Ak = ek [WHERE <修改条件> ]
  • 其中T通常是基本表,但也可以是某些视图
  • A1, …, Ak是T的属性,而e1, …, ek是表达式
  • <修改条件>与SELECT语句中的查询条件类似
UPDATE Teachers
SET Title = ‘副教授’
WHERE Tno = ‘B050041’;
//将职工号为B050041的教师的职称修改为副教授
UPDATE SC
SET Grade = Grade + 5
WHERE Grade<60 AND  Cno IN
 (SELECT Cno
FROM Courses
WHERE Cname=‘软件工程’);
//将软件工程课程成绩低于60分的所有学生的软件工程成绩提高5分
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值