SQL常用的概念

自动增加属性值

关键字"auto_increment"

MySQL中为主键添加AUTO_INCREMENT关键字可以实现每增加一条记录时,字段值自动加1,默认情况下,AUTO_INCREMENT的初始值为1,一个数据表中只能有一个字段使用AUTO_INCREMENT约束,并且该字段必须是主键的一部分,AUTO_INCREMENT约束的字段可以是任何整数类型。

create table course(
	id int(10)  auto_increment,
	no int(10),
	name varchar(20),
	constraint score_id primary  key(id)
)

注:“auto_increment"关键字,只存在于MySQL数据库中;Oracle数据库中不存在。但是Oracle数据库中可以使用序列"sequence"来代替"auto_increment”

序列"sequence"

在oracle数据库中的序列(sequence)主要有"currval"、“nextval”、“minvalue”、“maxvalue”、“increment by”、“cache”、"cycle"这几个属性。

"currval"表示序列当前的序列值;

"nextval"表示获取序列下一个序列值,每调用一次,序列值就自动增加一个步长;

“minvalue"表示指定序列的最小值,默认值为"1”,但是序列的最小值不能大于序列的当前值。

“maxvalue"表示指定序列最大值,默认值为"10^27”;

“increment by"表示序列的增长步长,即每调用一次"nextval"后,序列值的增长值,默认为"1”;

"cache"表示序列缓存,缓存的意义在于Oracle一次性获取序列中的多个连续值,并且将这些序列值存储在内存中,当所有序列的"nextval"时,可以直接在缓存中获取,从而提高效率。
注:最好不要使用该属性,因为如果在使用过程中,Oracle宕机了,就会导致序列不连续。

“cycle"表示允许序列值循环取值,即当序列的序列值达到序列的最大值后,下一个序列值从序列的最小值开始获取。
注:最好不要使用该属性,因为使用该属性,会违背主键的唯一性原则。此外"cache”、"cycle"这两个属性,默认情况下是不使用的。

create sequence '序列名'

该语句可以创建一个简单的序列,初始值默认为’1’,步长默认为’1’。

create sequence '序列名' 
start with '初始值n'
minvalue 'n1'
maxvalue 'n2'
increment by 'n3'
cycle
cache

该语句可以创建一个序列,初始值默认为’n’,最小值为’n1’,最大值为’n2’,步长默认为’n3’,使用缓存和循环取值。

create sequence '序列名' 
start with '初始值n'
minvalue 'n1'
maxvalue 'n2'
increment by 'n3'
nocycle
nocache

该语句可以创建一个序列,初始值默认为’n’,最小值为’n1’,最大值为’n2’,步长默认为’n3’,不使用缓存和循环取值。

alter sequence '序列名' maxvalue 'n'

该语句可以将序列的最大值修改成’n’。

alter sequence '序列名'  nomaxvalue 

该语句可以将序列的最大值修改成无限大。

alter sequence '序列名' minvalue 'n'

该语句可以将序列的最小值修改成’n’。

alter sequence '序列名' increment by 'n'

该语句可以将序列的步长修改成’n’。

alter sequence '序列名' cycle

该语句允许序列进行循环取值。

alter sequence '序列名' nocycle

该语句不允许序列进行循环取值。

alter sequence '序列名' cache '缓存区大小n'

该语句可以将序列的缓存区大小修改成’n’,默认的缓存区大小为’20’。

alter sequence '序列名' nocache

该语句不允许序列进行缓存。

注:序列的初始值,不能被修改,并且序列的序列标号也不能被修改。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值