MySQL约束讲解

mac2025-07-30  2

一、主键约束

它能够唯一确定一张表中的一条记录,也就是我们通过给某个字段添加约束,就可以使得该字段不重复且不为空。在该例子中,字段为id和name。

对字段id进行添加逐渐约束:

create table user( id INT primary key, name VARCHAR ); insert into user values(1,"张三"); //添加主键之后,就不能添加id为1的元素了 //联合主键,只要其中一个主键元素不同便可以进行添加 //id,name都是主键 create table user2( id INT, name VARCHAR(20), PRIMARY KEY(id, name) );

二、自增约束

自增约束,通常与主键一起进行搭配使用

create table user3( id INT PRIMARY key auto_increment, name VARCHAR(20) );

如果在创建表的时候忘记创建主键约束,

方法一:为指定字段添加主键约束的方法 alter table user4 add primary key(id); 删除指定字段的主键删除方式 alter table user4 drop primary key(id); 方法二:为指定字段添加主键约束方法 alter table user4 modify id int primary key;

三、外键约束

外键约束涉及到了两个表:父表与子表

1、主表classes中不存在的数据值,在副表中,是不可以使用的 2、主表中的记录被副表引用,是不可以被删除和更新的。

//classes为主表,students为子表; //在子表的class_id中,使用了主表中的id标号 CREATE TABLE classes( id INT PRIMARY KEY, name VARCHAR(20) ); CREATE TABLE students( id INT PRIMARY KEY, name VARCHAR(20), class_id INT, FOREIGN KEY(class_id) REFERENCES classes(id) );

 

四、唯一约束

为变量添加唯一约束的两种方法,约束修饰字段的值不可以重复。同时也要说明的是,如果是unique(id,name)的话,只需要“组合整体“的内容不相同就可以了,不用各个部分都不相同。

CREATE TABLE user6( id INT, name VARCHAR(20), unique(name)//为name变量添加唯一约束 ); CREATE TABLE user6( id INT, name VARCHAR(20) unique//为name变量添加唯一约束 ); alter table user6 drop index name;//删除指定字段的唯一约束 alter table user6 modify name VARCHAR(20) unique; 添加约束的方法: 方法一:建表的时候添加约束 方法二:可以使用alter .... add... 方法三:可以使用alter .... modify... 删除约束的方法: alter ... drop...

五、非空约束

CREATE TABLE user7( id INT, name VARCHAR(20) not null ); //在有not null修饰的字段中,插入值时必须给相应的字段赋值

六、默认约束

就是当我们插入字段时,如果没有传值,就是使用默认值。

CREATE TABLE user8( id INT, name VARCHAR(20), age INT DEFAULT(10)//为age设置默认属性 ); //设置插入的两种方式 insert into user8 (id, name) values(1,"张三"); insert into user8 values(1,"张三",90);

最新回复(0)