Mysql之列、字段、表

数据库的列类型

数值

类型介绍大小范围
tinyint十分小的数据1个字节 2 − 7 2^{-7} 27—— 2 − 7 − 1 2^{-7}-1 271
smallint较小的数据2个字节 2 − 15 2^{-15} 215—— $2^{15}-1
mediumint中大小数据3个字节 2 − 23 2^{-23} 223—— $2^{23}-1
int标准的整数4个字节 2 − 31 2^{-31} 231—— $2^{31}-1
bigint较大的数据8个字节 2 − 63 2^{-63} 263—— $2^{63}-1
float浮点数4个字节3.402823e+38 ~ 1.401298e-45
double浮点数8个字节1.797693e+308~ 4.9000000e-324
decimal字符串形式的浮点数(用于金融计算的时候)

注意这里在公司项目时设计金融时使用decimal,因为double和float存在精度丢失问题。


public void testBig(){
    System.out.println(0.11+2001299.32);//非精确的输出
    BigDecimal bigDecimal1 = new BigDecimal(Double.toString(0.11));
    BigDecimal bigDecimal2 = new BigDecimal(Double.toString(2001299.32));
    System.out.println(bigDecimal1.add(bigDecimal2));//精确的输出
}

控制台输出:
2001299.4300000002
2001299.43

这就是精度丢失问题,当然在我们还没有多少钱人的眼里觉得没什么,可是在马老板眼里可就是 大大滴坏了

字符串

类型介绍大小
char字符固定大小的0–255
varchar可变字符串0–65535
tinytext微型文本 2 8 − 1 2^8-1 281足以存放博客能容
text文本串 2 16 − 1 2^{16}-1 2161写本书都够啦(保存大文本)

时间日期

类型形式介绍
dateYYYY-MM-DD日期格式
timeHH:MM:SS时间格式
datetimeYYYY-MM-DD HH:mm:ss最常用的时间
timestamp时间戳1970.1.1到现在的毫秒数
year年份表示

null

  • 没有值,未知
  • 注意不要使用NULL运算。结果为null

数据库字段属性

Unsigned:

  • 无符号填充
  • 如果声明该列为Unsigned,则不能声明为负数

zerofill:

  • 0填充
  • 不足的位数补0,例如初始定义int(3),如果存入5的话,则显示005
    注意:这里int(3) 3代表的是它的宽度,并不是定义它的范围,int范围是固定的,定义的宽度可以用来补位操作
    保存 整数5的话
    lg:
    int(4) — 0005
    int(5) —00005

自增(auto_increment):

  • 既自动在一条记录上加1(默认是加1)
  • 通常用来设计唯一的主键,(必须是整数类型,因为自增要加数值的嘛)
  • 可以定义设计主键自增的起始值和步长
    auto_increment_increment=自定义增长步长
    auto_increment_offset=自定义起始长度

默认:

  • 设计默认的值(既在不加某列的只是自动填充)

这些具体的例子我们下一篇详细说哈

CREATE TABLE `westos`.`Untitled`  (
  `id` int(3) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '这是id的注释',
  `name` int(5) UNSIGNED ZEROFILL NULL DEFAULT 默认 COMMENT '这是name注释',
  PRIMARY KEY (`id`)
) ENGINE = InnoDB CHARACTER SET = utf8;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值