文章目录
MySQL数据类型
RDBMS:关系型数据库管理系统 例:MySQL
常见的信息的种类
- 数值型:体重、身高、成绩、工资
- 字符型:姓名、工作单位、通信地址
- 枚举型:兴趣爱好、性别、专业
- 日期时间型:出生日期、注册时间
字符类型
定长:char(字符个数)
-
最大字符个数255
-
不够指定字符个数时在右边用空格补全
-
字符个数超出时,无法写入数据
变长:varchar(字符个数)
- 按数据实际大小分配存储空间
- 字符个数超出时,无法写入数据
- 最大字符个数65532
大文本类型:text/blob
- 字符数大于65535存储时使用
数值类型
整数型
只能存储整数
类型 | 名称 | 有符号范围 | 无符号范围 |
---|---|---|---|
tinyint | 微小整数 | -128~127 | 0~255 |
smallint | 小整数 | -32768~32767 | 0~35535 |
mediumint | 中整型 | -223~223-1 | 0~2^24-1 |
int | 大整型 | -2^31 ~ 2^31-1 | 0~2^32-1 |
bigint | 极大整型 | -2^63 ~ 2^63-1 | 0- 2^64-1 |
unsigned | 使用无符号存储范围 |
创建t2表,当不使用unsigned,默认使用有符号范围,当我们加入unsigned参数时,使用无符号范围,可以参考实际情况,来确定是使用有符号范围还是无符号范围
浮点型
浮点型
- 格式一:字段名 类型
- 格式二:字段名 类型(总宽度,小数位数)
类型 | 名称 | 有符号范围 | 无符号范围 |
---|---|---|---|
float | 单精度 | 0~2^32-1 | 0~2^32-1 |
double | 双精度 | 0~2^64-1 | 0~2^64-1 |
这里我使用了两种定义方式来演示,当类型后没有去定义他的宽度和小数位数时。这时候默认他的范围为最大0~2^32-1。
当我们定义了他的宽度时,他的宽度就会决定他的范围。当我们输入的数据大于小数位数,就会进行四舍五入,留下两位小数
日期时间类型
类型
-
日期时间 :datetime
-
范围:1000-01-01 00:00:00~ 9999-12-31 23:59:59
-
格式:yyyymmddhhmmss
-
-
日期时间:timestamp
-
范围:1970-01-01 00:00:00 ~ 2038-01-19 00:00:00
-
格式:yyyymmddhhmmss
-
-
日期: date
- 范围: 0001-01-01 ~ 9999-12-31
- 格式:yyyymmdd
-
年: year
- 范围:1901 ~ 2155
- 格式:yyyy
-
时间:time
- 格式:HH:MM:SS
创建相应的时间类型,要严格按照格式输入,否则就会出错,也不要超出相应的存储范围。
使用时间函数获取数据给类型复制
时间函数
MySQL服务内置命令
可以使用时间函数给字段赋值
类型 | 用途 |
---|---|
curtime() | 获取当前的系统时间 |
curdate() | 获取当前的系统日期 |
now() | 获取当前系统的日期和时间 |
year() | 获取年 |
month() | 获取月 |
day() | 获取日 |
date() | 获取日期 |
time() | 获取时间 |
使用方法:
select 函数名称 ;
再次给t6表赋值
insert into t6 values("tom",2000,curtime(),curdate(),now());
insert into t6 values("jim",now(),now(),now(),now());
#当全使用now()赋值时,只存储和自己类型匹配的
获取当前系统的年
select year( now() );
select year(20110808); #获取指定日期的年
接上述类型:
-
关于日期时间字段
-
当未给timestanp字段赋值时,自动以当前系统时间赋值,而datetime值为NULL(空)
mysql> create table t7( -> meetting datetime, -> party timestamp -> ); insert into t7 values( now(), now() ); #测试:只给meetting赋值 insert into t7 (meetting) values(20201028233058) ; #测试:只给party赋值 insert into t7 (party) values(20211205223508) ; #查看结果有什么不同 selec * from t7
-
-
year类型
-
要求使用四位数赋值
-
当使用两位数赋值时:
01~69视为 2001~2069
70-99视为1970~1999
-
枚举类型
字段值只能在列举的范围内进行选择
enim:单选
- 格式:字段名 enum(值1,值2,值N)
- 仅能选择一个值
- 字段值必须在列表里选择
set:多选
- 格式:字段名 set(值1,值2,值N)
- 选择一个或者多个值
- 字段值必须在列表里选择