Oracle实操三之DML(数据操纵语言)

数据操纵语言(DML)用于对数据库的表中数据进行添加、修改、删除和 SELECT…For UPDATE(后面专门学习该查询)操作。

查询

SELECT *|列名|表达式 FROM 表名 WHERE 条件 ORDER BY 列名 

Oracle 中可以把查询的结果根据结果集中的表结构和数据形成一张新表。

CREATE TABLE 表名 AS SELECT 语句 

使用上面命令创建的新表中,不存在任何约束,并且把查询的数据一起插入到新表中。 如果只复制表结构,只需使查询的条件不成立(比如 where 1=2),就不会查询从出任何数 据,从而复制一个表结构。


数据插入:

INSERT INTO 表名(列名 1,列名 2……) VALUES (值 1,值 2……) 

eg:

SQL> INSERT INTO INFOS VALUES (  ①  
     2  's100102', '林冲', '男', 22, 2,   
     3  TO_DATE('2009-8-9 06:30:10',' YYYY-MM-DD HH24:MI:SS '),  ② 
     4  '西安', '1001'   
     5  )       
     6  / 1 row inserted  
SQL> INSERT INTO INFOS VALUES ( 's100104','阮小      二','男',26,3,SYSDATE,default,'1001');  ③  
1 row inserted SQL>COMMIT;  ④ 

在 Oracle 中,日期是国际化的,不同的区域安装的数据库,默认的日期格式不同, 因此为了程序便于移植,日期的输入要使用 TO_DATE 函数对日期格式化后输入,采 用格式化字符串对日期进行格式化时,格式化字符串中字符不区分大小写,常见的 格式化字符如下:
1. yyyy 表示四位年份
2. mm 表示两位月份,比如 3 月表示为 03
3. dd 表示两位日期
4. hh24 表示小时从 0-23,hh12 也表示小时从 0-11。
5. mi 表示分钟
6. ss 表示秒

commit 是把用户操作(添加、删除、修改操作)提交,只有提交操作后,数据才 能真正更新到表中,否则其他用户无法查询到当前用户操作的结果。

在 Oracle 中,一个 INSERT 命令可以把一个结果集一次性插入到一张表中。使用的语句 是:

INSERT INTOSELECT 子句

在这种语法下,要求结果集中每一列的数据类型必须与表中的每一列的数据类型一致, 结果集中的列的数量与表中的列的数量一致。


Oracle 在表中更新数据的语法是:

UPDATE 表名 SET 列名 1=值,列名 2=值…… WHERE 条件 

Oracle 在表中删除数据的语法是:

DELETE FROM 表名 WHERE 条件 

在数据库操作中, TRUNCATE 命令(是一个 DDL 命令)可以把表中的所有数据一次性 全部删除,语法是:

TRUNCATE TABLE 表名 

TRUNCATE 和 DELETE 都能把表中的数据全部删除,他们的区别是:
1. TRUNCATE 是 DDL 命令,删除的数据不能恢复;DELETE 命令是 DML 命令,删除后 的数据可以通过日志文件恢复。
2. 如果一个表中数据记录很多,TRUNCATE 相对 DELETE 速度快。

猜你喜欢

转载自blog.csdn.net/qq_40104617/article/details/82590268