MySQL(2)

2022/2/18 19:13:15

本文主要是介绍MySQL(2),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

存储引擎

1、定义:存储引擎可以看成是处理数据的不同方式,show engines;是查看所有存储引擎的命令。
2、主要类型:MYISAM,MEMORY,INNOdb,BLACKHOLE
MYISAM MySQL5.5之前默认的存储引擎,不支持下面的,不够安全,但是速度比innodb块。
INNOdb MySQL5.5之后的默认的存储引擎 支持事物 transactions,行级锁row-level locking,外键foreign key,更加安全。
MEMEORY:基于内存存取数据,速度最快但是最不安全,断电之后就没有了。
BLACKHOLE:写入其中数据就会立刻消失,类似于垃圾站。
3、创建表的区别:指定存储引擎的命令:create table t1 (id int) engine=myisam;
(1)myisam会创3个文件,.frm 表结构文件 .MYD表数据文件 .MYI表索引文件
(2)innodb .frm 表结构文件 .ibd 表数据和表索引文件
(3)memory .frm 表结构文件
 (4) blackhole .frm 表结构文件

数据类型

1、整型
int tinyint smallint int bigint 不同的int类型能够存储不同的数据长度,要注意的是:
(1)正负号占一个比特为
(2)手机号必须使用bigint
(3)所有的int类型默认都需要正负号 
			移除正负号:
			create table t1 (id tinyint unsigned);
2、浮点型
float(255,30) 总共255位,小数占30位
double(255,30) 总共255位,小数占30位
decimal(65,30) 总共65位,小数占30位
三者精确度不一样,float<double<decimal

3、字符类型
char(4)-->定长类型,最多只能存4个字节,多了报错,少了自动空格填充至4个,在存的时候会自动补上空格,但是取的时候就是会把空格自动去除.
varchar-->变长类型,最多能存4个,多了报错,少了有几个存几个
针对5.6版本超出范围不会报错,而是自动帮你截取并保存,我下的是8.0,是自动严格模式的。
对此更改sql模式就行:
	方式1:修改配置文件
	方式2:show variables like '%mode%';
			set session;当前窗口有效
			set global;当前服务有效
			set global sql_model=strict_trans_tables;
			退出重新进入
注意:统计某个字段数据的长度:select char_length(name)from t1 where id=1; char类型在取的时候会自动去掉空格,可以设置sql_mode来让他显示

char和varchar的对比

char:整存整取,速度快,但是浪费存储空间。
varchar:节省存储空间,但是存取数据的速度比char慢,会给每一个数据加1bytes的报头,里面放着数据的长度。

补充:在创建字段的时候可以加上注释:create table t1( id int comment'序号');



这篇关于MySQL(2)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程