orcle主键自增长实例 以及密码丢失问题

来源:互联网 发布:mina发送广播数据 编辑:程序博客网 时间:2024/06/05 17:50
Oracle序列详解和创建自增主键


Oracle序列主键============================================


序列:是oracle提供的用于生产一系列唯一数字的数据库对象
自动提供唯一的数值


共享对象


主要用于提供主键值


将序列值装入内存可以提高访问效率






语法===========================


increment by 用于定义序列的不长 如果省略 则默认为1


start with 定义序列的初始值(即产生的第一个值),默认为1


maxvalue 最大值  nomaxvalue默认选项 没有最大值
minvalue 最小值  nominvalue默认选项
递增oracle 最大值 10的27次方 
递减序列 最小值1


cycle 和nocycle


cache(缓冲)






删除Oracle序列的语法是drop sequence 序列名;===========================








建表语句=============================================
create table car(
id  number(10) not null,
speed varchar2(32),
price varchar2(32),
des varchar2(32),
constraint pk_id primary key(id)
)




建立序列
create sequence seq_car_id
start with 1
increment by 1
minvalue 1
maxvalue 99999999
nocycle
nocache
order;






建立触发器
CREATE OR REPLACE TRIGGER trg_car_id
BEFORE INSERT ON car
FOR EACH ROW
BEGIN
SELECT seq_car_id.nextval INTO :new.id FROM dual;

END;






一、忘记除SYS、SYSTEM用户之外的用户的登录密码。


用sys或system用户登录,执行修改数据库密码
#sqlplus sys/oracle@"sid" as sysdba 


使用如下语句修改用户的密码:
SQL> alter user "username" identified by "newpass";


注意:密码不能全是数字。并且不能是数字开头。否则会出现:ORA-00988:口令缺失或无效




二、忘记SYS用户,或者是SYSTEM用户的密码。


如果是忘记system/sys密码,且人就在数据库服务器旁边,可以可以通过本地验证方式登录,执行如下操作:

$ sqlplus / as sysdba
SQL> alter user "username" identified by "newpass";






用数据字典
select * from dba_users; 查看数据库里面所有用户,前提是你是有dba权限的帐号,如sys,system
select * from all_users; 查看你能管理的所有用户!
select * from user_users; 查看当前用户信息 ! 


查询当前用户所有表
方法一:select * from tab;
方法二:select * from user_tables;




select username,default_tablespace from dba_users  where username='用户名';


查看结果(如查询scott用户的所属表空间):
搜索
select username,default_tablespace from dba_users  where username='SCOTT';--用户名需要大写

原创粉丝点击