交互设计|Java之路-MySql5约束


约束是对表中的数据进行限制 , 使插入的数据符合预期效果 。 约束主要有主键、非空、唯一、外键这几种 。
1.非空约束
非空约束指某一列的值不能为 null , 关键词是NOT NULL , 格式如下
字段名 字段类型 NOT NULL
要保证非空可以使用默认值型 DEFAULT , 默认值的格式如下:
address varchar(20) default '北京'
2.唯一约束
唯一约束表示某一列中不出现重复的数据 。 关键词是UNIQUE , 格式如下
字段名 字段类型 UNIQUE
3.主键约束
主键是用来唯一标识数据库中的每一条记录 , 给数据库和程序使用的 , 没有含义没有关系 , 只要不重复 , 非空就行 。 主键关键字:primary key , 主键是非空且唯一的 。
创建主键的方法如下:
在创建在创建表的时候给字段添加主键: 字段名 字段类型 PRIMARY KEY
在已有表中添加主键:ALTER TABLE 表名 ADD PRIMARY KEY(字段名);
删除主键:ALTER TABLE 表名 DROP PRIMARY KEY;
一个字段设置了非空与唯一约束 , 该字段与主键的区别:主键数在一个表中 , 只能有一个自增长只能用在主键上
主键列的数据如果是我们人为添加容易造成重复 , 数据库提供了自增关键字AUTO_INCREMENT来帮助我们解决这个问题 。 要使用自增字段类型必须是整数类型 。
自增的格式如下:
CREATE TABLE 表名(
列名 int primary key AUTO_INCREMENT
) AUTO_INCREMENT=起始值;
AUTO_INCREMENT的默认起始值是1
创建好修改起始值的写法:
ALTER TABLE 表名 AUTO_INCREMENT=起始值;
4.外键约束
当我们需要一个表来存储员工和员工所在的部门 , 若我们放在一个表中如下图所示时
当我们的部门发送变化时我们就要去修改这个部门每个员工的数据 , 产生数据冗余 , 因此我们可以创建一个员工表和一个部门表通过dep_id进行关联 。
而员工表的dep_id就是外键对应部门表的主键 。
当我们在员工表的 dep_id 里面输入不存在的部门数据依然可以添加.但是并没有对应的部门 , 实际应用中不能出现这种情况 。 员工表的dep_id 中的数据只能是部门表中存在的 id , 因此我们需要使用外键约束 。
在创建表时 , 可以添加外键语法如下:
create table 表名(
正常字段格式.... ,
constraint 外键名称 foreign key (外键列名称) references 主表名称(主表列名称)
);
创建表之后 , 添加外键
ALTER TABLE 表名 ADD CONSTRAINT 外键名称 FOREIGN KEY (外键字段名称) REFERENCES 主表名称(主表列名称);
删除外键
ALTER TABLE 表名 DROP FOREIGN KEY 外键名称;
级联操作:在修改和删除主表的主键时 , 同时更新或删除副表的外键值 , 称为级联操作 , 分以下两种
1. 级联更新:ON UPDATE CASCADE
2. 级联删除:ON DELETE CASCADE
语法:
ALTER TABLE 表名 ADD CONSTRAINT 外键名称 FOREIGN KEY (外键字段名称)
【交互设计|Java之路-MySql5约束】REFERENCES 主表名称(主表列名称) ON UPDATE CASCADE ON DELETE CASCADE ;
- 架构设计|6G发展再迎里程碑 网络架构设计获突破
- 新书推荐 │ 大数据算法设计与分析
- 华为nova 10定档7月4日见!真机渲染图曝光:星耀环设计
- 疑似iQOO 10系列渲染图被曝:背部拼接设计辨识度拉满
- 移动通信网络|6G发展再迎里程碑 网络架构设计获突破
- |PCB设计总是有阻抗不连续? 教你一招解决烦恼!
- gtx|一款充满设计感的智能手机,体验LG V60,摄像头和屏幕都是亮点
- 第六届全省中小学生互联网+机器人设计活动决赛顺利结束
- Java|干翻小米,红米又出超大杯旗舰,120W+2K直屏+双旗舰芯
- 百度地图|Java程序员应知应会之Maven和Gradle的区别
