MySQL快查-数据类型

MySQL快查

因为在日常工作学习中经常忘记mysql的一些语句、关键字、操作等内容,所以最近抽取时间写了以下关于mysql相关内容。相当于一本字典吧


重置mysql密码
本文
运算符
常用函数
数据完整性
数据库的基本操作
对表本身的操作
对表中数据的操作
子查询
多表连接
索引
视图
预处理SQL语句
自定义函数与存储过程
在MySQL中编程


字符串(包括二进制及特殊字符串enum、set)

CHAR, VARCHAR和TEXT是文本类型的字符串,长度规格使用 字符
BINARY, VARBINARY和BLOB是二进制字符串,长度规格使用字节

类型取值范围说明
char(n)0~255个字符固定长度为n的字符串
varchar(n)0~255个字符可变长度字符串
text0~216-1(65535)字节常规的文本字段,适合存储长文本
enum只能是指定的一个值,如:emnu(‘male’,‘female’) 就只能取"male"或"female"枚举
set只能是指定的一个或几个值,如:set(‘a’,‘b’,‘c’) 可取这三个值的任意组合集合
binary0~216-1字节类似char,只是存储的是二进制字符串
varbinary0~ 216-1字节类似archar,存储二进制文件
blob0~216-1字节一般用来存放大数据(二进制)

关于字符串的一些描述

blob和text不能指定default(默认值)
有一些类型会延伸出“tiny"、“medium”、"long"等,它们的最大取值范围一般都是 28-1、224-1、232-1,例如:

类型最大值(字节)
tinytext28-1
text216-1
mediumtext224-1
longtext232-1

比较char和varchar

CHAR(4)占用内存VARCHAR(4)占用内存
‘’’    ’4字节‘’1字节
‘ab’'ab  ’4字节‘ab’3字节
‘abcd’‘abcd’4字节‘abcd’5字节
‘abcdefg’‘abcd’4字节‘abcd’5字节

表格来源

为字符串指定字符集

可以使用CHARACTER SET指定字符串字段的字符集(CHARSET是简写)

CREATE TABLE t
(
    c1 VARCHAR(20) CHARACTER SET utf8,
    c2 TEXT CHARACTER SET latin1 COLLATE latin1_general_cs
);

注:字符集后面的“_cs”表示大小写敏感,“_ci”则是大小写不敏感

使用CHARACTER SET指定binary,ASCII和unicode

binary关键字指定了数据是否区分大小写(默认区分)
ASCII关键字指定了在该列中使用latin1字符集
unicode关键字指定了使用UCS字符集

CREATE TABLE t
(
  c1 VARCHAR(10) CHARACTER SET binary,
  c2 TEXT CHARACTER SET binary,
  c3 ENUM('a','b','c') CHARACTER SET binary
);

数字类型

整数类型

类型有符号取值范围无符号取值范围说明占用内存
tinyint-128~1270~255最小的整数1字节
bit-128~1270~255最小的整数1字节
bool-128~1270~28-1最小的整数。mysql没有boolean类型,使用bool关键字来模拟boolean,其实bool就是tinyint,一般bool的值只取0(false)和1(true)。可以在sql语句中使用true和false,但存到数据库里面的是1和01字节
smallint-32768~327670~216-1小型整数2字节
mediumint-8388608~83886070~224-1中型整数3字节
int-2147483648~21474836470~232-1标准整数4字节
bigint-(264/2)~264/2-10~264-1大整数8字节

取值范围其实很好记,从它占用的内存大小来找,比如int,占用4字节,1字节⁼8位,4*8⁼32,所以232⁼4294967296,因为要记录0,所以最大值要减1。有符号数需要拿一位来记录+/-号,所以最小值是-231⁼-2147483648,最大值231-1⁼2147483647(因为要记录0,所以-1)。也可以通过算出232后除以2来得到数的范围。

浮点类型

类型取值范围说明占用内存
float+/-3.402823466E+38单精度浮点数8/4字节
double+/-1.7976931348623157E+308 +/-2.2250738585072014E-308双精度浮点数8字节
decimal可变定点小数自定义长度

日期类型

类型取值范围说明
date1000-01-01~9999-12-31日期,YYY-MM-DD
time-838:59:59~838:59:59时间,HH:MM:SS
datetime1000-01-01 00:00:00~9999-12-31 23:59:59日期和时间
timestamp1970-01-01 00:00:01~2038-01-19 03:14:07时间戳
year1901~2155年份

更多

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值