MySQL: (二) 约束那点事儿

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

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

● 主键约束(Primary Key)

● 外键约束(Foreign Key)

● 非空约束(Not Null)

● 唯一约束(Unique)

● 默认约束(Default)


主键约束 Primary Key

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

添加主键

# 建表时在字段后设置主键并自增
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;

删除主键

# 注意:若指定了主键自增则此法删除不了主键(约束)
alter table demo drop primary key;
# 若主键指定了自增,则用只能从定义来删除主键了
alter table demo modify id int;

外键约束 Primary Key


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

添加外键

# 创建表时添加
# 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);

删除外键

# 一般不用(外键名称可在添加外键时指定,否则为默认的)
alter table demo drop foreign key 外键名称;

非空约束 Not Null


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

# 在字段后面添加非空约束
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也可)。

# 创建表时在字段后指定
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


指定某列的默认值。

# 创建表时指定
create table demo(
id int,
age int default 1);

(0)

相关推荐

  • 外键与单表查询

    日期类型 datetimedatetimeyear 枚举与集合 多选一enum gender enum()多选多(多选一)set hobbies set() 创建表的完整语法 create table ...

  • MySQL复习值代码知识点(1)

    MySQL复习值代码知识点一. 创建数据库create database 数据库名:二. 删除数据库drop database 数据库名:三. 选择相应的数据库use 数据库名:四. 创建表creat ...

  • MySql 表结构修改、约束条件、表关系

    表结构修改(alter) 查看表的结构:desc 表名; 修改表名:alter table 表名 rename to 新表名; 修改字段名:alter table 表名 change 旧字段名 新字段 ...

  • “二次报销”那些事儿

    医保心服务 1周前 二次报销那些事儿 李奶奶参加了宜昌市城区的职工医保 最近生病住院了 出院后听说除基本医疗报销以外还有"二次报销" 于是到市民之家医保中心咨询 那么今天我就来和大 ...

  • 第一卷《思齐学塾》第二章(二)征兵的事儿是突然来的

    二.征兵的事儿是突然来的 征兵的事儿突然来了. 征兵的人是夜里来的,来的人都带了枪,一到芦垛里,就四面布了警卫,然后在闻尚田的带领下一家一户地做工作.有适龄的青年人的,都有人夜里来敲门. 直到这时,芦 ...

  • mysql进阶学习二之搭建主从

    前面说了主从复制的原理,现在我们搭建主从结构 1. 提前准备 我准备了两台主机,主节点是远程的centos7,从节点是本机windows 主从复制的原理在上一篇已经说了:主节点中mysql创建一个用户 ...

  • 津门混混那些事儿:津门龙虎斗,杨一财大战赵天二

    津门混混那些事儿:龙虎斗津门,赵天二大战杨一财 在笔者的拙作<津门混混那些事儿>中,曾写过一个名叫赵天二的混混,此人是个大能耐,一人独霸西北角,好勇斗狠第一流,只为跟人争一口气,愣是当街自 ...

  • 腰椎管狭窄症是怎么回事儿(二)该保守还是要手术呢?

    我们称腰椎管狭窄导致的跛行为神经性间歇性跛行. 还有一种血管性间歇性跛行.大家都知道动脉硬化,慢性炎性物质导致血管内壁受损,脂肪组织会沉积在血管内壁导致血管变窄和硬化.动脉硬化会发生在全身的大小动脉, ...

  • 滑膜炎是怎么回事儿?(二)

    说了半天软骨,现在进入正题,讲讲滑膜.滑膜可以说是为软骨特别配置的. 关节囊连接骨骼端,将其包裹在一起,形成密闭的关节腔.关节囊主要起到连接作用,关节囊外层加厚的部分是韧带,起到限制关节过度活动的作用 ...

  • 生活饮用水知识科普——关于饮用水的那些事儿(二)

    生活饮用水宣传周 安全饮水 · 共享健康 生活饮用水卫生知识 01 1. 卫生部门依据哪些法律.法规对饮用水进行管理? 问 02 2.水壶中为什么会出现水垢? 问 日常生活中所使用的水都有一定的硬度, ...

  • ​聊一聊 “拓展延伸”那些事儿——备课杂谈之二十六

    图片来自网络 聊一聊 "拓展延伸"那些事儿 --备课杂谈之二十六 (2021139) 袁建国       听课时经常遇到这样的课堂设计:教师将教学基本内容处理完之后,会设计一个教学 ...

  • 快看,叠被子、包饺子对二实小孩子来说这都不是事儿

    第一二届生活技能节图文视频资料 1.号外号外,乳山二实小热腾腾皮薄馅大的饺子出锅儿啦! 2.摄影老师,你偷吃我水果拼盘的葡萄! 乳山市第二实验小学第三届生活技能节花絮 面对学校教育.家庭教育.个人成长 ...