第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)联合唯一
);