TUE.MySQL 存储引擎及数据类型

TUE.MySQL 存储引擎及数据类型

存储引擎

  • 存储引擎即存储数据的方式

如何查看存储引擎

show engines;

有哪些存储引擎

- MyISAM(掌握)
	·MySQL5.5 及之前版本的默认引擎
  	·查询速度闭 InnoDB 快,但安全性较低
    # 不支持事务
    # 表级锁

-文件
	·frm --> 表结构
  	·MYD --> 表数据
    ·MYI --> 索引(目录),优点:查询速度快
- InnoDB(掌握)
	·MySQL5.6 及之后版本的默认引擎
  	·查询速度比 MyISAM 慢,但安全性较高
    # 功能
      1.支持事务
      2.表级锁
      3.外键
     
- 文件
	·frm --> 表结构
  	·ibd --> 表数据和索引
MEMORy(了解)--> 内存

- 文件
	·frm --> 表结构
  	# 存储方式为内存,因此不保存数据

创建引擎

create table <表名>(id int) engine='MySIAM';
create table t2(id int) engine='InnoDB';
create table t2(id int) engine='MEMORY';

数据类型

整型
tinyintsmallintintbigint
# 根据存储数据的范围不同划分
# 所有整形默认都是带符号的
浮点型
# 精确度不同
floatdoubledecimal
float(x,y)
double(x,y)
decimal(x,y)[推荐]
# 总共 x 位,其中小数 y 位
  
设计表注意:
	1.表结构中的数据类型
	2.该表上线之后可能产生多少数据量
字符串类型
charvarchar
char(x) --> 最多存储 x 位,不足 x 位空格补齐  # MySQL 的底层机制会在存储数据时用空格补齐位数,但在读取时会自动剔除空格
# 想要显示是否添加空格需要现更改 MySQL 的模式 -- set global sql model ='strict_trans_tables, pad_char_to_full_length';
varchar(x) --> 最多存储 x 位,有几位存几位[推荐]
"""
varchar 原理相当于 Python 中的粘包现象,Python 中可以通过 pack 函数对数据进行打包,并未其添加报头,在使用 unpack 解包时,先取出报头,在根据报头信息解包
"""
# 除确定长度固定不变的数据使用 char以外,其余使用 varchar
# varchar 可以节省空间,但查询速度闭 char 慢
日期类型
datetime -- 年月日、时分秒
time -- 时分秒
date -- 年月日
year -- 年份
枚举类型
enum
create table <表名>(
		id int,
		gender enum('male', 'female', 'other'));
		
insert into <表名> values(1, 'egon') ; # 报错
insert into <表名> values(1. 'male');

# 类似于单选题,只能在给定的选项中选择其中一个
集合类型
create table <表名>(
		id int,
		hobby set('set', 'music', 'lm')
);

insert into <表名> values(1, 'egon');
insert into <表名> values(1, 'read');
insert into <表名> values(1, 'read,lm');
insert into <表名> values(1, 'read,egon');

# 集合类似于多选题,在给定的选项中可以选择多个

创建表的完整语句

create table <表名>(
		<字段名> <数据类型>(长度) [约束条件 1] [约束条件 2] [约束条件 3],
  	<字段名> <数据类型>(长度) [约束条件 1] [约束条件 2] [约束条件 3],
  	<字段名> <数据类型>(长度) [约束条件 1] [约束条件 2] [约束条件 3],
  	<字段名> <数据类型>(长度) [约束条件 1] [约束条件 2] [约束条件 3]
);

# 注意:
	1.表中字段名和数据类型是必填项,约束条件是可选的
	2.约束条件可以有多个,依次往下写
	3.SQL 语句的最后一个内容不能加','
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值