Sql的增删改操作

Sql的数据更新包括数据插入、删除和修改3个操作.
往表中插入数据的语句是insert语句,方式有两种,一种是元组值的插入,一种是查询结果的插入
元组值的插入语法如下:
INSERT INTO table [(column [, column...])]
VALUES (value [, value...]);
一次插入操作只插入一行
-- 添加数据

-- 向表中每一列都添加数据
insert into emp e values(9999,'旺财','CLERK',7782,'20-6月-82',2000,1000,10);
-- 向表中添加部分列的值
insert into emp (empno,ename,deptno) values (8888,'大黄',10)


-- 创建一个表
create table emp02 as select * from emp e where 1 = 2

--将查询结果插入到另外一个表
insert into emp01 select * from emp e where e.deptno = 10

-- 删除数据
delete from emp01 e


-- 修改数据
update emp01 e set e.ename = 'wangcai' where e.ename = '旺财'


更加具体的增删改
1.插入 insert

(1)
insert into emp (empno,ename,job,mgr,hiredate,sal,comm,deptno)
values(1111,'gao','clerk',7902,sysdate,10000,3000,40)
此处插入的元组中列的个数、顺序与emp的结构完全一致,因此表名之后的列名可以省略不写
insert into emp
values(2222,'gaohs','clerk',7902,sysdate,10000,3000,40)
可以只插入部分列
insert into emp(empno,ename)
values (3333,'xiaozhang')
但要求省略的列必须满足下面的条件:
该列定义为允许Null值。
在表定义中给出默认值,这表示如果不给出值,将使用默认值。
如果不符合上面两个条件,将会报错。不能成功插入。

(2)
可以用insert语句把一个select语句的查询结果插入到一个基本表中,语法如下:
Insert into tablename(column,..)
select * from tablename2
创建一个临时表
create table temp
as
select * from emp
where 1 = 2
执行插入
insert into ss select * from emp;

例子:

create table test02 as
select * from emp where 1=2

create table test01 as
select * from emp where 1=1

insert into test02
select * from emp where emp.deptno=10


2.删除 Delete

SQL的删除操作是指从基本表中删除元组,语法如下:
DELETE [FROM] table
[WHERE condition];
其语义是从基本表中删除满足条件表达式的元组
Delete from table 表示从表中删除一切元组
如果想从表中删除所有的行,不要使用delete,可使用truncate table 语句,完成相同的工作,但是速度更快(没有事物)。

3.改 Update

Update语句用于修改基本表中元组的某些列,其语法如下:
UPDATE table
SET column = value [, column = value] …
[WHERE condition];
其语义是:修改基本表中满足条件表达式的那些元组的列值,需修改的列值在set子句中指出。

原文地址:https://www.cnblogs.com/su-chu-zhi-151/p/11177640.html