个人主页:♡喜欢做梦
欢迎 👍点赞 ➕关注 ❤️收藏 💬评论
目录
🌳一、数据类型
🍃1.数值类型
🍂整型类型
🍂浮点型类型
🍂定点数类型
🍃2.字符串类型
3.🍃日期和时间类型
4.🍃二进制类型
🌳二、表的操作
🍀 1.表的查看
🍀 2.表的创建
🍀 3.查看表的结构
🍀 3.表的删除
🌳一、数据类型
数据类型可分为:数值类型、字符串类型、日期和时间类型、二进制类型等。
🍃1.数值类型
🍂整型类型
整型类型:包括BIT、TINYINT、SMALLINT、MEDIUMINT、INT(INTEGER)、BIGINT,分别占用1、2、3、4、8个字节,用于存储不同范围的整数。
整型类型 | 大小 | 范围 | 对应java类型 |
BIT(M) | M指定位数,默认为1 | 主要用于存储二进制数,每一位只能存储0或1。M的范围在1~64,BIT的取值范围-2^M-1~2^M-1,无符号取值范围0~2^M-1 | Boolean |
TINYINT | 1字节 | 取值范围-2^7~2^7-1,无符号取值范围0~2^8-1 | Byte |
SMALLINT | 2字节 | 取值范围-2^15~2^15-1,无符号取值范围0~2^16-1 | Short |
MEDIUMINT | 3字节 | 取值范围-2^23~2^23-1,无符号取值范围0~2^24-1 | Integer/Short |
INT | 4字节 | 取值范围-2^31~2^31-1,无符号取值范围0~2^32-1 | Integer |
BIGINT | 8字节 | 取值范围-2^63~2^63-1,无符号取值范围0~2^64-1 | Long |
- 在int和bigint之间,经常使用的是bigint,范围更大;
🍂浮点型类型
浮点型类型:浮点型类型有FLOAT和DOUBEL,FLOAT通常占用4字节,DOUBLE通常占用8字节。用于存储单精度和双精度浮点数,表示带小数的数值,但是存在精度误差。
浮点型类型 | 大小 | 说明 | 对应java类型 |
FLOAT(M,D) | 4字节 | 单精度,M指定长度,D表示小数点位数,大约可以精确到小数点后7位,会发生精度丢失 | Float |
DOUBLE(M,D) | 8字节 | 双精度,M指定长度,D表示小数点位数,大约可以精确到小数点后15位,会发生精度丢失 | Double |
🍂定点数类型
定点数类型:DECIMAL(NUMERIC)用于存储精确的小数值,能指定精度和小数位数,适合处理了财务等对要求精度高的数据。
定点数类型 | 大小 | 说明 | 对应java类型 |
DECIMAL(M,D) | 动态 | 双精度,M指定长度,D表示小数点位数,如果省略M,默认为10,省略D,默认为0,精确数值 | DigDecimal |
🍃2.字符串类型
字符串的主要类型有CHAR、VARCHAR、TEXT、BLOB、ENUM、SET。
字符串类型 | 说明 |
CHAR[(M)] | 固定长度字符串,M表示长度,以字符为单位,取值范围0~255,M省略则长度为1,适合存储固定的数据,如身份证号 |
VARCHAR(M) | 可变长度字符串,M表示字符的最大长度,取值范围0~65535,有效字符个数取决于实际字符数和使用的字符集 |
TEXT[(M)] | 存储大文本类型数据,可存储较长的字符串。有TINYTEXT、TEXT、MEDIUMTEXT、LONGTEXT多种类型,存储量不同。有效字符个数取决于实际字符数和使用的字符集 |
BLOB | 二进制形式的长文本数据,存储图片、视频、音频等,有TINYBLOB、BLOB、MEDIUMBLOB、LONGBLOB。 |
ENUM | 枚举类型,内部以整型形式存储,定义时需指定允许的值列表,只存储列表中的值。适用场景:性别字段、订单状态。 |
SET[(M)] | 集合类型,可存储多个值,定义时指定允许的成员列表,以整型的形式存储,通过二进制来表示每个成员是否存在。 |
CHAE和VARCHAR的区别:
- char是固定长度,一般使用在数据长度固定的情况下,比如身份证等;
- varchar是可变长度,有效长度取决于实际长度,更节省空间,一样用于存储姓名、地址等。
3.🍃日期和时间类型
日期和时间类型 | 说明 |
DATE | 存储日期,格式为 YYYY-MM-DD,可存储范围1000-01-01~9999-12-31 |
TIME | 存储时间,格式为HH:MM:SS,范围是-838:59:59~838:59:59 |
DATETIME | 同时存储时期和时间,格式为YYYY-MM-DD HH:MM:SS 范围从1000-01-01 00:00:00~9999-12-31 23:59:59 |
TIMESTAMP | 时间戳类型,能自动记录插入或更新记录的时间,范围1970-01-01 00:00:00~9999-12-31 23:59:59 |
YEAR | 4位格式的年份,格式为YYYY,范围1901~2155 |
4.🍃二进制类型
二进制类型 | 说明 |
BINARY和VARBINARY | 类似CHAR和VARCHAR,分别用于存储固定长度和可变长度的二进制数据,如果图片等二进制文件 |
BLOB | 二进制形式的长文本数据,存储图片、视频、音频等,有TINYBLOB、BLOB、MEDIUMBLOB、LONGBLOB多种类型 |
🌳二、表的操作
进行表达操作之前,所以我们要先选择库,才能操作表
查看所有库:
这是我所有的库,我选择java1仓库来查看他所拥有的表,先选择一下库:
保险起见在查看当前选择的库是哪一个:
有确实是java1仓库。那么接下来我们就是要进行表的操作了,首先是表的查看。
🍀 1.表的查看
show tables;
- tables是复数;
- 与查看库的语法大体相同,只不过是将单词databases换成tables 。
示例:查看java1仓库中的所有表
我java1仓库中是没有表的,所以其显示为空。
🍀 2.表的创建
语法:
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name(
field datatype,
field datatype
);
- TEMPORARY:表示创建的是一个 临时的表;
- field:列名;
- datatype:表示数据类型;
- 最后一个字段的定义不加逗号;
- 字段的定义包围在小括号中,以分号结尾。
- 可以使用comment在每个字段后添加注释。
示例:创建一个课程表
查看一下表是否存在库中:
- 建议每一个表都有一个编号字段,类型为bigint ;
- vachar要制定长度,一般50就够用,在工作中按要求指定。
🍀 3.查看表的结构
desc 表名;
示例:
查看courses表
🍀 3.表的删除
语法:
DROP [TEMPORARY] TABLE [IF EXISTS] tbl_name [, tbl_name] ...
- 也可以一次同时删除多个表,用逗号隔开
- 表的删除要谨慎
示例:
写法一:
写法二:加上if exists
因为courses已经被我删除,所以这里报了警告,
如果想要查看警告信息
show warnings;
如果没有加上if exists ,并且该表不存在,你直接删除,他会直接报错;