一 创建用户
语法[创建用户]: create user 用户名 identified by 口令[即密码]
#创建一个名为testuser 密码为testpassword 的用户 create user testuser identified by testpassword
语法[更改用户]: alter user 用户名 identified by 口令[改变的口令]
#更改testuser用户的密码为change alter user testuser identified by change
删除用户:语法:drop user 用户名;
drop user testuser ;
若用户拥有对象,则不能直接删除,否则将返回一个错误值。指定关键字cascade,可删除用户所有的对象,然后再删除用户。
语法: drop user 用户名 cascade;
drop user testuser cascade;
二 授权角色
Oracle为兼容以前版本,提供三种标准角色(role):connect/resource和dba。分别是connect role(连接角色):只对其他用户的表有访问权限,包括select/insert/update和delete等。resource role(资源角色):提供给用户另外的权限以创建他们自己的表、序列、过程(procedure)、触发器(trigger)、索引(index)和簇(cluster)。dba role(数据库管理员角色):拥有所有的系统权限,包括无限制的空间限额和给其他用户授予各种权限的能力。
授权命令语法: grant connect, resource to 用户名;
例子: grant connect, resource to test;
(3)撤销权限
语法: revoke connect, resource from 用户名;
列子: revoke connect, resource from testuser;
三 建表
创建一张学生课程成绩表(包括主外键):
create table score( scoreid number(10) primary key, sid number(10) references student(sid), cid number(10) references course(cid), score number(10) );
创建主键:
alter table AOP_BASE_HOSTTZ
add primary key (hosttz_id)
using index
tablespace XZDATA
pctfree 10
initrans 2
maxtrans 255
storage
(
initial 64K
next 1M
minextents 1
maxextents unlimited
);
创建外键:
alter table AOP_AUTH_DUTY
add constraint BB5B2C32A1970D79D1B4F7A8E83BF2 foreign key (LAST_UPDATED_BY)
references AOP_AUTH_USER (USER_ID)
deferrable initially deferred;
创建索引:
create sequence AOP_BASE_IP_SQ
minvalue 1
maxvalue 9999999999999999999999999999
start with 1
increment by 1
cache 20;
创建索引名称 最小 最大 开始于 增量 高速缓存大小
创建触发器:
CREATE OR REPLACE TRIGGER "AOP_BASE_IP_TR"
BEFORE INSERT ON "AOP_BASE_IP"
FOR EACH ROW
when (new."OBJ_ID" IS NULL)
BEGIN
SELECT "AOP_BASE_IP_SQ".nextval
INTO :new."OBJ_ID" FROM dual;
END;
创建存储过程:
/**
* get AOP_C_M_MW_CODE
**/
FUNCTION AOP_C_M_MW_CODE RETURN VARCHAR2;
--
--FUNCTION AOP_C_M_MW_CODE RETURN VARCHAR2 IS
FUNCTION AOP_C_M_MW_CODE RETURN VARCHAR2 IS
V_CODE AOP_COLLECTION_MANAGEMENT_MW.CM_CODE%TYPE;
BEGIN
-- ??code??????1??????????1??
SELECT NVL(MAX(TO_NUMBER(REGEXP_SUBSTR(D.CM_CODE, '[0-9]+'))), 0) + 1
INTO V_CODE
FROM AOP_COLLECTION_MANAGEMENT_MW D;
-- ???? EMERGENCY-ITEM-001
V_CODE := 'COMA-MW-' || LPAD(V_CODE, 3, 0);
RETURN V_CODE;
END;
然后TR触发器中需添加:
SELECT GET_CODE_PKG.AOP_C_M_MW_CODE
INTO :NEW.CM_CODE
FROM DUAL;