MySQL——数据类型建表
1.数据类型
1.1数值类型
数值类型分为整型和浮点型
| 数据类型 | 大小 | 说明 | 对应java类型 |
|---|---|---|---|
| BIT[(M)] | M在指定位 数,默认 为1 | 二进制数M范围从1到64 存储数值范围从0到2^M-1 | 常用Boolean对应BIT,此时 默认是一位,即只能存0和1 |
| TINYINT | 1字节 | Byte | |
| SMALLINT | 2字节 | Short | |
| INT | 4字节 | Integer | |
| BIGINT | 8字节 | Long | |
| FLOAT(M,D) | 4字节 | 单精度,M指定长度,D指定 小数位数。会发生精度丢失 | Float |
DOUBLE(M, D) | 8字节 | Double | |
DECIMAL(M, D) | M/B的最大 值+2 | 双精度,M指定长度,D表示 小数点位数。精确数值 | BigDecimal |
NUMERIC(M, D) | M/B的最大 值+2 | 和DECIMAL一样 | BigDecimal |
如果省略M默认值为10,如果省略D默认为0,M中不计算小数和负数的,如果D为0,则具体的值不保存小数和小数点部分(就是保存一个整数)
FLOAT和DOUBLE类型在表示小数时表示特别精准,所以一般用DECIMAL来表
示小数,DECIMAL M最大为65,D最大为30
一般用DECIMAL表示金额但是在一些系统中会使用INT把单位改为分。
尽量不要使用UNSIGNED为了保存更多内容可以自设计时就要用更大的数据类型。
1.2字符串类型
| 数据类型 | 大小 | 说明 | 对应java类型 |
|---|---|---|---|
| VARCHAR | 0-65535字节 | 可变长度字符串 | String |
| TEXT | 0-65535字节 | 长文本数据 | String |
| MEDIUMTEXT | 0-16777215字节 | 中等长度文本数据 | String |
| BLOB | 0-65535字节 | 二进制形式长文本数据 | byte[] |
一般在数据中,不建议存储文件,而是把文件存在磁盘上,在数据库相应的字段中保存储存的文件路径,在查询文件时,先从数据库中找到文件路径,再去根据文件路径在磁盘上加载或返回具体真实文件。
文本文件:人类可以直接看懂的文件,记事本中的日记,配置文件,Java源文件。
二进制文件:我们可以用文本编辑器打开的文件,里面是一团乱码,这些文件只有计算机可以看懂,一般称为二进制文件。
1.3日期类型
| 数据类型 | 大小 | 说明 | 对应Java类型 |
|---|---|---|---|
| DATETIME | 8字节 | 范围从1000年到9999年,不会进行时区的检索和转换。 | java.util.Data, java.sql.Timestamp |
| TIMSTAMP | 4字节 | 范围从1970年到2038年,自动检索当前时区并转换。 | java.util.Data, java.sql.Timestamp |
TIMESTAMP从1970年开始,MySQL是以毫秒去计时的,所以到2038年就截止了。
2.表操作
创建数据库之后,就要在数据库创建表,表中存储的数据记录由一条一条列组成;
要创建表时,先要选择要操作的数据库use 数据库名
2.1创建表
CREATE TABLE table_name(
field1 datatype,
field2 datatype,
field3 datatype
);
可以使用comment添加字段说明(每个字段都可以)
注意:最后一个字段后没有逗号,字段的定义在小括号里包起来,以分号结尾;
示例:创建一个名字为student的学生表,表中只含有两个字段,id表示编号,name表示姓名,长度50
建议每张表都要设计一个编号字段,数据类型为bigint
varchar的长度记得写,长度由实际工作中根据详细设计文档中的描述
2.2查看表结构
desc 表名;
示例:调出表student
Field:表中的字段
Tybe:字段的数据类型
Null:当前字段是否允许为Null
Default:当前默认值,什么都没有时是Null
Extra:其他的一些扩展
创建表中加检验是否为
CREATE TABLE IF NOT EXISTS (
字段 数据类型
);
示例:
和之前创建数据库写法是一样的,如果表已经存在就生成一个警告信息:
2.3删除数据库
语法格式:
DROP [TEMPORARY] TABLE E[ IF EXISTS ] tbl_name [tbl_name1,tbl_name2....];
TEMPORARY 表示的是用户自己创建的临时表,
一条drop语句可以删除很多个表,每个表之间用逗号隔开。
java001表示数据库名,test表示数据表名,数据库名.数据表名表示一张表在MySQL中的完整路径
注意:数据表删除很难发现,其危害不亚于删除数据库,一定要小心!!!
如果有错误可以评论,我会改正,因为我也是真在学习,帮到你了给我单个赞,谢谢了。