配置文件、存储引擎及数据类型

目录

一、配置文件的使用

二、存储引擎的使用

1 如何查看存储引擎

2 存储引擎保存文件

三、数据类型

1 整型 

2 浮点型

3 字符串

4 日期

6 枚举

 


一、配置文件的使用

mysql的配置文件是:my-default.ini

修改了配置文件,一定不要忘了重启服务端才能生效

把以下内容加到配置文件中

[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8

二、存储引擎的使用

存储引擎就是存储数据的方式!

1 如何查看存储引擎

show engines;

一共有九种存储引擎,我们重点学习:MyISAM   MEMORY   InnoDB 

MyISAM:不支持事务、支持的是表锁

它是MySQL5.5版本及之前的版本默认的存储引擎,相比较与InnoDB它的读取速度很快,但是它的数据安全性较低,相对于InnoDB存储引擎。

InnoDB:它支持事务、行锁、外键

它是MySQL5.6及之后的版本默认的存储引擎,它的读取速度相对慢一些,但是数据的安全性较高一些。

MEMORY:

它是基于内存存储的,意味着断电数据就会丢失,重启服务端数据就丢失。

演示:

create table t2 (id int, name varchar(64)) engine=MyISAM;
create table t3 (id int, name varchar(64)) engine=InnoDB;
create table t4 (id int, name varchar(64)) engine=MEMORY;

2 存储引擎保存文件

对于不同的存储引擎,硬盘中保存的文件个数也是不一样的。

MyISAM:3个文件

        .frm    存储表结构
        .MYD 存储的是表数据
        .MYI   存索引(当成是字典的目录,加快查询速度)

InnoDB:2个文件
        .frm  存储表结构
        .ibd  存储数据和索引

MEMORY:1个文件
        .frm  存储表结构

三、数据类型

1 整型 

不同的数据类型区别就是所存储的范围不一样

  • 分类
TINYINT SAMLLINT MEDUIMINT INT BINGINT
  • 作用
    • 存储年龄、ID、等级、号码等

如何选数据类型:

看你这一列存什么数据,比如:age int

整型默认情况下带不带符号?

带符号的,所有的整型默认都是带符号的 减半

eg:create table t5 (id tinyint);
        insert into t5 values(256);

怎么样去掉符号

create table t6 (id tinyint unsigned);

2 浮点型

  • 分类
float double decimal
  • 作用 
数据类型字节数取值范围
float4-2^128~2 ^128,即-3.40E+38~+3.40E+38
double8-2^1024~ 2^1024,即-1.79E+308~1.79E+308
decimal设置位数和精度。65 ~ 30

存储限制

float(255,30)
# 总共255位 , 小数部分占 30 位
double(255,30)
# 总共255位 , 小数部分占 30 位
decimal(65,30)
# 总共65位 , 小数部分占 30 位

三者区别是什么

  • 创建表
create table t7 (id float(255, 30));
create table t8 (id double(255, 30));
create table t9 (id decimal(65, 30));
  • 插入数据
insert into t7 values (1.11111111111111111111111111);
insert into t8 values (1.11111111111111111111111111);
insert into t9 values (1.11111111111111111111111111);

结论:三者的精确度不一样:decimal   >>>   double   >>>  float(精确到7位了)

注:以后尽量都选decimal,例:price decimal(8,2)  # 999.99  # price:1000

3 字符串

  • 分类
    • char(4):定长类型,超出4位,就报错,不够4位,使用空格填充   
    • varchar(4):可变长类型,超出4位,报错,不够4位的,有几位存几位
  • 创建表
create table t10 (id int, name char(4));
create table t11 (id int, name varchar(4));
  • 插入数据
insert into t10 values(1, 'jerry');
insert into t11 values(1, 'jerry');

如果你想超出范围之后,直接报错,需要设置严格模式!!! 

sql_mode(严格模式)

 show variables like "%mode%";

'''设置严格模式'''
1. 命令行模式:临时修改
set global sql_mode='STRICT_TRANS_TABLES'; # 不区分大小写
2. 配置文件修改:永久修改

研究定长和不定长


create table t12 (id int, name char(4));
create table t13 (id int, name varchar(4));
    
insert into t12 values(1, 'ke');
insert into t13 values(1, 'ke');

验证是否补充了空格

select char_length(name) from t12;
select char_length(name) from t13;

默认情况下,没有对char类型填充空格,如果想看填充了空格,需要设置严格模式 

'''设置严格模式'''
1. 命令行模式:临时修改
set global sql_mode='STRICT_TRANS_TABLES,PAD_CHAR_TO_FULL_LENGTH'; 
# 不区分大小写
2. 配置文件修改:永久修改

4 日期

date           datetime                time           year
年月日       年月日时分秒        时分秒         年 

创建表

create table t14 (
    id int, 
    reg_time date, 
    reg1_time datetime, 
    reg2_time time, 
    reg3_time year
);

插入数据

insert into t14 values(1, '2023-10-23', '2023-12-12 12:12:12', '12:12:12', 2023);

6 枚举

1 枚举与集合

枚举(enum):多选一

枚举类型存储数据只能从候选项中选取一个才行

集合(set):多选多(包含多选一)

2 使用

枚举

  • 创建表
create table t15 (id int, hobby enum('read', 'music', 'tangtou', 'xijio'));
  • 插入数据
insert into t15 values(1, 'read');

集合

  • 创建表
create table t16 (id int, hobby set('read', 'music', 'tangtou', 'xijio'));
  • 插入数据
insert into t16 values(2, 'read,music');
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值