Oracle第十六章:序列、索引、同义词
程序员文章站
2022-06-02 13:08:48
...
第十六章:序列、索引、同义词
-------------------------------------------------
--序列、索引
------------------------------------------------
-----------------------------序列SEQUENCE---------------------
序列是按照一定规则能自动增加/减少数字的一种数据库对象
作用:一般用于主键自增
--创建简单的序列 :默认从1开始,每次自增1
create sequence seq_emp_id;
create sequence seq_person_id;
create sequence seq_person_pid;
--访问简单序列 NEXTVAL和CURRVAL伪列
-- nextval返回序列的下一个值
-- currval返回当前会话序列值 :一定是在当前会话中执行了nextval之后才能执行currval
select seq_emp_id.nextval from dual;
select seq_emp_id.currval from dual;
--创建一张表
create table person(
pid number(4),
pname varchar(10),
sex char(2) default '男',
birthday date,
age number(3),
weight number(6,2),
address varchar2(30)
)
drop table person;
--给person表添加数据
insert into person(pid,pname,sex,age) values(1,'zhangsan','女',10);
insert into person(pid,pname,sex,age) values(2,'lisi','女',10)
insert into person(pid,pname,sex,age) values(seq_person_id.nextval,'lisi','女',10)
insert into person(pid,pname,sex,age) values(seq_person_id.nextval,'zhangsan','女',10);
insert into person(pid,pname,sex,age) values(seq_person_pid.nextval,'zhangsan1','女',10);
--创建复杂的序列
CREATE SEQUENCE seq_emp_empno
START WITH 10 --序列从10开始 :开始位置
INCREMENT BY 1 --序列每次增加1 :自增量
MAXVALUE 99999999999 --序列最大值999999999
MINVALUE 10 --序列最小值10
CYCLE --序列循环,每次增加1,一直到99999999999后回到10 从新开始
CACHE 10; --缓存中序列值个数为10
CREATE SEQUENCE seq_emp_empno
START WITH 7935
INCREMENT BY 1
MAXVALUE 99999999999
MINVALUE 7935
CYCLE
CACHE 10;
insert into emp(empno,ename) values(seq_emp_empno.nextval,'wangwu1')
--访问复杂的序列
select seq_emp_empno.nextval from dual;
使用序列新增一个部门,同时将10号部门的员工调到该部门去
--①创建序列
create sequence seq_dept_deptno
start with 60
increment by 10
--②给部门表调加数据
insert into dept(deptno,dname,loc) values(seq_dept_deptno.nextval,'实施部','neusoft')
--③将10号部门的员工调到该部门去
update emp set deptno=seq_dept_deptno.currval where deptno=10;
--修改序列
注意:修改序列的语法没有START WITH子句。简单来说就是不能修改开始位置
--修改序列seq_emp_empno的自增量为2
alter sequence seq_emp_empno
increment by 2
上一篇: SQLServer 数据库变成单个用户后无法访问问题的解决方法
下一篇: 2355: 小明问问题
推荐阅读
-
oracle学习笔记(十四) 数据库对象 索引 视图 序列 同义词
-
Oracle实践--PL/SQL基础之同义词和序列
-
oracle序列、触发器及索引示例
-
Oracle之DDL (Data Definition Language ,数据定义语言)(约束、伪列、视图、序列、同义词) 精简版
-
Oracle数据库基本操作(二) —— 视图、序列、索引、同义词
-
oracle 序列 视图 索引 同义词
-
Oracle序列、索引、同义词操作讲解
-
Oracle中的概念:同义词、序列与视图
-
Oracle入门基础(十)一一数据库其他对象-视图/序列/索引/同义词
-
oracle教程14 Oracle的其他数据库对象(序列 、索引 、同义词)