oracle 相关操作

时间:2023-03-08 18:56:04

1,SqlPlus 的使用

1.01,软登入:sqlplus /nolog

1.02,登入 dba 用户:sqlplus /as sysdba

2,用户相关操作

2.01,创建用户:create user 用户名 identified by 密码;

2.02,删除普通用户:drop user 用户名;

2.03,删除带数据的用户:drop user 用户名 cascade;

2.06,启用一个用户:alter user scott account unlock; (scott 用户名,需要DBA权限或本用户)

2.04,修改用户密码:alter user scott identified by oracle; (scott 用户名,需要DBA权限或本用户)

2.06,授权可连接带数据的用户:grant connect, resource to 用户名;  (connect 连接, resource 数据,dba 管理员)

2.07,查询所有的用户:select * from dba_users;  (需要DBA权限)

2.08,查询当前用户管理的用户:select * from all_users;

2.09,查询当前用户的信息:select * from user_users;

2.10,修改所有用户的密码永不过期:ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;

3,创建序列 

CREATE SEQUENCE 序列名

INCREMENT BY 1  -- 序列变化的步进,负值表示递减,默认位 1

START WITH 1  -- 序列的初始值, 默认 1

MAXvalue   -- 最大值,默认无

MINVALUE  -- 最小值,默认无

CYCLE  -- 当序列产生的值达到限制值后是否循环 NOCYCLE 不循环, CYCLE 循环

CACHE 20  -- 缓存序列的个数,默认为 20,NOCACHE 不缓存

4,创建触发器

4.1,结合序列创建自增主键

create or replace trigger  tig_name  -- tig_name 触发器名称

before insert on tab_name  -- before insert 插入之前,tab_name 表名

for each row  -- 每一行都触发

begin

  select seq_name.nextval into :new."id" from dual;   -- seq_name 序列名  "id"主键字段名(如果字段名和关键字冲突,使用双引号解决)

end;

5,数据库的四大查询(非 DBA 权限可用)

5.1,获取当前模式下的所有表            SELECT  *  FROM USER_TABLES

5.2,获取当前模式下的所有序列        SELECT * FROM USER_SEQUENCES

5.3,获取当前模式下的所有触发器    SELECT "NAME"  FROM USER_SOURCE WHERE TYPE='TRIGGER' GROUP BY "NAME"

5.3,查询数据库当前使用的字符集    SELECT USERENV  ('language')  FROM  DUAL;