松鼠乐园 松鼠乐园
  • 注册
  • 登录
  • 首页
  • 快捷入口
    • Vue
    • Tensorflow
    • Springboot
    • 语言类
      • CSS
      • ES5
      • ES6
      • Go
      • Java
      • Javascript
    • 工具类
      • Git
      • 工具推荐
    • 服务器&运维
      • Centos
      • Docker
      • Linux
      • Mac
      • MySQL
      • Nginx
      • Redis
      • Windows
    • 资源类
      • 论文
      • 书籍推荐
      • 后端资源
      • 前端资源
      • html网页模板
      • 代码
    • 性能优化
    • 测试
  • 重大新闻
  • 人工智能
  • 开源项目
  • Vue2.0从零开始
  • 广场
首页 › MySQL › MySQL之数据类型(列类型)

MySQL之数据类型(列类型)

迦娜王
3年前MySQL
539 1 0
SQL中将数据类型分成了三大类: 数值类型, 字符串类型和时间日期类型
MySQL之数据类型(列类型)

数值型

数值型数据: 都是数值;系统将数值型分为整数型和小数型. 整数型又分为以下五种: tinyint: 迷你整型,使用一个字节存储,有符号时范围在-128~127,无符号情况为0~255 smallint: 小整型,使用2个字节存储,有符号时范围在-32768~32767,无符号情况为0~65535 mediumint: 中整型, 使用3个字节存储,有符号时范围在-8388608~8388607,无符号情况为0~16777215 int: 标准整型, 使用4个字节存储,有符号时范围在-2147483648~2147483647,无符号情况为0~4294967295 bigint: 大整型,使用8个字节存储,一般用不到 数据的显示宽度一般搭配0填充(zerofill)使用,如:23,显示宽度为5,0填充,则为00023; 小数型: 带有小数点或者范围超出整型的数值类型. 将小数型细分成两种: 浮点型和定点型;浮点型: 小数点浮动, 精度有限,而且会丢失精度;定点型: 小数点固定, 精度固定, 不会丢失精度 浮点型数据是一种精度型数据: 因为超出指定范围之后, 会丢失精度(自动四舍五入) 浮点型: 理论分为两种精度:Float: 单精度, 占用4个字节存储数据, 精度范围大概为7位左右;Double: 双精度,占用8个字节存储数据, 精度方位大概为15位左右 创建浮点数表: 浮点的使用方式: 直接float表示没有小数部分; float(M,D): M代表总长度,D代表小数部分长度, 整数部分长度为M-D

时间日期型

MySQL之数据类型(列类型)

字符串类型

mysql中将字符串类型分成了6类: char,varchar,text , blob, enum和set 定长字符串: char, 磁盘(二维表)在定义结构的时候,就已经确定了最终数据的存储长度. Char(L): L代表length, 可以存储的长度, 单位为字符, 最大长度值可以为255. 变长字符串: varchar, 在分配空间的时候, 按照最大的空间分配: 但是实际上最终用了多少,是根据具体的数据来确定. Varchar(L): L表示字符长度 理论长度是65536个字符, 但是会多处1到2个字节来确定存储的实际长度: 但是实际上如果长度超过255,mysql默认使用文本字符串text 如何选择定长或者是变长字符串呢? 定长的磁盘空间比较浪费, 但是效率高: 如果数据基本上确定长度都一样, 就是使用定长, 如身份证, 电话号码, 手机号码等 变长的磁盘空间比较节省, 但是效率低: 如果数据不能确定长度(不同数据有变化), 如姓名, 地址等 如果数据量非常大, 通常说超过255个字符就会使用文本字符串 文本字符串根据存储的数据的格式进行分类: text和blob Text: 存储文字(二进制数据实际上都是存储路径);Blob: 存储二进制数据(通常不用) 枚举: enum, 事先将所有可能出现的结果都设计好, 实际上存储的数据必须是规定好的数据中的一个. 枚举的使用方式 定义: enum(可能出现的元素列表); //如enum(‘男’,’女’,’保密’); 使用: 存储数据,只能存储上面定义好的数据 集合跟枚举很类似: 实际存储的是数值,而不是字符串(集合是多选) 集合使用方式:定义: Set(元素列表);使用: 可以使用元素列表中的元素(多个), 使用逗号分隔
MySQL之数据类型(列类型)
MySQL之数据类型(列类型)

列属性

列属性: 真正约束字段的是数据类型, 但是数据类型的约束很单一. 需要有一些额外的约束, 来更加保证数据的合法性. 列属性有很多: NULL/NOT NULL, default, Primary key, unique key, auto_increment,comment 空属性: NULL(默认的)和NOT NULL(不为空) 实际上在真实开发的时候, 尽可能的要保证所有的数据都不应该为空: 空数据没有意义; 空数据没有办法参与运算. 列描述: comment, 没有实际含义: 是专门用来描述字段,会根据表创建语句保存: 用来给程序猿(数据库管理员)来进行了解的. 默认值: 某一种数据会经常性的出现某个具体的值, 可以在一开始就指定好: 在需要真实数据的时候,用户可以选择性的使用默认值.默认值的生效: 在数据进行插入的时候,不给改字段赋值。想要使用默认值,可以不一定去指定列表,故意不使用字段列表: 可以使用default关键字代替值 主键: primary key,主要的键. 一张表只能有一个字段可以使用对应的键, 用来唯一的约束该字段里面的数据, 不能重复: 这种称之为主键。一张表只能且最多一个主键。
MySQL之数据类型(列类型)
自动增长一般配合主键使用

最后聊一聊关于一对一,一对多(多对一),多对多关系如何建表

将实体与实体的关系, 反应到最终数据库表的设计上来: 将关系分成三种: 一对一, 一对多(多对一)和多对多.所有的关系都是指的表与表之间的关系. 一对一就像人与身份证的关系,一个人只能有一个身份证号,而一个身份证号只能对应一个人。(A 表中的一行最多只能匹配于 B 表中的一行,反之亦然)。一对一关系经常出现在表分割的情况。 一对多就如老板和员工的关系,一个老板会有许多员工,反正这个公司所有员工对应一个老板 多对多就如老师和学生关系,学生会有许多老师,教语文,化学,英语等,而老师也不可能只教一个学生(一对一家教除外)。 下面看具体案例: 一对一 员工表: 姓名,性别,年龄,身高,体重,婚姻状况, 籍贯, 家庭住址,紧急联系人,自我介绍 这种情况可以把表分割,常用信息放在一张表如:姓名、性别、年龄等,而不常用信息放在另一张表如:家庭住址、紧急联系人、自我介绍 一对多 这种关系最常见
MySQL之数据类型(列类型)
MySQL之数据类型(列类型)
多对多 一般情况是要多建一张表,专门维护另外两张表之间的关系,即需要建三张表。
MySQL之数据类型(列类型)
MySQL之数据类型(列类型)
MySQL之数据类型(列类型)
mysql mysql数据类型
0
五大常见的MySQL高可用方案
上一篇
面试问烂的MySQL四种隔离级别、看完吊打面试官
下一篇
评论 (1)

请登录以参与评论。

现在登录
  • 矩尹🤪

    可以

    3年前
聚合文章
Servicios profesionales Organizaciones
1年前
在Gitee收获近 5k Star,更新后的Vue版RuoYi有哪些新变化?
1年前
vue3.x reactive、effect、computed、watch依赖关系及实现原理
1年前
Vue 3 新特性:在 Composition API 中使用 CSS Modules
1年前
标签
AI AI项目 css docker Drone Elaticsearch es5 es6 Geometry Go gru java Javascript jenkins lstm mysql mysql优化 mysql地理位置索引 mysql索引 mysql规范 mysql设计 mysql配置文件 mysql面试题 mysql高可用 nginx Redis redis性能 rnn SpringBoot Tensorflow tensorflow2.0 UI设计 vue vue3.0 vue原理 whistle ZooKeeper 开源项目 抓包工具 日志输出 机器学习 深度学习 神经网络 论文 面试题
1
相关文章
开源的SQL查询优化工具–EverSQL
MySQL Geometry扩展在地理位置计算中的效率优势
mysql纵表转横表
分析一个叶大师的my.cnf自动生成工具
松鼠乐园

资源整合,创造价值

小伙伴
墨魇博客 无同创意
目录
重大新闻 Centos CSS Docker ES5 ES6 Go Java Javascript Linux Mac MySQL Nginx Redis Springboot Tensorflow Vue Vue2.x从零开始 Windows 书籍推荐 人工智能 前端资源 后端资源 壁纸 开源项目 测试 论文
Copyright © 2018-2022 松鼠乐园. Designed by nicetheme. 浙ICP备15039601号-4
  • 重大新闻
  • Centos
  • CSS
  • Docker
  • ES5
  • ES6
  • Go
  • Java
  • Javascript
  • Linux
  • Mac
  • MySQL
  • Nginx
  • Redis
  • Springboot
  • Tensorflow
  • Vue
  • Vue2.x从零开始
  • Windows
  • 书籍推荐
  • 人工智能
  • 前端资源
  • 后端资源
  • 壁纸
  • 开源项目
  • 测试
  • 论文
热门搜索
  • jetson nano
  • vue
  • java
  • mysql
  • 人工智能
  • 人脸识别
迦娜王
坚持才有希望
1224 文章
35 评论
242 喜欢
  • 0
  • 1
  • Top