mysql-建表约束

时间:2020-04-17
本文章向大家介绍mysql-建表约束,主要包括mysql-建表约束使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

主键约束

可以唯一确定表中的一条记录

联合主键

由多个字段组成。

create table user2(
    id INT,
    name VARCHAR(20),
    password VARCHAR(20),
    primary key(id,name)
);

只要主键值加起来不重复即可,也就是有一个不同就可以

主键不可以重复,任何一个字段都不可以为空

自增约束

可以和主键约束一起使用。

CREATE TABLE user3(
    id INT PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(20)
);
INSERT INTO user3(name) VALUES('张三');
INSERT INTO user3(name) VALUES('张三');
INSERT INTO user3(name) VALUES('张三');

 发现会自动生成id

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

 则添加语句:(修改表结构,添加主键)

alter table user4 add primary key(id);

或者使用 midify 修改字段,添加约束。(这样操作比较少,了解一下)

alter table user4 modify id int primary key;

运行:

通过这条语句删除:

alter table user4 drop primary key;

运行:

外键约束

涉及到两个表:父表、子表(主表、副表/从表??)。

学生表是父表,班级表是主表,父表里的东西要参照主表,主表里面不存在的,父表无法添加。

主表中的记录被副表引用,是不可以被删除的。

唯一约束

约束修饰的字段的值不可以重复

即无法重复添加'zhangsan'。

CREATE TABLE user5(
     id INT PRIMARY KEY AUTO_INCREMENT,
     name VARCHAR(20)
);

添加语句:(或者直接在上面的代码内添加 unique(name) )(或者直接在20的括号后面加 unique )

alter table user5 add unique(name);

或者:

alter table user5 modify name varchar(20) unique;

运行:

如果一下子添加两个,也就是unique(name,id),表示的是组合在一起不重复,那么Key那边会变成MUL

如何删除唯一约束?(需找到unique对应的字段)

alter table user5 drop index name;

非空约束

修饰的字段不能为空(NULL)

create table user9(
    id int,
    name varchar(20) NOT NULL
);

运行:

默认约束

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

create table user10(
    id int,
    name varchar(20),
    age int default 10
);

运行:

插入一个元素:

insert into user10(id,name) value(1,'zhangsan');

 发现:即使没有插入年纪,也会有默认年纪显示。

原文地址:https://www.cnblogs.com/OFSHK/p/12719926.html