我估计,只要是知道SQL 语句的人都会用UPDATE 语句,可是大部分人不知道UPDATE 语句有两种写法,首先,考虑下面的情况:
CREATE TABLE STUDENT
(
ID NUMBER(10), —学号
NAME VARCHAR2(20) NOT NULL,—姓名
BIRTHDAY DATE —生日
);
INSERT INTO STUDENT (ID,NAME,BIRTHDAY) VALUES (1,‘张三’,DATE ‘1991-01-01’);
INSERT INTO STUDENT (ID,NAME,BIRTHDAY) VALUES (2,‘李四’,DATE ‘1991-01-01’);
INSERT INTO STUDENT (ID,NAME,BIRTHDAY) VALUES (3,‘王五’,DATE ‘1990-01-01’);
假设让你更新一下张三的生日,很简单,我们可以这么写:
UPDATE STUDENT SET BIRTHDAY=DATE ‘1991-1-5’ WHERE NAME=‘张三’;
除此之外,我们还可以这么写:
UPDATE
(
SELECT * FROM STUDENT WHERE NAME=‘张三’
)
SET BIRTHDAY=DATE ‘1991-1-5’;
就上面这个例子而言,通常我们不会使用第二种写法,因为这种写法可读性不如第一种写法好,下面我们举一个用第一种方法办不到得例子,可是用第二种方法却非常简单(这是一个生产环境实际的例子,通常用在银行中,关于表定义,我做了简化),考虑如下情况:
CREATE TABLE TRANSACT