MySQL数据库的约束
一 默认值约束
约束语句 default ‘默认值’
在建立表的时候在想要加默认约束的字段名,数据类型后面加default ‘默认值’
例如 :
create table emp(
uid int,
name varchar(10),
dizhi varchar(10) default '山东淄博'
);
这样当对dizhi不赋值时,会默认赋值为 ‘山东淄博’
当对dizhi赋值时或赋null值是 ‘山东淄博’默认值就不会显示了。
二 非空约束
约束语句 not null
在建立表的时候在想要加非空约束的字段名,数据类型后面加not null;
例如:
create table emp(
uid int not null,
name varchar(10),
dizhi varchar(10)
);
这里对字段uid 设置的非空属性,那么 当给 uid 赋值null的时候或者给其他值赋值不给UID赋值的时候,就会报错
但是空字符串可以赋值到uid里
三 唯一
讲道理都是唯一了竟然不用only - - .
唯一的约束语句是 unique ,在建立表的时候在想要加唯一约束的字段名,数据类型后面加unique;
例如:
create table emp(
uid int unique,
name varchar(10),
dizhi varchar(10)
);
这样uid字段就会加上唯一约束,唯一即为不重复的意思,所以往uid里赋值时不能存在一模一样的uid值。
四 主键
主键的定义是非空加唯一,一个表必须建立一个主键来用于精确的索引到数据的内容。
我觉得如果表里有确认不会重复且字段 可以用它作为主键 ,如果没有,建议自己建列无意义的数据作为主键。
主键的约束语句是 primary key ,在建立表的时候在想要加主键约束的字段名,数据类型后面加primary key;
例如:
create table emp(
uid int primary key,
name varchar(10),
dizhi varchar(10)
);
因为主键本身就是非空且唯一,所以设置为主键后就不用再加 not null 和 unique。
五 自增长
自增长的语句是 auto_increment 需要自增长的字段必须为 int 类型 并且 必须为主键
在建立表的时候在想要加自增长约束的字段名,数据类型后面加primary key auto_increment;
例如:
create table emp(
uid int primary key auto_incerment,
name varchar(10),
dizhi varchar(10)
);
这样当不给uid赋值的时候会默认为uid赋值一个int 数字 添加第一条是1,添加第二条是2,以此类推 。
当给uid附一个数字值之后再插入其他数据且不写uid的时候 uid会从你上一条的赋值加1继续赋值。
六 外键
其实单独看两个表的时候即使他们有外键,但是外键和主键之间并没有直接联系
之后建立外键约束 或者 表连接的时候才能显现。
外键并没有语句,为了方便只是用一个表的主键名作为另一个表的字段名,而且副表的数据不能超出主表的主键内容。
例如:
主表 部门表:
create table dept(
did int primary key,
bumenmingcheng varchar(10)
);
副表 员工表:
create table emp(
eid int primary key,
did int ,
money double
外键约束: constraint fk_emp_dept foreign key(did) refrrences dept(did)
);
其中 在员工表里 did就是外键
而外键约束可以加也可以不加,加了外键的内容就必须符合主表的did内容。 不加为好。
黄埃散漫风萧索,云栈萦纡登剑阁
MySQL数据库的约束的更多相关文章
- day38:MySQL数据库之约束&索引&外键&存储引擎
目录 part1:数据类型 part2:约束 part3:主键索引 PRI &唯一索引 UNI &普通索引 MUL part4:外键:foreign key part5:在外键中设置联 ...
- MySQL数据库——数据约束
1 什么数据约束 对用户操作表的数据进行约束 2 默认值(缺省约束) 作用: 当用户对使用默认值的字段不插入值的时候,就使用默认值. 注意: 1)对默认值字段插入null是可以的 2)对默认值字段可以 ...
- MySql数据库数据类型及约束介绍
1,MySql中数据类型介绍 整型及浮点型 数据类型 存储范围 字节 TINYINT 有符号值:-2^到2^7-1 无符号值:0到2^8-1 2 SMALLINT 有符号值:-2^15到2^15-1 ...
- MySQL数据库有外键约束时使用truncate命令的办法
MySQL数据库操作中,Delete与Truncate两个命令都可以删除一个数据表中的全部数据,使用办法分别是: DELETE FROM t_question TRUNCATE TABLE t_que ...
- Mysql 数据库设置三大范式 数据库五大约束 数据库基础配置
数据库设置三大范式 1.第一范式(确保每列保持原子性) 第一范式是最基本的范式.如果数据库表中的所有字段值都是不可分解的原子值,就说明该数据库满足第一范式. 第一范式的合理遵循需要根据系统给的实际需求 ...
- MySQL数据库--外键约束及外键使用
什么是主键.外键关系型数据库中的一条记录中有若干个属性,若其中某一个属性组(注意是组)能唯一标识一条记录,该属性组就可以成为一个主键. 比如: 学生表(学号,姓名,性别,班级) 其中每个学生的学号是唯 ...
- MySql数据库约束
<MySQL技术内幕:InnoDB存储引擎>本书从源代码的角度深度解析了InnoDB的体系结构.实现原理.工作机制,并给出了大量实践,本着将书读薄的思想,循序渐进的记录对本书学习的读书笔记 ...
- 关系型数据库MySql 数据类型与约束
MySql数据库 :数据类型与约束 注意 : 在创建数据表的时候,需要对数据表中的字段设置 数据类型和约束, 便于检测用户输入的数据是否正确有效. 1 数据类型 数据类型的选用原则 : 够用就行,尽 ...
- MYSQL数据库约束类型
07.14自我总结 MYSQL数据库约束类型 一.主键约束(primary key) 主键约束要求主键列的数据唯一,并且不能为空.主键分为两种类型:单字段主键和多字段联合主键. 1.单字段主键 写法 ...
随机推荐
- Spring配置类深度剖析-总结篇(手绘流程图,可白嫖)
生命太短暂,不要去做一些根本没有人想要的东西.本文已被 https://www.yourbatman.cn 收录,里面一并有Spring技术栈.MyBatis.JVM.中间件等小而美的专栏供以免费学习 ...
- python爬虫入门(1)----- requests
介绍 requests是python实现的简单易用的HTTP库,使用起来比urllib简洁很多 基本使用 requests.get("http://www.baidu.com") ...
- Docker 概念-2
Docker 是什么? 说了这么多, Docker 到底是个什么东西呢?我们在理解 Docker 之前,首先得先区分清楚两个概念,容器和虚拟机. 可能很多读者朋友都用过虚拟机,而对容器这个概念比较的陌 ...
- ElasticSearch(四)查询、分词器
正向索引 正排表是以文档的ID为关键字,表中记录文档中每个字的位置信息,查找时扫描表中每个文档中字的信息直到找出所有包含查询关键字的文档. 这种组织方法在建立索引的时候结构比较简单,建立比较方便且易于 ...
- eclipse IDE usage of my own and tutorials link list
设置 字符集 Eclipse 修改字符集 默认情况下 Eclipse 字符集为 GBK,但现在很多项目采用的是 UTF-8,这是我们就需要设置我们的 Eclipse 开发环境字符集为 UTF-8, 设 ...
- python学习笔记1 -- 函数式编程之高阶函数 filter
filter 函数用于过滤序列,与map 和reduce函数类似,作为高阶函数,他们也是同样的使用方法,filter(参数1, 参数2),参数1是一个函数,而参数2是一个序列. filter的作用是根 ...
- Qt高级编程 高清PDF+源|网盘下载地址附提取码|
书籍作者:Mark Summerfield(马克 . 萨默菲尔德)(英) 书籍译者:闫锋欣内容简介:本书是一本阐述Qt高级编程技术的书籍.本书以工程实践为主旨,是对Qt现有的700多个类和上百万字 ...
- turtle库常用函数
- matplotlib 显示中文问题
import matplotlib.pyplot as plt plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签plt.rcParams[' ...
- Upload 上传 el-upload 上传配置请求头为Content-Type: "multipart/form-data"
api接口处添加属性 (标红处) // 校验台账 export const checkEquiment = (data) => { return axios({ url: '/job/equip ...