Month: August 2016

MySQL入门 (十二) : Stored Routines 入门

1 Stored Routines的应用 在资料库管理系统的应用中,不论是一般或网页的应用程式,它们在执行资料查询与维护的时候,都必须使用SQL叙述来请资料库执行各种不同的工作。 在比较复杂的应用程式需求下,很常会遇到类似下列的一组工作: SQL叙述的特点是一次只能执行一件工作,所以要完成上列的工作,就必须执行数个SQL叙述。 如果这样的一组工作是很常执行的,你就可以考虑把这些要执行的叙述建立为「Stored procedure」元件: 把这一组工作建立为Stored procedure元件以后,以后要执行这些工作时,就可以「呼叫、call」这个建立好的Stored procedure元件: 要建立人口数比「USA… Read More

MySQL入门 (十一) : Prepared Statements

1 使用者变数 MySQL资料库伺服器提供一种简易的储存资料方式,称为「使用者变数、user variables」。 使用者变数储存一些简单的资料,例如数字或字串,它们可以在后续的操作中使用。 下列是设定使用者变数的语法: 下列的叙述设定两个储存字串资料的使用者变数: 设定好使用者变数以后,你可以在「SELECT」叙述中查询它们储存的内容: 如果你需要设定多个变数的话,可以在一个「SET」叙述中设定多个需要的使用者变数: 使用查询叙可以确认上列的叙述已经设定好的两个使用者变数: 使用「SELECT」叙述也可以设定需要的使用者变数,不过要特别注意指定的符号只能使用「:=」: 下列的叙述设定两个储存整数资料的使用者变数… Read More

MySQL入门 (十) : Views

1 View的应用 在使用MySQL资料库的时候,你会使用各种不同的SQL叙述来执行查询与维护的工作。 资料库在运作一段时间后,你会发觉不论是查询与维护的叙述,都可能会出现一些类似、而且很常使用的SQL叙述: 以上列的查询叙述来说,虽然它并不是很复杂,只是一个加入排序设定的一般查询而已。 可是如果常常会执行这样的查询,你每次都要输入这个查询叙述再执行它;就算你把这个查询叙述储存为文字档保存起来,需要的时候再开启档案使用,这样做的话是比较方便一些,不过还是很麻烦,而且比较没有灵活性。 如果在资料库的应用中,出现这种很常执行的查询叙述时,你可以在MySQL资料库中建立一种「View」元件,View元件用来保存… Read More

MySQL入门 (八) : 表格与索引

1 建立表格 在建立好资料库以后,就可以根据储存资料的需求,使用SQL叙述建立所有需要的表格(table)。 建立表格的设定非常多,以建立「world.city」表格来说,它的叙述会像这样: 根据不同的需求,建立表格的语法有好几种,下列是建立表格基本的语法: MySQL规定一个表格中至少要有一个栏位,在设定表格中的栏位时,至少要明确的决定栏位的名称与型态,其它的栏位设定都是选择性的,如果有一个以上栏位,要使用逗号隔开: 使用需要的资料型态,就可以建立一个可以储存亲友通讯录的表格: 建立表格的时候可以使用「IF NOT EXISTS」选项,预防发生表格已存在的错误: 1.1 表格属性 建立表格的时候也可以为表格加入需要… Read More

MySQL: 数据类型转换函数(CONVERT/CONCAT/CAST)

  名称 说明 BINARY 将 string 转换为二进制 string CAST() 将某个值转换为特定类型 CONVERT() 将某个值转换为特定类型 数据类型转换可以通过CAST()和CONVERT()函数来实现。大多数情况下,这两个函数是重叠的,它们反映了SQL语言的演化历史。这两个函 数的功能相似,不过它们的语法不同。虽然并非所有类型的值都能转变为其他数据类型,但总的来说,任何可以转换的值都可以用简单的函数实现转换。 CAST()函数的参数是一个表达式,它包括用AS关键字分隔的源值和目标数据类型。以下例子用于将文本字符串’123’转换为整型: SELECT CAST('123' A… Read More

Mysql: concat函数实现数据库字段合并查询

CONCAT 函数用于将两个字符串合并为一个字符串。如下例所示: mysql> SELECT CONCAT('FIRST ', 'SECOND'); +----------------------------+ | CONCAT('FIRST ', 'SECOND') | +----------------------------+ | FIRST SECOND | +----------------------------+ 1 row in set (0.00 sec) 以下面这个表 employee_tbl 为例: mysql> SELECT * FROM employee_tbl; +------+------+------------+… Read More

Mysql常用函数之日期时间函数

MySQL 日期与时间方面的函数 函数名称 函数功能说明 ADDDATE() 添加日期 ADDTIME() 添加时间 CONVERT_TZ() 转换不同时区 CURDATE() 返回当前日期 CURRENT_DATE() 与 CURRENT_DATE 等同于 CURDATE() CURRENT_TIME() 与 CURRENT_TIME 等同于 CURTIME() CURRENT_TIMESTAMP() 与 CURRENT_TIMESTAMP 等同于 NOW() CURTIME() 返回当前时间 DATE_ADD() 添加两个日期 DATE_FORMAT() 按指定方式格式化日期 DATE_SUB() 求解两个日期的间隔 DATE() 提取日期或日期时间表达式中的… Read More

Mysql常用函数之数值函数

MySQL 数值函数 函数名称 函数说明 ABS() 返回数值表达式的绝对值 ACOS() 返回数值表达式的反余弦值。如果参数未在[-1, 1]区间内,则返回 NULL ASIN() 返回数值表达式的反正弦值。如果参数未在[-1, 1]区间内,则返回 NULL ATAN() 返回数值表达式的反正切值 ATAN2() 返回两个参数的反正切值 BIT_AND() 返回表达式参数中的所有二进制位的按位与运算结果 BIT_COUNT() 返回传入的二进制值的字符串形式 BIT_OR() 返回表达式参数中的所有二进制位的按位或运算结果 CEIL() 返回值为不小于传入数值表达式的最小整数值 CEILING() 同CEIL()返回值为不小于传入数值表达式的最… Read More

Mysql常用函数之字符串函数

MySQL 字符串函数 函数名称 函数功能说明 ASCII() 返回字符串 str 中最左边字符的 ASCII 代码值 BIN() 返回十进制数值 N 的二进制数值的字符串表现形式 BIT_LENGTH() 返回字符串 str 所占的位长度 CHAR() 返回每一个传入的整数所对应的字符 CHAR_LENGTH() 单纯返回 str 的字符串长度 CHARACTER_LENGTH() 作用等同于CHAR_LENGTH() CONCAT_WS() 返回串联并以某种分隔符进行分隔的字符串 CONCAT() 返回串联的字符串 CONV() 转换数值的进制 ELT() 返回一定索引处的字符串 EXPORT_SET() 返回一个字符串,其中,对于每个设置在bits中的位,… Read More

MySQL: 常用运算符

算术运算符 MySQL 支持的算术运算符包括加、减、乘、除和模运算。 在除法运算和模运算中,如果除数为0,将是非法除数,返回结果为NULL。 比较运算符 当使用SELECT语句进行查询时, MySQL允许用户对表达式的左边操作数和右边操作数进行比较,比较结果为真,则返回1,为假则返回 0,比较结果不确定则返回NULL。 符号 描述 备注 = 等于 <>, != 不等于 > 大于 < 小于 <= 小于 >= 大于等于 BETWEEN 在两值之间 >=min&&<=max NOT BETWEEN 不在两值之间 IN 在集合中 NOT IN 不在集合中 <=> 严格比较两个NULL值是否相等 两个… Read More

MySQL 超新手入门教程系列

三国演义 三国演义是一部在华人世界非常普及的历史小说,是由罗贯中根据元朝的三国志平话改编,他以东汉末年魏、蜀、吴三国斗争为主题,收集历史资料和说书人的故事,成为这一部大家都非常熟悉的故事。 或许我们现在觉得这些历史已经跟我们没什么关系了,不过大家都知道关公过五关斩六将,刘备三顾茅芦,诸葛孔明的空城记。 这些老掉牙的故事,总是不断的出现在电影、电视剧和各种平台的游戏,一代又一代的传承下去。 这应该是因为三国演义的确是一个好故事,很多很精采的好故事,就像美国畅销作家史帝芬金所说的,一个好故事是不会寂寞的。 三国演义的普及,让人认为里面讲的故事其实就是真的历史,罗贯中在编这本书的时候,大概是为了让它可以比较戏… Read More

PHP: 在类(class)中加载动态函数, 变量函数或半变量函数 variable function/method

最终实例在下方 以前用过cakephp, 他们的数据库查询还是蛮强大的, 后来好奇它的类的写法,比如: <?php $this->Post->findByTitle('My First Blog Post'); $this->Author->findByLastName('Rogers'); findBy<fieldName> string $value findAllBy<fieldName> string $value findAllBy 或者 findBy 后面可以跟变量, 它大概的方法就是使用了三个核心内置函数: __call, method_exists() 和 call_u… Read More

MySQL入门 (七) : 储存引擎与资料型态

1 表格与储存引擎 表格(table)是资料库中用来储存纪录的基本单位,在建立一个新的资料库以后,你必须为这个资料库建立一些储存资料的表格: 每一个资料库都会使用一个资料夹,这些资料库资料夹用来储存所有资料库各自需要的档案: 「Storage engine、储存引擎」是MySQL用来储存资料的技术,为了资料库多样化的应用,你可以在建立表格的时候,依照自己的需求指定一种储存引擎,不同的储存引擎会有不同的资料储存方式与运作的特色。 MySQL提供许多储存引擎让你选择,下列是主要的三种储存引擎的简介: MyISAM:MySQL预设的储存引擎,虽然它支援的功能并没有像一般的资料库那么多(例如交易、transacti… Read More