很多数据类型,我们只需要掌握常见的就可以
varchar(最长255)
- 可变长度字符串
- 比较智能,节省空间
会根据实际的数据长度动态分配空间
优点:节省空间
- 缺点:需要动态分配空间,速度慢
char(最长255)
- 定长字符串
- 不管实际的数据长度是多少
- 分配固定长度的空间取存储数据
使用不恰当的时候,可能会导致空间的浪费
优点:不需要动态分配空间,速度快
- 缺点:使用不当可能会导致空间的浪费
- int (最长11)
- 数字中的整数型,等同于java中的int
- bigint
- 数字中的长整数型,等同于java中的long
- float
- 单精度浮点型
- double
- 单精度浮点型
- date
- 短日期类型
- datetime
- 长日期类型
- clob
- 字符大对象
- 最多可以存储4G的字符串
- 比如:存储一篇文章,存储一个说明
- 超过255个字符的都要采用CLOB字符大对象来存储
blob
- 二进制大对象
- 专门用来存储图片、声音、视频等流媒体数据
- 往blob类型的字段中插入数据的时候,例如插入一个图片、视频等,需要使用IO流
varchar 和 char 我们应该怎么选择
在实际的开发中,当某个字段中的数据长度不发生改变的时候,是定长的,例如:性别、生日等都是采用char。
当一个字段的数据长度不确定,例如:简介、姓名等都是采用varchar。
date和datetime两个类型的区别?
date是短日期:只包括年月日信息
datetime是长日期:包括年月日时分秒信息
drop table if exists t_user;create table t_user(id int,name varchar(32),birth date,create_time datetime);bith是短日期create_time是这条记录的创建时间:长日期类型MySQL短日期默认格式:%Y-%m-%dMySQL长日期默认格式:%Y-%m-%d %h:%i:%sinsert into t_user(id,name,birth,create_time) values(1,'zhangsan','1999-10-01','2022-04-06 09:05:46');+------+----------+------------+---------------------+| id | name | birth | create_time |+------+----------+------------+---------------------+| 1 | zhangsan | 1999-10-01 | 2022-04-06 09:05:46 |+------+----------+------------+---------------------+在MySQL当中怎么获取系统当前时间?now()函数 并且获取的是时间带有时分秒信息,是长日期类型(datetime类型)insert into t_user(id,name,birth,create_time) values(2,'lisi','1999-10-01',now());+------+----------+------------+---------------------+| id | name | birth | create_time |+------+----------+------------+---------------------+| 1 | zhangsan | 1999-10-01 | 2022-04-06 09:05:46 || 2 | lisi | 1999-10-01 | 2022-04-06 09:09:31 |+------+----------+------------+---------------------+
数字类型整数: tinyint、smallint、mediumint、int、bigint
浮点数: float、double、real、decimal
日期和时间: date、time、datetime、timestamp、year
字符串类型字符串: char、varchar
文本: tinytext、text、mediumtext、longtext
二进制(可用来存储图片、音乐等): tinyblob、blob、mediumblob、longblob
