一、数据库语言介绍
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条件可选,如果不加则删除所有数据。
总结:以上的②③④的操作都是需要提交事务才会以数据块的方式写入到磁盘中,因此以上操作都是可以回滚的(有犯错的余地),但是提醒大家,做这种敏感操作的时候一定要小心。