Oracle——数据操纵DML(三)

  CREATE TABLE STU(
  SNO VARCHAR2(10) PRIMARY KEY,
  SNAME VARCHAR2(10),
  SGENTLE VARCHAR2(2),
  SAGE NUMBER(2),
  SDEPT VARCHAR2(20));
INSERT INTO STU VALUES('0001','张三','男',18,'计算机');
INSERT INTO STU VALUES('0002','李四','男',19,'艺术');
INSERT INTO STU VALUES('0003','王五','男',20,'外语');
INSERT INTO STU VALUES('0004','刘六','男',18,'大数据');
INSERT INTO STU VALUES('0005','王八','男',17,'工商');
INSERT INTO STU VALUES('0006','李七','男',19,'信息管理');
CREATE TABLE STU1(
	SNO VARCHAR2(10) PRIMARY KEY,
	SNAME VARCHAR2(10),
	SGENTLE VARCHAR2(2),
	SAGE NUMBER(2),
	SBIRTH DATE,
	SDEPT VARCHAR2(20));
INSERT INTO STU1 VALUES('0001','张三','男',18,to_date('2000-01-11','yyyy-mm-dd'),'计算机');
INSERT INTO STU1 VALUES('0002','李四','男',19,'12-6月-00','艺术');
INSERT INTO STU1 VALUES('0003','王五','男',21,'12-6月-98','外语');
INSERT INTO STU1 VALUES('0004','秦六','女',20,'12-6月-99','工商管理');
INSERT INTO STU1 VALUES('0005','李齐','男',23,'12-6月-96','生化');
INSERT INTO STU1 VALUES('0006','周八','女',22,'12-6月-97','计算机');
1、通过运算修改单列值

在学生表STU1中所有学生的年龄都加1。

UPDATE STU1
SET SAGE=SAGE+1;

本例经过算术运算后的值对该列进行赋值,从而达到修改列数据的目的。
更新数据,需要考虑数据列本身的数据类型。其中,日期型数据比较特殊,该数据类型是可以进行算术运算的。STU1表中的SBIRTH列就是日期时间型数据类型,将该列的值加上100,SBIRTH+100表示在原有SBIRTH日期上往后推迟100天。字符串等数据不能进行算术运算。

2、通过表其他列修改单列值

对STU1中姓名为“李齐”的学生所在班级改成姓名“周八”的学生所在班级,使这两名学生班级相同。

UPDATE STU1
SET SDEPT=(SELECT SDEPT
FROM STU1
WHERE SNAME='周八')
WHERE STU1.SNAME='李齐'
3、通过外表的某列修改单列值

从STU表中取出姓名为“李七”的学生所在班级数据,并将STU1表中学生“周八”的班级信息改成与“李七”相同。

UPDATE STU1
SET SDEPT=(SELECT SDEPT
FROM STU 
WHERE SNAME='李七')
WHERE SNAME='周八'
4、修改单行的多个列值

将STU1表中姓名为“张三”的学生的年龄都增加1岁,所在班级改为“艺术设计”。

UPDATE STU1
SET SAGE=SAGE+1,SDEPT='艺术设计'
WHERE SNAME='张三'
5、修改多行的多个列值

将STU1表中所有年龄为20岁的学生的SDEPT改为空值,其出生年月改为系统当前日期。

UPDATE STU1
SET SDEPT=NULL,SBIRTH=SYSDATE
WHERE SAGE=20
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ChlinRei

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值