目录

  • 参考源
  • SQL primary key 约束
  • primary key
  • create table 时的 SQL primary key 约束
    • MySQL / SQL Server / Oracle / MS Access
  • alter table 时的 SQL primary key 约束
    • MySQL / SQL Server / Oracle / MS Access
  • 删除 primary key 约束
    • MySQL
    • SQL Server / Oracle / MS Access

参考源

  • 简单教程

    • https://www.twle.cn/l/yufei/sql/sql-basic-primarykey.html
  • 菜鸟教程
    • https://www.runoob.com/sql/sql-primarykey.html

SQL primary key 约束

SQL primary key 又称 主键 , 用于约束唯一标识数据库表中的每条记录

  1. 主键必须包含唯一的值
  2. 主键列不能包含 NULL 值
  3. 每个表都应该有一个主键,并且每个表只能有一个主键

primary key

如果想要唯一标识某一条记录,或者阻止一个表中存在相同的两条记录,或者阻止一个表中的某个字段存在相同的记录,我们要怎么做?
当然是在插入或者更新的时候检查表或者字段是否存在,如果存在可以删除或者修改,不存在则插入
有没有更简单的方法呢? 有的,就是给表添加一个唯一索引,这样数据库系统会自己主动检查是否存在重复记录
如果这个唯一索引加在唯一标识一条记录的列 (字段) 上,那么它有一个好听的名字,叫做 主键
当然了,主键 的功能远远不止这些,它还是表存储数据时的物理索引
—简单教程https://www.twle.cn/l/yufei/sql/sql-basic-primarykey.html

create table 时的 SQL primary key 约束

创建表时可以使用 primary key 关键字给表添加 primary 约束
但要注意,添加的列必须设置为 not null;

MySQL / SQL Server / Oracle / MS Access

CREATE TABLE lesson (id int(11) NOT NULL PRIMARY KEY AUTO_INCREMENT,name varchar(32) default '',views int(11) NOT NULL default '0',created_at DATETIME
);

虽然一个表只能有一个 primary key,但一个 primary key 可以包含多个列

添加多个列可以使用 primary key 关键字,括号内添加多个列,多列之间用逗号分隔

CREATE TABLE lesson (id int(11) NOT NULL AUTO_INCREMENT,name varchar(32) default '',views int(11) NOT NULL default '0',created_at DATETIME,PRIMARY KEY (id,name)
);

如果需要给primary key 约束命名,可以使用 constraint 关键字

CREATE TABLE lesson (id int(11) NOT NULL AUTO_INCREMENT,name varchar(32) default '',views int(11) NOT NULL default '0',created_at DATETIME,CONSTRAINT pk_lession_id PRIMARY KEY (id,name)
);

alter table 时的 SQL primary key 约束

如果一个表已经创建,而又想给表添加 primary key 约束,可以使用 alter table 命令

MySQL / SQL Server / Oracle / MS Access

ALTER TABLE lesson ADD PRIMARY KEY (id);

一个 primary key 包含多列

ALTER TABLE lesson ADD CONSTRAINT pk_lesson PRIMARY KEY (id,name);

给 primary key 约束命名

ALTER TABLE lesson ADD CONSTRAINT pk_lesson_id PRIMARY KEY (id);

删除 primary key 约束

如果想要删除 primary key 约束,可以使用下面的 SQL 语句

MySQL

ALTER TABLE lessson DROP PRIMARY KEY

SQL Server / Oracle / MS Access

ALTER TABLE lesson DROP CONSTRAINT pk_lesson_id

SQL学习之primary key约束相关推荐

  1. SQL语法之PRIMARY KEY 约束

    SQL学习 学习SQL语法 SQL语法 SQL学习 SQL PRIMARY KEY 约束 SQL PRIMARY KEY Constraint on CREATE TABLE SQL PRIMARY ...

  2. SQL学习之foreign key约束

    目录 参考源 SQL foreign key 约束 FOREIGN KEY 作用 create table 时的 SQL foreign key 约束 MySQL SQL Server / Oracl ...

  3. SQL PRIMARY KEY 约束

    SQL PRIMARY KEY 约束 PRIMARY KEY 约束唯一标识数据库表中的每条记录. 主键必须包含唯一的值. 主键列不能包含 NULL 值. 每个表都应该有一个主键,并且每个表只能有一个主 ...

  4. 零基础带你学习MySQL—primary key主键(二十三)

    零基础带你学习MySQL-primary key主键(二十三) 一.约束 二.主键 三.主键的细节说明 主键不能重复而且不能为空 一张表最多只能有一个主键,但可以是复合键 使用desc 表名 可以看到 ...

  5. mysql的primary key_MySQL Primary Key约束

    在本教程中,您将学习如何使用MySQL主键(Primary Key)约束来创建表的主键. MySQL主键简介 MySQL主键(Primary Key)是唯一标识表中每行的列或一组列.当定义表的主键时, ...

  6. mysql constraint primary key_SQL PRIMARY KEY 约束

    原标题:SQL PRIMARY KEY 约束 SQL PRIMARY KEY 约束 PRIMARY KEY 约束唯一标识数据库表中的每条记录. 主键必须包含唯一的值. 主键列不能包含 NULL 值. ...

  7. 【升级U8+】升级U8错误:违反了 PRIMARY KEY 约束‘PK_NB_VisibleField’

    [升级错误] C:\U8SOFT\Admin\SQLFILE8600\Main\Ufdata\dprd_nb.sql 错误信息: -2147217873 违反了 PRIMARY KEY 约束 'PK_ ...

  8. PRIMARY KEY约束

    PRIMARY KEY约束 PRIMARY KEY简介 主键是唯一标识表中每一行的列或一组列. 可以使用 PRIMARY KEY 约束为表创建主键. 如果主键只包含一列,则可以将 PRIMARY KE ...

  9. 【升级U8+】违反了 PRIMARY KEY 约束 ‘PK_VoucherPrefabricate‘。不能在对象 ‘dbo.VoucherPrefabricate‘ 中插入重复键。

    [升级错误] C:\U8SOFT\Admin\SQLFILE8610\Main\Ufdata\data\NL\Data_Data_QM_mix_NL.sql 错误信息: -2147217873 违反了 ...

最新文章

  1. 如何欣赏一个深度学习框架?
  2. Java Volatile keyword
  3. ThinkPHP5表单令牌+表单数据验证验证规则
  4. leetcode(78)子集
  5. Anaconda下tensorflow虚拟环境的创建以及遇到的问题(Ubuntu)
  6. 【springboot 踩坑记录】拦截器中无法注入bean
  7. 华为鸿蒙os内测,华为“鸿蒙OS”内测信息曝光:界面与EMUI有6个明显不同
  8. jQuery实现瀑布流
  9. 3S基础知识:MapX应用教程—创建地图对象
  10. 本地文件夹同步软件大全与性能比较(附下载链接)
  11. Java自定义动态数组
  12. 华为手机备份的通讯录是什么文件_华为通讯录怎么导入新手机(三种方法帮你导通讯录)...
  13. 微信支付对账单的详细说明
  14. “苏宁秒送”,苏宁易购探索新零售的有力武器
  15. FOC控制-以SVPWM理论控制矢量磁场
  16. 【机器学习线性代数】06 解方程组:从空间的角度再引入
  17. 服务器sata硬盘安装系统,#####SATA、RAID、SCSI硬盘用U盘安装原版XP、2003系统######支持服务器硬盘!...
  18. 【笔记】LaTex安装及使用(五)Endnote批量查找、导入和导出参考文献
  19. win服务器系统路由器,Windows server 2012 之路由功能
  20. Gradle 配置代理

热门文章

  1. android点击通知栏消失,手机通知栏不见了怎么办
  2. 三次样条python_如何在python中进行三次样条插值?
  3. sign (数学符号函数)
  4. html中select标签默认选择,HTML中的select标签如何设置默认选中的选项
  5. 荣耀搭载鸿蒙发布会,华为荣耀电视搭载鸿蒙两秒开机?卢伟冰:发布会实测冷启动半分钟...
  6. LeetCode 206.反转链表
  7. 关于知道区块的geohash值,求区块中点坐标和四角坐标
  8. 交换机如何配置SNMP(简单网络管理协议)
  9. uml图中的连线和方框代表什么含义?
  10. java jar包 资源_java jar包资源下载