一口气说出4种主流数据库ID自增长,面试官懵了

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 一口气说出4种主流数据库ID自增长,面试官懵了

自增长ID的实现主要依赖数据库的设置,需要先在数据表中创建对应的自增ID字段。


具体创建方式每种数据库可能会有区别,本文将简单介绍几种常见数据库的自增id设置方式。


⛳️ 1.SQL Server


e681caf931054a6db0c886212d5c5a4a.png


🌈 1.1 图形化界面创建


假设在 SQL Server 数据库中存在下面一张数据表,

我们需要将其 ID 列实现自增长,就可以在列属性中设置是标识,修改标识增量和标识种子,


✨ ✨✨ ✨✨ ✨ 如下图:

7932995c8fa54d3884600bb48e10cec4.png


🌈 1.2 SQL语句创建


也可以使用 SQL 语句来创建,identity(1,1)指定 ID 由 1 开始,每次增长 1.


create table jeames(


id int identity(1,1) primary key,

kh varchar(20)

)


⛳️ 2.MySQL



f0dea3d173be4eee9bc7ac0ad4c2ab81.png


🌈 2.1 auto_increment自增ID


基于数据库的auto_increment自增ID来实现


b7b16c29afad4bfa84c29efd2683d145.png


##表中插入数据

mysql> insert into TEST_ID(value) VALUES (‘IT’);

mysql> insert into TEST_ID(value) VALUES ('CSDN);

mysql> insert into TEST_ID(value) VALUES ('IT);


e8ce0271d79b4254a1d35e33f69e8e70.png


🌈 2.2 修改自动增长起始值


mysql> alter table TEST_ID AUTO_INCREMENT=100

mysql> insert into TEST_ID(value) VALUES (‘001’);

mysql> insert into TEST_ID(value) VALUES (‘002’);


a794122320ab4da7b4e809263c124541.png


⛳️ 3.Oracle


在 Oracle 数据库中,提供了序列的功能,可以通过 Oracle 的序列及触发器,实现主键的自增长。


🌈 3.1 创建序列


CREATE SEQUENCE seq_name

INCREMENT BY 1

START WITH 1

NOMAXVALUE

NOCYCLE

CACHE 10;

6be477a71b6a43edbc54565b128ba887.png

🌈 3.2 创建触发器


##创建表

create table jem_db(id int,name varchar(30));



##创建触发器

CREATE OR REPLACE TRIGGER TRG_name

BEFORE INSERT ON jem_db

FOR EACH ROW

BEGIN

SELECT seq_name.nextval INTO :new.ID FROM dual ;

END;

73d18d9e99e94257a2f35dde872893b4.png


##插入数据验证

insert into jem_db (name) values(‘IT邦德’);

insert into jem_db (name) values(‘CSDN’);

insert into jem_db (name) values(‘热搜榜’);

select * from jem_db;


0892aabf388847f59c36f0c1f7fafd05.png


⛳️ 4.postgreSQL



PostgreSQL 使用序列来标识字段的自增长

CREATE TABLE runoob

(

id serial NOT NULL,

alttext text,

imgurl text

)

SMALLSERIAL、SERIAL 和 BIGSERIAL 范围:


6c9051c84d17447e80c6f7d98ab9744c.png


✨ ✨✨ ✨✨ ✨ 实例


假定我们要创建一张 COMPANY 表,并创建下面几个字段:


🐴🐴 第一步:登陆PG


2a5061d09ec74f7abd827e6781cbc75e.png


🐴🐴 第二步:创建表


CREATE TABLE COMPANY(

ID SERIAL PRIMARY KEY,

NAME TEXT NOT NULL,

AGE INT NOT NULL,

ADDRESS CHAR(50),

SALARY REAL

);


c6b2a54fb1d8435e85fec8431d65c88a.png


🐴🐴 第三步:现在往表中插入几条记录



INSERT INTO COMPANY (NAME,AGE,ADDRESS,SALARY)

VALUES ( ‘Paul’, 32, ‘California’, 20000.00 );

INSERT INTO COMPANY (NAME,AGE,ADDRESS,SALARY)

VALUES (‘Allen’, 25, ‘Texas’, 15000.00 );

INSERT INTO COMPANY (NAME,AGE,ADDRESS,SALARY)

VALUES (‘Teddy’, 23, ‘Norway’, 20000.00 );

INSERT INTO COMPANY (NAME,AGE,ADDRESS,SALARY)

VALUES ( ‘Mark’, 25, 'Rich-Mond ', 65000.00 );

INSERT INTO COMPANY (NAME,AGE,ADDRESS,SALARY)

VALUES ( ‘David’, 27, ‘Texas’, 85000.00 );

INSERT INTO COMPANY (NAME,AGE,ADDRESS,SALARY)

VALUES ( ‘Kim’, 22, ‘South-Hall’, 45000.00 );

INSERT INTO COMPANY (NAME,AGE,ADDRESS,SALARY)

VALUES ( ‘James’, 24, ‘Houston’, 10000.00 );


28607711502f44e384db1e8fab9014f1.png


🐴🐴 查看 COMPANY 表的记录如下

df348eed93c641d4b13c9c53dcb51082.png


相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
6月前
|
存储 分布式计算 大数据
HBase分布式数据库关键技术与实战:面试经验与必备知识点解析
【4月更文挑战第9天】本文深入剖析了HBase的核心技术,包括数据模型、分布式架构、访问模式和一致性保证,并探讨了其实战应用,如大规模数据存储、实时数据分析及与Hadoop、Spark集成。同时,分享了面试经验,对比了HBase与其他数据库的差异,提出了应对挑战的解决方案,展望了HBase的未来趋势。通过Java API代码示例,帮助读者巩固理解。全面了解和掌握HBase,能为面试和实际工作中的大数据处理提供坚实基础。
391 3
|
6月前
|
SQL 数据库 C#
C# .NET面试系列十一:数据库SQL查询(附建表语句)
#### 第1题 用一条 SQL 语句 查询出每门课都大于80 分的学生姓名 建表语句: ```sql create table tableA ( name varchar(10), kecheng varchar(10), fenshu int(11) ) DEFAULT CHARSET = 'utf8'; ``` 插入数据 ```sql insert into tableA values ('张三', '语文', 81); insert into tableA values ('张三', '数学', 75); insert into tableA values ('李四',
158 2
C# .NET面试系列十一:数据库SQL查询(附建表语句)
|
7天前
|
SQL 缓存 监控
大厂面试高频:4 大性能优化策略(数据库、SQL、JVM等)
本文详细解析了数据库、缓存、异步处理和Web性能优化四大策略,系统性能优化必知必备,大厂面试高频。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
大厂面试高频:4 大性能优化策略(数据库、SQL、JVM等)
|
4月前
|
SQL 关系型数据库 数据处理
实时计算 Flink版产品使用问题之如何去除源数据库的ID
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
6月前
|
NoSQL 安全 Unix
Redis源码、面试指南(4)单机数据库、持久化、通知与订阅(中)
Redis源码、面试指南(4)单机数据库、持久化、通知与订阅
49 0
|
4月前
|
canal 消息中间件 缓存
面试题:如何解决缓存和数据库的一致性问题?
面试题:如何解决缓存和数据库的一致性问题?
86 1
|
3月前
|
缓存 监控 Go
[go 面试] 缓存策略与应对数据库压力的良方
[go 面试] 缓存策略与应对数据库压力的良方
|
4月前
|
SQL Java 关系型数据库
Java面试题:描述JDBC的工作原理,包括连接数据库、执行SQL语句等步骤。
Java面试题:描述JDBC的工作原理,包括连接数据库、执行SQL语句等步骤。
66 0
|
5月前
|
XML 存储 分布式数据库
数据库主流技术
数据库主流技术
56 4
|
4月前
|
存储 小程序 数据库
【微信小程序-原生开发】实用教程08 - 开通微信云开发,操作云数据库新增数据(含修改数据权限),初始化云服务(含获取微信云环境 id),获取云数据,滚动公告栏
【微信小程序-原生开发】实用教程08 - 开通微信云开发,操作云数据库新增数据(含修改数据权限),初始化云服务(含获取微信云环境 id),获取云数据,滚动公告栏
71 0