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岁,所在班级改为“艺术设计”。文章来源:https://www.toymoban.com/news/detail-571171.html
UPDATE STU1
SET SAGE=SAGE+1,SDEPT='艺术设计'
WHERE SNAME='张三'
5、修改多行的多个列值
将STU1表中所有年龄为20岁的学生的SDEPT改为空值,其出生年月改为系统当前日期。文章来源地址https://www.toymoban.com/news/detail-571171.html
UPDATE STU1
SET SDEPT=NULL,SBIRTH=SYSDATE
WHERE SAGE=20
到了这里,关于Oracle——数据操纵DML(三)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!