《mysql必知必会》笔记

mysql我一直在用,但是还没有看过它的任何一本书,看了一天,发现自己对mysql懂得还挺多的。

下面是随便记下的内容,我有些模糊的地方。

第一章 了解mysql

数据库软件应该成为DBMS(数据管理系统)
数据库(database)
表(table)
模式(schema)
列(column)
行(row)
主键(primary key )
主键的最好习惯:不更新主键列中的值。
 
第二章 mysql简介
第三章 使用mysql
show columns from table; == describe userinfo;
show status;
show grants;
show errors;show warnings;
 
第四章 检索数据
SQL语句不区分大小写,但表名,列名可能会不同。
SQL语句会忽略空格和换行。
 
第五章 排序数据
select * from userinfo order by id desc,usernmame asc
desc 只能作用它前面的一个变量。
 
第六章 过滤数据
第七章 数据过滤
使用in会比or快一点。
 
第八章 用进行过滤
%匹配多个字符
_匹配单个字符
 
第九章 用正则表达式进行搜索
区分大小写可使用 BINARY 。
select * from music where singerName Regexp "周杰伦"。利用正则包含文本
 
第十章 创建计算字段
拼接字符串 select concat(id,song) from music   结果 :  254童年
rtrim  删除右侧空格,   ltrim :去左边     trim:去两边
 
第十一章 使用数据处理函数
函数的移植性差。不建议使用。
常用函数: trim,upper,substring,locate。
日期函数:date(),day(),time()
数值计算:abs(),pi()
 
第十二章 汇总数据
count 条目总和
avg,max,min,sum
 
第十三章 分组数据
having过滤分组,和where使用一样。
 
第十四章 使用子查询
第十五章 联结表
第十六章 创建高级联结
第十七章 组合查询
union 将两个查询结果组成一个结果。必须包含相同的列,表达式。它会自动去除重复的行,使用union all 可以输出所有结果。其结果只能使用一个order by。
 
第十八章 全文本搜索
两个最常使用的引擎为MyISAM,InnoDB,前者支持全文搜索,后者不支持。
要全文搜索,必须索引被搜索的列。
建立索引要花时间,所以在导入表的时候不要指定FULLTEXT,应该再导入后在指定FULLTEXT。
 
第十九章 插入数据
第二十章 更新和删除数据
第二十一章 创建和操作表
mysql不允许使用函数值作为默认值,只支持常量。
InnoDB支持事务,非常可靠。
MEMORY 功能等同于MYIASM,但数据存储在内存中,速度很快,特别适合临时表。
MyIASM 性能极高的引擎,它支持全文搜索。不支持事务。
外键不能跨引擎。
 
第二十二章 使用视图
视图本身不包含数据,只是查询别处数据的一种设施,可添加和更新。
使用多个联结和过滤创建的复杂视图性能下降的很厉害,要进行测试。
视图中的order by 会被select 语句覆盖。
视图不能索引,也不能有关联的触发器或默认值。
视图和表可以一起使用。
 
第二十三章 使用存储过程
通过处理吧数据封装在容易使用的单元,简化操作。
 
第二十四章 使用游标
游标就是数据库检索出来的数据集,一个数据缓冲区,可以选择的浏览其中的数据。
 
第二十五章 使用触发器
delete,insert,update 支持触发器。其它不支持。
 
第二十六章 管理事务处理
事务处理可以用来维护数据库的完整性,它保证成批的数据要么完全执行,要么完全不执行。
包括:回退,提交,保留点。
保留点也多也好,可以灵活的进行回退,在事务处理完成(执行commit或rollback)后自动释放。
必须设置事务的自动提交关闭,set autocommit =0 ;
不能将"关闭autocommit"作为缺省设置,否则在 innodb 表上执行的查询操作也将因为没有执行 commit 或者 rollback 而一直锁表!因此只能在需要时局部关闭 autocommit,并在操作完成后开启 autocommit!
autocommit针对的是连接而不是服务器。
 
第二十七章 全球化和本地化
第二十八章 安全管理
更改密码 set password for bforta = Password('123')
 
第二十九章 数据库维护
在数据库备份前,可以使用以下flush tables来确保所有数据都在磁盘上。
如果删除大量数据,使用 optimeize table来回收所用的控件,从而优化性能。
 
第三十章 改善性能
一般来说,存储过程比一条一条执行的代码快。
在导入数据的时候,关闭自动提交。
like很慢,建议使用fulltext。
 
原文地址:https://www.cnblogs.com/wanself/p/2670220.html