博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MySql(二):常见的那些个约束
阅读量:5093 次
发布时间:2019-06-13

本文共 1711 字,大约阅读时间需要 5 分钟。

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

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

● 主键约束(Primary Key)

● 外键约束(Foreign Key)

● 非空约束(Not Null)

● 唯一约束(Unique)

● 默认约束(Default)


主键约束 Primary Key

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

添加主键

# 建表时在字段后设置主键并自增create table demo(id  int primary key auto_increment);# 建表时在约束区设置主键(多字段联合主键)# 约束区不能设置自增即:auto_incremencreate 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);

 

关注微信公众号,随时随地学习

 

转载于:https://www.cnblogs.com/dintalk/p/10844430.html

你可能感兴趣的文章
PacketFence ZEN 4.0.1 发布,网络接入控制
查看>>
两个小的java程序,用于练习java基本语法
查看>>
MySql is marked as crashed and should be repaired问题
查看>>
CentOS设置时间
查看>>
java 批量导入图片到excel
查看>>
B树和B+树的总结
查看>>
【ubuntu】配置zsh
查看>>
怎样用通用pe工具箱制作U盘启动盘
查看>>
在ubuntu16.04-32bits 下编译vlc和vlc-qt开源项目
查看>>
转:你真的懂iOS的autorelease吗?
查看>>
Linux学习——磁盘分区管理
查看>>
H5C302
查看>>
给 Android 开发者的 RxJava 详解
查看>>
设计:抽象类类还是接口
查看>>
解决 jsp:include 引用文件时出现乱码的问题
查看>>
712. Minimum ASCII Delete Sum for Two Strings
查看>>
C++ json解析
查看>>
ARM处理器的9种模式详解
查看>>
PHP 客户端IP
查看>>
Inside the Linux Operating System[1]
查看>>