建表约束

语法:

CREATE TABLE 表名 (字段名 字段类型 列级约束,字段名 字段类型,表级约束
)

添加约束的时机:

  1. 创建表时
  2. 修改表时

约束的添加分类:

  • 列级约束:

    ​ 六大约束语法上都支持,但外键约束没有效果

  • 表级约束:

    ​ 除了非空、默认,其他的都支持

主键约束

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. 主表中的记录被副表引用时,主表不可以被删除。

数据库建表约束——五大约束相关推荐

  1. mysql数据库五大约束_数据库基础知识:数据库中的约束和三大范式

    一.数据库中的范式: 范式,英文名称是NormalForm,它是英国人E.F.Codd(关系数据库的老祖宗)在上个世纪70年代提出关系数据库模型后总结出来的,范式是关系数据库理论的基础,也是我们在设计 ...

  2. mysql设置约束l命令_mysql建表约束,sql

    –mysql建表约束,sql –主键约束 它能够唯一确定一张表中的一条记录,也就是我们通过给某个字段添加约束,就可以使得改字段不重复且不为空. mysql> create table user( ...

  3. 数据库的三大范式和五大约束(转)

    一.三大范式: 1. 第一范式(1NF):数据表中的每一列(每个字段)必须是不可拆分的最小单元,也就是确保每一列的原子性: 2. 第二范式(2NF):满足1NF后,要求表中的所有列,都必须依赖于主键, ...

  4. 数据库的三大范式以及五大约束

    实体:表: 属性:表中的数据(字段): 关系:表与表之间的关系: 数据库设计三大范式(重点): 第一范式(1NF):数据表中的每一列(每个字段)必须是不可拆分的最小单元,也就是确保每一列的原子性: 例 ...

  5. mysql数据库五大对象_数据库的三大范式以及五大约束

    实体:表: 属性:表中的数据(字段): 关系:表与表之间的关系: 数据库设计三大范式(重点): 第一范式(1NF):数据表中的每一列(每个字段)必须是不可拆分的最小单元,也就是确保每一列的原子性: 例 ...

  6. 数据库建表需要外键约束?

    数据库建表需要外键约束吗? 数据库建表时一定要设置外键约束关系吗?

  7. 数据库三大范式及五大约束

    数据库的三大范式以及五大约束                                                                     数  据   库      今天小 ...

  8. Mysql 数据库设置三大范式 数据库五大约束 数据库基础配置

    数据库设置三大范式 1.第一范式(确保每列保持原子性) 第一范式是最基本的范式.如果数据库表中的所有字段值都是不可分解的原子值,就说明该数据库满足第一范式. 第一范式的合理遵循需要根据系统给的实际需求 ...

  9. 数据库建表时一定要设置外键约束关系吗?

    数据库建表时一定要设置外键约束关系吗? 我们都知道每张数据表都有一个能够确定每行数据唯一性的字段,也就是主键.而在关系数据库中,常常有两表存在一定关系的情况.即一张表的主键跟另一张的外键存在对应关系, ...

最新文章

  1. android studio 开发环境搭建
  2. Java 线程池必知的8 大拒绝策略
  3. matlab 摄像头操作
  4. 【转载】django在eclipse环境下建web网站
  5. Java在电脑桌面的图标_电脑桌面图标都没了,教您电脑桌面图标都没了怎么恢复...
  6. 如何使用live writer客户端来发布CSDN的博客文章?
  7. Python基础教程:判断列表重复
  8. Oracle 客户端连接服务器[转]
  9. .class和getClass()的区别
  10. PageObjectPageFactory
  11. 太原市智能家居行业协会成立
  12. Resource Hacker-资源替换工具
  13. 《公路测设技术》课程网课最新作业测验考试
  14. Excel 数据随机分组
  15. Zemax仿真中像质评价及方法
  16. Win8.1系统System.exe进程占用磁盘率高达100%如何解决
  17. UltraLAB台式图形工作站(图形+超算+私有云通吃~图灵超算工作站介绍)
  18. Parsing error: No Babel config file detected for ....
  19. pycharm菜单栏不见了被隐藏了,两种处理方法
  20. 构建微信公众号管理系统-微擎

热门文章

  1. EXTEND RRT
  2. 百度迁徙之后,大数据进入实用阶段
  3. 只有善用能力才能充分发挥
  4. 海阳最新计算机招聘信息,海阳找工作|海阳人才网|海阳全职招聘信息-烟台58同城...
  5. Liunx基础命令 - which命令
  6. linux无法自动识别usb光驱,USB外置光驱不能用怎么办 USB外置光驱无法识别解决方法...
  7. 进程、线程、纤程、协程
  8. 装修 灵感 | 97m²现代简约三居,黑白灰格调打造温馨家
  9. 分布式事务解决方案:seata
  10. 计算机应用技术轻薄本,高配置轻薄笔记本推荐,终结你的选择困难症!