oracle用序列建表,oracle序列、创建表、表空间、用户相关

1、表空间TableSpace

作用:是用来建立用户与数据库文件之间的关系,用户插入的数据由表空间来决定保存到哪一个数据文件(.dbf)中。

A、语法

create tablespace 表空间名

datafile 数据文件名

size 初始大小

autoextend on next 步长

maxsize 最大大小

extent management local

临时表空间

create temporary tablespace 表空间名

tempfile 数据文件名

size 初始大小

autoextend on next 步长

maxsize 最大大小

extent management local

B、 默认的表空间:system

默认的临时表空间:temp

C、查看表空间

select * from v$tablespace;

查看所有的表空间

select file_name,tablespace_name from dba_data_files;

查看表空间中的数据文件

D、删除表空间

drop tablespace 表空间名 including contents and datafiles

E、注意点

1)一个表空间只能位于一个数据库

2)一个表空间可以关联多个数据文件

3)一个数据库可以有多个表空间

4)一个数据文件只能属于一个表空间

2、用户

A、创建用户

create user 用户名 identified by 密码 default tablespace 表空间 temporary tablespace 临时表空间;

案例:

create user ll identified by ll;

create user zmy identified by zmy default tablespace ts16 temporary tablespace temp;

B、给用户授权

用户创建之后,没有任何权限,必须给用户授权。

权限分为两种:一种是针对数据库对象(表、视图、表空间等)的权限,另一种是系统级别的权限。

对象权限:

允许用户操纵一些特定的对象,如读取视图,可更新某些列、执行存储过程等

select, update, insert, all …… //all包括所有权限

execute //执行存储过程权限

授权:grant 权限/角色列表 on 对象 to 用户;

撤消:revoke 权限/角色列表 on 对象 from 用户;

系统权限:

允许用户执行特定的数据库动作,如创建表、创建索引、连接实例等

create table、create tablespace、drop talbe等都是系统权限

授权:grant 权限/角色列表 to 用户

撤消:revoke 权限/角色列表 from 用户;

角色:角色是权限的集合,将用户与角色关联,角色有什么权限用户就有什么权限。

内置角色:connect(与登陆相关的的权限集合)、resource(与资源相关的权限集合)

grant connect, resource to ll;

创建角色:create role 角色名;

3、序列(sequence)

序列用于产生一个有序的数字。序列是一个数据库对象。

A、创建序列

CREATE SEQUENCE 序列名

[INCREMENT BY 步长(默认1)]

[START WITH 开始值(默认1)]

[{MAXVALUE / MINVALUE n|NOMAXVALUE}] 最大大小

[{CYCLE|NOCYCLE}] 是否循环

[{CACHE n|NOCACHE}];缓存,默认是20

例:

create sequence SEQ_BLOOD_SUGAR

minvalue 1 --最小值

nomaxvalue --不设置最大值(由机器决定),或 根据表字段的值范围设置 maxvalue

maxvalue 9999999999 -- 最大值

start with 1 --从1开始计数,数值可变

increment by 1 --每次加1,数值可变

nocycle --一直累加,不循环;cycle:达到最大值后,将从头开始累加

nocache; --不建缓冲区。 如果建立cache那么系统将自动读取cache值个seq,这样会加快运行速度;如果在单机中使用cache,或者oracle死了,那么下次读取的seq值将不连贯,所以不建议使用cache。

B、序列的属性

nextval:返回下一个值

currval:返回当前值

insert into ll.t(a,b,c) values(sq16.nextval,sq16.nextval,sq16.nextval);

4、创建表

Oracle 创建表之前判断表是否存在,如果存在则删除已有表

declare

num number;

begin

select count(1) into num from user_tables where table_name = upper('sys_area') ;

if num > 0 then

execute immediate 'drop table sys_area' ;

end if;

end;

– 建表

CREATE TABLE APP_BODY_WEIGHT_DATA

(

"ID" NUMBER(10,0) NOT NULL,

"USER_ID" NUMBER(10,0),

"HEIGHT" NUMBER(6,2),

"WEIGHT" NUMBER(6,2),

"BMI_LEVEL" NUMBER(2,0),

"DAY_STR" VARCHAR2(12),

"HOUR_STR" VARCHAR2(12),

"CREATE_TIME" DATE,

"SYS_TIME" DATE,

PRIMARY KEY ("ID")

);

– 区域表

CREATE TABLE sys_area

(

id Number(4) NOT NULL,

parent_id varchar2(64) NOT NULL,

parent_ids varchar2(2000) NOT NULL,

name nvarchar2(100) NOT NULL,

sort number(10,0) NOT NULL,

code varchar2(100),

type char(1),

create_by varchar2(64) NOT NULL,

create_date timestamp NOT NULL,

update_by varchar2(64) NOT NULL,

update_date timestamp NOT NULL,

remarks nvarchar2(255),

del_flag char(1) DEFAULT '0' NOT NULL,

PRIMARY KEY (id)

);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值