0%
存储引擎
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| 存储数据的方式不一样
show engines;
1 myisam -mysql 5.5 及之前的版本默认的存储引擎 -存储数据的速度都非常快,但是功能较少,安全性较低 2 innodb -mysql 5.6 及之后的版本默认的存储引擎 -存取速度没有myisam快,但是功能更多,安全性更高 3 blackhole -往里面写入任何数据都会直接消失(黑洞) 4 menory -用内存存储数据,断电数据消失
innodb .frm --- 表结构 .ibd --- 表数据和索引 myisam .frm --- 表结构 .MYD --- 表数据 .MYI --- 索引 blackhole .frm --- 表结构 menory .frm --- 表结构
|
MySQL基本数据类型
1 2 3 4 5 6 7 8 9 10 11
| 1 整型 tinyint smallint int bigint 1.1 不同的类型能够存储的数字范围不一样
''' (了解)如果不想让整型有符号: create table t6(id tinyint unsigned); insert into t6 values(-129),(256); '''
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| 2 浮点型 float(255, 30) -总共255位,小数占30位 double(255, 30) -总共255位,小数占30位 decimal(65, 30) -总共65位,小数占30位 ''' 精确度不一样 float < double < decimal 在实际开发中,很多时候看似需要用数字存储的数据 其实我们可能都是使用的字符串存储 '''
|
1 2 3 4 5
| 3 字符类型 char(4) 最大存储四个字符 超出了直接报错 不超过空格填充至四位 varchar(4) 最大存储四个字符,超出了直接报错 不超过有几位存几位
|
1 2 3 4 5 6
| 4 日期类型
datetime --- 年月日 时分秒 time --- 时分秒 date --- 年月日 year --- 年
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| 5 枚举与集合 枚举 --- 多选一 ---> (例如性别) create table t1( id int, name varchar(32) gender enum('male','female') ); 集合 --- 多选多(多选一) ---> (例如爱好) create table t2( id int, name varchar(32) hobby set('read','study','music') )
|
严格模式
1 2 3 4 5 6 7 8 9 10
| show variables like '%mode%';
get global sql_mode='strict_trans_tables';
set global sql_mode='strict_trans_tables,pad_char_to_full_length'
|
字符类型对比
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| char(4) 优点:整存整取 速度快 缺点:浪费硬盘空间 varchar(4) 优点:节省硬盘空间 缺点:速度没有char快
''' 针对整型字段,括号里面的数字不是用来限制存储长度的而是用来控制显示长度的 ---> 定义整型字段无需自己写括号和数字 '''
|
创建表的完整语法
1 2 3 4 5 6 7 8 9 10 11
| create table 表名( 字段名1 字段类型(宽度) 约束条件1 约束条件2..., 字段名2 字段类型(宽度) 约束条件, 字段名3 字段类型(宽度) 约束条件 ) ''' 易错点: 1 字段名和字段类型是必须的,宽度和约束条件是可选的 2 约束条件可以有多个 3 最后一个字段结尾不能加逗号,否则报错 '''
|