栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Go语言

mysql建表约束

Go语言 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

mysql建表约束

01.主键约束:

-- 主键约束
-- 使某个字段不重复且不得为空,确保表内所有数据的唯一性

CREATE table user(
	id int primary key,
	name varchar(20)
);

show tables;

describe user ;

 -- 联合主键
-- 联合主键中的每个字段都不能为空,并且加起来不能和已设置的联合主键重复

DROp table user ;
CREATE table user (
	id int ,
	name varchar (20),
	passward varchar (20),
	primary key(id,name)
);

describe user ;

可以看到下面两个字段都为primary 

 -- 自增约束
-- 自增约束的主键由系统自动递增分配

DROP table user ;
CREATE table user (
	id int auto_increment,
	name varchar (20),
	primary key (id)
);

describe user ;

 

-- 添加主键约束
-- 如果忘记设置主键,还可以通过SQL语句设置(两种方式):

DROP table user ;
CREATE table user (
	id int ,
	name varchar (20)
);
describe user ;

 

添加主键约束:

ALTER table user add primary key (id);

或者ALTER table user modify id int primary key ;

ALTER table user add primary key (id);

describe user ;

 

删除一下表

DROP table user ;

 02.索引约束:

-- 建表时创建唯一索引

CREATE table user (
	id int ,
	name varchar (20),
	unique(name)
);
describe user ;

 

 -- 添加唯一索引
-- 如果建表时没有设置唯一索引,还可以通过SQL语句设置(两种方式):

DROP table user ;
CREATE table user (
	id int ,
	name varchar (20)
);
describe user ;

使用ALTER table user add unique (name)或者 ALTER table user modify name varchar (20) unique添加索引

ALTER table user add unique (name);
describe  user ;

-- 删除索引

ALTER table user drop index name ;
describe  user ;

 

         插入一条数据进行查看:

INSERT into user values (12,null);
SELECT * FROM user ;

 

        这边发现索引是可以为NULL的,注意区分主键和索引的区别

主键是一种约束,唯一索引是一种索引,两者在本质上是不同的。

主键创建后一定包含一个唯一性索引,唯一性索引并不一定就是主键。

唯一性索引列允许空值,而主键列不允许为空值。

主键列在创建时,已经默认为非空值 + 唯一索引了。

主键可以被其他表引用为外键,而唯一索引不能。

一个表最多只能创建一个主键,但可以创建多个唯一索引。

主键和唯一索引都可以有多列。

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/937823.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号