mysql 5 权威指南笔记
第一部份(入门)
1.MyISAM 不支持事务,InnoDB支持事务
2.InnoDB 支持外键约束
3.MyISAM 表锁定,InnoDB行锁定
4.MyISAM不支持热备份,InnoDB 支持但收费.
5.MySQL不支持自定义数据类型和XML.
6.MyISAM数据表
MyISAM Static:表中数据列各自都有预先定义好的固定长度.
MyISAM Dynamic:表中有且只有一个变长字段(VARCHAR,XXXTEXT,XXXXBLOB).
MyISAM Compressed:动态和静态MyISAM 表都可以用myisamchk 工具压缩.空间将减少原来的一半,访问速度也会变快.不能再数据进行修改.
7.InnoDB 数据表
支持事务.
数据行级锁定机制,自动终止死锁进程.
外键约束.
崩溃恢复.
所有的数据和索引都保存在一个表空间里,只能增长,不能缩小.
单条记录最多可以占用8000个字节,不包括TEXT和BOLB数据列.它们只有前512个字节是随其他数据列一起存储在数据库里的,超过放在表空间的其他页面.
占表空间是同样大小MyISAM 的两倍.
不支持全文索引.
不能保存二维地理数据(GIS).
COUNT()执行比MyISAM慢.
管理访问权限的表不能转换为InnoDB.
InnoDB 数据表与MyISAM数据表可以共存.如果最节约空间和时间方式来管理数据表,首选MyISAM,如果要应用到事务,
更高的安全性,允许多个用户同时修改某个表.首选InnoDB.
8.HEAP数据表
只存在于内存中,使用散列索引.存取快.用途充当临时数据表.
不支持XXXTEXT,XXXBLOB.
只允许使用=和<=> 不能使用 >,< <=,>=.
不支持auto_increment
只允许NOT NULL数据列进行索引
对同一个数据库的其他连接可见.中断不会丢失数据.
由max_heap_table_size 设定大小.
9.临时数据表
create temporary table 创建
对同一个数据库的不同连接不可见.
10.ARCHIVE 数据表
保存和备份数据而设计.
允许执行insert 不允许update delete.
不能建立索引.
11.数据表文件
每个数据表有一个*.frm文件.同个数据库frm文件放在同一个目录下.
db.opt 文件整个数据库结构定义和设置.
*.myd MyISAM表数据,*.myi MyISAM表索引文件
*.idb InnoDB 表的数据和索引文件
表空间和撤销日志存放在data/ibdatal,-2,-3等文件中.把InnoDB日志数据存放在data/ib_logfile0,-1,-2中.
12.数据类型
tinyint 8位整数 -128 ~ 127
smallint 16位整数 -32768 ~ 32767
mediumint 24位整数 -8388608 ~ 8388607
int,integer 32
bigint 64
serial
对于INT 数据类型,宽度不影响取值范围和数据值位数.
auto_increment整数
数据列not null,primary key ,uniqure 同时使用
一个表只能有一个.
对于该列insert 可以设定指定的值.
selelct last_insert_id() 获取刚插入的auto_increment值.
auto_increment到达最大值不会再递增.
BOOL是TINYINT 同义词
float(m,d)
double(m,d)
real(m,d) double(m,d)的同义词
m长度,d小数点后位数
show warning 查看警告内容
DATE 2003-12-13(格式)
time 23:59:59
datetime 2003-12-13 23:59:59
year 2003
对日期和时间数据进行合法检查由MYSQL系统变量sql_mode控制
allow_invalid_dates 允许使用不正确数据作为日期时间值
no_zero_date 0000-00-00 不再是一个合法的日期时间值
no_zero_in_date 不允许使用0作为月份或日期
TIMESTAMP 更新不给定具体的值或NULL 当前时间设置为这个字段的值.
不要选用TIMESTAMP 数据列保存"真正的"日期/时间数据,最好选技DATETIME
SELECT TS+0 FROM 老的格式显示时间
SELECT DATE_FORMAT(birthdate,'%Y %M %e') FROM students DATE_FORMAT格式化日期
char 类型长度是严格限制的.
char 固定长度,最多255个字符
varchar 可变长,最多65535
tinytext 可变长,最多255
text 可变长,最多(2的16次方-1)
mediumtext 可变长,