Day: August 29, 2016

Ubuntu 16.04安装 Virtualbox 5.1 How to Install Virtualbox 5.1 in Ubuntu 16.04

安装方法直接看下面说明. Oracle Virtualbox has just reached a new major 5.1 release. Here’s how to install it in Ubuntu 16.04. Virtualbox 5.1 ports its UI to Qt5, brings better Python 3 support, HDA (High Definition Audio) support for newer Linux guests, various VMM and other improvements and fixes. Virtualbox release highlights: VMM: new APIC and I/O APIC implement…

MySQL入门 (十九) : 效率

资料库主要的功能是帮你储存资料,而且要可以很方便的让你随时查询或维护资料。 但是在资料库运作一段时间,尤其是里面储存了大量资料的时候,你常会发现在查询或维护资料的时候,要等后比较长的时间。 所以资料库除了储存资料外,效率的问题也是很重要的。 资料库在关于效率上的问题会比较复杂一些,跟软、硬体还有网路都有关,这里只会讨论跟资料库有关的部份,而且会是比较基础的概念。 查询资料算是资料库中最常执行的工作,想要让查询资料的效率可以好一点,查询叙述本身就很重要。 另外也可以依照需求建立增加效率的索引,建立正确的索引可以提高查询工作的效率;索引也可以在某些修改与删除工作上看到效果。 储存引擎在效率上也是一个很重要的因… Read More

MySQL入门 (十八) : 汇入与汇出资料

1 备份与回复 在你开始使用MySQL资料库以后,MySQL会帮你储存与管理所有的资料,依照不同的设定,会有许多的资料档案储存在档案系统中,如果这些档案不小心遗失或损坏,储存的资料可能就全部不见了。 为了预防这类的情况发生,MySQL提供许多备份资料的功能,让你可以依照自己的需求,汇出资料库中储存的资料,另外保存起来。 如果资料库发生严重的问题,而且储存的资料不见了,你就可以把之前备份的资料,回复到资料库中。 备份资料的工作称为「汇出资料、exporting data」;回复资料的工作称为「汇入资料、importing data」。 你可以使用SQL叙述或MySQL提供的用户端程式,执行汇出与汇入的工作。 汇 出… Read More

MySQL入门 (十七) : 错误处理与查询

1 错误的资料 在规划与设计一个资料库的时候,你会针对储存资料的需求,定义每一个表格中的栏位,包含栏位的资料型态与其它的设定,这些定义都会影响资料的查询与维护。 资料库中储存的资料应该是正确而且没有误差的,如果你尝试储存一个错误的资料,资料库应该要发现问题并告诉你不可以这样做;不过在不同的需求下,你可能会希望资料库允许不太严重的错误,不要每次都产生错误讯息。 MySQL资料库环境中,可以使用「sql_mode」系统变数设定资料库对于检查错误资料的「严格」程度,分为「strict」与「non-strict」两种模式。 在strict模式下,资料库会严格的检查与发现错误的资料,而且不会储存错误的资料;在no… Read More

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

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

MySQL入门 (十四) : Stored Routines 进阶

1 错误编号 使用SQL叙述请资料库执行一些工作的时候,可能会因为输入错误或其它的原因,造成资料库产生错误讯息,下列的SQL叙述在SQL query browser中执行以后,MySQL会传回一个错误编号与错误讯息,告诉你查询的表格名称不存在: MySQL用来表示错误的编号有两种,一种是MySQL资料库伺服器用的错误编号,使用四位数的数字来表示各种不同的错误;另外一种是各种资料库软体都适用的「SQL state」编号,使用五个字元的字串,来表示执行一个叙述以后各种不同的状况: 注:MySQL 的错误编号称为「Server Error Codes」,详细的错误编号与对应的错误讯息可以参考MySQL参考手册的附录B(… Read More

MySQL入门 (十三) : Stored Routines 的变数与流程

1 宣告与使用变数 在Stored routines中,除了可以宣告需要的参数外,如果需要处理比较复杂的资料,你也可以宣告「区域变数、local variables」。 下列是宣告区域变数的语法与位置: 下列是几种宣告区域变数的范例: 宣告需要的区域变数后,你就可以在stored routines中使用它们,需要指定变数值的话,可以使用下列两种语法: 下列是宣告与使用「SET」叙述指定变数的范例: 下列的范例使用「SELECT」叙述,把查询叙述回传的资料指定给变数: 在Stored routines中宣告区域变数,一定要放在「BEGIN」与「END」区块中: 在一个Stored routines中,除了基本的「BEGIN… Read More