唯一性约束和唯一性索引的区别
来源:互联网 发布:使命召唤二战 知乎 编辑:程序博客网 时间:2024/04/30 01:57
“唯一性约束”和“唯一性索引”是不同的。
一、 建立唯一性约束的语法,使用create table或者alter table
1. 在字段级约束定义
-- 命名
create table tmp_table
(
a int constraint pk_tmp_table_a primary key,
b varchar(10) constraint uq_tmp_table_b unique
)
-- 不命名
create table tmp_table
(
a int primary key,
b varchar(10) unique
)
2. 在表约束定义
-- 命名
create table tmp_table
(
a int,
b varchar(10),
constraint pk_tmp_table_a primary key(a),
constraint uq_tmp_table_b unique(b ASC)
)
-- 不命名
create table tmp_table
(
a int,
b varchar(10),
primary key(a),
unique(b ASC)
)
二、 建立唯一性索引的语法,使用create index
-- 必须命名
CREATE UNIQUE NONCLUSTERED INDEX xak_tmp_table_b ON tmp_table(b DESC)
--不指定[CLUSTERED | NONCLUSTERED],缺省为NONCLUSTERED(非聚集)
三、当在表中创建主键约束或者唯一性键约束时,SQL Server自动创建一个唯一性索引
这是以上脚本建立的约束:
这是索引:
可以看出,为主键和唯一性约束自动建立了同名唯一性索引。
(所以在pl/sql中一般在keys标签而不是indexs标签里建唯一约束,建了之后他会自动在indexs标签生成一个同名的索引,也可以在indexs里面建索引保证唯一性,但是他不会在keys标签生成唯一约束,建议在keys中建立唯一约束)
现在为表建立了排序顺序相反的两个索引uq_tmp_table_b和xak_tmp_table_b,不知道数据库会怎么工作?四、题外话
表级约束中可以指定列的排序顺序(col_name ASC | DESC),但不能指定列的NULL约束;
字段级约束中可以指定列的NULL约束,但不能指定列的排序顺序;
- 唯一性约束和唯一性索引的区别
- 唯一性约束和唯一性索引的区别
- 唯一性约束和唯一性索引的区别
- 唯一性约束、主键约束、唯一索引的区别
- 唯一约束和唯一索引区别
- Oracle中唯一约束和唯一索引的区别
- 唯一性约束和主键的区别- -
- oracle唯一性约束和索引(转)
- 主键和唯一性索引的区别
- 主键约束和唯一性约束的区别
- 主键约束和唯一性约束的区别
- 主键约束和唯一性约束的区别
- 主键约束和唯一性约束的区别
- 主键约束和唯一性约束的区别
- 主键约束和唯一性约束的区别
- 主键约束和唯一性约束的区别
- 键约束和唯一性约束的区别
- 主键约束和唯一性约束的区别
- Hadoop : MapReduce中的Shuffle和Sort分析
- spring学习笔记(20)——基于配置文件方式配置AOP
- UI--从学习styleable自定义view属性到一点儿更有意思的尝试
- Security Analytics and Threat Analysis brighttalk
- 应用程序的安装
- 唯一性约束和唯一性索引的区别
- HDOJ1216 Assistance Required 打表
- 微信之自定义菜单
- 4.7 蚂蚁爬杆
- ACM必备(学完一个就加亮一个)不多,就这些!
- DOS命令:net use
- PMBOK(第五版)学习笔记 —— 12 项目采购管理
- 安卓学习之控件学习笔记
- 2014年省赛组队练习赛8