【MySQL】简单掌握数据类型与表操作,让数据库性能飞跃

个人主页♡喜欢做梦

欢迎 👍点赞 ➕关注 ❤️收藏 💬评论


目录

🌳一、数据类型

🍃1.数值类型

🍂整型类型

🍂浮点型类型

🍂定点数类型

🍃2.字符串类型

3.🍃日期和时间类型

4.🍃二进制类型

🌳二、表的操作

[🍀 1.表的查看](#🍀 1.表的查看)

[🍀 2.表的创建](#🍀 2.表的创建)

[🍀 3.查看表的结构](#🍀 3.查看表的结构)

[🍀 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.表的创建

语法:

sql 复制代码
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name(
field datatype,
field datatype 
);
  • TEMPORARY:表示创建的是一个 临时的表;
  • field:列名;
  • datatype:表示数据类型;
  • 最后一个字段的定义不加逗号;
  • 字段的定义包围在小括号中,以分号结尾。
  • 可以使用comment在每个字段后添加注释。

示例:创建一个课程表

查看一下表是否存在库中:

  • 建议每一个表都有一个编号字段,类型为bigint ;
  • vachar要制定长度,一般50就够用,在工作中按要求指定。

🍀 3.查看表的结构

desc 表名;

示例:

查看courses表

🍀 3.表的删除

语法:

sql 复制代码
DROP [TEMPORARY] TABLE [IF EXISTS] tbl_name [, tbl_name] ...
  • 也可以一次同时删除多个表,用逗号隔开
  • 表的删除要谨慎

示例:

写法一:

写法二:加上if exists

因为courses已经被我删除,所以这里报了警告,

如果想要查看警告信息

show warnings;

如果没有加上if exists ,并且该表不存在,你直接删除,他会直接报错;


相关推荐
一屉大大大花卷37 分钟前
初识Neo4j之入门介绍(一)
数据库·neo4j
凯基迪科技39 分钟前
exe软件壳的分类----加密保护壳
java
叁沐1 小时前
MySQL 08 详解read view:事务到底是隔离的还是不隔离的?
mysql
wuxuanok1 小时前
Web后端开发-分层解耦
java·笔记·后端·学习
周胡杰1 小时前
鸿蒙arkts使用关系型数据库,使用DB Browser for SQLite连接和查看数据库数据?使用TaskPool进行频繁数据库操作
前端·数据库·华为·harmonyos·鸿蒙·鸿蒙系统
wkj0011 小时前
navicate如何设置数据库引擎
数据库·mysql
ladymorgana1 小时前
【Spring Boot】HikariCP 连接池 YAML 配置详解
spring boot·后端·mysql·连接池·hikaricp
赵渝强老师1 小时前
【赵渝强老师】Oracle RMAN的目录数据库
数据库·oracle
暖暖木头1 小时前
Oracle注释详解
数据库·oracle
kyle~1 小时前
C/C++字面量
java·c语言·c++