SQL-Oracle05数据库更新操作

来源:互联网 发布:jenkins 数据库配置 编辑:程序博客网 时间:2024/06/03 20:38

数据库更新操作:

数据库的主要操作分为两种:
 数据库的查询操作:SELECT
 数据库的更新操作:INSERT(增加)/UPDATE(修改,更新)/DELETE(删除)

此时,为了保存原始的emp表的信息,在进行增加、修改、删除操作之前先将
此表复制一份。
CREATE TABLE myemp AS SELECT * FROM emp;
此语句执行之后,会将表结构及数据完整的复制出来。

SELECT * FROM myemp;
此时数据已经复制出来。

SELECT INTO 表名称[(字段名称1,字段名称2,...)]VALUES(值1,值2,...) ;
eg:为myemp 

INSERT INTO myemp(empno,ename,job,mgr,hiredate,sal,comm,deptno)
VALUES(7899,'张三','清洁工',7369,'14-2月-1995',9000,300,40) ;

创建完成之后,下面进行查询操作,观察记录是否已经在myemp表中:
SELECT * FROM myemp;
必须再次提醒,数字不用加单引号,字符串必须加单引号。

简略写法(并不推荐),因为现在是要添加所有字段的内容,所以此处可以不写上
任何的字段名称,只要值的数量及顺序与数据表中的一致即可。
INSERT INTO myemp VALUES (8899,'李四','清洁工',7369,'14-2月-1995',9000,300,40) ;

范例:要求插入一个新的雇员,但是此雇员暂时没有领导,没有奖金
 第一种做法:不明确的写出要插入的字段
INSERT INTO myemp(empno,ename,job,hiredate,sal,deptno)
 VALUES (8899,'王五','清洁工','14-2月-1995',9000,40) ;
 第二种做法:如果插入时没有明确的写出字段名称的话,则使用null表示其具体内容。
INSERT INTO myemp
 VALUES (8899,'王五','清洁工',null,'14-2月-1995',9000,null,40) ;

 

之前插入数据的时候,日期的格式是使用了表中固定好的一种格式,如果现在
有这样的一个日期“2009-01-16”日期格式,那么现在如何把这种格式的日期插入进去呢?
 使用TO_DATE()函数,将一个字符串类型的数据变为DATE类型的数据。
INSERT INTO myemp(empno,ename,job,hiredate,sal,deptno)
 VALUES(8888,'赵六','保洁工',TO_DATE('2009-01-16','yyyy-mm-dd'),9000,40) ;

 


------
修改、更新数据

修改全部:UPDATE 表名称 SET 要修改的字段=新值,要修改的字段=新值,...;
修改局部:UPDATE 表名称 SET 要修改的字段=新值,要修改的字段=新值,...WHERE 修改条件;

但是,一般的开发角度上讲,修改操作一般都加入修改条件。


eg:将emp表中的所有雇员的佣金修改为1000-》


UPDATE myemp SET comm=1000;

从运行结果中发现,一共更新了19行记录,下面查询myemp表。

UPDATE myemp SET sal=5000 WHERE empno=7899;

UPDATE myemp SET mgr=null WHERE empno=7899;

UPDATE myemp SET mgr=null,comm=null WHERE emp=7899 IN(7369,8899,7788);

---------
删除数据

删除全部
SELECT FROM 表名称 WHERE 删除条件 ;
删除局部
SELECT FROM myemp WHERE empno=7899 ;

范例:删除编号是8899,7889,8889,8888
SELECT FROM myemp WHERE empno IN(8899,7889,8888) ;

DELETE FROM 表名称 WHERE 删除条件 ;

DELETE FROM myemp WHERE empno IN NOT NULL ;

eg:删除表的全部内容
删除的时候不指定删除条件,则表示删除表中的全部记录数。
DELETE FROM myemp ;
开发中一般不是很建议,基本上在执行删除命令的时候都要指定删除条件。

0 0