MySql中的约束
mysql中的约束使用和oracle使用差别不大。
1.主键约束
如同人对应身份证,主键能够唯一地标识表中的一条记录,可以结合外键来定义数据表之间的关系。
主键约束要求主键列的数据唯一,并且不允许为空。
分为两种类型:单字段主键

和多字段联合主键

2.外键约束
外键约束是为了来维持参照完整性的。也就是用来维持两个表的数据之间关系的。想一下有两个表, 一个职员表,一个部门表,部门表中部门编号为主键,职员表里面也有一个部门编号,如果他不按照部门表中的部门编号来写,就乱套了,所以要外键关联到部门表的主键,确保参照完整性,也就是不能瞎写,必须要写合法的。
外键约束在一个表中可以有多个,因为可能关联多个表,另外不允许删除在另一个表中具有关联关系的行。

tb2中的deptid关联tb1中的id.
3.非空约束。
顾名思义也就是不能为空。

这个not null 就是定义了非空约束
4.唯一性约束。
唯一性约束与主键有点相同但也有很大的不同,从名字看以看出这是为了记录的唯一存在,看起来和主键作用一样,但是唯一性约束可以有多个,而且数据可以为空

5.默认约束
默认约束是用来指定某列默认值的。

如果存数据的时候没有存放,默认会是1111.
最后提一下怎么设置表的属性值自增长。
通过给表主键添加 auto_increment关键字来实现。默认初始值为1,每新增一条记录,字段值自动加1,一个表只有一个字段能使用,且必须为主键一部分


MySql中的约束的更多相关文章
- 一、TCL事务控制语言 二、MySQL中的约束 三、多表查询(重点) 四、用户的创建和授权 五、MySQL中的索引
一.TCL事务控制语言###<1>事务的概念 事务是访问并可能更新数据库中各种数据项的执行单元. 事务是一条SQL语句,一组SQL语句,或者整个程序. 事务是恢复和并发控制的基本单位. 事 ...
- 分享知识-快乐自己:MySQL中的约束,添加约束,删除约束,以及一些其他修饰
创建数据库: CREATE DATABASES 数据库名: 选择数据库: USE 数据库名: 删除数据库: DROP DATAVBASE 数据库名: 创建表: CREATE TABLE IF NOT ...
- mysql中常见约束
#常见约束 /* 含义:一种限制,用于限制表中的数据,为了保证表中的数据的准确和可靠性 分类:六大约束 NOT NULL:非空,用于保证该字段的值不能为空 比如姓名.学号等 DEFAULT:默认,用于 ...
- MySQL中的约束,添加约束,删除约束,以及其他修饰
一.NOT NULL(非空约束)添加非空约束 1)建表时直接添加 CREATE TABLE t_user(user_id INT(10) NOT NULL); 2)通过ALTER 语句 ALTER T ...
- MySQL中的约束简单使用
数据库约束是为了保证数据的完整性而实现的一套机制,它具体的根据各个不同的数据库的实现而有不同的工具.一般来说有以下几种实现方式:1.检查约束:通过在定义数据库表里,在字段级或者是在表级加入的检查约束, ...
- mysql中唯一约束用法
以前比较naive,有次同事一定要在表里建唯一约束的时候,我就很纳闷为啥非要在db层面做限制,在自己的业务代码里做啊,就是说入库的时候先查一遍有没有,没有记录的情况再准许入库. 后来发现如果只是自己处 ...
- MYSQL中唯一约束和唯一索引的区别
1.唯一约束和唯一索引,都可以实现列数据的唯一,列值可以有null.2.创建唯一约束,会自动创建一个同名的唯一索引,该索引不能单独删除,删除约束会自动删除索引.唯一约束是通过唯一索引来实现数据的唯一. ...
- mysql 外键约束及表关联
一.MYSQL中的约束 1.主键:primary key 唯一非空的特性并且可以优化查询速度 2.外键:foreign key 外键的作用保证2个或2个以上的数据表的数据一致性和完整性 3.唯一:un ...
- MYSQL中约束及修改数据表
MYSQL中约束及修改数据表 28:约束约束保证数据的完整性和一致性约束分为表级约束和列级约束约束类型包括: NOT NULL(非空约束) PRIMARY KEY(主键约束) UNI ...
随机推荐
- Python学生信息管理系统的开发
# 第一题:设计一个全局变量,来保存很多个学生信息:学生(学号, 姓名,年龄):思考要用怎样的结构来保存:# 第二题:在第一题基础上,完成:让用户输入一个新的学生信息(学号,姓名,年龄):你将其保存在 ...
- webpack学习笔记--配置resolve
Resolve Webpack 在启动后会从配置的入口模块出发找出所有依赖的模块,Resolve 配置 Webpack 如何寻找模块所对应的文件. Webpack 内置 JavaScript 模块化语 ...
- Ansible playbook 部署filebeat
- hosts: all tasks: - name: Copy Package copy: src=/usr/local/filebeat--linux-x86_64.tar.gz dest=/us ...
- ubuntu多版本cuda并存与切换【两个博客链接】
https://bluesmilery.github.io/blogs/a687003b/ https://blog.csdn.net/Maple2014/article/details/785742 ...
- bzoj4520【CQOI2016】K远点对
题解: kd-tree裸题 对每个点维护最近的k个开个堆维护一下
- python全栈开发day70-Django中间件
参考个人博客 http://wuchengyi.com/post/13/ 三.预习和扩展
- LVM分区无损增减
http://www.361way.com/change-lvm-size/1792.html
- idea创建项目报错(Maven execution terminated abnormally (exit code 1) )解决方案
版本: idea14.0.2 java1.8 maven3.5 -------------------------------------------------------------------- ...
- Codeforces 542D Superhero's Job 数论 哈希表 搜索
原文链接https://www.cnblogs.com/zhouzhendong/p/CF542D.html 题目传送门 - CF542D 题目传送门 - 51Nod1477 题意 定义公式 $J(x ...
- datatable 转list ,list转datatable
方法一: public static IList<T> ConvertToModel(DataTable dt) { // 定义集合 ...