前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【MySQL】DDL的表结构的数据类型盘点&案例演示

【MySQL】DDL的表结构的数据类型盘点&案例演示

作者头像
YY的秘密代码小屋
发布2024-03-28 10:03:54
730
发布2024-03-28 10:03:54
举报
文章被收录于专栏:C++系列C++系列

前言 大家好吖,欢迎来到 YY 滴MySQL系列 ,热烈欢迎! 本章主要内容面向接触过C++ Linux的老铁 主要内容含:

一.数值类型

  • 有符号:分正负;
  • 无符号:只有正数
  • 要使用无符号: 直接在类型后加上UNSIGNED即可 例子: age tinyint unsigned
  • 要使用小数: 第一个参数控制长度,第二个参数控制允许出现的几位小数 例子: score double(4,1)

类型

大小

有符号范围

无符号(UNSIGNED)范围

描述

tinyint

1 byte

(-128.127)

(0, 255)

小整数值

smallint

2 bytes

(-32768, 32767)

(0, 65535)

大整数值

mediumint

3 byte

(-8388608,8388607)

(0, 16777215)

大整数值

int/integer

4 byte

(-2147483648, 2147483647)

(0, 4294967295)

大整数值

bigint

8 byte

(-2へ63, 2へ63-1)

(0, 2へ64-1)

极大整数值

float

4 byte

(-3.402823466 E+38, 3.402823466351 E+38)

(1.175494351E-38,3.402823466E+38)

单精度浮点数值

double

1 byte

(-128.127)

(0, 255)

双精度浮点数值

decimal

依赖于M(精度)和D(标度)的值

依赖于M(精度)和D(标度)的值

小数值(精确定点数)

二.字符串类型

  • blob文本数据
  • text二进制数据
  • 二进制数据我们可以将其存储在数据库中,开发中很少这么做,性能不高,不方便管理,会用专门的文件服务器进行存储;
  • 用的比较多的是定长字符串,变长字符串
  • char :指定多少占多少空间,剩余空间用空格占位
  • varchar :用多少占多少空间

性能差异:

  • char 性能好;
  • varchar需要计算占用空间
代码语言:javascript
复制
char(10)  //用3占10
varchar(10)    //用3占3

场景:

  • 用户名username,用varchar更好
  • 性别gender,要么男要么女,用char更好
代码语言:javascript
复制
username  varchar(50)
gender char(1)

类型

大小

描述

char

0-255 bytes

定长字符串

varchar

0-65535 bytes

变长字符串

tinyblob

0-255 bytes

不超过255个字符的二进制数据

tinytext

0-255 bytes

短文本字符串

blob

0-65535 bytes

二进制形式的长文本数据

text

0-65535 bytes

长文本数据

mediumblob

0-16 777 215 bytes

二进制形式的中等长度文本数据

mediumtext

0-16 777 215 bytes

中等长度文本数据

longbolb

0-4294967295 bytes

二进制形式的极大文本数据

longtext

0-4294967295 bytes

极大文本数据

三.日期类型

  • 单独年月日十分表
  • 混合年月日时分秒
  • timestanp注意事项:时间戳只能到2038年
  • date / time / datetime用的比较多

场景:

  • 要描述生日,只用DATE
代码语言:javascript
复制
birthday date

类型

大小

范围

格式

描述

date

1 byte

1000-01-01 至 9999-12-31

YYYY-MM-DD

日期值

time

3 bytes

838:59:59至838:59:59

HH:MM:SS

时间值或持续时间

year

1 byte

1901至2155

YYYY

年份值

datetime

8 byte

1000-01-01 00:00:00至 9999-12-31 23:59:59

YYYY-MM-DD HH:MM:SS

混合日期和时间值

timestanp

4 byte

1970-01-01 00:00:01 至 2038 -01-1903:14:07

YYYY-MM-DD HH:MM:SS

混合日期和时间值,时间戳

四.根据需求创建表(设计合理的数据类型、长度)

设计一张员工信息表,要求如下:

  1. 编号(纯数字)
  2. 员工工号(字符串类型,长度不超过10位)
  3. 员工姓名(字符串类型,长度不超过10位)
  4. 性别(男/女,存储一个汉字)
  5. 年龄(正常人年龄,不可能存储负数)
  6. 身份证号(二代身份证号均为18位,身份证中有X这样的字符)
  7. 入职时间(取值年月日即可)
代码语言:javascript
复制
create table emp(

     id int comment  '编号 ',
     workno varchar(10) comment  '工号 ',
     name varchar(10) comment  '姓名 ',
     gender char(1) comment '性别' ,
     age tinyint unsigned comment '年龄',
     idcard char(18) comment‘身份证号’,
     entrydate date comment ‘入职时间’

)comment '员工表';
  • 我们复制粘贴到cmd中,发现创建完成
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2024-03-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一.数值类型
  • 二.字符串类型
  • 三.日期类型
  • 四.根据需求创建表(设计合理的数据类型、长度)
相关产品与服务
云数据库 MySQL
腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档