修改数据

2016.12.6

十七 修改数据

修改数据可能有3种情况

(1)插入新行到表中

(2)删除表中的行

(3)更新表中指定的行与列中已有的数据

17.1 修改数据

SQL提供INSERT来把数据插入到表中,有两种基本的INSERT方式:

(1)插入在INSERT语句中指定的数据

(2)插入用一条SELECT语句获取的数据

INSERT INTO table

(colunmnlist)

VALUES

(values1),

(values2)

ORACLE中不允许在VALUES后面指定多个行,等价语句如下。

INSERT INTO table

(colunmnlist)

VALUES

(values1)

INSERT INTO table

(colunmnlist)

VALUES

(values2)

另外,VALUES后面值的顺序要和columnlist中的列的顺序相对应,但是列出列的顺序不需要和在数据库中的顺序一致。如果在INSERT语句中没有指定所有的列,那些没有指定的列会赋以NULL值。

INSERT INTO table1

(columnlist)

SELECT

Columnlist

FROM table2

WHERE condition

7.2 删除数据

DELETE

FROM table

WHERE condition

全部删除:

DELETE

FROM table

DELETE会删除整个行,而不是某一个列。

如果要删除一个表的全部数据,可以使用TRUNCATE TABLETRUNCATE TABLE删除的效率更高,因为它不记录事务的结果。

17.4 更新数据

更新数据的过程包括指定更新那个列,以及选中行的逻辑,UPDATE语句的一般格式:

UPDATE table

SET column1=Expression1,

 Column2=Expression2

WHERE conditon

WHERE子句是必须的,否则会将所有的行都修改。

17.5 相关子查询的更新

通常,我们会根据一个表中的数据来更新另一个表中的数据。因为UPDATE语句只能指定修改单个的一个表,所以我们不能仅仅把多个表关联起来并让该语句工作,而是要使用相关的子查询。

UPDATE table1

SET column1=

(SELECT table2.column1

FROM table2

WHERE table1.column1=table2.column1)

Column2=

(SELECT table2.column2

FROM table2

WHERE table1.column1=table2.column1)

WHERE EXISTS

(SELECT *

FROM table2

WHERE table1.column1=table2.column1)

若没有WHERE EXISTS语句,会把不匹配的列也进行更新。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值