day05_DDL、DML、DCL操作

DML(Data Manipulation Language,数据操作语言):用于检索或者修改数据。
    DML包括:  SELECT:用于检索数据;
        INSERT:用于增加数据到数据库;
        UPDATE:用于从数据库中修改现存的数据 
        DELETE:用于从数据库中删除数据。
        

DDL(Data Definition Language,数据定义语言): 用于定义数据的结构,比如 创建、修改或者删除数据库对象。
    DDL包括:DDL语句可以用于创建用户和重建数据库对象。下面是DDL命令:
        CREATE   创建
        ALTER    修改
        DROP     删除




DCL(Data Control Language,数据控制语言):用于定义数据库用户的权限。
    DCL包括:
        GRANT   授权
        REVOKE  回收权限
        deny    拒绝授予主体权限。防止主体通过其组或角色成员身份继承权限





一:DCL(数据控制语言) 角色=1至多个权限的集合

1.GRANT 赋于权限  
常用的系统权限集合有以下三个:
CONNECT(基本的连接)=许多个权限, RESOURCE(程序开发), DBA(数据库管理)

create user 

grant CONNECT,RESOURCE to user;

常用的数据对象权限有以下六个:
ALL ON 数据对象名, SELECT ON 数据对象名, UPDATE ON 数据对象名,
DELETE ON 数据对象名, INSERT ON 数据对象名, ALTER ON 数据对象名

GRANT CONNECT, RESOURCE TO 用户名;
GRANT SELECT ON 表名 TO 用户名;
GRANT SELECT, INSERT, DELETE ON表名 TO 用户名1, 用户名2;

2.REVOKE 回收权限
REVOKE CONNECT, RESOURCE FROM 用户名;
REVOKE SELECT ON 表名 FROM 用户名;
REVOKE SELECT, INSERT, DELETE ON 表名 FROM 用户名1, 用户名2;    


例:

    1、创建用户test2,密码也是test2(记得最有以分;号结束):
        create user test2 identified by test2;
    2、给test2授权:create session;(允许用户登陆Oracle):
        grant create session to test2;
    3、给test2分配创建表的权限;
        grant create table to test2;
    4、给test2分配表空间的使用权限;
        grant unlimited tablespace to test2;
    5、收回test2用户的create session权限
       revoke create session  from test2;   
    6、收回test2用户的create table、unlimited tablespace权限
       revoke create table,unlimited tablespace  from test2;           
        
        

二:DDL(数据定义语言)
1、创建表:
create table t_user
(
      userid number(30),
      username varchar(20),
      age number(3),
      sex varchar(2)
);    


2、删除表:SQL> drop table t_user;
    
    
3、修改字段长度
create table t_test
(
      userid varchar2(3)
);  

alter table t_test modify userid varchar2(10);
 
desc t_test;        


三:DML(数据操作语言):
    1、insert插入SQL:
        (1)insert into t_user (userid,username,age,sex)
           values (1,'老王',30,'男');
           
        (2)insert into t_user(userid,username) values (2,'马文涛');
        
        commit;

    2、delete删除SQL:
        (1)delete t_user;(如果在删除时不加条件,则把此表中的所有数据都会删除!)
        
          删除t_user表中,userid=3的记录
        (2)delete t_user where userid = 3;

    3、update更新SQL:
        (1) update t_user set username = '争伟',sex = '男';
            (更新时不加条件表中所有行记录的姓名都被修改了!)
            
            修改t_user表,其中userid=7的记录,将其username字段值设置成"文涛"
        (2)update t_user set username = '文涛' where userid = 7;



    
    4、select查询SQL:格式——>select···from···where···group by···having···order by···;
         
         查询所有的用户:
         select * from t_user;





posted @ 2016-03-21 20:59  暗夜小精灵~~  阅读(293)  评论(0编辑  收藏  举报