类型属性、存储引擎
数据类型
数值
int
整型
Signed(默认为有符号)
有符号数
+ -
Unsigned
无符号数
tinyint
smallint
mudiemint
bigint
bit
float
浮点型
double
decimal
定点型
函数
length() 查询存储空间的大小
char_length() 查看字符的长度--》字符的个数
字符串
char
varchar
text
longtext
blob
二进制的文本
图片
音频
视频
tinyblob
MEDIUMBLOB
LONGBLOB
blob
enum
枚举
set
集合
binary和varbinary
The BINARY and VARBINARY types are similar to CHAR
and VARCHAR, except that they store binary
strings rather than nonbinary strings.
日期和时间
时间戳 timestamp
注册账号时间
交易
下订单
date
生日
time
datetime
考勤
year
json
spatial data
空间数据类型
详情请看官网
https://dev.mysql.com/doc/refman/5.7/en/storage-requirements.html
字段属性
zerofill
填充0
unsigned
无符号整数
signed
有符号整数
not null
不能为空
auto_increment
自增
存储引擎
InnoDB 默认
innodb之所以取代是因为他有三个特点 外键,支持事务,行级别锁提高性能,三个特点
t1.frm
表结构
t1.ibd
索引和数据
innodb data
拓展
关系型数据库:
二维表:
表和字段有关系
表和表有关系
非关系型数据库redis、mongodb
key:value
如同:{
1{name:xu},
2{name:x},
}
结构性数据:
数据库,有表,按照某种结构,有规律可行
非结构性数据:
日志文件,杂乱
MyISAM
内存,适合cu
t1.frm
表结构
t1.MYI
索引文件
index,相当于书的目录,方便查询
t1.MYD
数据文件
data
SHOW engines;
csv
CSV storage engine 做过处理的数据,如提取指定的内容
以逗号作为分割的文件
数据分析
数据处理
数据清洗
数据仓库
软件
blackhole
黑洞
解决了主从复制架构里,让很多的从服务器直接到配置了blackhole存储引擎
的master上拿二进制日志,让最上层的master的负载降低
其实就是帮忙主从架构传递二进制日志,自己不执行二进制日志,只是传递
memory
数据保存在内存里,特别适用于适用临时表的场景
临时表:只有创建它的的session才能看,并且退出就删除
存储引擎和表绑定
ENGINE=InnoDB
字段属性2
foreign key
外键的好处: 直接引用别的表里的字段,自己的表里就不需要再创建相同的数据了,可以避免数据的冗余。
命运共同体--》表和表之间互相引用
供应链
外键: 其实在另外表里是主键
A表里的主键被引用到B表里做一个字段,这个字段就是B表里的外键
primary key
等同于not null+unique
null 不能为空
空值 ' '
主键
不允许为空,而且也不需要重复
comment
注释
sqlyog查看,终端使用desc查看
default
默认值
unique
唯一性
允许为null
空值只能出现一次
字符集
rpm方式安装默认字符集
latin1
编译安装的默认字符集
utf8
在配置文件里添加配置
character-set-server=utf8 --》指明mysql 服务器的 server 字符集是utf8
如何指定字符集
SHOW CHARACTER SET
,查询你的mysql支持哪些字符集
SHOW variables like '%CHARACTER%'
,查看你正在使用哪些字符集
继承问题,不指定使用哪种字符集
服务器>库>表>列
,
CREATE TABLE t1 (
c1 CHAR(1) CHARACTER SET latin1,
c2 CHAR(1) CHARACTER SET ascii
);
根据已有的表来创建新表
方式一:create table new_tbl like orrg_tbl
这种语法会复制源表的列名、数据类型、大小、非空约束、索引,而表的内容
和其他约束不会复制,新表是一张空表
方式二:create table new-tbl [as] select {*|column|…} from org_tbl
新表的结构由select的列决定,同时把查询结果集中的行插入到目标表中,这种复杂同样只能复制非空约束,也不会复制索引