创建表时添加约束

create table table_name(
id  int primary key auto_increment, #设为主键且自动增长
name  not null unique,  #不为空且值唯一
sex default '男', #使用默认约束,默认性别为男
constraint  索引名 foreign key(外键列)  references 主键表(主键列)
on delete cascade | on delete set null   外键约束
)

完成表后添加约束


1.主键约束
添加:alter table  table_name add primary key (字段)
删除:alter table table_name drop primary key
2.非空约束
添加:alter  table table_name modify 列名 数据类型  not null
删除:alter table table_name modify 列名 数据类型 null
3.唯一约束
添加:alter table table_name add unique 约束名(字段)
删除:alter table table_name drop key 约束名
4.自动增长
添加:alter table table_name  modify 列名 int  auto_increment
删除:alter table table_name modify 列名 int
5.外键约束
添加:alter table table_name add constraint 约束名 foreign key(外键列)
references 主键表(主键列)
删除:
第一步:删除外键
alter table table_name drop foreign key 约束名
第二步:删除索引
alter  table table_name drop  index 索引名
[^1]:
约束名和索引名一样
6.默认值
添加:alter table table_name alter 列名  set default '值'
删除:alter table table_name alter 列名  drop default

相关知识

在数据库的使用过程中我们经常要限制字段的取值,比如有些字我们不能让它为空,我们就需要添加非空约束,本关我们就来学习如何添加这些常用的约束。

为了完成本关任务,你需要掌握:
1.怎么添加唯一约束;
2.怎么添加非空约束;
3.怎么添加默认约束;
4.怎么设置字段的值自动增加。

怎么添加唯一约束

唯一约束(Unique Constraint)要求该列唯一,允许为空,但是只能有一个空值。唯一约束可以确保一列或者几列不出现重复值。

定义部门表的部门名称唯一,SQL语句如下:关键词 UNIQUE


CREATE TABLE t_dept(
id INT PRIMARY KEY,
name VARCHAR(22) UNIQUE,
location VARCHAR(50)
)

怎么添加非空约束

关键词:NOT NULL

例如:


CREATE TABLE t_dept(
id INT PRIMARY KEY,
name VARCHAR(22) NOT NULL,
location VARCHAR(50)
)

怎么使用默认约束

默认约束:即给字段一个默认值。
关键词:DEFAULT

例如:


CREATE TABLE t_emp(
id INT PRIMARY KEY,
name VARCHAR(22),
sex VARCHAR(2) DEFAULT '男'
) DEFAULT CHARSET=utf8;

注意:

  • 如果是添加字符串型默认值要使用单引号,如果是整型则不需要加任何符号;
  • 如果要添加的是中文默认值,则需要加上DEFAULT CHARSET=utf8;使用英文字符则不需要。

设置表的属性值自动增加

在数据库应用中,经常有个需求就是,在每次插入新纪录时,系统自动生成字段的主键值,即:

id name
1 张三
2 李四
ID每次自动加一 姓名
... XXX
10 XXX

关键词:AUTO_INCREMENT,默认情况下初始值和增量都为1

例如:


CREATE TABLE t_tmp
(
id int PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(32)
)

以上这些你都可以在右侧的命令行中测试。

编程要求

在数据库MyDb中创建表t_user,表结构如下:

字段名称 数据类型 备注
id INT 用户ID,主键,自动增长
username varchar(32) 用户名,非空,唯一
sex varchar(4) 性别,默认“男”

提示:若要给字段添加两个或者两个以上的约束,约束之间以空格隔开即可。

任务代码

mysql -uroot -p123123 -h127.0.0.1;
create database MyDb;
use MyDb;
create table t_user(
id int primary key auto_increment,
username varchar(32)not null unique,
sex varchar(4) default '男');

完成如下

mysql 添加外键约束相关推荐

  1. mysql添加外键约束的语法_Mysql添加外键约束.

    最近学习遇到一条添加外键约束的语句,记录下来. alter table selection add constraint FK_Reference_1 foreign key(course) refe ...

  2. mysql添加外键约束失败cannot add foreign key constraint

    一般来说出现此种错误的要注意是否有如下情况发生: 1.外键字段不能为该表的主键 2.外键字段参考字段必须为参考表的主键 3.字段数据类型必须一致 4.数据库表引擎必须一致 5.字符集和排序规则必须一致 ...

  3. 使用Navicat for MySQL添加外键约束

    先介绍一下基本情况: 现在有两个表一张是t_blog表(博客表),一张是t_blogType表(博客类别) 现在我想把t_blog表中的typeID属性设置为外键,关联t_blogType表中的id属 ...

  4. mysql添加外键约束的两种方式(重要)

    https://blog.csdn.net/lvtula/article/details/81940429 转载于:https://www.cnblogs.com/CD3245/p/11363398. ...

  5. mysql na加外键,mysql添加外键

    mysql添加外键无法成功的原因 最近很忙,碰到很多问题都忘了发上来做个记录,现在又忘了,FUCK,现在碰到一个问题, 就是mysql添加外键总是无法成功,我什么都试了,就是没注意signed和uns ...

  6. MySQL为表添加外键约束

    为表添加外键约束的语法 Alter table 表名 add constraint FK_ID foreign key(外键字段名) REFERENCES 外表表名(主键字段名): 为表student ...

  7. MySQL:错误代码1215 无法添加外键约束的解决思路

    环境说明: ※MySQL ver:5.7 当你需要添加外键约束的时候,却发现mysql报了个1215错误,一脸懵逼的找到这个博客,那你的问题可能就会得到解决. 解决思路 1.检查两个字段的数据类型是否 ...

  8. MySQL可以生成E-R图嘛_使用Navicat for mysql生成E-R图,添加外键约束

    1. E-R图生成 用 mysql的Navicat Premium图形界面工具 . 可以生成E-R图. 把你的数据库选中后右键 , 选择"逆向表到模型" 就可以了 2.添加外键约束 ...

  9. mysql给表加外键约束_MySQL为表添加外键约束

    为表添加外键约束的语法 Alter table 表名 add constraint FK_ID foreign key(外键字段名) REFERENCES 外表表名(主键字段名): 为表student ...

最新文章

  1. H5打开预览PDF,PPT等文件
  2. numpy.zeros详解
  3. Mybatis执行过程源码分析
  4. 程序员从入门到升级,或许可以看一看这几个公众号
  5. wkhtmltopdf 水印 背景_wkhtmltopdf + echarts 转 PDF
  6. 人机协作机器人发展趋势_【名企】优傲机器人与佳能合作,全面进军机器人视觉市场...
  7. 手机黑圆点怎么打_手机能「打快板」是怎么回事?浅谈手机的光学防抖
  8. maven工程分开common和server
  9. 谷歌大脑组合模型霸榜 SuperGLUE
  10. Bluebird-Collections
  11. Hibernate.cfg.xml 整理
  12. html网页设计课程心得,终于发现学习网页设计心得体会
  13. 基于(LinuxC语言)的UDP局域网聊天室
  14. Python实现离线字典+听写单词(二):字典数据写进sqlite
  15. ASP:Panel控件(容器控件)
  16. 统计学复习笔记(三)—— 置信区间(总体均值/比例/方差,总体均值之差/比例之差/方差之比)
  17. UG NX二次开发-外部模式
  18. 夜天之书 #61 Maintainer 的标准
  19. Git 入门最佳实践
  20. pyspark之统计基础操作(三)

热门文章

  1. 红米note9promax和红米note8pro哪个好-红米note9promax和红米note8pro区别-哪个更值得入手-参数对比
  2. 畅享9p更新鸿蒙吗,荣耀智慧屏明天发布:9成首发鸿蒙 余承东亲临
  3. android开发,http请求和https请求有什么区别
  4. 正则表达式_match方法使用
  5. linux修改torrent文件格式,linux下飞快的BT客户端rtorrent设置:详细解说
  6. nodejs+python+php+vue小学口算题测试系统
  7. 新房如何正确通风|甲醛最怕三个克星|除甲醛方法
  8. 图像美妆算法---自动祛斑算法研究
  9. PJSIP学习笔记15 -- PJSUA应用程序中的会议桥
  10. css 文字倒影效果