DDL、DML、DQL、DCL、TCL语句的概念与区别

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zgcr654321/article/details/82320664

DDL(Data Definition Language,数据定义语言):

用于描述数据库中要存储的现实世界实体的语言。

数据定义语言DDL用来创建数据库中的各种对象-----表、视图、索引、同义词、聚簇等,如:

create table/view/index/syn/cluster

DDL操作是隐性提交的!不能rollback 。

常见DDL操作:

show  databases;                                                                                     显示所有数据库

use  数据库名;                                                                                            使用该数据库

show  create  database  数据库名;                                                       显示创建该数据库的SQL语句

create  database  数据库名;                                                                    创建数据库

create  database  数据库名   character  set  utf8;                             创建指定字符编码的数据库

drop  databse  数据库名;                                                                          删除数据库

create  table  表名(id int ,name char(10),age int );                             创建表

show  tables;                                                                                              显示所有表

show  create  table  表名;                                                                        显示创建该表的SQL语句

alter  table  表名  add  id  int ;                                                                  表中新增列

alter table 表名  modify  id  double;                                                       修改表中列的属性

alter table 表名  change  id  id2  int;                                                      修改表中列的名字和属性

alter table 表名  drop  id;                                                                          删除表中的列

rename  table  表名  to  新表名;                                                              修改表格的名字

alter  table  表名  character  set  utf8;                                                  修改表的字符编码格式

DML( Data Manipulation Language,数据操纵语言):

使用户能够查询数据库以及操作已有数据库中的数据的计算机语言。

数据操纵语言DML主要有三种形式:

插入:insert

更新:update

删除:delete

常见DML操作:

insert  into  表名  (字段1,字段2,字段3)   values  (值1,值2,值3)              新增值到表中

update  表名  set  name = 'xx'  where  id  =3;                                         更新表中数据

delete  from  表名  where  id  =  2;                                                             删除表中的数据

DQL(Data Query Language SELECT,数据查询语言):

主要用来查看表中的数据,也是平时使用最多的操作。

数据查询语言DQL基本结构是由SELECT子句,FROM子句,WHERE子句组成的查询块:

select <字段名表> from <表或视图名> where <查询条件>

常见DQL操作:

select  *  from  表名  where  id  =3;                                                               查询表中数据

select  *  from  表名  order  by  id  desc | asc;                                            排序查询

select  *  from  表名  group  by  字段;                                                            分组查询

select  *  from  表名  where  name  like  '%aa%';                                       模糊查询

select  *  from  表名  limit  (2,5);                                                                     分页查询

select  *  from  表名  where  age  between  20  and  30;                          范围查询

select  *  from  表名  where  id  in (1,3,5);                                                    部分查询

DCL(Data Control Language,数据控制语言):

用来授予或回收访问数据库的某种特权,并控制数据库操纵事务发生的时间及效果。如:

grant:授权;

revoke:取消权限;

常见DCL操作:

给用户jerry授予对test_db数据库的增删改查权限,允许该用户从IP为'192.168.0.10'的网络登录:

GRANT INSERT,SELECT,UPDATE,DELETE ON test_db.* TO 'jerry'@'192.168.0.10' IDENTIFIED BY 'password' WITH GRANT OPTION;或

CREATE USER 'jerry'@'192.168.0.10' IDENTIFIED BY 'password';
GRANT INSERT,SELECT,UPDATE,DELETE ON test_db.* TO 'jerry'@'192.168.0.10';

收回用户对test_db库的删除权限:

REVOKE DELETE ON test_db.* FROM 'jerry'@'192.168.0.10';

查询给'jerry'@'192.168.0.10'所授予的所有权限:

SHOW GRANTS FOR 'jerry'@'192.168.0.10';

TCL(Transaction Control Language,事物控制语言):

用来对事务进行管理。 如:

COMMIT : 保存已完成事务动作结果 

SAVEPOINT : 保存事务相关数据和状态用以可能的回滚操作 

ROLLBACK : 恢复事务相关数据至上一次COMMIT操作之后 

SET TRANSACTION : 设置事务选项

DML语句对表数据进行操作的时候都会加上行级锁,确认完成后,必须加上事物处理结束的命令COMMIT才能正式生效,否则改变不一定写入数据库里。如果想撤回这些操作, 可以用命令 ROLLBACK 复原。

注意:

在运行INSERT,DELETE和UPDATE语句前最好估算一下可能操作的记录范围,应该把它限定在较小范围内,例如一万条记录,否则ORACLE处理这个事物用到很大的回退段。程序响应慢甚至失去响应。如果记录数上十万以上这些操作。可以把这些SQL语句分段分次完成。其间加上COMMIT确认事物处理。

数据的提交:

在数据库的插入、删除和修改操作时,只有当事务在提交到数据库时才算完成。在事务提交前,只有操作数据库的这个人才能有权看到所做的事情,别人只有在最后提交完成后才可以看到。提交数据有三种类型:显式提交、隐式提交及自动提交。

1、显式提交
用COMMIT命令直接完成的提交为显式提交。其格式为:

SQL>COMMIT;


2、隐式提交
用SQL命令间接完成的提交为隐式提交。这些命令是:

ALTER,AUDIT,COMMENT,CONNECT,CREATE,DISCONNECT,DROP,EXIT,GRANT,NOAUDIT,QUIT,REVOKE,RENAME。


3、自动提交
若把AUTOCOMMIT设置为ON,则在插入、修改、删除语句执行后,系统将自动进行提交,这就是自动提交。其格式为:

SQL>SET AUTOCOMMIT ON;

猜你喜欢

转载自blog.csdn.net/zgcr654321/article/details/82320664