oracle数据库用户权限和创建表格

–用户管理
–新增用户
– Create the user
–tablespace表空间指数据存储的位置
create user student
identified by “123456”
default tablespace USERS
temporary tablespace TEMP;

–修改用户
–Modify the user
alter user STUDENT identified by “123456”;–修改密码
– Create the user
create user STUDENT account lock; --锁定账户
create user STUDENT account unlock;–解锁账户

–查询系统的所有用户,dba_user是系统表:保存所有用户的账号。
select * from dba_users;

–删除用户
drop user student;


–权限管理 —DCL数据控制语句
–oracl用户必须拥有session会话权限才能登陆数据库
–用户的权限分3中:对象权限、角色权限、系统权限。
–常用的开发账号权限:
–授权
– Grant/Revoke role privileges
grant connect to STUDENT;
grant resource to STUDENT;
– Grant/Revoke system privileges
grant unlimited tablespace to STUDENT;

–撤销权限
– Grant/Revoke role privileges
revoke connect to STUDENT;
revoke resource to STUDENT;
– Grant/Revoke system privileges
revoke unlimited tablespace to STUDENT;

–创建表格
– Create table 表格名称(列名 数据类型 约束,列名 数据类型 约束)
create table CLA
(
clano NUMBER,
claid NVARCHAR2(20),
claname NVARCHAR2(20)
)
– 修改表格

– 修改表格约束
– Create/Recreate primary, unique and foreign key constraints
–修改表格,添加主键约束
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);

– 修改表格,删除主键约束
– Drop primary, unique and foreign key constraints
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 列名 数据类型
– Add/modify columns
alter table CLA modify clano nvarchar2(20);
–修改列名
–语法 alter table 表格名 rename column 旧列名 to 新列名
alter table CLA rename column claname to claname2;

–修改表格名称
–语法 alter table 表格名 rename to 新表格名
–注意:重命名表格需要同步修改约束
alter table cla rename to cla2;

–删除表格
–语法:drop table 表格名称
–注意:删除主键表前,需要删除外键表上的引用关系
drop table cla;

–查询表格
select table_name from user_tables;

– 修改表格,添加外键约束
– Create/Recreate primary, unique and foreign key constraints
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 PK_t1指定约束名
name varchar(20) constraint UN_t1_name unique not null, --唯一和非空约束
sex char(2) constraint CK_t1_sex check(sex in(‘男’,‘女’)),
tid number constraint FK_t1_t references t(id)
);

create table t2(
id number,
name varchar(20) not null, --not null 只能定义在列的后面,称为行级约束
sex char(2),
tid number,
constraint PK_T2 primary key(id), --先定义列后编写约束 称为表级约束
constraint UN_T2_NAME unique(name),
constraint CK_SEX check(sex in(‘男’,‘女’)),
constraint FK_T2 foreign key(tid) references T(id)
)

–reference和references的区别
–refere可以子定义列的同事引用主键表:reference不可以
–常见数据类型:char varchar varchar2 nvarchar2
create table t3(
id number,
sid number,
name nvarchar2(20),
name2 nvarchar2(20),
constraint PK_T3 primary key(id,sid), --联合主键
constraint UN_t3_name_name2 unique(name,name2)–联合唯一
);


–sequence序列
–序列是数据库的一种对象,用于生成一串不重复的编号,可以递增或者递减
–语法:
create sequence SEQ_CLA;

– Create sequence
create sequence SEQ_STU
minvalue 10000 --最小值 默认是1
start with 10000 --起始值 默认是1
increment by 1 --增量或步长 正为增加,负为减少 默认是1
cache 20; --批量生成多少个序号,使用完后再生成一批,用于序列的创建优化,默认是20

– Create sequence
create sequence SEQ_TEST
minvalue 10000
maxvalue 9999999999999999999999999999
start with 10000
increment by 1
cache 20;

–序列在使用时可以使用序列的两个伪列:CURRVAL --取得序列的当前值;NEXTVAL --获取序列的下一个值
–序列创建后CURRVAL没有值,必须先使用NEXTVAL获取下一个值,生成一批序列,CURRVAK才能生效
SELECT SEQ_TEST.NEXTVAL FROM DUAL;
SELECT SEQ_TEST.CURRVAL FROM DUAL;

–修改序列,修改序列为start with
alter sequence SEQ_TEST
increment by 4 --序列每次增加4
maxval 1000 --序列最大值为10000
nocache; --不设定缓存
–删除序列
drop sequence sequence SEQ_TEST;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值