mysql数据类型

mysql 基本数据类型 Mysql建表

整理常用的mysql使用的数据类型

tip:

  1. 本文中不区分大小写
  2. 本文中 # 后面皆为注释

日期 时间

类型格式范围
datetimeYYYY-MM-DD HH:MM:SS1000-01-01 00:00:00 ~ 9999-12-31 23:59:59
timestampYYYY-MM-DD HH:MM:SS1970-01-01 00:00:01 ~ 2038
dateYYYY-MM-DD1000-01-01 ~ 9999-12-31
yearYYYY1901 ~ 2155

常用方法:

  1. 当前时间 now();
  2. UTC 日期时间 utc_date(), utc_time(), utc_timestamp();

tip: 因为我国位于东八时区,所以本地时间 = UTC 时间 + 8 小时。UTC 时间在业务涉及多个国家和地区的时候,非常有用。

细节链接: https://www.jb51.net/article/23966.htm

字符串

类型大小用途
CHAR0-255 bytes定长字符串
VARCHAR0-65535 bytes变长字符串
TINYBLOB0-255 bytes不超过 255 个字符的二进制字符串
TINYTEXT0-255 bytes短文本字符串
BLOB0-65 535 bytes二进制形式的长文本数据
TEXT0-65 535 bytes长文本数据
MEDIUMBLOB0-16 777 215 bytes二进制形式的中等长度文本数据
MEDIUMTEXT0-16 777 215 bytes中等长度文本数据
LONGBLOB0-4 294 967 295 bytes二进制形式的极大文本数据
LONGTEXT0-4 294 967 295 bytes极大文本数据

注意:char(n) 和 varchar(n) 中括号中 n 代表字符的个数,并不代表字节个数,比如 CHAR(30) 就可以存储 30 个字符。

数值类型

类型大小范围(有符号)范围(无符号)用途
TINYINT1 byte(-128,127)(0,255)小整数值
SMALLINT2 bytes(-32 768,32 767)(0,65 535)大整数值
MEDIUMINT3 bytes(-8 388 608,8 388 607)(0,16 777 215)大整数值
INTINTEGER4 bytes(-2 147 483 648,2 147 483 647)(0,4 294 967 295)大整数值
BIGINT8 bytes(-9,223,372,036,854,775,808,9 223 372 036 854 775 807)(0,18 446 744 073 709 551 615)极大整数值
FLOAT4 bytes(-3.402 823 466 E+38,-1.175 494 351 E-38),0,(1.175 494 351 E-38,3.402 823 466 351 E+38)0,(1.175 494 351 E-38,3.402 823 466 E+38)单精度 浮点数值
DOUBLE8 bytes(-1.797 693 134 862 315 7 E+308,-2.225 073 858 507 201 4 E-308),0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308)0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308)双精度 浮点数值
DECIMAL对DECIMAL(M,D) ,如果M>D,为M+2否则为D+2依赖于M和D的值依赖于M和D的值小数值

浮点型: float(m, d), double(m, d), decimal(m, d); // m总个数,d小数位

整型: tinyint, smallint, mediumint, int, bigint

特殊关键字

  • 空\不为空值:NULL、NOT NULL
  • 主键:primary key
  • 唯一键:unique key
  • 自增长:auto_increment
  • 默认值:default
  • 默认当前时间 CURRENT_TIMESTAMP
  • 字段描述:comment

建表

以下为创建一个表格:

CREATE TABLE table_name (
tid INT PRIMARY KEY AUTO_INCREMENT,
tname VARCHAR(50) DEFAULT "无名称任务",
ttime_start DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT "任务开始日期", # 默认为当前时间
ttime_end DATETIME COMMENT "任务结束日期",
tstate INT COMMENT "任务类型",
ttype INT DEFAULT 0 COMMENT "任务运行状态  0 运行中 1 结束运行",
ttotal INT DEFAULT 0 COMMENT "任务总量",
ttotal_end INT DEFAULT 0 COMMENT "任务完成总量",
ttotal_unusual INT DEFAULT 0 COMMENT "任务异常总量",
tintroduce VARCHAR(500) COMMENT "注释"
) ENGINE=INNODB; # 这是指定表格引擎

修改表名

ALTER TABLE 旧表名 RENAME TO 新表名;

修改表注释

ALTER TABLE 表名 COMMENT '新注释';

表字段操作

添加字段:

ALTER  TABLE 表名 ADD 字段名 新数据类型 新类型长度  新默认值  新注释;
ALTER TABLE table_name ADD title VARCHAR(100) DEFAULT "无标题";

修改字段类型:

ALTER  TABLE 表名 MODIFY [COLUMN] 字段名 新数据类型 新类型长度  新默认值  新注释;
alter  table table1 modify  column column1  decimal(10,1) DEFAULT NULL COMMENT '注释';
alter  table table1 modify column1  decimal(10,2) DEFAULT NULL COMMENT '注释';   ## column 关键字可省略

修改字段名称:

ALTER  TABLE 表名 CHANGE [column] 旧字段名 新字段名 新数据类型;
alter  table table1 change column1 column1 varchar(100) DEFAULT 1.2 COMMENT '注释'; #正常,此时字段名称没有改变,能修改字段类型、类型长度、默认值、注释
alter  table table1 change column1 column2 decimal(10,1) DEFAULT NULL COMMENT '注释' #正常,能修改字段名、字段类型、类型长度、默认值、注释
alter  table table1 change column2 column1 decimal(10,1) DEFAULT NULL COMMENT '注释' # 正常,能修改字段名、字段类型、类型长度、默认值、注释
alter  table table1 change column1 column2; # 报错

删除字段:

ALTER TABLE 表名 DROP [COLUMN] 字段名 ;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

厚渡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值