文章目录

  • 1.数据库约束
    • 1.1约束类型
    • 1.2 null约束
    • 1.3 unique:唯一约束条件
    • 1.4 default:默认值约束
    • 1.5 primary key
    • 1.6 foreign key:外键约束
  • 2.表的设计
    • 2.1一对一
    • 2.2一对多
    • 2.3多对多

1.数据库约束

1.1约束类型

  • not null: 指示某列不能存储null值;
  • unique: 保证某列的每行必须有唯一的值;
  • default: 规定没有给列赋值时的默认值。
  • primary key: not null和unique的结合。确保某列(或两个列多个列的结合)有唯一的标识,有助于更容易更迅速的找到表中的一个特定的记录。
  • foreign key: 保证一个表中的数据匹配到另一个表中的值的参照完整性。
  • check: 保证列中的值符合指定的条件,对于mysql的数据库,对check子句进行分析,但是忽略了check子句。

1.2 null约束

创建表的时候,我们可以指定某些列不能为空。

create table student(
id int not null,
sno int,
name varchar(20)
);

此时插入数据时,若在not null时不能插入null值,插入null值时,显示出错。

1.3 unique:唯一约束条件

指定sno为不重复的,唯一的值

create table student(
id int not null,
sno int unique,
name varchar(20)
);


此时在unique的值插入相同的值,此时就会出现报错。

1.4 default:默认值约束

指定插入数据时,name列为空,默认值为tom。

create table student(
id int not null,
sn int unique,
name varchar(20) default 'tom',
qq_mail varchar(20)
);


default指定的默认值,会在按列插入时生效(按列插入但是未被指定的列,就是按照默认值来插入),如果手动的给某一列插入null,就不会触发default。

1.5 primary key

设计表的时候,一般都需要指定一个主键,主键就是一条记录的唯一身份标识。
对于一张表来说,主键只能有一个有一个。

create table student(
id int not null primary key,
sn int unique,
name varchar(20) default 'tom',
qq_mail varchar(20)
);


在这里需要注意的是:
1)主键不能为空,
2)主键不能重复。
对于整数类型的主键,常配搭自增长 auto_increment来使用。插入数据对应字段不给值时,使用最大值+1.

1.6 foreign key:外键约束

外键用于关联其他表的主键或唯一键,语法为:

 foreign key(字段名) references 主表(列)

外键的用法:

create table class(
id int primary key,
name varchar(20)
);create table student(
id int primary key auto_increment,
classId int,
name varchar(20),
foreign key (classId) references class(id)
);

说明: 外键约束就是要求当前表里面的classId字段的值,必须在class表中的id的出现过才可以(此时要求id得时class的主键)
注意: 外键约束也会影响到数据的修改和删除,如果class表中的id已经被student 中的classId用到了,那么就不能删除class表中对应的记录,更不能删除整个class表。

2.表的设计

设计数据库的基本思路:
从具体的问题

2.1一对一


每个人都只拥有一个身份证,所以设计这种表,用到的是一对一的设计。

2.2一对多


一个班级可以有多个学生,所以在此处就是通过把班级和学生通过这种1对多的关系就建立起来了。

2.3多对多


一个学生可以选择多个课程,一个课程也可以被多个学生选择,因此此处是通过多对多的关系把学生和课程建立起来。

MYSQL--数据库约束相关推荐

  1. mysql数据库约束无符号_mysql 数据类型 约束条件

    今日内容: 引擎:决定数据库存取数据的方式==>不同的特点==>不同的用户体验 数据类型:规定了数据库可以存放哪些数据 约束:限制储存数据的规则 引擎: 针对于表的 前提:引擎是建表时规定 ...

  2. mysql数据库约束无符号,MySQL所支持的数据类型与表字段约束类型的学习教程

    MySQL 数据(字段)类型 在创建表的时候,要明确定义字段对应的数据类型.MySQL 主要的数据类型分为数值类型.字符串(文本)类型.时间日期类型和其他类型几类. 数值类型 数值类型说明: 补充说明 ...

  3. mysql数据库约束详解_基于MySQL数据库的数据约束实例及五种完整性约束介绍

    为了防止不符合规范的数据进入数据库,在用户对数据进行插入.修改.删除等操作时,DBMS自动按照一定的约束条件对数据进行监测,使不符合规范的数据不能进入数据库,以确保数据库中存储的数据正确.有效.相容. ...

  4. 【数据库】MySQL数据库约束(六大约束)

    目录 1.数据库约束 1.1约束类型 1.2 非空约束(NOT NULL ) 1.3 唯一约束(UNIQUE) 1.4默认值约束(DEFAULT ) 1.5主键约束(PRIMARY KEY) 1.6外 ...

  5. MySQL数据库约束,表的设计

    Author: 老九 个人博客:老九的CSDN博客 ?? 个人名言:不可控之事 乐观面对 ?? 系列专栏:MySQL通关系列 文章目录 数据库约束 not null unique default pr ...

  6. MySQL数据库约束(主键约束,外键约束详解)

    关系型数据库的一个重要功能: 需要保证数据的"完整性",可以通过人工的方式来观察确认数据的正确性,这种方式是可行的,但是不合适,因为人为控制的方式势必会存在疏忽,导致一些错误没有被 ...

  7. Mysql数据库---约束类型

    Mysql数据库的约束类型有:主键约束(Primary Key),外键约束(Foreign Key),非空约束(Not Null),唯一性约束(Unique),默认约束(Default). 一.主键约 ...

  8. MySQL 数据库约束、聚合查询、多表查询

    一.数据库约束 约束就是数据库在使用的时候,对于里面能够存的数据提出的要求和限制,程序猿就可以借助约束来完成更好的校验 1.约束类型 ① NULL约束 NOT NULL - 指示某列不能存储 NULL ...

  9. mysql数据库约束详解_深入理解mysql数据库的约束

    摘要:MYSQL添加约束,删除约束添加列,修改列,删除列 添加主键约束: altertable表名addconstraint主键(形如:PK_表名)primarykey表名(主键字段); 添加外键约束 ...

  10. mysql数据库约束详解_MySQL数据库中的外键约束详解

    使用MySQL开发过数据库驱动的小型web应用程序的人都知道,对关系数据库的表进行创建.检索.更新和删除等操作都是些比较简单的过程.理论上,只要掌握了最常见的SQL语句的用法,并熟悉您选择使用的服务器 ...

最新文章

  1. AutoMapper 入门
  2. 2012级计算机应用基础,2012年计算机应用基础
  3. 完全掌握JavaMail
  4. UA MATH567 高维统计专题1 稀疏信号及其恢复5 LASSO的估计误差
  5. 递归实现数字排列组合
  6. 后端技术:Java编程中忽略这些细节,Bug肯定少不了
  7. java学习(33):巩固练习
  8. java界面编辑教程_java程序设计基础教程第六章图形用户界面编辑.docx
  9. PHP扩展详解(一)
  10. 多态(Polymoph)
  11. STL常用函数总结-vector
  12. python 视频转图片
  13. uni-app云打包成ipa文件安装到iPhone上全过程记录
  14. 经验分享 | ENVI app store
  15. 云起实验室:零基础入门Serverless:一键部署红白机小游戏
  16. revit综合免费软件丨多图元下自由控制当前视图的填充
  17. 如何自定义Tomcat 404错误页面
  18. 小甲鱼零基础python 魔法方法之 算数运算1(P43)
  19. mikumikudance[MMD]快捷键使用
  20. 2009年2月28号发现,上海移动升级GPRS时出问题,导致一些用户话费被扣钱,甚至停机...

热门文章

  1. HFSS - 圆形双馈微带天线
  2. SSM框架原理以及流程
  3. ns3学习之旅 ---NS3 开篇简介
  4. 计算机装系统找不到硬盘分区,u盘装系统找不到硬盘分区的处理方法
  5. ROS中使用A星算法进行路径规划
  6. msfconsole学习
  7. office未响应(2010、2013……)崩溃
  8. 【详细解读】知识图谱的这一人工智能技术分支的概念、技术、应用、与发展趋势
  9. 步进电机驱动器介绍 --PWM
  10. PR视频剪辑教学,基础工具学习教程「附软件」码住。