primary key主键与unique键的区别以及作用?

2016-11-20/郝/

废话少说/长话短说

共同作用是为了约束字段/建立索引/提高查询效率

      mysql主键的属性:

         1.主键具有唯一性:是指一张表里只能有一个主键;

         2.主键作用:主键primary key是为了唯一标识一个字段,使其唯一且不能为NULL,自动生成索引;

         3.隐含定义:如果这些列没有被明确地定义为NOT NULL,MySQL会隐含地定义这些列。

           4.主键其实也是索引,甚至在MySQL的术语里面“键”就等于“索引”

       UNIQUE键的属性:

         1.唯一性:定义了UNIQUE约束的字段中不能包含重复值,

         2.可为空:在UNIQUE约束的字段上可以包含空值.

          3.扩展:unique就是唯一,当你需要限定你的某个表字段每个值都唯一,没有重复值时使用.

          比如说,如果你有一个person_Info表,并且表中有个身份证的column,那么你就可以指定该字段unique.

    

关系:主键=NOT NULL +UNIQUE键的结合;

    NOT NULL和UNIQUE约束最好的结合。如果这些列没有被明确地定义为NOT NULL,MySQL会隐含地定义这些列。

区别: 

  (1) 唯一性约束所在的列允许空值,但是主键约束所在的列不允许空值。
  (2) 可以把唯一性约束放在一个或者多个列上,这些列或列的组合必须有唯一的。但是,唯一性约束所在的列并不是表的主键列。
  (3) 唯一性约束强制在指定的列上创建一个唯一性索引。在默认情况下,创建唯一性的非聚簇索引,但是,也可以指定所创建的索引是聚簇索引。

  (4)建立主键的目的是让外键来引用.

  (5)一个表最多只有一个主键,但可以有很多唯一键

时间: 2024-10-29 00:25:25

primary key主键与unique键的区别以及作用?的相关文章

FOREIGN KEY 外键约束; UNIQUE和PRIMARY KEY 主键约束、CREATE INDEX建立索引的使用

1)foreign key 是个约束,意思是说如果你给A字段设置了外键约束,以后你要往A字段插入数据,这个数据一定是要在foreign key 后面跟的那个字段中存在的值.这个的意义就是约束了数据的完整性,不会插入错误的数据. 修改添加t_topic外键约束: ALTER TABLE t_topic ADD CONSTRAINT fk_userTopics FOREIGN KEY (user_id) REFERENCES t_users(id) 删除表t_topic外键: ALTER TABLE

oracle约束总结(not null/unique/primary key/foreign key/check)

约束(constraint):对创建的表的列属性.字段进行的限制.诸如:not null/unique/primary key/foreign key/check 作用范围: ①列级约束只能作用在一个列上 ②表级约束可以作用在多个列上(当然表级约束也可以作用在一个列上) 定义方式:列约束必须跟在列的定义后面,表约束不与列一起,而是单独定义. - -NOT NULL:不为空约束,只能定义在列级 CREATE TABLE employees( employee_id NUMBER(6), --<sp

主键与唯一键的区别

sql 的三大类型分别是:数值类型,整形类型,字符串类型 字符串类型的char 和varchar 的区别: 在定义的时候都要指向char(M)varchar(M)的长度,varchar只是表示一定的范围, 1, varchar对存储空间的使用更加灵活 2, char的效率更高 3, 如果存储的字符串的长度是已知固定的,就用char,如果是可变的,就用varchar 案例代码: primary key 主键 unique key 唯一键的区别和用法 设置主键有两种方法: 1.在定义一个字段的时候直

主键与聚集索引的区别

有些人可能对主键和聚集索引有所混淆,其实这两个是不同的概念,下面是一个简单的描述.不想看绕口文字者,直接看两者的对比表.尤其是最后一项的比较. 主键(PRIMARY KEY ) 来自MSDN的描述: 表通常具有包含唯一标识表中每一行的值的一列或一组列.这样的一列或多列称为表的主键 (PK),用于强制表的实体完整性.在创建或修改表时,您可以通过定义 PRIMARY KEY 约束来创建主键. 一个表只能有一个 PRIMARY KEY 约束,并且 PRIMARY KEY 约束中的列不能接受空值.由于

the difference between primary key and unique key

primary key:主键约束 unique key:唯一键约束 相同点:唯一,既值都不能重复 不同点: 1.一个表中只能有一个主键约束,但是唯一键约束可以有多个: 2.主键约束可以由一个或多个键组成,而唯一键约束只作用在一个键上: 3.主键作用的字段值不能为空,而唯一键作用的字段值可以为空. 主键本质是约束,值不为空,一个表只能建一个,其目的是检查数据的正确性:唯一索引本质是索引,值可为空,一个表能建一多个,其目的是实现数据查询的优化:

主键、外键、复合外键的创建

--主键create table emp (id number constraint id_pr primary key ,name1 varchar(8));create table emp9 (id number ,name1 varchar(8) ,constraint aba_pr primary key(id,name1));--外键create table emp1(id number references emp(id),name varchar(8)); --复合外键create

主键,外键

主键 数据库主键是指表中一个列或列的组合,其值能唯一地标识表中的每一行.这样的一列或多列称为表的主键,通过它可强制表的实体完整性.当创建或更改表时可通过定义 PRIMARY KEY约束来创建主键.一个表只能有一个 PRIMARY KEY 约束,而且 PRIMARY KEY 约束中的列不能接受空值.由于 PRIMARY KEY 约束确保唯一数据,所以经常用来定义标识列. 主键的作用 主键的主要作用如下: (1)保证实体的完整性: (2)加快数据库的操作速度: (3) 在表中添加新记录时,数据库会自

数据库开发基础-SQl Server 主键、外键、子查询(嵌套查询)

主键 数据库主键是指表中一个列或列的组合,其值能唯一地标识表中的每一行.这样的一列或多列称为表的主键,通过它可强制表的实体完整性.当创建或更改表时可通过定义 PRIMARY KEY约束来创建主键.一个表只能有一个 PRIMARY KEY 约束,而且 PRIMARY KEY 约束中的列不能接受空值.由于 PRIMARY KEY 约束确保唯一数据,所以经常用来定义标识列. 主键的作用 主键的主要作用如下: (1)保证实体的完整性: (2)加快数据库的操作速度: (3) 在表中添加新记录时,数据库会自

主键、外键

主键: 数据库主键是指表中一个列或列的组合,其值能唯一地标识表中的每一行.这样的一列或多列称为表的主键,通过它可强制表的实体完整性.当创建或更改表时可通过定义 PRIMARY KEY约束来创建主键.一个表只能有一个 PRIMARY KEY 约束,而且 PRIMARY KEY 约束中的列不能接受空值.由于 PRIMARY KEY 约束确保唯一数据,所以经常用来定义标识列. 主键的作用: (1)保证实体的完整性: (2)加快数据库的操作速度: (3) 在表中添加新记录时,数据库会自动检查新记录的主键