MySQL完整语法
存储引擎
存储引擎类型
MySQL内部针对数据有很多存储⽅式,不同的存储⽅式就是不同的使⽤了不同的存储引擎.
可以通过 show engins;来查看MySQL各类存储引擎,
主要四种存储引擎:mysql语句分类
二进制转10进制转换器InnoDB:
MySQL5.5版本之后的默认的存储引擎,
⽀持事务,⾏锁,外键可以保证数据更安全
事务可以保证操作数据要么全部完成要么全部失败,
⾏锁可以给每⼀⾏数据加锁,同⼀时间内只能有⼀个⼈操作.应届生简历模板下载免费
MyISAM:
MySQL5.5版本之前的默认的存储引擎.
相⽐innoDB数据安全性较低,不⽀持事务,⾏锁等.
但是存储速度⽐InnoDB快.
memory:
数据直接存储在内存,速度快但是⼀旦断电,会造成数据的丢失
blackhole:
写⼊其中的数据都会丢失.
存储引擎表⽂件
create table t1(id int)engine=innodb
create table t2(id int )engine =myisam
create table t3(id int)engine =memory(只有表结构)
create table t4(id int)engine=blackhole(只有表结构)
新手制作网站入门
将记录加⼊这四个表时,⽤innodb和myisam以及memory存储的⽅式的数据会存在,当重启mysql客户端后,⽤memory的数据会消失,⽤blackhole的数据不存在.
创建表的完整语法
create table 表名(字段名 字段类型(宽度) 约束条件,
字段名 字段类型(宽度) 约束条件,
字段名 字段类型(宽度) 约束条件                                                                                    );
字段名和字段类型是必须的,宽度和约束条件可选,
约束条件可选,并且⼀个字段名⽀持多个约束条件,
最后⼀个结尾的字段语句不能有逗号
字段类型
整形(不同整形类型能够存储的数字范围不同)
tinyint
python属于汇编语言吗
smallint
int
bigint
整形会⾃带正负号,也包括其他类型
可以通过加 unsigned 取消正负号
浮点型(不同的浮点型存储⼩数的范围和精确度不⼀样) float
double
decimal
由此可见
精确度:float < double < decimal
但在平时存数据会⽤字符类型,因为字符串类型根本不存在精准度这⼀个说法.
字符类型
char
varchar
区别在于
char(4)
最多可以存储四个字符,如果打开了严格模式超过了则报错,没有超过也按照四个字符存储,⽤空格填充
varchar(4)
最多可以存储四个字符,如果打开了严格模式超过了则报错,没有超过则按照实际字符数存储
但是默认情况下MySQL会⾃动填充存储并在查询的时候⾃动去除填充的空格
通过set global sql_mode="strict_trans_tables,PAD_CHAR_TO_FULL_LENGTH";改配置关于严格模式
查看严格模式
show variables like '%mode%';
修改严格模式
set global sql_mode = 'strict_trans_tables';
只需要退出客户端重新进⼊即可
char 优势:整存整取,速度快
劣势:浪费存储空间
varchar 优势:节省存储空间
劣势:存取速度⽐charma慢
motivations以tomjsonjackosca为例
这些⼈名⽤char(4)存取
存的时候是四个字符的存,取也是四个字符的取,不够四个的它会⾃动加空格填到4个
如果⽤varchar(4)存取
不超出4个有⼏个存⼏个,但是在取数据的时候会全部取出,导致数据没有做分割
所以varchar在存取数据时,会在每个数据前⾯额外加⼀个数据,1bytes+tom jsonjackosca ⽤来计算,数据长度,读取时就读取前⾯这个数据,所以它在存取时速度会慢
时间类型
date年⽉⽇
time时分秒
Datetime年⽉⽇时分秒
Year年
create table student(
id int,
name char(16),
born_year year,
birth date,
study_time time,
reg_time datetime
);
insert into student values(1,'jason','2022','2022-05-09','11:11:00','2022-11-11 11:11:11');
枚举与集合类型
enum 多选⼀
set    多选多(也可以多选⼀)
枚举 enum:
当插⼊记录的词不在创建表的范围中,会报错
插⼊数据时只能插⼊提前规定好的值.
集合set:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。