使用数据库序列生成主键
一,什么是序列
序列(SEQUENCE)是序列号生成器,可以为表中的行自动生成序列号,产生一组等间隔的数值(类型为数字)。其主要
的用途是生成表的主键值,可以在插入语句中引用,也可以通过查询检查当前值,或使序列增至下一个值。
创建序列需要CREATE SEQUENCE系统权限。序列的创建语法如下:
CREATE SEQUENCE 序列名
[INCREMENT BY n]
[START WITH n]
[{MAXVALUE/ MINVALUE n|NOMAXVALUE}]
[{CYCLE|NOCYCLE}] [{CACHE n|NOCACHE}];
创建一个名称为:SEQUENCE_PARAMID 的序列:
CREATE SEQUENCE SEQUENCE_PARAMID
INCREMENT BY 1
MINVALUE 100001001
MAXVALUE 999999999
NOCYCLE
NOCACHE;
INCREMENT BY 用于定义序列的步长,如果省略,则默认为1,如果出现负值,则代表序列的值是按照此步长递减的。 START WITH
定义序列的初始值(即产生的第一个值),默认为1。 MAXVALUE
定义序列生成器能产生的最大值。选项NOMAXVALUE是默认选项,代表没有最大值定义,这时对于递增序列,系统能够产生的最大值是10的27次方;对于递减序列,最大值是-1。
MINVALUE定义序列生成器能产生的最小值 ...
在Oracle数据库中,什么是序列呢?它的用途是什么?序列(SEQUENCE)其实是序列号生成器,可以为表中的行自动
生成序列号,产生一组等间隔的数值(类型为数字)。其主要的用途是生成表的主键值,可以在插入语句中引用,也可以通
过查询检查当前值,或使序列增至下一个值。
二,使用序列生成主键
创建一个序列以后,如何使用这个序列,生成主键呢?我们获取序列的NEXTVAL就可以了,具体还要结合使用场景。
假如我们在INSERT语句中使用序列生成主键,只需要把SEQUENCE_PARAMID.NEXTVAL作为值,传递给主键字段就可以了。
假如我们想获取这个值,在程序中使用,我们可以通过下面的语句:SELECT SEQUENCE_PARAMID.NEXTVAL FROM DUAL;
和自增长的方式相比,序列具有更好的灵活性,可以根据需要设置的主键的长度。而使用自增长的方式,缺乏灵活
性,总是从1开始,每次递增1,我们没法控制。
三,实战演示
1,创建序列
CREATE SEQUENCE SEQUENCE_PARAMID
INCREMENT BY 1
MINVALUE 100001001
MAXVALUE 999999999
NOCYCLE
NOCACHE;
2,创建数据库表
CREATE TABLE YY_PRODUCT(
PRODUCT_ID VARCHAR(18) NOT NULL, -- 由于是主键,是唯一的,因此不用再加上unique关键字
PRODUCT_NAME VARCHAR(100) NOT NULL,
PRIMARY KEY(PRODUCT_ID) -- 把PRODUCT_ID 设置为主键
);
3,数据库插入操作
INSERT INTO YY_PRODUCT(
PRODUCT_ID,
PRODUCT_NAME
)
VALUES(
sequence_paramId.nextval,
'秋冬女士打底裤加绒加厚'
);
OK,一个简单的应用就是这样的,赶紧试试吧。这里补充说明一点,很多人会问,为什么你写SQL语句都用大写字母呢,
因为ORACLE和DB2数据库,在对SQL进行编译时,会把SQL转换成大写,我们都使用大写,数据库就减少了一个转换的
过程,这样可以提高SQL的执行效率。虽然对效率的提升不大,但相对而言,效率是有提升的。书写高效的SQL,必须要
从细节着手。正所谓:不积跬步无以至千里。
数据分析咨询请扫描二维码
在当今以数据为导向的商业环境中,数据分析师的角色变得越来越重要。无论是揭示消费者行为的趋势,还是优化企业运营的效率,数据 ...
2024-11-17金融数学是一门充满挑战和机遇的专业,它将数学、统计学和金融学的知识有机结合,旨在培养能够运用数学和统计方法解决复杂金融市 ...
2024-11-16在信息时代的浪潮中,大数据已成为推动创新的重要力量。无论是在商业、医疗、金融,还是在日常生活中,大数据扮演的角色都愈发举 ...
2024-11-16随着大数据技术的迅猛发展,数据已经成为现代商业、科技乃至生活各个方面的重要资产。大数据专业的毕业生在这一变革背景下,拥有 ...
2024-11-15随着大数据技术的迅猛发展,数据已经成为现代商业、科技乃至生活各个方面的重要资产。大数据专业的毕业生在这一变革背景下,拥有 ...
2024-11-15在快速演变的数字时代,数据分析已成为多个行业的核心驱动力。无论你是刚刚踏入数据分析领域,还是寻求进一步发展的专业人士,理 ...
2024-11-15Python作为一种通用编程语言,以其简单易学、功能强大等特点,成为众多领域的核心技术驱动者。无论是初学者还是有经验的编程人员 ...
2024-11-15在当今数据驱动的世界中,数据分析已成为许多行业的基础。无论是商业决策,产品开发,还是市场策略优化,数据分析都扮演着至关重 ...
2024-11-15数据分析作为现代商业和研究领域不可或缺的一部分,吸引了越来越多的初学者。然而,自学数据分析的过程中,初学者常常会遇到许多 ...
2024-11-15在当今的数据驱动世界中,机器学习方法在数据挖掘与分析中扮演着核心角色。这些方法通过从数据中学习模式和规律来构建模型,实现 ...
2024-11-15随着数据在各个行业的重要性日益增加,数据分析师在商业和技术领域的角色变得至关重要。其核心职责之一便是通过数据可视化,将复 ...
2024-11-15数据分析师的职责不仅仅局限于解析数据和得出结论,更在于将这些复杂的信息转换为清晰、易懂且具有影响力的沟通。良好的沟通能力 ...
2024-11-15数字化转型是企业提升竞争力和实现可持续发展的关键路径。面对快速变化的市场环境,以及技术的飞速发展,企业在数字化转型过程中 ...
2024-11-15CDA数据分析师认证:CDA认证分为三个等级:Level Ⅰ、Level Ⅱ和Level Ⅲ,每个等级的报考条件如下: Le ...
2024-11-14自学数据分析可能是一条充满挑战却又令人兴奋的道路。随着数据在现代社会中的重要性日益增长,掌握数据分析技能不仅能提升你的就 ...
2024-11-14数据分析相关职业选择 数据分析领域正在蓬勃发展,为各种专业背景的人才提供了丰富的职业机会。从初学者到有经验的专家,每个人 ...
2024-11-14数据挖掘与分析在金融行业的使用 在当今快速发展的金融行业中,数据挖掘与分析的应用愈发重要,成为驱动行业变革和提升竞争力的 ...
2024-11-14学习数据挖掘需要掌握哪些技能 数据挖掘是一个不断发展的领域,它结合了统计学、计算机科学和领域专业知识,旨在从数据中提取有 ...
2024-11-14统计学作为一门基于数据的学科,其广泛的应用领域和多样的职业选择,使得毕业生拥有丰厚的就业前景。无论是在政府还是企业,统计 ...
2024-11-14在当今高速发展的技术环境下,企业正在面临前所未有的机遇和挑战。数字化转型已成为企业保持竞争力和应对市场变化的必由之路。要 ...
2024-11-13