当前所在位置:珠峰网资料 >> 计算机 >> 计算机等级考试 >> 正文
2015年计算机四级指导:MySQL中InnoDB和MyISAM类型的差别
发布时间:2010/3/10 18:16:07 来源:城市学习网 编辑:MOON
  首先要强调,这里的函数和过程看起来,差别只是返回值,但是绝对不能看成是void fun的形式。先看一段SQL代码:
  create function ShowBirth)
  returns date
  begin
  declare temp date;
  selectbirth into temp
  from pet
  where name=t_name;
  return tem
  end;
  在这里,我建了一个叫ShowBirth的函数,传进一个变量t_name,存有我们的name值,返回的是日期date,是我制定的某个name对应的生日。在create语句后,直接跟上returns,表明返回值类型是date。接下来,所有的操作语句,一定要在begin...end之内。我先定义了一个变量,着相当于C/C++中的局部变量,其类型为date。接着,我把符合条件的date用一个select...into...来保存进temp这个变量中。然后在end的上方,紧靠着,一定要返回一个值,这里是temp。这样我们就定义好了一个函数。
  注意,这个函数哈起不能够运行,在此之前,我们要做如下工作。
  创建一个table,叫pet:
  create table pet,owner varcahr,birth date,death date,sex varhar);
  然后,我们导入数据:先在某个文件内部建一个txt文档,把输入,数据项之间用tab键分开,不同数据项用enter:
  FluffyHarold1993-02-042003-10-23m
  ClawsGwen1994-03-171987-9-20 f
  BuffyHarold1989-05-132003-3-19 f
  FangBenny1990-08-272001-9-30m
  BowserDiane1979-08-311995-07-29m
  ChirpyGwen1998-09-111987-2-13m
  WhistleGwen1997-12-091987-10-23f
  SlimBenny1996-04-291987-2-10f
  然后用如下语句:
  load data infile #39;d:“info.txt#39; into pet;
  一般都没有问题,如果报错,可能是数据不对,或者路径不对,改一下。注意,你可以尝试把日期改成32号,你看看会有什么反映。
  接着运行语句:
  select ShowBirth;
  结果就是:
  mysqlselectShowBirth;
  +-------------------+
  ShowBirth
  +-------------------+
  1996-04-29
  +-------------------+
  1 row in set
  哈哈,是不是很简单?
  下面,我们来做procedure。这个和函数编写没有什么区别,就是没有returns,return,形参。
  create procedure ShowPet)
  begin
  select name
  from pet
  where owner=t_owner
  order by name;
  end;
  这个的执行方法如下:
  call ShowPet;
  结果就是:
  mysql call ShowPet;
  +---------+
  name
  +---------+
  Chirpy
  Claws
  Whistle
  +---------+
  3 rows in set
  Query OK, 0 rows affected
广告合作:400-664-0084 全国热线:400-664-0084
Copyright 2010 - 2017 www.my8848.com 珠峰网 粤ICP备15066211号
珠峰网 版权所有 All Rights Reserved