Oracle入门(十三)之SQL的DML

匿名 (未验证) 提交于 2019-12-03 00:22:01

数据操纵语言(Data Manipulation Language, DML)是SQL语言中,负责对数据库对象运行数据访问工作的指令集,以INSERT、UPDATE、DELETE三种指令为核心,分别代表插入、更新与删除,是开发以数据为中心的应用程序必定会使用到的指令,因此有很多开发人员都把加上SQL的SELECT语句的四大指令以“CRUD”来称呼。

一、数据查询 - Select

select语句完整的句法如下:

select 目标表的列名或列表达式序列

from 基本表名和(或)视图序列

[ where 行条件表达式 ]

[ group by 列名序列

[ order by 列名[ asc|desc ],… ]

select * from employees where  to_char(hire_date,'yyyy-mm') =to_char(sysdate,'yyyy-mm');

注:Oracle入门(十三)之Select


二、数据插入-Insert

功能:在表中插入一条新的数据

注意:
Column缺省默认为所有列、如果某列值为空,需设为null
例1:
insert into t_gtype values('T00001','日用百货');
例2:
insert into t_gtype(gtname,gtid) values('儿童用品','T00002');

(1)使用函数

values('000002','李宇',to_date('1989-10-25','yyyy-mm-dd') ,'m','佛山禅城区','0757-89999999');

注:字符串加单引号、字符串日期数据要转换格式

(2)使用表格定义的默认值

values('P00000000001',default,'1','初始化系统数据');

(3)使用序列

insert into t_user(uiid,uname)

注:nextval 伪列用于从指定序列中提取连续的序列号。必须用序列名来限定nextval。在引用“序列名.nextval”时,会生成新的序列号,并将当前的序列号放置在currval 中。

注:Oracle入门(十二)之序列(G)

(3)使用select
可以使用INSERT INTO SELECT语句实现在insert语句
中使用子查询

语法格式为:

select value1,value2,... from table1;


三、数据修改-Update

修改表中的数据
语法:



例子:

update employees set salary = salary + 100;
(1)基于子查询的修改
update tablename



四、数据删除 - Delete

删除表中的数据
语法:


例子:删除t_goods数据
 delete from t_goods ;
注:delete 只是将数据标记为unused,要清除大表数据存储空间,用truncate

五、事务

commit:发出commit 语句后,当前事务处理结束,所有待定更改变为永久性更改。
rollback:发出rollback 语句后,将放弃所有待定更改。
savepoint:在事务处理中创建标记,该标记将事务处理分成几个较小的部分。
rollback to savepoint:允许用户将当前事务处理回退到指定的保存点。


事务处理何时开始或结束事务处理从第一个DML(INSERT、UPDATE、DELETE 或MERGE)语句开始。
出现以下任一情况时事务处理结束:

  • 发出了COMMIT 或ROLLBACK 语句
  • 发出了DDL和DCL
  • 用户退出了iSQL*Plus 或SQL*Plus

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!