Oracle-第14章 用户、权限和角色

第14章 用户、权限和角色内容导航

14.1 用户管理
  14.1.1 新增用户
  14.1.2 修改用户
  14.1.3 删除用户
14.2 权限管理
14.3 数据对象管理
  14.3.1 创建表格对象
  14.3.2 修改表格约束
  14.3.3 删除表格
  14.3.4 查询表格
14.1 用户管理

14.1.1 新增用户
  新增用户:
  -tablespace表空间指数据存储的位置

create user student
  identified by "123456"
  default tablespace USERS
  temporary tablespace TEMP;

14.1.2 修改用户
  修改用户:
  modify the user
  alter user STUDENT indentified by “123456”;修改账户密码
  alter user STUDENT account lock;锁定账户
  alter user STUDENT account unlock;解锁账户
  查询系统的所有用户,dba_users是系统表,保存了所有用户的账号。

select * from dba_users;

14.1.3 删除用户

drop user student;

14.2 权限管理

  DCL:数据控制语言
  oracle用户必须拥有session会话权限才能登录数据库。
  oracle用户的权限分3种:对象权限,角色权限,系统权限。
  常用的开发账号权限:连接权限,资源权限和无限表空间权限,这三种权限已经包含session权限。
  例1:授予权限

grant connect to STUDENT;
grant resource to STUDENT;
grant unlimited tablespace to STUDENT;

例2:删除权限

revoke connect to STUDENT;
revoke resource to STUDENT;

16、4.3 数据对象管理

  DDL 数据对象管理语句

14.3.1 创建表格对象
  Create table 表格名称(列名 数据类型 约束,列名 数据类型 约束);

create table cla
(
  clano   number,
  claid   nvarchar2(20),
  claname nvarchar2(20)
);

14.3.2 修改表格约束
① 修改表格,添加唯一约束

alter table cla
  add constraint PK_CLA primary key (CLANO);
alter table cla
  add constraint UN_CLA_CLAID unique (CLAID);
alter table cla
  add constraint UN_CLA_CLANAME unique (CLANAME);

② 修改表格,删除主键约束

alter table cla
  drop constraint PK_CLA cascade;

③ 修改表格,删除唯一约束
alter table 表格名称 drop constraint 约束名 cascade
cascade级联操作,可理解为强行删除。

alter table cla
  drop constraint UN_CLA_CLAID cascade;
alter table cla
  drop constraint UN_CLA_CLANAME cascade;

④ 修改数据类型
alter table 表格名称 modify 列名 新数据类型

alter table cla modify clano nvarchar(20);

⑤ 修改列名
alter table 表名 rename column 旧列名 to 新列名
注意:如果该列有约束,需要同步更新。

alter table CLA rename column claname to claname2;

⑥ 修改表格表名
alter table 旧表格名称 to 新表格名称
注意:重命名需要同步修改约束

alter table cla rename to cla2;

14.3.3 删除表格
drop table 表格名称;
注意:删除主键表前需要删除外键表上的引用关系。
16.3.4 查询表格

select table_name from user_tables;
 Create table
create table STU
(
  sno     number,
  sid     nvarchar2(20),
  sname   nvarchar2(20),
  sex     char(2),
  indate  date,
  classid number
);
 Create/Recreate primary, unique and foreign key constraints 
alter table STU
  add constraint PK_STU primary key (SNO);
alter table STU
  add constraint UN_STU_SID unique (SID);

① 修改表格,添加外键约束

alter table STU
  add constraint FK_STU_CLA foreign key (CLASSID)
  references cla (CLANO);
 Create/Recreate check constraints 

② 修改表格,添加检车约束

alter table STU
  add constraint CK_STU_SEX
  check (sex in ('男','女'));

③ 修改表格,添加非空约束

 Add/modify columns 
alter table SUBJECT modify subname not null;

ddl补充
1.在定义列时同时定义约束
主键的特性:非空且唯一;一个表格只能一个主键,一个主键可以包含多个列。(联合主键/组合主键);联合主键必须先定义列在定义主键。
create table T(
id number primary key 什么约束如果没有指定名称,则系统默认生成一个名称
);

create table T1(
       id number constraint PK_T1 primary key,
       生命约束constraint UN_T1_NAME是对约束进行指定岳书铭,如果不指定可省略
       NAME VARCHAR(20) constraint UN_T1_NAME unique not null,唯一和非空
       sex char(2) check(sex in ('男','女')),
       tid number references T(id)
);       

reference 和 references 的区别
references可以在定义列的同时引用主键表,reference不可以.

create table T2(
       id number not null,not null只能在定义列的后面,称为列级约束
       name varchar(20),
       sex char(2),
       tid number,
       constraint PK_T2 primary key(id),先定义列后编写的约束称为表级约束
       constraint UN_T2_NAME unique(name),
       constraint CK_T2_SEX check (sex in('男','女')),
   在表格后使用外键时需要使用foreign key指定外键列
   constraint FK_T1_T foreign key(tid) references T(id)     

);

create table T3(
       id number primary key,
       name varchar2(20) unique not null,
       sex char(2) check (sex in('男','女')),
       tid number references T(id)
);   

char和varchar varchar2 nvarchar2

create table T4(
       id number,
       sid number,
       name nvarchar2(20),
       name2 nvarchar2(20),
       constraint PR_K3 primary key(id,sid),联合主键
       constraint UN_T3_NAME_NAME2 unique (name,name2)联合唯一
);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值