写在前面
学了数据库,现在想全面的学一下mysql。但是有些现在不常用到的东西看过就忘,我就想写个笔记记录一下感觉重要的。
MySQL介绍
- MySQL是一个小型关系数据库管理系统(DBMS)
- ODBC 技术为访问不同的SQL数据库提供一个共同的接口。
- MySQL命令行实用程序
mysqlaccess:检查访问主机名、用户名和数据库组合的权限的脚本
MySQLadmin:执行管理操作的客户程序,例如创建或删除数据库,重载授权表,将表刷新到硬盘上,以及重新打开日志文件。MySQLadmin还可以用来检索版本、进程以及服务器的状态信息。
mysqlbinlog:从二进制日志读取语句的工具。在二进制日志文件中包含执行过的语句,可用来帮助系统从崩溃中恢复。
mysqlcheck:检查、修复、分析以及优化表的表维护客户程序。
mysqldump:将mysql数据库转出到一个文件**
mysql import:使用 LOAD DATA INFILE 将文本文件导入相关表的客户程序。
perror:显示系统或MySQL错误代码含义的工具。
MySQL安装
InooDB
- InnoDB可以提交、回滚并拥有崩溃恢复能力(ACID兼容)
- SQL查询时可以自由地将InnoDB类型的表与其他MySQL的表的类型混合起来。
- InnoDB存储引擎完全与MySQL服务器整合,InnoDB存储引擎为在主内存中缓存数据和索引而维持他自己的缓冲池。InooDB将他的表和索引存在一个逻辑表空间中,表空间可以包含数个文件。
- 支持外键完整性约束。
MyIASM
MyISAM有较高的插入、查询速度,但不支持事物。
数据类型说明
- DOUBLE 比 FLOAT精度高 ,DECIMAL(定点数)比DOUBLE精度高。
- CHAR会自动删除插入数据的尾部空格,VARCAHR不会。
- MyISAM使用CHAR可以使整个表静态化,速度会更快。用空间换时间。
- InnoDB使用VARCHAR可以节省空间,而且使用CHAR不一定快,因为InnoDB不区分固定长度和可变长度。
- ENUM只能取单值,如性别只能有 “男”,“女”,“其他”。
- SET可以从合法取值列表中取多个值,如某人的兴趣爱好。
- BLOB是二进制字符串,主要存储图片、音频信息等。
- TEXT只能存储纯文本文件
- 虽然使用BLOB和TEXT可以存储数据量比较大的文件,但是对这些字段会降低数据库的性能。如果可以的话建议选择只储存文件的路径。
运算符说明
Like
- ‘%’,匹配任何数目的字符,甚至包括零字符。
- ‘_’,只能匹配一个字符。
REGEXP
- ‘^’,匹配以该字符后面的字符开头的字符串。
ex. ‘^s’ 可以匹配到 saaab - ‘$ ’,匹配以该字符后面的字符结尾的字符串
ex. ‘$s’可以匹配 abs - ‘.’,匹配任意一个单字符。
- “[abc]”匹配a,b,c。 "[a-z]“匹配所有字母。”[0-9]"匹配所有数字
- ‘ * ’,匹配0个或多个在它前面的字符。
ex. "x*"匹配任意数量的x。