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;
外键用来在两个表之间建立链接,它可以是一列或多列,一个表可以有一个或多个外键.
添加外键
# 创建表时添加 # 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 外键名称;
非空约束要求该列字段值不能为空,否则会报错.(可配合默认约束)
# 在字段后面添加非空约束 create table demo( id int not null); # 在已有表添加非空约束 alter table demo change id id int not null; # 删除非空约束 alter table demo change id id int;
唯一约束要求改列字段值唯一,允许为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;
指定某列的默认值.
# 创建表时指定 create table demo( id int, age int default 1);
关注微信公众号,随时随地学习
作者:Mr.SongHui
欢迎转载,但必须给出原文链接,并保留此段声明。
粉丝福利:
【腾讯云·年末有礼】云产品限时秒杀,云服务器1核2G,首年128元
【腾讯云】海外1核2G服务器低至2折,半价续费券限量免费领取!
【腾讯云】专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得
【腾讯云】热卖云产品3折起,云服务器、云数据库特惠,服务更稳,速度更快,价格更优
【腾讯云】腾讯云服务器安全可靠高性能,多种配置供您选择
【腾讯云】助力中小微企业上云,满足轻量级Web应用需求,云服务器钜惠 166元/年起
【腾讯云】云数据库全场年购3折起,新用户上云6个月仅需10元
【腾讯云】腾讯云数据库性能卓越稳定可靠,为您解决数据库运维难题
【腾讯云】腾讯云图,像PPT一样简单的数据可视化工具。5元搞定数据可视化,模板丰富,拖拖拽拽就能做出好看的可视化大屏
【腾讯云】流量包低至0.12元/GB , 结合在线教育、电商直播、社交直播场景,提供IM+直播+点播音视频组合优惠
【腾讯云】Redis单机版特惠2.1折起,为缓存业务量身定制,新用户8元起购
【腾讯云】专业版APP加固特惠5折起,可享免费兼容性测试
【腾讯云】专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得
【腾讯云·年末有礼】云产品限时秒杀,云服务器1核2G,首年128元
【腾讯云】海外1核2G服务器低至2折,半价续费券限量免费领取!
【腾讯云】专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得
【腾讯云】热卖云产品3折起,云服务器、云数据库特惠,服务更稳,速度更快,价格更优
【腾讯云】腾讯云服务器安全可靠高性能,多种配置供您选择
【腾讯云】助力中小微企业上云,满足轻量级Web应用需求,云服务器钜惠 166元/年起
【腾讯云】云数据库全场年购3折起,新用户上云6个月仅需10元
【腾讯云】腾讯云数据库性能卓越稳定可靠,为您解决数据库运维难题
【腾讯云】腾讯云图,像PPT一样简单的数据可视化工具。5元搞定数据可视化,模板丰富,拖拖拽拽就能做出好看的可视化大屏
【腾讯云】流量包低至0.12元/GB , 结合在线教育、电商直播、社交直播场景,提供IM+直播+点播音视频组合优惠
【腾讯云】Redis单机版特惠2.1折起,为缓存业务量身定制,新用户8元起购
【腾讯云】专业版APP加固特惠5折起,可享免费兼容性测试
【腾讯云】专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得
[需要广告托管服务的朋友请留步哦]