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;