-
2018-12-08 16:44:39
方法一:
使用Sequence
方法二:
使用guid 获取方式:
select sys_guid() from dual;
SYS_GUID (),是Oracle 8i 后提供的函数。SYS_GUID产生并返回一个全球唯一的标识符(原始值)由16个字节组成。在大多数平台,生成的标识符由主机标符,执行函数的进程或者线程标识符,和进程或线程的一个非重复的值(字节序列)组成。可以用来生成唯一标识ID。方法三:
select SUBSTR(TO_CHAR(DBMS_RANDOM.VALUE(11, 99)), 4, 32) from dual
生成一个32位的随机数字更多相关内容 -
在数据库中能够唯一地标识一个记录被称为 MySQL数据库使用教程
2021-03-14 13:57:19主关键字(主键,primary key)是表中的一个或多个字段,它的值用于唯一地标识表中的某一条记录。在数据库中能够唯一地标识一个记录被称为主键。主键是数据库中具有唯一性的字段,也就是说数据表中的任意两条记录都不...主关键字(主键,primary key)是表中的一个或多个字段,它的值用于唯一地标识表中的某一条记录。
在数据库中能够唯一地标识一个记录被称为主键。主键是数据库中具有唯一性的字段,也就是说数据表中的任意两条记录都不可能拥有相同的主键字段。(推荐学习:MySQL视频教程)
在两个表的关系中,主关键字用来在一个表中引用来自于另一个表中的特定记录。
主关键字是一种唯一关键字,表定义的一部分。一个表的主键可以由多个关键字共同组成,并且主关键字的列不能包含空值。
主关键字是可选的,并且可在 CREATE TABLE 或 ALTER TABLE 语句中定义。
作用
1)保证实体的完整性;
2)加快数据库的操作速度;
3)在表中添加新记录时,ACCESS会自动检查新记录的主键值,不允许该值与其他记录的主键值重复;
4) ACCESS自动按主键值的顺序显示表中的记录。如果没有定义主键,则按输入记录的顺序显示表中的记录。
遵循原则
建立主键应该遵循的原则
1. 主键应当是对用户没有意义的。如果用户看到了一个表示多对多关系的连接表中的数据,并抱怨它没有什么用处,那就证明它的主键设计地很好。
2. 永远也不要更新主键。实际上,因为主键除了唯一地标识一行之外,再没有其他的用途了,所以也就没有理由去对它更新。如果主键需要更新,则说明主键应对用户无意义的原则被违反了。
注:这项原则对于那些经常需要在数据转换或多数据库合并时进行数据整理的数据并不适用。
3. 主键不应包含动态变化的数据,如时间戳、创建时间列、修改时间列等。
4. 主键应当由计算机自动生成。如果由人来对主键的创建进行干预,就会使它带有除了唯一标识一行以外的意义。一旦越过这个界限,就可能产生人为修改主键的动机,这样,这种系统用来链接记录行、管理记录行的关键手段就会落入不了解数据库设计的人的手中。
更多MySQL相关技术文章,请访问MySQL教程栏目进行学习!
-
小程序云开发 一开通云开发,给数据库添加一条记录
2020-05-12 11:28:27第一步,开通云开发: ... 开通之后会有一个控制台,可以直接在控制台进行数据库的操作 ...注:AppID 首次开通云环境后,需等待大约 10 ...云开发提供了一个 JSON 数据库,顾名思义,数据库中的每条记录都是一个 JS...先来一个给云数据库添加一条数据库记录的代码:
wx.cloud.init({ env:'school-5k07l' }) const db = wx.cloud.database() const school = db.collection('school_db') //school_db是数据库记录的名称,相当于MYSQL中数据库的表的名字 school.add({ // data 字段表示需新增的 JSON 数据 data: { name: '食堂厕所', place: '一二食堂一楼', type: '厕所' }, success: function (res) { // res 是一个对象,其中有 _id 字段标记刚创建的记录的 id console.log('--------------',res) } })
第一步,开通云开发:
点击开发者工具左上角的云开发按钮,就可以开通,个人认证的小程序也可以开通。
开通之后会有一个控制台,可以直接在控制台进行数据库的操作
注:AppID 首次开通云环境后,需等待大约 10 分钟方可正常使用云 API
云开发中的数据库和普通的数据库是有区别的,下面看看有什么区别
云开发提供了一个 JSON 数据库,顾名思义,数据库中的每条记录都是一个 JSON 格式的对象。一个数据库可以有多个集合(相当于关系型数据中的表),集合可看做一个 JSON 数组,数组中的每个对象就是一条记录,记录的格式是 JSON 对象。
关系型数据库和 JSON 数据库的概念对应关系如下表:
关系型 文档型 数据库 database 数据库 database 表 table 集合 collection 行 row 记录 record / doc 列 column 字段 field 以下是一个示例的集合数据,假设我们有一个
books
集合存放了图书记录,其中有两本书:[ { "_id": "Wzh76lk5_O_dt0vO", "title": "The Catcher in the Rye", "author": "J. D. Salinger", "characters": [ "Holden Caulfield", "Stradlater", "Mr. Antolini" ], "publishInfo": { "year": 1951, "country": "United States" } }, { "_id": "Wzia0lk5_O_dt0vR", "_openid": "ohl4L0Rnhq7vmmbT_DaNQa4ePaz0", "title": "The Lady of the Camellias", "author": "Alexandre Dumas fils", "characters": [ "Marguerite Gautier", "Armand Duval", "Prudence", "Count de Varville" ], "publishInfo": { "year": 1848, "country": "France" } } ]
在图书信息中,我们用
title
,author
来记录图书标题和作者,用characters
数组来记录书中的主要人物,用publishInfo
来记录图书的出版信息。在其中我们可以看到,字段既可以是字符串或数字,还可以是对象或数组,就是一个 JSON 对象。每条记录都有一个
_id
字段用以唯一标志一条记录、一个_openid
字段用以标志记录的创建者,即小程序的用户。需要特别注意的是,在管理端(控制台和云函数)中创建的不会有_openid
字段,因为这是属于管理员创建的记录。开发者可以自定义_id
,但不可自定义和修改_openid
。_openid
是在文档创建时由系统根据小程序用户默认创建的,开发者可使用其来标识和定位文档。数据库 API 分为小程序端和服务端两部分,小程序端 API 拥有严格的调用权限控制,开发者可在小程序内直接调用 API 进行非敏感数据的操作。对于有更高安全要求的数据,可在云函数内通过服务端 API 进行操作。云函数的环境是与客户端完全隔离的,在云函数上可以私密且安全的操作数据库。
数据库 API 包含增删改查的能力,使用 API 操作数据库只需三步:获取数据库引用、构造查询/更新条件、发出请求。以下是一个在小程序中查询数据库的发表于美国的图书记录的例子:
// 1. 获取数据库引用 const db = wx.cloud.database() // 2. 构造查询语句 // collection 方法获取一个集合的引用 // where 方法传入一个对象,数据库返回集合中字段等于指定值的 JSON 文档。API 也支持高级的查询条件(比如大于、小于、in 等),具体见文档查看支持列表 // get 方法会触发网络请求,往数据库取数据 db.collection('books').where({ publishInfo: { country: 'United States' } }).get({ success: function(res) { // 输出 [{ "title": "The Catcher in the Rye", ... }] console.log(res) } })
-
SQL高级语句-SQL UNIQUE 约束,唯一标识数据库表中的每条记录。
2017-02-28 09:20:14UNIQUE 约束唯一标识数据库表中的每条记录。 UNIQUE 和 PRIMARY KEY 约束均为列或列集合提供了唯一性的保证。 PRIMARY KEY 拥有自动定义的 UNIQUE 约束。 请注意,每个表可以有多个 UNIQUE 约束,但是每个...SQL UNIQUE 约束
UNIQUE 约束唯一标识数据库表中的每条记录。
UNIQUE 和 PRIMARY KEY 约束均为列或列集合提供了唯一性的保证。
PRIMARY KEY 拥有自动定义的 UNIQUE 约束。
请注意,每个表可以有多个 UNIQUE 约束,但是每个表只能有一个 PRIMARY KEY 约束。
SQL UNIQUE Constraint on CREATE TABLE
下面的 SQL 在 "Persons" 表创建时在 "Id_P" 列创建 UNIQUE 约束:
MySQL:
CREATE TABLE Persons ( Id_P int NOT NULL, LastName varchar(255) NOT NULL, FirstName varchar(255), Address varchar(255), City varchar(255),
UNIQUE (Id_P)
)SQL Server / Oracle / MS Access:
CREATE TABLE Persons ( Id_P int NOT NULL
UNIQUE
, LastName varchar(255) NOT NULL, FirstName varchar(255), Address varchar(255), City varchar(255) )如果需要命名 UNIQUE 约束,以及为多个列定义 UNIQUE 约束,请使用下面的 SQL 语法:
MySQL / SQL Server / Oracle / MS Access:
CREATE TABLE Persons ( Id_P int NOT NULL, LastName varchar(255) NOT NULL, FirstName varchar(255), Address varchar(255), City varchar(255),
CONSTRAINT uc_PersonID UNIQUE (Id_P,LastName)
)SQL UNIQUE Constraint on ALTER TABLE
当表已被创建时,如需在 "Id_P" 列创建 UNIQUE 约束,请使用下列 SQL:
MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Persons
ADD UNIQUE (Id_P)
如需命名 UNIQUE 约束,并定义多个列的 UNIQUE 约束,请使用下面的 SQL 语法:
MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Persons
ADD CONSTRAINT uc_PersonID UNIQUE (Id_P,LastName)
撤销 UNIQUE 约束
如需撤销 UNIQUE 约束,请使用下面的 SQL:
MySQL:
ALTER TABLE Persons
DROP INDEX uc_PersonID
SQL Server / Oracle / MS Access:
ALTER TABLE Persons
DROP CONSTRAINT uc_PersonID
-
如何区分SQL数据库中的主键与外键
2021-01-19 22:14:13一、什么是主键、外键: 关系型数据库中的一条记录中有若干个属性,若其中某一个属性组(注意是组)能唯一标识一条记录,该属性组就可以成为一个主键比如 : 学生表(学号,姓名,性别,班级) 其中每个学生的学号是唯一... -
MySQL中查询时间最大的一条记录
2021-01-18 20:09:22在项目中要查询用户最近登录的一条记录的 ip直接写如下 SQL:SELECT ip,MAX(act_time) FROM users_login GROUP BY login_id;但是这样是取不出用户登录记录中时间最大的那个 ip , 仅仅只是查到了最大时间,和 ip 没... -
数据库 主键 外键 唯一键区别
2018-11-13 19:57:15下面我通过一个小栗子来说明我们应该如何选择主键,外键和唯一键。 现在我们想建立学生表,用来存储,一个系统的登陆信息。建表如下: create table student4 ( stu_id int primary key identity,--identity表示... -
初学:数据库操作(个能记录,生成唯一标识的方法)
2018-01-05 17:07:04关于sql server 的数据操作(生成唯一标示ID) 1.SQL 操作语句 ...2.生成一个唯一标示 IDNEWID() 插入一条: insert into W_1(id,account,password,uname,telnumber,imei) values(NEWID(),’xiaohong’ -
数据库的数据表中一行称为什么
2021-01-19 15:39:58根据表字段所规定的数据类型,我们可以e5a48de588b662616964757a686964616f31333431353361向其中填入一条条的数据,而表中的每条数据类似类的实例对象。表中的一行一行的信息我们称之为记录。没有数据表,关键字、... -
数据库的唯一标示符(ID)的选择
2016-03-03 11:14:05背景:数年的工作中,已经设计了很多系统或产品的数据库,有单机的、有局域网环境下的、也有互联网环境下的,对于不同的环境,设计考虑都有所不同。即使对于相同的环境,也会因为业务或者数据量的不同而有不同的设计... -
数据库表的主键、唯一约束和索引
2021-11-23 17:31:461、MySQL 的 主键。...(2)主键值必须唯一标识表中的每一行,且不能为 NULL,即同一个表中不可能存在两行数据有相同的主键值。 2、MySQL 的 唯一约束。 MySQL唯一约束(Unique Key)是指所有记录中字 -
数据库中的数据查询
2022-03-17 18:40:10在表中,每行代表一个唯一记录,每列代表记录中的一个字段。例如, SYS_User表包含用户数据,如用户标识号,姓名,电话,地址和电子邮件,如图所示:(注:下面所有的信息都是假的) SQL Server使用模式对表和其他... -
解决数据库报唯一性约束错误的实践
2021-01-28 22:02:56实际的使用中,尤其高并发场景下,很容易出现插入同一条记录的情况,该情况下数据库会报违反唯一性约束的错误。总不能让数据库一直抛这个错误吧。于是我们想到可以在业务代码中加上该列值是否... -
理解数据库中的主键,外键,唯一键
2018-01-13 10:17:22主键唯一标示表中的每一条记录,外键是主键的副本,从父表中复制出来的,用于建立父表和子表之间的关系,唯一键 确保表中谋值得唯一性。 -
数据库概论练习题第一章整理(1)
2021-01-28 11:48:11整理于2020.2.21另:可翻看 ...2.在数据库系统中,如果数据库的存储结构发生了变化,那么用户的应用程序可以不变。3.应用程序员所看到和使用的是数据库的逻辑模型。4.下面列出的数据库管理技术发展的三... -
数据库唯一性约束
2016-07-08 09:34:44UNIQUE 约束唯一标识数据库表中的每条记录。 UNIQUE 和 PRIMARY KEY 约束均为列或列集合提供了唯一性的保证。 PRIMARY KEY 拥有自动定义的 UNIQUE 约束。 请注意,每个表可以有多个 UNIQUE 约束,但是每个表只能... -
数据库主键、外键和唯一键的区别
2019-10-24 17:37:29数据库主键、外键和唯一键的区别 现在我们想建立学生表,用来存储,一个系统的登陆信息。建表如下: create table student4 ( stu_id int primary key identity,--identity表示自增 stu_name nvarchar(10) unique ... -
聊聊数据库中的关键字——字段、属性、列、元组、记录、表、主键、外键
2019-09-21 21:22:40学完数据库,我们对SQL SERVER 2008中的部分关键字有了大概的了解,下面我来总结一下几个比较重要的关键字:字段、属性、列、记录(元组)、表、主键、外键。 一、字段:某一个事物的一个特征,或者说是属性 在... -
数据库中的候选码、主码、全码、外码、主属性
2020-04-09 16:21:551、候选码:能够唯一标识一条记录的最小属性集。若关系中的一个属性或属性组的值能够唯一地标识一个元组,且他的真子集不能唯一的标识一个元组,则称这个属性或属性组做候选码。 2、主码:主码指主关键字。主关键字... -
SQL Server 创建约束图解(唯一 主键)
2020-12-15 15:14:31SQLServer中有五种约束,Primary Key约束、...通过这个字段中不同的值可以区别各条记录。就像我们区别不同的人,每个人都有名字,但它却不能作为主键,因为人名很容易出现重复,而身份证号是每个人都不同的,所以 -
各种数据库查询前几条数据的方法
2018-09-05 10:08:42sql在不同数据库查询前几条数据 关键字: sql 前几条结果 sql在不同数据库查询前几条数据 1. ORACLE SELECT * FROM TABLE1 WHERE ROWNUM<=N select * from stu_info where rownum<=10 ... -
数据库 第一章 绪论
2020-12-21 22:22:07数据(Data)是数据库中存储的基本对象 数据的定义 描述事物的符号记录 2、数据库(Database) 数据库的定义 数据库(Database,简称DB)是长期储存在计算机内、有组织的、可共享的大量数据的集合。 数据库的基本... -
细说在一次中间件开发中如何实现每次业务调用的唯一标识之流水号生成以及应用
2018-01-11 13:19:20在web系统中,谁也不能保证每一次的业务调用都能正常的执行,在这样的情况下,我们该如何去处理? 如果能保证每一次的业务调用的结果都持久化到数据库,而出现异常后,能根据数据库记录去检索日志文件,定位到异常... -
数据库的基本操作
2022-03-07 14:09:33数据库的创建(create): create database 数据库名;...表是一种重要的数据库对象,存储数据库中所有的数据,如果把数据库比喻成菜鸟驿站,那表就像驿站中放置快递的架子,一个表就是一个实体集,表实质上是行和列的集. -
数据库中的数据完整性
2020-05-12 17:49:07实体:即表中的一行(一条记录)代表一个实体(entity) 实体完整性的作用:标识每一行数据不重复 约束类型: 主键约束(primary key):每个表中都要有一个主键,数据唯一,且能为 null 唯一约束(unique):数据不... -
2021-10-18 构建电影数据库MovieDB(数据库第一次实验)
2021-10-18 20:49:56一、实验目标 创建数据库和基本表,输入、修改数据 二、实验步骤 1、使用控制台或Workbench连接MySQL的本地数据库(localhost) 2、使用SQL语句创建数据库 MovieDB 3、使用SQL语句创建基本表,并定义数据类型、... -
数据库学习一:创建数据库 、创建表、向表中插入数据与检索数据
2018-05-21 00:00:37再使用show命令可以看出系统中多了一个自己创建的数据库名。4.创建表。数据库是表的容器,表,必须输入某个数据库。因而在创建表之前要指定数据库。1.可以通过语法指明表所属的数据库。库.表语法。如果任何的标识符... -
数据库中的外键
2019-09-09 16:38:14关系型数据库中的一条记录中有若干个属性,若其中某一个属性组(注意是组)能唯一标识一条记录,该属性组就可以成为一个主键 比如 学生表(学号,姓名,性别,班级) 其中每个学生的学号是唯一的,学号就是一个主键 课程... -
关于SQL Server数据库中的标识列
2014-04-08 00:36:25一、标识列的定义以及特点 SQL Server中的标识列又称标识符列,习惯上又叫自增列。 该种列具有以下三种特点: 1、列的数据类型为不带小数的数值... 由于以上特点,使得标识列在数据库的设计中得到广泛的使用。