前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MySQL: (二) 约束那点事儿

MySQL: (二) 约束那点事儿

作者头像
宋先生
发布2019-07-18 14:35:58
8080
发布2019-07-18 14:35:58
举报

顶哥今天总结一下mysql当中的一些常见约束吧!

那什么是约束呢?通俗点讲,约束就是限定指定字段的存放规则!

● 主键约束(Primary Key)

● 外键约束(Foreign Key)

● 非空约束(Not Null)

● 唯一约束(Unique)

● 默认约束(Default)


主键约束 Primary Key

主键约束要求主键列的数据唯一且不允许为空, 可分为单字段主键和多字段联合主键。

添加主键
代码语言:javascript
复制
# 建表时在字段后设置主键并自增
create table demo(
id  int primary key auto_increment);
# 建表时在约束区设置主键(多字段联合主键)
# 约束区不能设置自增即:auto_incremen
create table demo(
id 	int ,
age  int,
primary key(id));  # 联合主键为:primary key(id,age));
# 在已有的表中添加主键
alter table demo add primary key(id);
# 在已有表中添加自增主键
alter table demo modify id int primary key auto_increment;
# 设置表的已有主键自增
alter table demo modify id int auto_increment;
# 设置主键自增起始值(默认是1)
alter table demo auto_increment=2;
删除主键
代码语言:javascript
复制
# 注意:若指定了主键自增则此法删除不了主键(约束)
alter table demo drop primary key;
# 若主键指定了自增,则用只能从定义来删除主键了
alter table demo modify id int;
外键约束 Primary Key

外键用来在两个表之间建立链接,它可以是一列或多列,一个表可以有一个或多个外键。

添加外键
代码语言:javascript
复制
# 创建表时添加
# demo1 为主表,外键引用主表的id字段
create table demo(
id int,
price double,
user_id int,
foreign key(user_id) references demo1(id))
# 修改现有表添加
# 先添加外键字段
alter table demo add user_id int;
# 再添加外键约束
alter table demo add foreign key(user_id) references demo1(id);
删除外键
代码语言:javascript
复制
# 一般不用(外键名称可在添加外键时指定,否则为默认的)
alter table demo drop foreign key 外键名称;
非空约束 Not Null

非空约束要求该列字段值不能为空,否则会报错(可配合默认约束)。

代码语言:javascript
复制
  # 在字段后面添加非空约束
  create table demo(
  id  int not null);
  # 在已有表添加非空约束
  alter table demo change id id int not null;
  # 删除非空约束
  alter table demo change id id int;
唯一约束 Unique

唯一约束要求改列字段值唯一,允许为null(多个null也可)。

代码语言:javascript
复制
# 创建表时在字段后指定
create table demo(
id  int unique);
# 创建表时在约束区添加
create table demo(
id int, 
age int,
unique(id, age));
# 为已有表添加
alter table demo add unique(id);
# 删除约束
alter table demo drop index id;
默认约束 Default

指定某列的默认值。

代码语言:javascript
复制
# 创建表时指定
create table demo(
id  int, 
age  int default 1);
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-03-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 顶哥说 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 主键约束 Primary Key
    • 添加主键
      • 删除主键
      • 外键约束 Primary Key
        • 添加外键
          • 删除外键
          • 非空约束 Not Null
          • 唯一约束 Unique
          • 默认约束 Default
          相关产品与服务
          云数据库 SQL Server
          腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档