mysql 添加外键约束
创建表时添加约束
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 添加外键约束相关推荐
- mysql添加外键约束的语法_Mysql添加外键约束.
最近学习遇到一条添加外键约束的语句,记录下来. alter table selection add constraint FK_Reference_1 foreign key(course) refe ...
- mysql添加外键约束失败cannot add foreign key constraint
一般来说出现此种错误的要注意是否有如下情况发生: 1.外键字段不能为该表的主键 2.外键字段参考字段必须为参考表的主键 3.字段数据类型必须一致 4.数据库表引擎必须一致 5.字符集和排序规则必须一致 ...
- 使用Navicat for MySQL添加外键约束
先介绍一下基本情况: 现在有两个表一张是t_blog表(博客表),一张是t_blogType表(博客类别) 现在我想把t_blog表中的typeID属性设置为外键,关联t_blogType表中的id属 ...
- mysql添加外键约束的两种方式(重要)
https://blog.csdn.net/lvtula/article/details/81940429 转载于:https://www.cnblogs.com/CD3245/p/11363398. ...
- mysql na加外键,mysql添加外键
mysql添加外键无法成功的原因 最近很忙,碰到很多问题都忘了发上来做个记录,现在又忘了,FUCK,现在碰到一个问题, 就是mysql添加外键总是无法成功,我什么都试了,就是没注意signed和uns ...
- MySQL为表添加外键约束
为表添加外键约束的语法 Alter table 表名 add constraint FK_ID foreign key(外键字段名) REFERENCES 外表表名(主键字段名): 为表student ...
- MySQL:错误代码1215 无法添加外键约束的解决思路
环境说明: ※MySQL ver:5.7 当你需要添加外键约束的时候,却发现mysql报了个1215错误,一脸懵逼的找到这个博客,那你的问题可能就会得到解决. 解决思路 1.检查两个字段的数据类型是否 ...
- MySQL可以生成E-R图嘛_使用Navicat for mysql生成E-R图,添加外键约束
1. E-R图生成 用 mysql的Navicat Premium图形界面工具 . 可以生成E-R图. 把你的数据库选中后右键 , 选择"逆向表到模型" 就可以了 2.添加外键约束 ...
- mysql给表加外键约束_MySQL为表添加外键约束
为表添加外键约束的语法 Alter table 表名 add constraint FK_ID foreign key(外键字段名) REFERENCES 外表表名(主键字段名): 为表student ...
最新文章
- H5打开预览PDF,PPT等文件
- numpy.zeros详解
- Mybatis执行过程源码分析
- 程序员从入门到升级,或许可以看一看这几个公众号
- wkhtmltopdf 水印 背景_wkhtmltopdf + echarts 转 PDF
- 人机协作机器人发展趋势_【名企】优傲机器人与佳能合作,全面进军机器人视觉市场...
- 手机黑圆点怎么打_手机能「打快板」是怎么回事?浅谈手机的光学防抖
- maven工程分开common和server
- 谷歌大脑组合模型霸榜 SuperGLUE
- Bluebird-Collections
- Hibernate.cfg.xml 整理
- html网页设计课程心得,终于发现学习网页设计心得体会
- 基于(LinuxC语言)的UDP局域网聊天室
- Python实现离线字典+听写单词(二):字典数据写进sqlite
- ASP:Panel控件(容器控件)
- 统计学复习笔记(三)—— 置信区间(总体均值/比例/方差,总体均值之差/比例之差/方差之比)
- UG NX二次开发-外部模式
- 夜天之书 #61 Maintainer 的标准
- Git 入门最佳实践
- pyspark之统计基础操作(三)
热门文章
- 红米note9promax和红米note8pro哪个好-红米note9promax和红米note8pro区别-哪个更值得入手-参数对比
- 畅享9p更新鸿蒙吗,荣耀智慧屏明天发布:9成首发鸿蒙 余承东亲临
- android开发,http请求和https请求有什么区别
- 正则表达式_match方法使用
- linux修改torrent文件格式,linux下飞快的BT客户端rtorrent设置:详细解说
- nodejs+python+php+vue小学口算题测试系统
- 新房如何正确通风|甲醛最怕三个克星|除甲醛方法
- 图像美妆算法---自动祛斑算法研究
- PJSIP学习笔记15 -- PJSUA应用程序中的会议桥
- css 文字倒影效果