oracle sql key,SQL PRIMARY KEY 约束

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

主键必须包含唯一的值

主键列不能包含 NULL 值

每个表都应该有一个主键,并且每个表只能有一个主键

PRIMARY KEY 我们经常都在用,但大部分人都没有意识到这是一个约束

PRIMARY KEY 是什么? 为什么需要它?

如果想要唯一标识某一条记录,或者阻止一个表中存在相同的两条记录,或者阻止一个表中的某个字段存在相同的记录,我们要怎么做?

当然是在插入或者更新的时候检查表或者字段是否存在,如果存在可以删除或者修改,不存在则插入

有没有更简单的方法呢? 有的,就是给表添加一个唯一索引,这样数据库系统会自己主动检查是否存在重复记录

如果这个唯一索引加在唯一标识一条记录的列 (字段) 上,那么它有一个好听的名字,叫做 主键

当然了,主键 的功能远远不止这些,它还是表存储数据时的物理索引

CREATE TABLE 时的 SQL PRIMARY KEY 约束

创建表时可以使用 PRIMARY KEY 关键字给表添加 PRIMARY KEY 约束

但要注意,添加的列必须设置为 NOT NULL;

MySQL / SQL Server / Oracle / MS Access

CREATE TABLE `lession` (

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 `lession` (

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 关键字

MySQL / SQL Server / Oracle / MS Access

CREATE TABLE `lession` (

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 lession ADD PRIMARY KEY (id);

一个 PRIMARY KEY 包含多列

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

添加多个列的方式和添加一个列的方式一样,只要在括号内添加即可,多列之间用逗号分隔

MySQL / SQL Server / Oracle / MS Access

ALTER TABLE lession ADD CONSTRAINT pk_lession PRIMARY KEY (id,name);

注意: 使用 ALTER TABLE 语句给表添加主键时必须在创建表时将主键列声明为 NOT NULL 值

给 PRIMARY KEY 约束命名

如果想要给 PRIMARY KEY 约束命名,可以使用 ALTER TABLE CONSTRAINT 命令

MySQL / SQL Server / Oracle / MS Access

ALTER TABLE lession ADD CONSTRAINT pk_lession_id PRIMARY KEY (id);

注意: 使用 ALTER TABLE 语句给表添加主键时必须在创建表时将主键列声明为 NOT NULL 值

删除 PRIMARY KEY 约束

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

MySQL

ALTER TABLE lesssion DROP PRIMARY KEY

SQL Server / Oracle / MS Access

ALTER TABLE lession DROP CONSTRAINT pk_lession_id

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值