SQL中的主键

article/2025/9/16 0:51:08

一、什么是主键

 

数据库主键是指表中一个列或者列的组合,其值能够唯一的标识表中的每一个行。这样的一列或者多列成为表的主键,通过它可以强制表的实体完整性。当创建或者更改表时可以通过定义PRIMARY KEY约束来创建主键,一个表只能有一个主键约束,而且主键约束中的列不能是空值,由于主键约束确保唯一数据,所一经常来定义标识列。

 

 

 

二、主键的作用

 

1、 从上面的定义可以看出,主键是用于唯一标识数据库表中一行数据的。

2、 作为一个可以被外键有效引用的对象。

 

 

 

三、主键的设计原则

 

1、 主键应当是对用户没有意义的,比如说用户登陆一个系统的时候的登录id;而这种情况就不可能了:“学生表”需要支持这样的需求“学生注销后,可以重新激活自己的信息,而且还要保持自己的号码跟原来的一直”,这样的话主键就不能满足要求了。

2、 唯一性,这个原则就不用多说了。

3、 非空性:主键的值是不可重复的,也不可以为空。

 

4. 永远也不要更新主键。实际上,因为主键除了惟一地标识一行之外,再没有其他的用途了,所以也就没有理由去对它更新。如果主键需要更新,则说明主键应对用户无意义的原则被违反了。

注:这项原则对于那些经常需要在数据转换或多数据库合并时进行数据整理的数据并不适用。

5. 主键不应包含动态变化的数据,如时间戳、创建时间列、修改时间列等。

6. 主键应当有计算机自动生成。如果由人来对主键的创建进行干预,就会使它带有除了惟一标识一行以外的意义。一旦越过这个界限,就可能产生认为修改主键的动机,这样,这种系统用来链接记录行、管理记录行的关键手段就会落入不了解数据库设计的人的手中。

 

四、创建主键


--在创建表时就可以对字段加上约束:
 
create table Student
 
(
 
StudentNo int PRIMARY KEY IDENTITY(1,1), --加主键约束,还有标识列属性(两者构成实体完整性)
 
StudentName nvarchar(15) not null, --加非空约束,不加"not null" 默认为:可以为空
 
StudentSchool text(20) FOREIGN KEY REFERENCES SchoolTable(SchoolName), --加外键约束,格式:FOREIGN KEY REFERENCES 关联的表名(字段名)
 
StudentAge int DEFAULT ((0)), --加默认值约束
 
StudentSex nvarchar(2) CHECK(StudentSex=N'' or StudentSex=N'') --加检查约束,格式:check (条件表达式)
 
)

 

五、测试添加删除主键

--删除主键
alter table Stu_PkFk_S drop constraint PK_S
go

--增加主键
alter table Stu_PkFk_S add constraint PK_S primary key (sno)
go

 



http://chatgpt.dhexx.cn/article/jiZi4cHU.shtml

相关文章

MyBatis主键返回

这篇文章介绍了MyBatis的主键返回方法 一.需求分析 当我们表的主键设置为自增&#xff0c;且插入数据后需要主键id时&#xff0c;就要使用主键返回的方法&#xff0c;来获取当前插入数据的主键。 表如下&#xff1a; 二.主键返回 1.使用selectKey 标签 < selectKey >…

SQL主键

在SQL中主键是唯一标示表中每一行的列或一组列。SQL可以使用PRIMARY KEY约束为表创建主键。如果主键只包含一列&#xff0c;则可以将PRIMARY KEY约束定义为列约束 。每个表只能有一个主键。参与主键的所有列必须定义为NOT NULL。在SQL中如果没有为这些列指定NOT NULL约束&#…

PostgreSQL主键自增

1.创建表设置主键自增长 CREATE TABLE tab_name(id SERLAL primary key,username varchar,password varchar )SERLAL 为自增关键字 2.修改表字段为主键自增 1 创建关联序列 CREATE SEQUENCE tab_id_seq START 1; -- tab_id_seq 为序列名称 -- 1 为序列起始数2.1 在字段默认…

关于Adobe软件安装提示FATAL: Payload ‘Camera Profiles Installer …information not found in Media_db.问题解决方法

安装Photoshop CS6失败&#xff1a;FATAL: Payload ‘Camera Profiles Installer …information not found in Media_db. 安装失败描述 产生原因&#xff1a;出现以上情况是因为之前系统安装过Adobe相关软件&#xff0c;并且卸载不干净导致的。 解决方法&#xff1a;找到系统盘…

Nature综述:微生物构成的氮循环网络(收藏)

微生物构成的氮循环网络 The microbial nitrogen-cycling network 翻译&#xff1a;翟志文 中科院遗传发育所 责编&#xff1a;刘永鑫 中科院遗传发育所 Nature Reviews Microbiology, [31.851] https://doi.org/10.1038/nrmicro.2018.9 Published: 05 February 2018 第一作者…

特定功能基因定量检测

1 检测对象 特定功能基因指的是具有某种特定作用的酶的编码基因&#xff0c;通过对该酶的基因进行qPCR定量&#xff0c;来确定该基因在样本中的拷贝数。目前研究较多的主要是氮循环、碳循环、硫循环、砷循环等相关的功能基因。微基生物可以利用qPCR定量检测样本中的碳循环、氮…

Quantile g-computation的介绍及R实现

目录 介绍 模型 qgcomp包的使用 例1&#xff0c;线性模型 例2&#xff1a;条件OR&#xff0c;logistic模型中的边际OR 例3&#xff1a;调整协变量&#xff0c;绘制估计值 例4&#xff1a;非线性&#xff08;和非同质性&#xff09; 例5&#xff1a;比较模型拟合和进一步…

Nature综述:微生物构成的氮循环网络

导读论文ID综述结构综述内容 1.综述研究背景、研究目的、研究内容概述2.氮全球生化循环圈&#xff1a;全球的氮库存、氮转化过程、氮通量3.微生物构成的氮化合物的转化4.固氮作用5.羟胺氧化成一氧化氮以及进一步氧化成亚硝酸盐6.亚硝酸盐向硝酸盐的氧化7.硝酸盐还原为亚硝酸盐的…

活性氧Propiconazole-d3 (nitrate),CAS No. 2699607-26-4

产品名称&#xff1a;活性氧Propiconazole-d3 (nitrate)&#xff0c;CAS No. 2699607-26-4 产地&#xff1a;西安 规格&#xff1a;1mg 5mg 10mg 纯度&#xff1a;99% 用途&#xff1a;仅用于科研 状态&#xff1a;固体/粉末 储藏条件&#xff1a;冷藏-20℃ 温馨提示&#xff…

TestProject Python SDK入门

使用TestProject Python SDK&#xff0c;您可以使用TestProject平台的功能执行Selenium和Appium测试。这意味着您将受益于HTML和PDF中的自动测试报告&#xff0c;Selenium浏览器驱动程序的自动更新和配置&#xff0c;协作报告仪表板&#xff0c;以及更多其他功能。 安装TestPro…

cas:2699607-26-4 Propiconazole-d3 (nitrate) 活性氧

cas:2699607-26-4 Propiconazole-d3 (nitrate) 活性氧 Propiconazole-d3 (nitrate) 是 Propiconazole nitrate 的氘代物。 英文名称&#xff1a;Propiconazole-d3 (nitrate&#xff09; 分子量&#xff1a;408.25 分子式&#xff1a;C15H15D3Cl2N4O5 cas:2699607-26-4 活性…

广东生态所孙蔚旻团队EST发表利用稳定同位素示踪-宏基因组分箱联用技术揭示砷污染土壤中的厌氧砷氧化微生物及其代谢途径...

广东省生态环境技术研究所孙蔚旻团队ES&T发表&#xff1a;利用稳定同位素示踪-宏基因组分箱联用技术揭示砷污染土壤中的厌氧砷氧化微生物及其代谢途径 第一作者&#xff1a;张苗苗 通讯作者&#xff1a;孙蔚旻 通讯单位&#xff1a;广东省生态环境技术研究所 论文DOI&#…

【英语学习】【化学】几个与氮(Nitrogen)有关的化学词汇 (1)

文章目录 nitrogen&#xff1a;氮&#xff08;元素&#xff09;niter: 硝石nitric acid: 硝酸nitrate: *n.* 硝酸盐; 硝酸根potassium nitrate: 硝酸钾nitrous acid&#xff1a;亚硝酸nitrite&#xff1a;*n.* 亚硝酸盐; 亚硝酸根sodium nitrite&#xff1a;亚硝酸钠小结 nitro…

Nature综述:微生物构成的氮循环网络(必读)

文章目录 微生物构成的氮循环网络大纲摘要亮点名词解析背景和内容概述Box 1 | 氮全球生化循环圈&#xff1a;全球的氮库存、氮转化过程、氮通量图1 | 微生物转化氮化合物图2 | 催化氮循环中关键的四种反应的酶氮转化反应固氮作用氨氧化成羟胺羟胺氧化成一氧化氮和亚硝酸盐亚硝酸…

ISME:长期进化实验揭示脱硫弧菌的硝酸盐耐受机制

关注我们 一起探索微生物领域的奥妙 摘要 环境中硝酸盐的升高抑制了硫酸盐还原菌&#xff08;SRB&#xff09;中重要微生物的硫酸盐还原作用&#xff0c;在硝酸盐含量不断升高的环境中&#xff0c;一些SRB也许会通过硝酸盐呼吸在高氮环境下生存&#xff0c;但是缺少硝酸盐还原酶…

es like and or_广东生态所孙蔚旻团队ESamp;T发表利用稳定同位素示踪宏基因组分箱联用技术揭示砷污染土壤中的厌氧砷氧化微生物及其代谢途径...

广东省生态环境技术研究所孙蔚旻团队ES&T发表&#xff1a;利用稳定同位素示踪-宏基因组分箱联用技术揭示砷污染土壤中的厌氧砷氧化微生物及其代谢途径 第一作者&#xff1a;张苗苗 通讯作者&#xff1a;孙蔚旻 通讯单位&#xff1a;广东省生态环境技术研究所 论文DOI&#…

测试用例管理系统 --Nitrate

测试用例管理系统 –Nitrate 最近在网上找开源的测试用例管理系统&#xff0c;发现了Nitrate。 https://github.com/Nitrate/Nitrate搭建环境很容易&#xff0c;说一下使用的初步体验。虽然有一些小BUG&#xff0c; 而且也不支持 excel 用例的导入导出&#xff0c;只支持xml 格…

IP 数据报结构和各字段含义

IP 数据报位于 OSI 七层模型中的网络层&#xff0c;对应与 TCP/IP 四层模型中的网络层&#xff08;也称网际层&#xff09;。网络层用来处理网络上流动的数据包&#xff08;网络传输中最小的数据单元&#xff09;&#xff0c;规定了怎样的路径把数据包传输到目标计算机&#xf…

IP数据报的检验(计算机网络)

IP数据报检验 IP数据报检验的计算过程引入检验原理题目案例及分析题目要求分析 计算过程图解总结 IP数据报检验的计算过程 本篇文章只介绍IP数据报的检验过程&#xff0c;不对原理做过多讲解。内容通俗易懂&#xff0c;请放心大胆食用&#xff01; 引入 IP数据报检验只检验数据…

IP数据报首部检验和原理

首部检验和 首部检验和&#xff0c;只检验数据报的首部&#xff0c;不包括数据部分。 在发送方&#xff0c;先把IP数据报首部划分为许多16位字的序列&#xff0c;并把检验和字段置为0&#xff0c;用反码算术运算把所有16位字相加&#xff0c;将得到的和的反码写入检验和字段。…