【MySQL8入门到精通】运维篇-DBMS 数据类型

【MySQL8入门到精通】运维篇-DBMS 数据类型

https://jeames.blog.csdn.net/article/details/124131503
感谢邦德老师

前言.
o 1.MySQL数据类型
a 1.1数值类型
21.2日期和时间类型
1.3字符串类型
& 2、运维命令大全

前言.
绝大多数使用Linux操作系统的大中小互联网网站都在使用MySQL作为其后端的数据库存储,本系列
要是我们团队20多人从事MySQL DBA多年的工作经验中总结提炼而成,每周更新2篇

1.MySQL数据类型
MySQL支持多种类型,大致可以分为三类:数值、日期/时间和字符串(字符)类型。
1.1 数值类型
整数类型: TINYINT、 SMALLINT、 MEDIUMINT、 INT 或INTEGER、BIGINT

带小数的类型: FLOAT (单精度)、DOUBLE (双精度)、DECIMAL (定点数)
案例
DECIMAL(P,D);
P是表示有效数字数的精度,P范围为1一65
D是表示小数点后的位数,D的范围是0~30
MySQL要求D小于或等于(<=)P
DECIMAL(4,2)
23.46

1.2 日期和时间类型
DATE: YYYY-MM-DD日期值
TIME: HH:MM:SS时间值或持续时间
YEAR: YYYY年份值
DATETIME: YYYY-MM-DD HH:MM:SS混合日期和时间值
TIMESTAMP: YYYYMMDDHHMMSS混合日期和时间值,时间戳

案例1:日期与字符串转换
DATE_ FORMAT(日期,格式字符串)
mysq|>SELECT DATE_ FORMAT(NOW(),“%Y-%m-%d %H:%i:%s’);

案例2:字符串转时间
STR_ TO_ DATE(字符串,时间格式)SELECT STR TO_ DATE(2021-04-12 16:01:45’,‘%Y- %m-%d %H: %i: %s’);

案例3:时间戳应用
select timestampdiff(day ,2022-02-27",;2022-03-10’);

1.3 字符串类型
CHAR:定长字符串0-255字节
VARCHAR: 0-65535 字节变长字符串–频繁改变的列建议用vachar类型
BLOB: 0-65535字节二进制形式的长文本数据,二进制大对象
TEXT: 0-65535 字节长文本数据、varchar 的加长增强版
LONGTEXT: 0-4294967295 字节极大文本数据
ENUM: 1-2 字节枚举类型(单一值)
SET: 1-8字节一个集合

ENUM 和 SET 的例子
– ENUM 和 SET 的例子

mysql> create table t1( sex enum(‘F’,‘M’,‘UN’) );
Query OK, 0 rows affected (0.40 sec)
mysql> desc t1;
±------±-------------------±-----±----±--------±------+
| Field | Type | Null | Key | Default | Extra |
±------±-------------------±-----±----±--------±------+
| sex | enum(‘F’,‘M’,‘UN’) | YES | | NULL | |
±------±-------------------±-----±----±--------±------+
1 row in set (0.02 sec)

mysql> create table t2(col1 set(‘a’,‘b’,‘c’), sex enum(‘F’,‘M’,‘UN’) );
Query OK, 0 rows affected (0.05 sec)
mysql> desc t2;
±------±-------------------±-----±----±--------±------+
| Field | Type | Null | Key | Default | Extra |
±------±-------------------±-----±----±--------±------+
| col1 | set(‘a’,‘b’,‘c’) | YES | | NULL | |
| sex | enum(‘F’,‘M’,‘UN’) | YES | | NULL | |
±------±-------------------±-----±----±--------±------+
2 rows in set (0.01 sec)

mysql> insert into t2 values(‘a’,‘f’);
Query OK, 1 row affected (0.02 sec)
mysql> select * from t5;
±-----±-----+
| col1 | sex |
±-----±-----+
| a | F |
±-----±-----+
1 row in set (0.00 sec)

mysql> insert into t2 values(‘bc’,‘m’);
ERROR 1265 (01000): Data truncated for column ‘col1’ at row 1
mysql> insert into t2 values(‘a,b’,‘f’);
Query OK, 1 row affected (0.02 sec)
mysql> select * from t2;
±-----±-----+
| col1 | sex |
±-----±-----+
| a | F |
| a,b | F |
±-----±-----+
2 rows in set (0.00 sec)

2、运维命令大全
查询所有数据的大小:
mysq|> select concat(round(sum(data_length/1024/1024),2),‘MB’) as data
from information_schema.tables ;

查询各个数据库大小
select TABLE_SCHEMA, concat(round(sum(data_length/1024/1024),2),‘MB’) as data
from information_schema.tables
group by 1 order by 2 desc ;
在这里插入图片描述

查看指定数据库的大小,例如查看数据库db_ school 的大小:
select TABLE_SCHEMA, concat(round(sum(data_length/1024/1024),2),‘MB’) as data
from information_schema.tables
where TABLE_SCHEMA = ‘jam’ ;
在这里插入图片描述

如何查看MySQL的版本?
show variables like ‘%version%’
在这里插入图片描述

查看数据库状态 status
在这里插入图片描述

占用空间最大的前10张表
– 占用空间最大的前10张表
SELECT
table_schema AS 数据库,
table_name AS 表名,
a.TABLE_TYPE,
a.ENGINE,
a.CREATE_TIME,
a.UPDATE_TIME,
a.TABLE_COLLATION,
table_rows AS 记录数,
TRUNCATE ( data_length / 10241 / 1024, 2 ) AS 数据容量(MB),
TRUNCATE ( index_length / 1024 / 1024, 2 ) AS 索引容量(MB),
TRUNCATE ( ( data_length + index_length )/ 1024 / 1024, 2 ) AS 总大小(MB)
FROM
information_schema.TABLES a
ORDER BY
( data_length + index_length ) DESC
LIMIT 10;

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值