August 29, 2016
MySQL入门 (十九) : 效率
资料库主要的功能是帮你储存资料,而且要可以很方便的让你随时查询或维护资料。 但是在资料库运作一段时间,尤其是里面储存了大量资料的时候,你常会发现在查询或维护资料的时候,要等后比较长的时间。 所以资料库除了储存资料外,效率的问题也是很重要的。 资料库在关于效率上的问题会比较复杂一些,跟软、硬体还有网路都有关,这里只会讨论跟资料库有关的部份,而且会是比较基础的概念。
查询资料算是资料库中最常执行的工作,想要让查询资料的效率可以好一点,查询叙述本身就很重要。 另外也可以依照需求建立增加效率的索引,建立正确的索引可以提高查询工作的效率;索引也可以在某些修改与删除工作上看到效果。
储存引擎在效率上也是一个很重要的因… Read More
August 29, 2016
MySQL入门 (十八) : 汇入与汇出资料
1 备份与回复
在你开始使用MySQL资料库以后,MySQL会帮你储存与管理所有的资料,依照不同的设定,会有许多的资料档案储存在档案系统中,如果这些档案不小心遗失或损坏,储存的资料可能就全部不见了。 为了预防这类的情况发生,MySQL提供许多备份资料的功能,让你可以依照自己的需求,汇出资料库中储存的资料,另外保存起来。 如果资料库发生严重的问题,而且储存的资料不见了,你就可以把之前备份的资料,回复到资料库中。 备份资料的工作称为「汇出资料、exporting data」;回复资料的工作称为「汇入资料、importing data」。
你可以使用SQL叙述或MySQL提供的用户端程式,执行汇出与汇入的工作。 汇 出… Read More
August 29, 2016
MySQL入门 (十七) : 错误处理与查询
1 错误的资料
在规划与设计一个资料库的时候,你会针对储存资料的需求,定义每一个表格中的栏位,包含栏位的资料型态与其它的设定,这些定义都会影响资料的查询与维护。 资料库中储存的资料应该是正确而且没有误差的,如果你尝试储存一个错误的资料,资料库应该要发现问题并告诉你不可以这样做;不过在不同的需求下,你可能会希望资料库允许不太严重的错误,不要每次都产生错误讯息。
MySQL资料库环境中,可以使用「sql_mode」系统变数设定资料库对于检查错误资料的「严格」程度,分为「strict」与「non-strict」两种模式。 在strict模式下,资料库会严格的检查与发现错误的资料,而且不会储存错误的资料;在no… Read More
August 29, 2016
MySQL入门 (十六) : 查询information_schema
1 information_schema资料库
一个建立好并且运作中的资料库,通常会包含表格、栏位与索引,为了扩充资料库的功能,也可能会加入stored routines与triggers元件。 MySQL把这些资料库的资讯放在「information_schema」资料库,下列是这个资料库中主要的表格:
表格名称
说明
CHARACTER_SETS
MySQL资料库支援的字元集
COLLATIONS
MySQL资料库支援的collation
COLLATION_CHARACTER_SET_APPLICABILITY
字元集与collation对应资讯
COLUMNS
栏位资讯
COLUMN_PRIVILEGES
栏位授权资… Read More
August 29, 2016
MySQL入门 (十五) : Triggers
1 Triggers的应用
在「cmdev」资料中有一个「emplog」表格,如果有人执行任何修改「cmdev.emp」表格资料的动作,都要新增一笔讯息到「cmdev.emplog」表格中,查询这个表格的资料,就可以知道在什么时候曾经修改过「cmdev.emp」表格中的资料:
栏位名称
型态
NULL
索引
预设值
其它资讯
说明
logno
bigint(20)
NO
PRI
NULL
auto_increment
纪录编号
logdt
timestamp
NO
CURRENT_TIMESTAMP
日期时间
message
varchar(64)
YES
NULL
讯息
要完成这样的需求,每一次修改「cmdev.emp」表格资料时,你都必需执行… Read More
August 29, 2016
MySQL入门 (十四) : Stored Routines 进阶
1 错误编号
使用SQL叙述请资料库执行一些工作的时候,可能会因为输入错误或其它的原因,造成资料库产生错误讯息,下列的SQL叙述在SQL query browser中执行以后,MySQL会传回一个错误编号与错误讯息,告诉你查询的表格名称不存在:
MySQL用来表示错误的编号有两种,一种是MySQL资料库伺服器用的错误编号,使用四位数的数字来表示各种不同的错误;另外一种是各种资料库软体都适用的「SQL state」编号,使用五个字元的字串,来表示执行一个叙述以后各种不同的状况:
注:MySQL 的错误编号称为「Server Error Codes」,详细的错误编号与对应的错误讯息可以参考MySQL参考手册的附录B(… Read More
August 29, 2016
MySQL入门 (十三) : Stored Routines 的变数与流程
1 宣告与使用变数
在Stored routines中,除了可以宣告需要的参数外,如果需要处理比较复杂的资料,你也可以宣告「区域变数、local variables」。 下列是宣告区域变数的语法与位置:
下列是几种宣告区域变数的范例:
宣告需要的区域变数后,你就可以在stored routines中使用它们,需要指定变数值的话,可以使用下列两种语法:
下列是宣告与使用「SET」叙述指定变数的范例:
下列的范例使用「SELECT」叙述,把查询叙述回传的资料指定给变数:
在Stored routines中宣告区域变数,一定要放在「BEGIN」与「END」区块中:
在一个Stored routines中,除了基本的「BEGIN… Read More