唯一约束

MySQL完整性约束

吃可爱长大的小学妹 提交于 2019-11-28 20:40:54
目录 1.介绍 2.not null 和default 3.unique约束(唯一性约束) 4.primary key (主键约束) 5.auto_increment (自增约束) 6.foreign key (外键约束) 1.介绍 约束条件与数据类型的宽度一样,都是可选参数 作用:用于保证数据的完整性和一致性 主要分为: PRIMARY KEY (PK) 标识该字段为该表的主键,可以唯一的标识记录 FOREIGN KEY (FK) 标识该字段为该表的外键 NOT NULL 标识该字段不能为空 UNIQUE KEY (UK) 标识该字段的值是唯一的 AUTO_INCREMENT 标识该字段的值自动增长(整数类型,而且为主键) DEFAULT 为该字段设置默认值 UNSIGNED 无符号 ZEROFILL 使用0填充 说明: 1. 是否允许为空,默认NULL,可设置NOT NULL,字段不允许为空,必须赋值 2. 字段是否有默认值,缺省的默认值是NULL,如果插入记录时不给字段赋值,此字段使用默认值 sex enum('male','female') not null default 'male' age int unsigned NOT NULL default 20 必须为正值(无符号) 不允许为空 默认是20 3. 是否是key 主键 primary key 外键

索引,约束

邮差的信 提交于 2019-11-28 14:05:39
摘自MSDN:“ CREATE INDEX (Transact-SQL) ” 为指定表或视图创建关系索引,或为指定表创建 XML 索引。可在向表中填入数据前创建索引。可通过指定限定的数据库名称,为另一个数据库中的表或视图创建索引。 create index indexName on tableName(colName) with (options) 这样创建的为 non unique ,nonclustered 索引 UNIQUE :为表或视图创建唯一索引。 唯一索引不允许两行具有相同的索引键值 。视图的聚集索引必须唯一。 默认为non unique CLUSTERED:创建索引时,键值的逻辑顺序决定表中对应行的物理顺序。聚集索引的底层(或称叶级别)包含该表的实际数据行。 一个表或视图只允许同时有一个聚集索引 。有关详细信息,请参阅聚集索引结构。 如果没有指定 CLUSTERED,则创建非聚集索引。 NONCLUSTERED :创建一个指定表的逻辑排序的索引。 对于非聚集索引,数据行的物理排序独立于索引排序。 有关详细信息,请参阅非聚集索引结构。 无论是使用 PRIMARY KEY 和 UNIQUE 约束隐式创建索引,还是使用 CREATE INDEX 显式创建索引。 每个表都最多可包含 249 个非聚集索引 。 对于索引视图,只能为已定义唯一聚集索引的视图创建非聚集索引。

数据库常见数据类型和约束

谁说胖子不能爱 提交于 2019-11-28 12:25:50
常用数据类型 MYSQL数据库支持多种类型,大致可以分为三个类型:数值型、时间/日期型和字符型 在这里就列举一些我们常用的数据类型 1、数值型 表示整数型数据类型(tinyint、smallint、mediumint、int) 浮点型数据类型(float、double) 用法: 1)、整形 ( 学号) 区别为存储大小不同,取值范围不同 tinyint(m) 取值 【-128,127】 tinyint(m) unsigned(可省略) zerofill 取值 【0,255】 m 定义为字段长度,与zerofill搭配时,数据精度不足时,自动用0补齐 例如:(001) 2)、浮点型 (身高) float (m , z) m : 字段总长度 z : 小数点后的位数 取值【-3.4*10 - 38 ,3.4*10 38 】 缺点 : 丢失精度,相较于double精度更低 2、字符型 表示字符型数据类型(char、varchar) char (m) m 影响存储长度 (姓名) 3、时间日期型 表示时间值的日期和时间类型(datetime、date、time和year) Mysql中的约束 1、not null not null 即为非空约束,指定某一行的值不能为null。 建立一个s表,将id设置为int型,not null约束 插入数据id为null就会报错 备注

数据库基础知识2-添加约束

依然范特西╮ 提交于 2019-11-28 00:01:22
1.查询分析器显示行号 工具-->选项-->文本编辑器-->所有语言-->常规,行号勾选。 2.如何设置约束条件 (1)手动添加  右击-->CHECK约束-->添加,编辑你的表达式即可。 (2)代码添加--注意符号为英文状态下 ALTER TABLE 表 ADD CONSTRAINT check约束名称 CHECK ( LEN( 手机号码 ) == 11 ); 备注:如果你在执行时发生以下错误,那可能是你的数据表里含有不满足check约束的值,改回来就好了!(记得刷新数据库) (3)check约束--唯一性   unqiue约束用于强制非主键列的唯一性,允许存在空值(应该只有一个)   ALTER TABLE Info_Maintainer ADD CONSTRAINT uniquephone UNIQUE (联系方式) 来源: https://www.cnblogs.com/yankeshangxing/p/10509283.html

谈谈唯一约束和唯一索引

蹲街弑〆低调 提交于 2019-11-26 23:50:56
摘自:https://www.cnblogs.com/mengbin0546/p/10308755.html 约束 全称完整性约束,它是关系数据库中的对象,用来存放插入到一个表中一列数据的规则,用来确保数据的准确性和一致性。 索引 数据库中用的最频繁的操作是数据查询,索引就是为了加速表中数据行的检索而创建的一种分散的数据结构。可以把索引类比成书的目录,有目录的肯定比没有目录的书,更方便查找。 唯一约束 保证在一个字段或者一组字段里的数据都与表中其它行的对应数据不同。和主键约束不同, 唯一约束允许为 NULL,只是只能有一行 。 唯一索引 不允许具有索引值相同的行,从而禁止重复的索引或键值。 唯一约束和唯一索引 都是为了保证表中被限制的字段不允许有重复的值,看起来功能是一样的,那为什么要设计这样两种一样的功能呢? 首先创建两个字段值一样的表 t1,t2, 并为 t1 表中的 col1 列设置 唯一约束 。 CREATE TABLE t1 ( col1 INT(11), col2 VARCHAR(20), CONSTRAINT t1_uq UNIQUE (col1) ); CREATE TABLE t2 ( col1 INT(11), col2 VARCHAR(20) ); 然后为表 t2 表中的 col1 列设置 唯一索引 CREATE UNIQUE INDEX t2_idx ON