整数类型:TINYINT SMALLINT MEDIUMINT INT BIGINT mysql
属性:UNSIGNEDsql
长度:能够为整数类型指定宽度,列如:INT(11)、对大多数应用是没有意义的,它不会限制值的合法范围,只会影响显示字符的个数。数据库
实数类型:FLOAT DOUBLE DECIMAL安全
DECIMAL可存储比BIGINT还大的整数;能够用于存储精确的小数FLOAT和DOUBLE类型支持使用标准的浮点进行近似计算。并发
字符串类型:VARCHAR CAHR TEXT BLOB函数
VARCHAR类型用于存储可变长字符串,它比定长类型更节省空间工具
VARCHAR使用1或2个额外字节记录字符串的长度,列长度小于255字节,使用一个字节表示,不然用2个性能
varchar长度,若是存储内容超过指定长度,会被截断。、优化
char是定长的,根据定义的字符串长度分配足够的空间。char会根据须要采用空格进行填充以方便比较。线程
char适合存储很短的字符串,或者全部值都接近同一个长度
char长度,超出设定的长度,会被截断
对于常常变动的数据,CHAR比VARCHAR更好,CHAR不容易产生碎片,对于很是短的列,CHAR比VARCHAR在存储空间上更有效率只分配真正须要的空间,更长的列会消耗更多的内存
MySQL基础操做
链接数据库:mysql -u -p -h -p 用户名 密码 IP 端口
show create use drop delete select update
MySQL存储引擎
InnoDB:默认事务型引擎,最重要最普遍的存储引擎,性能很是优秀,数据存储在共享表空间,能够经过配置分开。对主键查询的性能高于其余类型的存储引擎,内部作了不少优化,从磁盘读取数据时自动在内存构建hash索引,插入数据时自动构建插入缓冲区。
经过一些机制和工具支持真正的热备份,支持崩溃后的安全回复,支持行级锁,支持外键。
MyISAM:5.1版本之前,MyISAM是默认的存储引擎。拥有全文索引、压缩、空间函数
不支持事务和行级锁,不支持崩溃后的安全恢复。表存储在两个文件,MYD和MYI,分别存储数据和索引。设计简单,某些场景下性能很好。
其余表引擎:Archive Blackhole CSV Memory
MySQL锁机制
锁是计算机协调多个进程或线程并发访问某一些资源的机制。
共享锁(读锁)/排它锁(写锁)
读锁:针对同一份数据,多个读操做能够同时进行而不会互相影响
写锁:当前写操做没有完成前,它会阻断其余线程对当前数据的修改和读取。
MySQL事务处理、触发器
事务:原子性----一组操做,要么所有执行成功,要么所有都不执行。
隔离性----在全部的操做没有执行完毕以前,其余会话不可以看到中间改变的过程。
一致性----事务发生前和发生后,数据的总额依然匹配
持久性----事务所执行的结果不能撤销
start transaction;开启事务
要执行的SQL语句
Commit 提交
rollback 回滚
当一个事务提交或回滚以后就结束事务。
触发器:监视某种状况并触发某种操做
Create trigger triggerName
After/before insert/update/delete on 表名
For each row #这句话是固定的
Begin
Sql语句; # 一句或多句,insert/update/delete范围内
End;
删除触发器的语法:
Drop trigger 触发器名
查看触发器
Show triggers