mysql架构
mysql数据库: C----->S架构软件mysql
- mysql数据库本质就是一个基于网络网络通讯的软件
- 全部基于网络通讯的软件,底层都是socket
关系型数据库和非关系型数据库
DBMS:数据库管理系统 关系型数据库: MySQL、Oracle、DB二、sql server、....redis
- 表结构
- 须要哪些字段
- 字段是什么类型
- 字段与字段类型
</br> 非关系型数据库: redis、mongodb... - 非关系型数据库通常以 key:value的形式存储sql
例如:mongodb
{ 'name': 'tank' }
存储引擎
存储引擎是用于根据不一样的机制处理不一样的数据。 查看mysql中全部引擎:show engines;
数据库
mysql中的几种引擎
myisam: 5.5之前老的版本使用的存储引擎 blackhole: 黑洞引擎,存进去数据消失 innodb: 默认使用存储引擎安全
- 支持事务
- 行锁
- 外键 memory: 通电数据存在,断电丢失(数据放在内存中)
</br> **示例:** 建立表的时候指定引擎 ```mysql # 建立表 create table t1(id int)engine=innodb; create table t2(id int)engine=myisam; create table t3(id int)engine=blackhole; create table t4(id int)engine=memory;网络
插入数据
insert into t1 values(1); insert into t2 values(2); insert into t3 values(3); insert into t4 values(4);session
# 设置严格模式 ```mysql # 查看数据库配置中变量名包含mode的配置参数: show variables like "%mode%"; # 修改安全模式: set session; # 局部有效,只在你当前操做的窗口有效 set global session; # 全局有效,永久有效 # 修改完以后退出当前客户端从新登陆便可 set global sql_mode = 'STRICT_TRANS_TABLES';
char和vachar
区别 1:char类型是指固定长度的存储方式,长度不足会在右侧补足 2:varchar是值不固定长度的存储方式,只存储:字符长度+1个byte长度存储信息长度架构
什么地方使用char呢? 1:存储字节小的,好比门牌号10一、102,由于若是用varchar,自己字节长度就小,还要浪费一个byte去存长度信息 2:存储固定长度的,好比身份证号、手机号这些都是固定长度的 3:更新动做十分繁琐的,由于varchar还要去计算存储长度会浪费精力,而char是不须要的socket
另外还有根据存储引擎来区分使用 myisam 存储引擎 建议使用固定长度数据列 代替 可变长度的数据列。 memory存储引擎 目前都使用固定数据行存储,所以不管使用char varchar列都不要紧, innodb 存储引擎 建意使用varchar 类型