在SQL中数据操作语言主要有三种,分别为DML、DDL、DCL,i含义分别为:
DML(data manipulation language):是数据操纵语言:它们是SELECT、UPDATE、INSERT、DELETE,就像它的名字一样,这4条命令是用来对数据库里的数据进行操作的语言。
DDL(data definition language):是数据定义语言:DDL比DML要多,主要的命令有CREATE、ALTER、DROP等,DDL主要是用在定义或改变表(TABLE)的结构,数据类型,表之间 的链接和约束等初始化工作上,他们大多在建立表时使用。
DCL(Data Control Language):是数据库控制语言:是用来设置或更改数据库用户或角色权限的语句,包括(grant,deny,revoke等)语句。
今天我们主要是讲解DML和DDL数据操作语言。
1:DDL
I:Create table为创建表的命令,首先我们创建一张表mop.t_sys_group,包含的列名有fid、fname、fclass;
SQL>create table mop.t_sys_group
(fid number(20) not null,
Fname varchar2(20),
Fclass varchar2(20)
);
Table create—此时我们已经成功创建表mop.t_sys_group
(注:也可以根据已有的表去创建表,如我们创建表group,可以使用mop.t_sys_group进行创建group:
SQL> create table group(fid,fname,fclass)
As
(select fid,fname,fclass
From mop.t_sys_group)– Table create)
II:Alter table为修改表的结构的命令,我们可以通过此命令去增加列或改变数据存储的空间大小,如我们现在需要对表mop.t_sys_group新增一列faddress,同时将fname的存储空间更改为50.
SQL>alter table mop.t_sys_group
add faddress varchar2(50)
table alter—此时已经新增一列faddress
SQL>alter table mop.t_sys_group
modify fname varchar2(50)
table alter—此时已经fname的存储空间已经更改为50
III:drop table为删除表的命令
SQL>drop table mop.t_sys_group
Table drop–此时表已经彻底
此种删除容易造成误删且难以修复,因此我们推荐使用以下的删除方法
SQL>drop table owner.mop.t_sys_group
Table drop—给出该表所有的所属数据库或工程的名字。
2:DML
I:Update为更新命令,一般与set连用,如我们现在需要更新表mop.t_sys_group中fid为2的fname为“卧龙大数据”:
SQL>update mop.t_sys_group
set fname=’卧龙大数据’
where fid=2;
1 row update
(注:如果update省略了where子句,那么表中的所有记录都会被更新,当发现操作错误时候,可以利用rollback进行回滚)
II:Insert为插入命令,一般与into一并使用。如我们现在要向mop.t_sys_group中插入一行,其操作为:
SQL>Insert into mop.t_sys_group(/*fid,fname,fclass,faddress*/)
Values(3,’卧龙大数据’,’平台’,’深圳’);
1 row created
(注:上面所述的插入方法可以归结为insert values语句,此操作一次只能插入一行。但是我们也可以利用现有的表进行插入,可以归结为insert select语句,此操作一次可以插入多行,我们利用group表中的数据向mop.t_sys_group插入数据;
SQL>insert into mop.t_sys_group(fid,fname,fclass,faddress)
Select fid,fname,fclass,faddress from group
4 rows created)
III:Delete为删除行的操作,一般与from连用,可以删除单一的行,也可以删除多行甚至所有行,例如我们删除表mop.t_sys_group中fid为1的行,则其操作为:
SQL>delete from mop.t_sys_group where fid=1
1 row deleted—(如果省略where子句则会删除所有行)
在后续的学习中我们还会遇到一个函数为truncate函数,如:
SQL>truncate table mop.t_sys_group
此操作无法rollback进行回滚,而
SQL>delete from mop.t_sys_group
可以进行rollback,这是两者之间最大的区别。
3:事务控制
事务控制可以定义为一个有组织的工作单元,通常是由之前介绍的一些语句查询等共同组成,类似为java中单线程与多线程,可以对比理解。事务控制控制的常用命令有commit(结束事务进程)、rollback(取消事务进程)、savepoint(在事务进程中设置保存点)等。
在当前用户访问处理事务未结束时,则该项目会被锁定,其他用户访问后无法对其项目进行操作,只有当该事务结束后,才能解锁。
由于DCL一般为数据库权限与角色控制语句,将会在后续的章节中进行阐述,由于时间关系,今晚就写到这里。
本文为专栏文章,来自:梓晨,内容观点不代表本站立场,如若转载请联系专栏作者,本文链接:https://www.afenxi.com/35038.html 。