数据库中怎么设置字段的唯一约束?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库中怎么设置字段的唯一约束?相关的知识,希望对你有一定的参考价值。

1. 建表时加上唯一性约束

CREATE TABLE `t_user` (

`Id` int(11) NOT NULL AUTO_INCREMENT,  -- 自增

`username` varchar(18) NOT NULL unique,  -- 唯一性约束

`password` varchar(18) NOT NULL,

PRIMARY KEY (`Id`)

) ENGINE=InnoDB AUTO_INCREMENT=1018 DEFAULT CHARSET=gbk;

2.给已经建好的表加上唯一性约束

ALTER TABLE `t_user` ADD unique(`username`);

参考资料

csdn.csdn[引用时间2018-1-9]

参考技术A

1、在定义完列之后直接使用 UNIQUE 关键字指定唯一约束,语法规则如下:<字段名> <数据类型> UNIQUE。

2、接下来可以查看一下结果。

3、在修改表时添加唯一约束的语法格式为:ALTER TABLE <数据表名> ADD CONSTRAINT <唯一约束名> UNIQUE(<列名>),这里建议重新创建一个来实验。

4、查看一下结果,发现创建成功了,如下图所示。

参考技术B create table teacher
(
tno char(10) not null primary key,
tn char(8) not null,
prof char(10) not null,
sal float(10) not null,
dept varchar(20) not null,
constraint un_tn unique not null --设置列tn唯一约束
) 记得采纳啊
参考技术C 对已经建好的表中的某一个列设置唯一约束
ALTER TABLE 表名 add UNIQUE KEY 约束名(列名)
参考技术D 创建表的时候给表的字段加上unique关键字

MySQL笔记2.4表的约束,2.5设置表的字段值自动增加

2.4表的约束

MySQL笔记2.4表的约束,2.5设置表的字段值自动增加_其他

  • 防止数据表中插入错误的数值,而定义的维护数据库完整性的规则
约束条件 说明
PRIMARY KEY 主键约束,用于唯一标识对应的记录(主键唯一表示,值不能为空null );
FOREIGN KEY 外键约束
NOT NULL 非空约束
UNIQUE 唯一性约束
DEFAULT 默认值约束,用于设置字段的默认值

2.4.1 主键约束;

注意:每个数据表中最多只能有一个主键约束,定义为primary key的字段不能有重复值且不能为null值

  • 1.单字段约束
语法: 字段名 数据类型 PRIMARY KEY
例如:创建一个数据表ex1,并设置id作为主键,SQL语句如下:
CREATE TABLE ex1(id INT PRIMARY KEY,
				name VARCHAR(20),
				grade FLOAT);
  • 2.多字段主键
语法:PRIMARY KAY(字段名1,字段名2,***字段名n)
例如:创建一个数据表ex2,在表中将stu_id和course_id两个字段共同作为主键,SQL语句如下:
CREATE TABLE ex2(stu_id INT,
				course_id FLOAT,
				PRIMARY KEY(stu_id,course_id)
				);

2.4.2非空约束

  • 非空约束指的是字段的值不能为null,在MySQL中,非空约束是通过NOT NULL定义的;
语法: 字段名 数据类型 NOT NULL;
例如:CREATE TABLE ex1(id INT PRIMARY KEY,
				name VARCHAR(20) NOT NULL,
				grade FLOAT not null
				);

2.4.3唯一约束

  • 保证数据表中字段的唯一性,即表中字段的值不能重复出现
语法: 字段名 数据类型 UNIQUE;
CREATE TABLE ex1(id INT PRIMARY KEY,
				name VARCHAR(20) NOT NULL,
				grade FLOAT UNIQUE
				);
ID为主键,name的字段不能为空值,grade字段为唯一值,该值不能重复

2.4.4默认约束

  • 用于给数据表中的字段添加指定默认值
语法:字段名 数据类型 DEFAULT 默认值;
例如:CREATE TABLE ex1(id INT PRIMARY KEY,
				name VARCHAR(20) NOT NULL,
				grade FLOAT default 0/*默认值为0*/
				);

2.5设置表的字段值自动增加

  • 在数据表中,若想为表中插入的新记录自动生成唯一的ID,可以使用AUTO_INCREMENT约束来实现。
    AUTO_INCREMENT约束的字段可以是任何整数类型,默认情况下,该字段的值是从1开始自增的
语法: 字段名 数据类型 AUTO_INTCREMENT;
例如:创建一个数据表ex5,将表中的id字段设置为自动增加,SQL语句如下:
CREATE TABLE ex1(id INT PRIMARY KEY AOTO_INCREMENT, 
				name VARCHAR(20) NOT NULL,
				grade FLOAT UNIQUE
				);

以上是关于数据库中怎么设置字段的唯一约束?的主要内容,如果未能解决你的问题,请参考以下文章

oracle数据库中怎么设置一个字段的唯一性?

SQL中如何设置唯一性约束

SqlServer 数据库 如何设置唯一

建数据库表时给一个字段加可为空和默认值为0的约束该怎么加

mysql唯一约束

在导入Oracle数据库的时候违反唯一约束条件是为啥?要怎么解决?