首页
学习
活动
专区
圈层
工具
发布

MySQL | 数据库表字段约束

数据定义语言:字段约束 数据库的范式 构造数据库必须遵循一定的规则,这种规则就是范式 目前关系数据库有 6 种范式,一般情况下,只满足第三范式即可 第一范式:原子性 第一范式是数据库的基本要求,不满足这一点就不是关系数据库...为了实现区分,通常要为表上加一个列用来存储唯一标识,这个唯一属性列被称作主键列 第三范式:关联性 每列都与主键有直接关系,不存在传递依赖 依照第三范式,数据可以拆分保存到不同的数据表,依次保持关联 字段约束...MySQL 中的字段约束共有四种: 约束名称 关键字 描述 主键约束 PRIMARY KEY 字段值唯一,且不能为 NULL 非空约束 NOT NULL 字段值不能为 NULL 唯一约束 UNIQUE...字段值唯一,且可以为 NULL 外键约束 FOREIGN KEY 保持关联数据的逻辑性 外键约束是唯一不推荐使用的约束 主键约束 主键约束要求字段的值在全表必须唯一,而且不能为 NULL 值 建议主键一定要使用数据类型...如果主键是数字类型,还可以设置自动增长 CREATE TABLE t_teacher( id INT PRIMARY KEY AUTO_INCREMENT, ... ... ); 非空约束 非空约束要求字段的值不能为

7.7K10

mysql数据库多表各种join用法

在数据库查询中,往往会需要查询多个表的数据,比如查询会员信息同时查询关于这个会员的订单信息,如果分语句查询的话,效率会很低,就需要用到join关键字来连表查询了 下面是例子分析 会员表:user user_id...u.user_name='张三';  这样就可以直接查询到张三的订单信息了 join分  left join,返回左表所有符合条件的记录和右表连接相等的记录 inner join,只返回两个表中联结字段相等的行...field1, field2参数指定被联接的字段的名称。且这些字段必须有相同的数据类型及包含相同类型的数据,但它们不需要有相同的  名称。 ...如果在INNER JOIN操作中要联接包含Memo 数据类型或 OLE Object 数据类型数据的字段,将会发生错误。...      3        1         机械键盘套装               4        5        机械键盘套装 因为会员id 5 数据不存在,所以只返回订单表的内容 这就是 mysql

1.7K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    mysql数据库的各种锁分析

    mysql各种锁 根据级别分为:全局锁,表级锁,页级锁,间隙锁,临键锁,行级锁 根据锁共享策略分为:共享锁,排他锁,意向共享锁,意向排他锁 根据加锁策略分为:乐观锁,悲观锁 其他锁相关:自增锁,mdl...锁 全局锁 全局锁可以将整个数据库实例加锁: 锁住整个数据库,只允许读取数据 方法一: mysql> flush tables with read lock; //加锁 Query OK, 0 rows...什么是幻读 假设数据库数据为: id主键 b 索引 c 1 2 3 5 6 8 10 9 13 当启用事务时: 事务1 事务2 事务3 Q1:  begin;查询 b=6的数据,for update...先进行扣除金额 再判断版本号是否和当前生成的版本号一致 如果不一致则回滚,一致则提交 悲观锁是指在业务层面上,对修改数据抱有一定会冲突的考虑进行事先加锁,共享锁/排它锁 都可以认为是悲观锁 自增锁 如果表存在自增字段...,则mysql会额外增加一个自增锁用于控制自增数.

    2.3K20

    学会用各种姿势备份MySQL数据库

    只要看完这篇, 大家应该就能对MySQL中实现数据备份和恢复能有一定的了解。 为什么需要备份数据?...其实在前言中也大概说明了为什么要备份数据, 但是我们还是应该具体了解一下为什么要备份数据 在生产环境中我们数据库可能会遭遇各种各样的不测从而导致数据丢失, 大概分为以下几种....MySQL备份数据的方式 在MySQl中我们备份数据一般有几种方式 热备份 温备份 冷备份 热备份指的是当数据库进行备份时, 数据库的读写操作均不是受影响 温备份指的是当数据库进行备份时, 数据库的读操作可以执行..., 但是不能执行写操作 冷备份指的是当数据库进行备份时, 数据库不能进行读写操作, 即数据库要下线 MySQL中进行不同方式的备份还要考虑存储引擎是否支持 MyISAM [ ] 热备 [x] 温备 [...x] 冷备 InnoDB [x] 热备 [x] 温备 [x] 冷备 我们在考虑完数据在备份时, 数据库的运行状态之后还需要考虑对于MySQL数据库中数据的备份方式 物理备份 逻辑备份 物理备份一般就是通过

    1.1K80

    MYSQL数据库设计之字段选择原则

    今天给大家介绍一下数据库设计过程中字段的选择原则,也就是什么时候用int、什么时候用varchar、什么时候用char等等之类的。...如果想要全面的了解的话,大家可以去看高性能MYSQL这一本书籍,里面有一章节介绍的特别全面,基本涉及MYSQL中全部的字段的介绍。...在数据库设计过程中我们要本着够用的原则,如果一味的把数据字段范围设为最大或者默认值的话,会导致存储空间大量的浪费。...在MYSQL5,5以后,varchar(x)x中范其实是存储字段的长度范围,就是一个字符代表一个长度,不管这个字符是汉子还是字符都算是一个长度单位。...关于数据库中字段的介绍就介绍到这里了,如果文章有问题或者有异议的话可以加我QQ:208017534 欢迎打扰哦!

    5.4K80

    了解 MySQL 数据库中的各种锁

    前言 上篇文章学习了事务的隔离级别,其中隔离性是通过锁来实现的,篇幅原因将锁单独分开介绍,下面让我们一起学习 MySQL 中各种锁。 环境:MySQL 8.0.32 ,InnoDB 存储引擎。...自增锁 (AUTO-INC Lock) 我们知道 MySQL 主键可以使用 AUTO_INCREMENT ,并且插入的时候是可以不赋值的,让数据库自动生成,那么在并发下进行数据库插入而又要确保自增主键不会重复...它们其实也不属于 MySQL 数据库的范畴,由于我们开发过程中常常和数据库结合使用,所以这里也提一下。...乐观锁是我们在代码层面用程序结合数据库版本号字段来实现的。在我们操作的数据库表中增加一个版本号 version 字段,初始值为 1 ,每修改一次 version = version + 1 。...结语 本篇文章简单介绍了 MySQL 中各种锁的定义,使用场景。关于行级别锁下面的三种细粒度锁需要具体 SQL 来实践,下篇文章会单独详细介绍。

    1K10

    MySql数据库大表添加字段的方法

    第一 基础方法 增加字段基本方法,该方法适合十几万的数据量,可以直接进行加字段操作。...tmp_task_user "ADD COLUMN support tinyint(1) unsigned NOT NULL DEFAULT '1'" 好处: 降低主从延时的风险 可以限速、限资源,避免操作时MySQL...负载过高 建议: 在业务低峰期做,将影响降到最低 安装 1.去官网下载对应的版本,官网下载地址:下载网址 查询mysql版本 根据版本下载对应的软件 select version(); 2.下载 ?...的用户名 –password= 连接mysql的密码 –host= 连接mysql的地址 P=3306 连接mysql的端口号 D= 连接mysql...的库名 t= 连接mysql的表名 –alter 修改表结构的语句 –execute 执行修改表结构 –charset=utf8 使用utf8编码,避免中文乱码

    29.6K45

    MySQL 字段操作

    表字段是怎么插入并修改呢? 字段又有哪些约束条件?...看完本文,你能够优雅地设计一张有意义的表; 一、字段操作 1.添加字段 (add) alter table add 字段名 数据类型; desc ; 2.修改字段数据类型 (modify...字段名> 字段名> 字段类型> ; #可用来修改字段数据类型 #也可以在修改数据类型后添加默认值或其它约束条件 #可以在最后修改字段位置[first | after] 4 字段添加默认值...,用于保证数据的完整性,从而符合该字段达到我们期望的效果,如果插入的数据不满足约束要求,数据库管理系统就会拒绝执行SQL 操作 常见的约束有 约束条件 含义 NOT NULL 约束字段值不能为空 DEFAULT...约束字段默认值 UNIQUE KEY 约束字段的值唯一 PRIMARY KEY 约束字段为主键,唯一标识 AUTO_INCREMENT 字段值自动增加 1.

    14.3K30

    MySQL之text字段

    MySQL之text字段 之前做的SQL审核工具不支持text类型的字段的,今天一个业务方问我为什么不支持text字段,大概给他讲了讲,后续发现可能还有些不完善的地方,这里总结一下text的用法,先来看看官方文档上对这个字段的解释...对于text列,插入时MySQL不会对它进行填充,并且select时不会删除任何末尾的字节。...当我们对text列进行排序的时候,决定顺序的字符个数是由参数max_sort_length来决定的,例如下面这个例子: mysql> SET max_sort_length = 2000; mysql>...区 text和varchar的区别 在大多数情况下,我们可以把text视为varchar字段,但是这两个字段类型在存储字符大小上有一些区别: varchar在mysql中必须满足最大行宽度限制...text数据类型实际上将会大幅度增加数据库表文件尺寸。 除此之外,二者还有以下的区别 1、当text作为索引的时候,必须 制定索引的长度,而当varchar充当索引的时候,可以不用指明。

    13.9K10

    MySQL修改字段名、修改字段类型

    修改字段 类型、名、注释、类型长度、默认值 ALTER TABLE 表名 MODIFY [COLUMN] 字段名 新类型 新类型长度 新默认值 新注释; -- COLUMN关键字可以省略不写...'注释'; 修改字段名 -- 字段名称未改变,修改字段类型、类型长度、默认值、注释 ALTER TABLE 表名 CHANGE [column] 旧字段名 新字段名 新数据类型; alter...column1 decimal(10,1) DEFAULT NULL COMMENT '注释' alter table table1 change column1 column2; -- 报错 mysql...Duplicates: 0 Warnings: 0 更改表名 Table 从 db_a 要搬到 db_b RENAME TABLE db_a.old_table TO db_b.new_table; MySQL...Table 改名字(重命名) RENAME TABLE old_table TO new_table; MySQL 两个 Table 互换名 RENAME TABLE old_table TO tmp_table

    38.4K32
    领券