SQL中Unique约束有什么用啊?

SQL中Unique约束有什么用啊?,第1张

作用为:唯一约束保证在一个字段或者一组字段里的数据与表中其它行的数据相比是唯一的。

创建唯一约束可确保在不参与主键的特定列中不输入重复值。当唯一约束和主键都强制唯一性时,如果满足下列条件,则应将唯一约束而不是主键约束附加到表上:

1、希望在列或列的组合中强制唯一性。可将多个唯一约束附加到表,但是只能将一个主键约束附加到表。

2、希望在允许空值的列中强制唯一性。可将唯一约束附加到允许空值的列,但是只能将主键约束附加到不允许空值的列。当将唯一约束附加到允许空值的列时,请确保在约束的列中最多有一行包含空值。

扩展资料:

SQL中其他约束有:

1、主键约束:

主键列的数据类型不限,但此列必须是唯一并且非空。如该表中已有主键为1000的行,则不能再添加主键为1000。人工或程序不好控制的时候,也可以设置主键列为自动增长列。

2、参考约束:

参考约束是一个规则,可由SQL和XQuery 编译器使用,但数据库管理器不会强制执行它。

查询编译器包括一个重写查询阶段,它将SQL和XQuery语句变换为可能是优化的格式并改进所需数据的访问路径。该约束的目的不是由数据库管理器对数据执行附加验证,而是为了提高查询性能。

3、用户自定义完整性约束:

用户自定义完整性指针对某一具体关系数据库的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求。

例如某个属性必须取唯一值,某个非主属性也不能取空值,某个属性的取值范围在0-100之间等。

参考资料来源:百度百科-唯一约束

参考资料来源:百度百科-主键约束

参考资料来源:百度百科-SQL数据库

一、从单词来看:

这两个词从词义上应该很了区分的.

distinct:

1、清楚,清晰的;明白,明显的

2、截然不同的,有区别的.些是和form连用

unique:

1、独一无二的,惟一的

2、独特的,罕见的

二、从SQL语言来看:

SQL

语句可返回唯一不同的值

A.

UNIQUE是完整性约束里的一种,如果某列的值需要是唯一的那么就添加UNIQUE约束

Distinct是在查询时用的,若在SELECT的列选择列表中的某列说明为Distinct,那么查询出来的结果里,该列不会出现重复的值.

B.

unique是distinct的同义词,功能完全相同。

distinct是标准语法,其他数据库

sql

server,db2,oracle,sybase,mysql等都支持。

unique,informix数据库认识,其他数据库有的认识,有的不认识。

C.

用UNIQUE和DISTINCT查找不重复的行,

语法好像是一样的,结果也是一样的,

他们究竟有什么区别?

别人的回答是:一样的。

总之,效果是一样的,但是还是按照习惯和规章来吧。select

就用distinct。

在SQL语法里面,有unique和distinct两个关键字,unique是distinct的同义词,功能完全相同。

distinct是标准语法,其他数据库 sql

server,db2,oracle,sybase,mysql等都支持。

unique,informix数据库认识,其他数据库有的认识,有的不认识。以后方便数据库移植,推荐使用distinctDistinct|Unique返回select 出来的重复数据的一笔(distinct/unique

可认为互为同义词)重复行数数据必须和select 出来的每一个表达式匹配。

可以使用 UNIQUE 约束确保在非主键列中不输入重复的值。尽管 UNIQUE 约束和 PRIMARY KEY 约束都强制唯一性,但想要强制一列或多列组合(不是主键)的唯一性时应使用 UNIQUE 约束而不是 PRIMARY KEY 约束。

可以对一个表定义多个 UNIQUE 约束,但只能定义一个 PRIMARY KEY 约束。

而且,UNIQUE 约束允许 NULL 值,这一点与 PRIMARY KEY 约束不同。不过,当与参与 UNIQUE 约束的任何值一起使用时,每列只允许一个空值。

FOREIGN KEY 约束可以引用 UNIQUE 约束。

扩展资料:

UNIQUE和PRIMARY约束的不同点:

(1) 唯一性约束所在的列允许空值,但是主键约束所在的列不允许空值。 

(2) 可以把唯一性约束放在一个或者多个列上,这些列或列的组合必须有唯一的。但是,唯一性约束所在的列并不是表的主键列。 

(3) 唯一性约束强制在指定的列上创建一个唯一性索引。在默认情况下,创建唯一性的非聚簇索引,但是,也可以指定所创建的索引是聚簇索引。

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

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

参考资料来源:百度百科-unique(STL标准模板库的函数)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6425147.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-22
下一篇 2023-03-22

发表评论

登录后才能评论

评论列表(0条)

保存