数极客首页

跟着梓晨学SQL:数据处理与事务控制

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一般为数据库权限与角色控制语句,将会在后续的章节中进行阐述,由于时间关系,今晚就写到这里。

作者简介:梓晨,安徽大学毕业,目前在金蝶软件(中国)有限公司从事数据分析工作,数据分析探索与爱好者。

发表评论

评论已关闭。

相关文章