MySQL
存储引擎
# 就是存储数据的方式
# 如何查看存储引擎     
  show engines;
  
# 都有哪些存储引擎
MyISAM:
	MySQL5.5版本及之前默认存储引擎
	查询速度比InnoDB快,安全性低
	# 不支持事务
	# 表级锁
	
InnDB:
	MySQL5.6及之后默认存储引擎
	查询速度比MyISAM慢,安全性高
	# 支持事务
	# 行级锁
	# 外键
	
MEMORY:=> 内存中
	# 数据在内存中
	
	
# 创建各种存储引擎
	create table t1(id int) engine='MyISAM';
	create table t2(id int) engine='InnoDB';
	create table t3(id int) engine='MEMORY';
	
	
	show create table 表名;   详细查看表
# 特点
	MyISAM
		.frm -> 表结构
		.MYD -> 表数据
		.MYI -> 索引(目录) 优点:查询速度快
		
	InnoDB
		.frm -> 表结构
		.MYD -> 表数据和索引
		
	MEMORY
		.frm -> 表结构
数据类型
数据类型之整型
tinyint int smallint bigint
# 他们之间区别就是存储数据范围不同,其他都一样
# 验证整型默认是否带符号
	create table t4(id tinyint);  创建表类型
	
	insert into t4 values(-30);   添加值
	
# 所有整型默认都是带符号的
数据类型之浮点型
float double decimal
# float(8,2)  总8位,小数2位 最大 (999999.99)
float(255,30)
	总共255位,小数30位
double(255,30)
	总共255位,小数30位
decimal(255,30)
	总共255位,小数30位
# 创建表的类型
create table t5(id float(255,30));
create table t6(id double(255,30));
create table t7(id decimal(255,30));
# 向表中添加值
insert into t5 values(1.1111111111111111111111111111);
insert into t6 values(1.1111111111111111111111111111);
insert into t7 values(1.1111111111111111111111111111);
#精确到不一样
decimal > double > float
数据类型之字符串
# 两种字符串括号内数字必须写,代表存储字符串长度
char(4)
存储4位,不够的空格补齐,超过4位报错
优点
	查询速度快,整存整取
缺点
	浪费空间
varchar(4)
存储4位,有几位存几位,超过报错
优点
	节省空间
缺点
	查询速度比char慢
# 验证
创建表
create table t8(id int,name char(4));
create table t9(id int,name varchar(4));
添加值
insert into t8 values(1,'jason');
insert into t9 values(1,'jason');
# 检查表中字段的长度
select char_length(name) from t8;
select char_length(name) from t9;
# 查看配置表
show variables like '%mode%';   
# 修改配置表
set global sql_mode='strict_trans_tables,pad_char_to_full_length';  
数据类型之日期类型
datetime   	 # 年月日
date 		# 年月
time		# 时分秒
year		# 年
create table t12(id int ,r1_time datetime, r2_time date, r3_time time, r4_time year);
insert into t12 values(1, '2021-11-11 11:11:11','2021-11-11','11:11:11','2021');
数据类型之枚举
# 枚举 多选一
只可插入enum中值,不然报错
create table t13 (
	id int,
    gender enum('male', 'female', 'other')
)
# 
insert into t13 values (1, 'egon');
insert into t13 values (1, 'male');
数据类型之集合类型
# 集合   用法 同枚举
	create table t14 (
    	id int,
        hobby set('read', 'music', 'football', 'lm')
    )
    
# 
insert into t14 values(1, 'egon');
insert into t14 values(1, 'read');
insert into t14 values(1, 'read, music');
insert into t14 values(1, 'read, egon');
创建表的完整结构
create table 表名 (
	字段名  数据类型(长度) 约束条件1 约束条件2 约束条件3,
	字段名  数据类型(长度) 约束条件1 约束条件2 约束条件3,
    字段名  数据类型(长度) 约束条件1 约束条件2 约束条件3,
    字段名  数据类型(长度) 约束条件1 约束条件2 约束条件3
)
# 注意:
	1. 表中字段名和数据类型是必填项, 约束条件是可选的
    2. 约束条件可以有多个,依次往下写
    3. SQL语句的最后一个不能加逗号(,)