DCL:数据控制语言,是用来设置或更改数据库用户或角色权限的语句,包括(grant,deny,revoke等)语句
DDL:数据定义语言,其实就是我们在创建表的时候用到的一些sql,比如说:CREATE、ALTER、DROP等。DDL主要是用在定义或改变表的结构,数据类型,表之间的链接和约束等初始化工作上
DML:数据操作语言,就是我们最经常用到的 SELECT、UPDATE、INSERT、DELETE。 主要用来对数据库的数据进行一些操作
一、DCL 数据控制语言
1、授予
格式1:
GRANT 角色权限(角色)[,角色权限] TO 用户;
例子:
授予CONNECT和RESOURCE两个角色
SQL> GRANT connect, resource TO test;
查看 resource 角色下的权限
SQL> SELECT * FROM DBA_SYS_PRIVS WHERE GRANTEE='RESOURCE'
格式2:
GRANT 操作 ON 模式.对象 TO 用户;
例子:
允许用户查看、更新 EMP 表中的记录
SQL> GRANT select,update ON SCOTT.emp TO test;
查看当前用户的系统权限
SQL> select * from user_sys_privs;
查看当前用户的对象权限
SQL> select * from user_tab_privs;
查看当前用户的所有角色
SQL> select * from user_role_privs;
2、撤销
格式1:
REVOKE 角色权限(角色)[,角色权限] FROM 用户;
例子:
撤销CONNECT和RESOURCE两个角色
SQL> REVOKE connect, resource FROM test;
格式2:
REVOKE 操作 ON 模式.对象 FROM 用户;
例子:
撤销用户查看、更新 EMP 表中的记录的操作
SQL> REVOKE select,update ON SCOTT.emp FROM test;
二、 DDL 数据定义语言
1、创建表
格式:
CREATE TABLE <table_name>(
column1 DATATYPE [NOT NULL] [PRIMARY KEY],
column2 DATATYPE [NOT NULL],
…
[constraint <约束名> 约束类型 (要约束的字段)
… ] );
例子:
SQL> create table t_student(
s_id number(8) PRIMARY KEY,
s_name varchar2(20) not null,
s_sex varchar2(8),
clsid number(8),
constraint u_1 unique(s_name),
constraint c_1 check (s_sex in ('MALE','FEMALE'))
);
2、修改表
格式1:
向表中添加新字段
ALTER TABLE <table_name> ADD (字段 1 类型 [NOT NULL],
字段 2 类型 [NOT NULL] … );
例子:
SQL> alter table t_student add (s_age number(3),s_address varchar2(20));
格式2:
修改表中字段
ALTER TABLE <table_name> MODIFY(字段 1 类型,字段 2 类型 … );
例子:
SQL> alter table t_student modify(s_name varchar2(50),s_address
varchar2(100));
格式3:
删除表中字段
ALTER TABLE <table_name> DROP(字段 1,字段 2… );
例子:
SQL> alter table t_student drop(s_age,s_address);
格式4:
修改表字段名称
ALTER TABLE <table_name> RENAME COLUMN 原字段名称 TO 新字段名称;
例子:
SQL> alter table t_student rename column s_id to s_no;
3、删除表
格式:
删除表结构及数据(删除后可在回收站查看并恢复)
DROP TABLE <table_name>;
删除表结构及数据(删除后不可在回收站查看并恢复)
DROP TABLE <table_name> PURGE;
例子:
SQL> drop table t_student;
4、回收站
(1)查看回收站
SQL> show recyclebin; 或 SQL> select * from recyclebin;
(2)清空回收站
SQL> purge recyclebin;
三、DML 数据操作语言
1、新增
格式1:
INSERT INTO table_name (column1,column2,…)
VALUES ( value1,value2, …);
例子:
SQL> insert into emp (empno,ename) values(1111,'test');
格式2:
INSERT INTO <table_name> <SELECT 语句>;
例子:
SQL> create table t1 as select * from emp where 1=2;
insert into t1 select * from emp where sal>2000;
2、修改
格式:
UPDATE table_name SET column1=new value,column2=new value,…
WHERE <条件>;
例子:
SQL> update emp set sal=3000 where ename='test';