MySQL核心技术与最佳实践(1,2章笔记)
电子书PDF:
链接: https://pan.baidu.com/s/1j42DoIBBjnHZe8N5biubzQ 提取码: 5vgi
数据建模工具:Erwin , PowerDesigner , Rational Rose, Visio 等
函数使用_fun后缀,存储过程使用_proc , 视图使用_view 触发器_trig
索引使用_index,外键约束_fk
单行注释使用#号,或使用-- 加空格
多行注释使用/* */
MySQL在window操作系统中大小写不敏感,但在linux中大小写敏感,
考虑到在不同的操作系统中移植,需要注意命名规范
E-R图表示现实世界中具有相同属性的事物集合,它不是某一具体事物,
而是某一种类别所有事物的统称。
表的主键有二个特征
1:主键可以是一个字段,也可以是多个字段组合
2:主键具有唯一性且不能为取空值NULL
NULL值表示不确定或不存在,不等于''值,不等于0
常用数据类型包括:数值类型,字符类型,日期类型
日期类型分为:日期类型和时间类型
常用约束有6种:
1:主键约束 primary key
2:外键约束(foreign key)
3: 唯一约束 unique
4: 默认约束 default
5: 非空约束 not NULL
6: 检查约束 check
InnoDB引擎支持外键约束 MyISAM 不支持外键约束
一张表中可以有多个唯一约束,并且唯一约束可以为NULL
在设计数据库时有两个不争的事实:
数据库中的冗余需要额外的维护,因此应该尽量减少冗余数据。
经常变化的数据需要额外的维护,因此应该尽量避免数据经常发生变化。
OLTP:on-line transaction processing 在线事务处理
OLAP: on-line analytical processing 在线分析处理
Services.msg 可弹出 “服务”窗口
net start mysql
net stop mysql
mysql -h localhost -P 3306 -u root -proot
show varibales like 'pid_file' 查看文件保存路径
字符集设置,已ci, cs及bin结尾的
ci 表示大小写不敏感 , cs 大小写敏感 , bin 按二进制编码
show character set
show variables like 'character%'
show variables like 'collation%' 查看mysql会话使用的字符序
Mysql 字符集可以细化到表,甚至每一个字段,没有指定字符集时,字段延用表,
表延用数据库,数据库延用mysql服务实例
character_set_server在my.ini中配置
set names gbk ; 可以临时一次性的设置character_set_client字符集
alter database choose set gbk;
show variables like 'datadir'
show databases;
show create database database_name;
use choose;
drop database database_name;
Mysql中典型的数据库对象包括
表,视图,索引,存储过程,函数,触发器
Mysql存储引擎至少有10种, show engines;
MyISAM 具有检查和修复表的大多数工具。可以被压缩,最早支持全文索引,不是事务安全,
不支持外键,如果有大量select,出于性能考虑,MyISAM存储引擎是更好的选择。
use choose;
set default_storage_engine = InnoDB
create table my_table(
today, datatime,
name char(20)
);
use choose;
alter table my_table engine=MyISAM;
window操作系统中,文件名及目录不区分大小写,linux中区分大小写,
而mysql数据库操作最终转换为操作数据库中目录及文件,因此为在不同操作系统中移植,
mysql命名操作要规范,包括大小写。
show tables;
describe table_name;
show create table table_name;
NULL 与整数0以及空字符串''的概念不同,也不相等。
MyISAM 表备份较简单,只需要备份数据库目录。
InnoDB 备份较复杂,不仅 要备份数据库目录,还需要复制ibdata1表空间文件,及重做日志文件ib_logfile0 与 ib_logfile1.
对InnoDB引擎而言,存在表空间,又分为共享表空间和独享表空间。
show variables like 'innodb_data_file_path'
全局变量innodb_file_per_table为ON则为独享表空间。默认为OFF
show variables like 'innodab_fiel_per_table';
默认情况下独享表空间的文件名为“表名.ibd”
变量分为系统变量和用户变量,系统变量以“@@”开头
系统变量又分为,全局,回话,及静态系统变量。静态的在配置文件中配置,或在源码中编译。
show global variables;
show session variables;
数据库备份和恢复
1: 停机或使用flush tables with read lock将服务器中数据刷新到数据文件
2:备份数据库文件,
3:使用unlock tables;行进解锁
4:恢复数据文件,MyISAM引擎只需要数据目录文件,InnoDB引擎还需要表空间文件,重做日志文件。