数据库建表约束——五大约束
建表约束
语法:
CREATE TABLE 表名 (字段名 字段类型 列级约束,字段名 字段类型,表级约束
)
添加约束的时机:
- 创建表时
- 修改表时
约束的添加分类:
列级约束:
六大约束语法上都支持,但外键约束没有效果
表级约束:
除了非空、默认,其他的都支持
主键约束
PRIMARY KEY
用于保证该字段的值具有唯一性,并且非空
eg:学号、员工编号
#主键约束
#使某个字段不重复且不得为空,确保表内所有数据的唯一性。
CREATE TABLE user (id INT PRIMARY KEY,name VARCHAR(20)
);#联合主键
#联合主键中的每个字段都不能为空,并且加起来不能和已设置的联合主键重复。
CREATE TABLE user (id INT,name VARCHAR(20),password VARCHAR(20),PRIMARY KEY(id, name)
);#自增约束
#自增约束的主键由系统自动递增分配。
CREATE TABLE user (id INT PRIMARY KEY AUTO_INCREMENT,name VARCHAR(20)
);#添加主键约束
#如果忘记设置主键,还可以通过SQL语句设置(两种方式):
ALTER TABLE user ADD PRIMARY KEY(id);
ALTER TABLE user MODIFY id INT PRIMARY KEY;#删除主键
ALTER TABLE user drop PRIMARY KEY;
唯一主键
UNIQUE
用于保证该字段的值具有唯一性,可以为空
eg:座位号
#建表时创建唯一主键
CREATE TABLE user (id INT,name VARCHAR(20),UNIQUE(name)
);#添加唯一主键
#如果建表时没有设置唯一建,还可以通过SQL语句设置(两种方式):
ALTER TABLE user ADD UNIQUE(name);
ALTER TABLE user MODIFY name VARCHAR(20) UNIQUE;#删除唯一主键
ALTER TABLE user DROP INDEX name;
非空约束
NOT NULL
用于保证该字段的值不能为空
eg:姓名、学号
#建表时添加非空约束
#约束某个字段不能为空
CREATE TABLE user (id INT,name VARCHAR(20) NOT NULL
);#移除非空约束
ALTER TABLE user MODIFY name VARCHAR(20);
默认约束
DEFAULT
用于保证该字段有默认值
eg:性别
#建表时添加默认约束
#约束某个字段的默认值
CREATE TABLE user2 (id INT,name VARCHAR(20),age INT DEFAULT 10
);#移除非空约束
ALTER TABLE user MODIFY age INT;
外键约束
FOREIGN KEY
用于限制两个表的关系,用于保证该字段的值必须来自主表的关联列的值。在从表添加外键约束,用于引用主表中某列的值
eg:学生表的专业编号、员工表的部门编号。员工表的工种编号
#班级
CREATE TABLE classes (id INT PRIMARY KEY,name VARCHAR(20)
);#学生表
CREATE TABLE students (id INT PRIMARY KEY,name VARCHAR(20),-- 这里的 class_id 要和 classes 中的 id 字段相关联class_id INT,-- 表示 class_id 的值必须来自于 classes 中的 id 字段值FOREIGN KEY(class_id) REFERENCES classes(id)
);#1. 主表(父表)classes 中没有的数据值,在副表(子表)students 中,是不可以使用的;
#2. 主表中的记录被副表引用时,主表不可以被删除。
数据库建表约束——五大约束相关推荐
- mysql数据库五大约束_数据库基础知识:数据库中的约束和三大范式
一.数据库中的范式: 范式,英文名称是NormalForm,它是英国人E.F.Codd(关系数据库的老祖宗)在上个世纪70年代提出关系数据库模型后总结出来的,范式是关系数据库理论的基础,也是我们在设计 ...
- mysql设置约束l命令_mysql建表约束,sql
–mysql建表约束,sql –主键约束 它能够唯一确定一张表中的一条记录,也就是我们通过给某个字段添加约束,就可以使得改字段不重复且不为空. mysql> create table user( ...
- 数据库的三大范式和五大约束(转)
一.三大范式: 1. 第一范式(1NF):数据表中的每一列(每个字段)必须是不可拆分的最小单元,也就是确保每一列的原子性: 2. 第二范式(2NF):满足1NF后,要求表中的所有列,都必须依赖于主键, ...
- 数据库的三大范式以及五大约束
实体:表: 属性:表中的数据(字段): 关系:表与表之间的关系: 数据库设计三大范式(重点): 第一范式(1NF):数据表中的每一列(每个字段)必须是不可拆分的最小单元,也就是确保每一列的原子性: 例 ...
- mysql数据库五大对象_数据库的三大范式以及五大约束
实体:表: 属性:表中的数据(字段): 关系:表与表之间的关系: 数据库设计三大范式(重点): 第一范式(1NF):数据表中的每一列(每个字段)必须是不可拆分的最小单元,也就是确保每一列的原子性: 例 ...
- 数据库建表需要外键约束?
数据库建表需要外键约束吗? 数据库建表时一定要设置外键约束关系吗?
- 数据库三大范式及五大约束
数据库的三大范式以及五大约束 数 据 库 今天小 ...
- Mysql 数据库设置三大范式 数据库五大约束 数据库基础配置
数据库设置三大范式 1.第一范式(确保每列保持原子性) 第一范式是最基本的范式.如果数据库表中的所有字段值都是不可分解的原子值,就说明该数据库满足第一范式. 第一范式的合理遵循需要根据系统给的实际需求 ...
- 数据库建表时一定要设置外键约束关系吗?
数据库建表时一定要设置外键约束关系吗? 我们都知道每张数据表都有一个能够确定每行数据唯一性的字段,也就是主键.而在关系数据库中,常常有两表存在一定关系的情况.即一张表的主键跟另一张的外键存在对应关系, ...
最新文章
- android studio 开发环境搭建
- Java 线程池必知的8 大拒绝策略
- matlab 摄像头操作
- 【转载】django在eclipse环境下建web网站
- Java在电脑桌面的图标_电脑桌面图标都没了,教您电脑桌面图标都没了怎么恢复...
- 如何使用live writer客户端来发布CSDN的博客文章?
- Python基础教程:判断列表重复
- Oracle 客户端连接服务器[转]
- .class和getClass()的区别
- PageObjectPageFactory
- 太原市智能家居行业协会成立
- Resource Hacker-资源替换工具
- 《公路测设技术》课程网课最新作业测验考试
- Excel 数据随机分组
- Zemax仿真中像质评价及方法
- Win8.1系统System.exe进程占用磁盘率高达100%如何解决
- UltraLAB台式图形工作站(图形+超算+私有云通吃~图灵超算工作站介绍)
- Parsing error: No Babel config file detected for ....
- pycharm菜单栏不见了被隐藏了,两种处理方法
- 构建微信公众号管理系统-微擎
热门文章
- EXTEND RRT
- 百度迁徙之后,大数据进入实用阶段
- 只有善用能力才能充分发挥
- 海阳最新计算机招聘信息,海阳找工作|海阳人才网|海阳全职招聘信息-烟台58同城...
- Liunx基础命令 - which命令
- linux无法自动识别usb光驱,USB外置光驱不能用怎么办 USB外置光驱无法识别解决方法...
- 进程、线程、纤程、协程
- 装修 灵感 | 97m²现代简约三居,黑白灰格调打造温馨家
- 分布式事务解决方案:seata
- 计算机应用技术轻薄本,高配置轻薄笔记本推荐,终结你的选择困难症!