MySQL之约束注意点

  1. not null约束。

    not null约束只能在列名后面声明,不能使用constraint语句声明,当然也就没无法声明约束名称了。更改字段为null或者not null只能使用alter table table_name modify col_name (not) null;无法使用constraint语句修改。也就是说not null虽然是约束,但是却和constraint语句扯不上关系。not null约束在information_schema里面的table_constraints表中也无法查到。

  2. 主键约束。

    主键约束既可以在列名后面声明,也可以在声明完所有列之后声明。前者只需要在列明后面跟上primary key就行了,后者的声明方法是[CONSTRAINT [symbol]] PRIMARY KEY(COL1,...),这里声明约束名称是没有任何意义的,因为你假如使用CONSTRAINT [symbol]语句之后,MySQL会自动把约束名称改为PRIMARY,可以到information_schema里面的table_constriants表里面验证。所以我们在声明所有列再声明primary key都不会使用constraint关键字。主键即唯一索引加上not null约束,主键列上会创建唯一索引,索引的名称和约束名称相同,默认为BTREE索引,索引信息可以在information_schema里面的statistics表里面查询。

    删除主键约束使用alter table table_name drop primary key;

  3. unique约束。

    unique约束也可以称为unique索引,因为二者都是同时存在。创建表的时候可以使用如下两种方法创建unique约束:

    (1)create table t1(id int primary key,name varchar(20) unique);无法指定约束名称,系统默认约束名称和字段名相同。

    (2)create table t1(id int primary key,name varchar(20),constraint t1_unq unique(name));

    表已经存在时可以通过两种方式添加unique约束。

    (1)alter table t1 modify name varchar(20) unique;

    (2)alter table t1 add constraint t1_unq unique(name);

(3)alter table t1 add unique index t1_unq(name);

因为unique约束就是unique索引,所以我们都会用第三种方式去添加unique索引,如果不带unique关键字则说明添加的是普通索引。unique约束(unique索引)的信息会同时在information_schema里面的statistics表和table_constraints表里面保持一致。

删除unique约束(索引)只能使用如下语句:

alter table t1 drop index t1_unq;

4.  外键约束。

    在建表时创建外键约束可以使用如下方法(注意被引用的表的那个列必须有unique约束):

(1)create table t1(id int primary key, name varchar(20) references t2(name));该方法无法声明约束名称。

(2)create table t1(id int primary key,name varchar(20), constraint t1_fk_name foreign key(name) references t2(name));该方法可以声明约束名。

在表已经存在的时候添加外键约束可以使用如下语句:

alter table add constraint t1_fk_name foreign key(name) references t2(name));

删除外键可以使用如下语句:

alter table drop foreign key t1_fk_name;

MySQL之约束注意点

时间: 2024-11-06 11:54:23

MySQL之约束注意点的相关文章

mysql的约束

MySQL中约束保存在information_schema数据库的table_constraints中,可以通过该表查询约束信息: 约束主要完成对数据的检验,保证数据库数据的完整性:如果有相互依赖数据,保证该数据不被删除. 常用五类约束: not null:非空约束,指定某列不为空 unique: 唯一约束,指定某列和几列组合的数据不能重复 primary key:主键约束,指定某列的数据不能重复.唯一 foreign key:外键,指定该列记录属于主表中的一条记录,参照另一条数据 check:

MySQL 查看约束,添加约束,删除约束 添加列,修改列,删除列

ALTER TABLE:添加,修改,删除表的列,约束等表的定义. 查看列:desc 表名; 修改表名:alter table t_book rename to bbb; 添加列:alter table 表名 add column 列名 varchar(30); 删除列:alter table 表名 drop column 列名; 修改列名MySQL: alter table bbb change nnnnn hh int; 修改列名SQLServer:exec sp_rename't_stude

mysql 对约束的操作

MySQL中约束保存在information_schema数据库的table_constraints中,可以通过该表查询约束信息: 约束主要完成对数据的检验,保证数据库数据的完整性:如果有相互依赖数据,保证该数据不被删除. 常用五类约束: not null:非空约束,指定某列不为空 unique: 唯一约束,指定某列和几列组合的数据不能重复 primary key:主键约束,指定某列的数据不能重复.唯一 foreign key:外键,指定该列记录属于主表中的一条记录,参照另一条数据 check:

[转]mysql的约束

转自:http://blog.csdn.net/kqygww/article/details/8882990 MySQL中约束保存在information_schema数据库的table_constraints中,可以通过该表查询约束信息: 约束主要完成对数据的检验,保证数据库数据的完整性:如果有相互依赖数据,保证该数据不被删除. 常用五类约束:not null:非空约束,指定某列不为空 unique: 唯一约束,指定某列和几列组合的数据不能重复 primary key:主键约束,指定某列的数据

6、MySQL字段约束介绍

6.MySQL字段约束 上一章简要介绍了关于MySQL关于多表查询的相关操作介绍,本章内容将在创建数据表的时候关于定义的相关字段进行约束操作. 一.字段字段修饰符的使用 1.1 null和not null修饰符 null占用空间,此字段不可为空 not unll设置的字段中可以为空,卡插入控制,其插入为空值的时候不占用空间. 例:定义一个表定义字段为null类型和not null进行比较. mysql> create table myziduan(char1 varchar(18) not nu

Mysql五大约束

Mysql五大约束 约束:对表中数据的限制.保证表中数据的准确和可靠 (1)NOT NULL:非空,用于保证该字段的值不能为空 (2)DEFAULT:默认,用于保证该字段有默认值(3)PRIMARY KEY:主键,用于保证该字段的值具有唯一性,并且非空(4)UNIQUE:唯一,用于保证该字段的值具有唯一性,可以为空(5)CHECK:检查约束[mysql中不支持](6)FOREIGN KEY:外键,用于限制两个表的关系,用于保证该字段的值必须来自于主表的关联列的值 在从表添加外键约束,用于引用主表

MySQL的约束、多表查询、子查询

一.约束之主键约束 约束:约束是添加在列上的,用来约束列的. 1.主键约束(唯一标识):非空.唯一.被引用 当表的某一列被指定为主键后,该类就不能为空,不能有重复值出现 创建表时指定主键的两种方式: CREATE TABLE stu( sid CHAR(6) PRIMARY KEY, sname VARCHAR(20), age INT, sex VARCHEAR(10) ); CREATE TABLE stu( sid CHAR(6) , sname VARCHAR(20), age INT,

2-16 MySQL字段约束-索引-外键

一:字段修饰符 1:null和not null修饰符 我们通过这个例子来看看 mysql> create table worker(id int not null,name varchar(8) not null,pass varchar(20) not null); mysql> insert into worker values(1,'HA','123456'); mysql> insert into worker values(1,'LB',null); ERROR 1048 (2

MYSQL数据库-约束

约束是一种限制,它通过对表的行或列的数据做出限制,来确保表的数据的完整性.唯一性. MYSQL中,常用的几种约束: 约束类型: 主键 默认值 唯一 外键 非空 关键字: PRIMARY KEY DEFAULT UNIQUE FOREIGN KEY NOT NULL =================================================== 主键(PRIMARY KEY)是用于约束表中的一行,作为这一行的标识符,在一张表中通过主键就能准确定位到一行,因此主键十分重要.主