重庆思庄Oracle、Redhat认证学习论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1309|回复: 0
打印 上一主题 下一主题

[Oracle] oracle DML与DDL

[复制链接]
跳转到指定楼层
楼主
发表于 2022-11-20 17:28:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一、数据库语言介绍
DML(数据库操作语言):其中包括insert/delete/update/select等操作。
DDL(数据库定义语言):其中包括create/alter/drop等操作。
区别:1、DDL是针对数据库对象(例如:table,function,view,procedure,triger)等的定义。DML是对数据库对象的操作,例如对数据库表的增删改查等等。2、DDL作为数据库定义语言是不能进行rollback(回滚),提交方式也是隐性提交。而DML是可以进行rollback的,并且对于事务(transaction)的提交是显式的(默认),可以设置为隐式提交。

二、DDL与DML语法介绍
数据库对象:表(table),索引(index),视图(view),触发器(Trigger),存储过程(procedure),用户(user),函数(function)。
DDL:
例如:
1、创建一张orcl_table表:create table orcl(id int,name varchar);
2、创建一个orcl_view视图:create view orcl_view as select * from orcl_table;
注意:在数据库中视图本身是不存储对象的,是引用数据库表的查询,可以理解为是数据库表联合查询的一个超链接或者认为是一种快捷方式,一旦引用的表的数据发生变化,那么视图中的结果集也会发生变化,而且视图效率较低,视图存在的意义是将复杂查询封装,方便程序员的查询使用。
3、创建orcl_index索引(索引是优化中的重要一环):create index orcl_index on table table.cloumn。索引是作用于表的某一列或者某些列,可以提升查询的效率。
4、创建orcl_procedure存储过程:create procedure orcl_procedure (par1,par2,......),存储过程的好处在于,编译一次,多次执行,可以有效减少网络传输,提升效率,可以将存储过程理解为程序块。
5、创建orcl_function函数:create function orcl_function,函数有返回值,可以接受输入参数,经过函数体进行运算后返回结果给调用者,因为oracle函数是非常丰富的,基本可以满足99%的开发需求,因此在我的从业经验中,几乎没有写过自定义函数。
6、oracle非常大的一个优势就在于用户权限的管理,创建用户一般是由项目中的DBA人员进行创建并分配权限,跟日常开发关系不大,这里就不再赘述。
还有诸如alter等的DDL操作,在后边的分享中会一一介绍。

DML:
例如:
1、select
select * from orcl_table;(返回orcl_table中的所有数据)。工作中99%的开发任务都与select密切关联。
2、insert
①insert into orcl_table(column1,column2,...) values(value1,value2,....),如果不写column则代表表中的每一个字段都插入值。
②insert into orcl_table select statement;(使用子查询的结果插入到表中,工作中较常用)
3、update
update orcl_table set orcl_table.comlum = value(用得较少,也可以将子查询的结果更新到表中去)。
4、delete
delete from orcl_table where conditions;(删除符合条件的数据)。where条件可选,如果不加则删除所有数据。

总结:以上的②③④的操作都是需要提交事务才会以数据块的方式写入到磁盘中,因此以上操作都是可以回滚的(有犯错的余地),但是提醒大家,做这种敏感操作的时候一定要小心。

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 支持支持 反对反对
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|重庆思庄Oracle、Redhat认证学习论坛 ( 渝ICP备12004239号-4 )

GMT+8, 2024-9-28 05:23 , Processed in 0.122562 second(s), 20 queries .

重庆思庄学习中心论坛-重庆思庄科技有限公司论坛

© 2001-2020

快速回复 返回顶部 返回列表