sql-自动增长的列
mysql自动增长
如果某一列是数值类型的,使用 auto_increment 可以来完成值得自动增长
方式1:创建表时,添加主键约束,并且完成主键自增长
create table stu(
id int primary key auto_increment, -- 给id添加主键约束
name varchar(20)
);
方式2:创建完表之后添加自动增长
ALTER TABLE stu MODIFY id INT AUTO_INCREMENT;
ALTER TABLE stu MODIFY id INT; -- 删除自动增长
oracle使用序列实现自增长
序列 可以实现自动增长
序列的两个属性:
- nextval:指向下一个元素
- currval:指当前一个元素
创建序列
create sequence 序列名
increment by 步长
start with 初始值
maxvalue|nomaxvalue
minvalue|nominvalue
cycle|nocycle
cache 3|no cache
create sequence myseq ; -- [1] 2 3 4 5 6
修改序列
【alter】 sequence 序列名
increment by 步长2
start with 初始值
maxvalue|nomaxvalue
minvalue|nominvalue
cycle|nocycle
cache 3|no cache
- 注意:修改序列 只会影响修改以后的值。
删除序列
drop sequence 序列名;
drop sequence myseq;
裂缝
- 使用序列,有可能产生裂缝:
- 系统异常、回滚、多表使用同一个序列
oracle中的索引
(索引表中rowid不一定连续,但是可以通过算法快速定位rowid)
Oracle中的索引类型: B树索引(默认)、位图索引(矩阵索引)