Linux下mSQL数据库设计技术

2016-02-19 20:31 3 1 收藏

岁数大了,QQ也不闪了,微信也不响了,电话也不来了,但是图老师依旧坚持为大家推荐最精彩的内容,下面为大家精心准备的Linux下mSQL数据库设计技术,希望大家看完后能赶快学习起来。

【 tulaoshi.com - 编程语言 】

  mSQL(mini SQL)是一个单用户数据库管理系统,由于它的短小精悍,使其开发的应用系统特别受到互联网用户青睐。笔者曾经在Linux下开发过一个基于Web的管理系统,其中采用了mSQL数据库用于数据管理,系统在实际运行中效果良好。笔者经过总结,现将在Linux下mSQL数据库开发的方法详细介绍给大家。 

  首先,到站点www.hughes.com.au注册后就能免费下载该软件的最新版本。mSQL的安装相当简单,二进制版本(针对某一个硬件平台编译后的软件)的安装只是将文件展开到用户某一目录下然后配置几个参数就可以。例如你下载的文件为:mSQL-2.0.3.tar.gz,你想把mSQL安装到/usr/local目录下,这时,我们需要先将这个文件拷贝到/usr/local这个目录,然后键入命令tar zxvf mSQL-2.0.3.tar.gz,这个命令将展开该压缩文件。一般,mSQL数据库系统的所有文件都安装到/usr/local/Hughes目录下。接着就是配置mSQL数据库。你所要做的工作就是要修改/usr/local/Hughes目录下的文件msql.conf。

  在实际应用中我们改动得最多的是mSQL—User 和Admin—User这两个参数。mSQL—User指明运行mSQL数据库服务程序的用户,而Admin—User指明能对mSQL数据库系统执行特权操作(如:关闭数据库服务程序的运行,创建数据库等操作)的用户。因此,如果你希望mSQL服务程序以database这个用户运行,指定admin这个用户能执行数据库操作,你要将mSQL—User和Admin—User所在的行分别改为:mSQL—User = database和Admin—User = admin。另外你还必须将Hughes目录下的文件和目录的属主改为database。在配置完成后,注销当前用户的身份,重新以msql.conf的参数 mSQL—User设定的用户登录到系统,进入/usr/local/Hughes/bin目录键入如下的命令:./msql2d &,这样就启动了mSQL数据库系统。至于带源码的安装软件,看一看README和INSTALL这些文件一般就能顺利安装完成。

  为了将mSQL集成到用户的应用程序中去,mSQL数据库系统为用户提供了一个C语言的API库和一个解释器:w3—msql,通过C语言的API库,你可以将mSQL集成到用标准C语言开发的应用程序中去。而有了w3—msql这个工具,你可以通过编写类C语言脚本语言将mSQL数据库嵌入到HTML文件中,下面举一程序实例进行说明。

  下面的程序片段要完成的功能是将浏览器页面上提交上来的用户名和口令与表registered—user中的用户名和口令相比较,如果用户名和口令正确,将在页面上显示注册成功的信息,否则提示用户注册失败。采用C语言实现的方法如下所示:

  void main(int argc, char argv[])

  {

  //解析用户提交上来的用户名和口令并保存到变量username和password—usr中

  …

  //创建与本机的mSQL数据库系统的套接字

  sock=msqlConnect(NULL);

  //选择数据库test

  if (msqlSelectDB(sock,″test″)==-1)

  {

  //输出数据库选择失败信息

  …

  } else

  {

  sprintf(buff,″select  from registered—user where username=′%s′″,username);

  //以username查询表registered—user中的记录

  if (msqlQuery(sock,buff)==-1)

  {

  //输出查询失败的错误信息

   …

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)

  }

  //将查询结果保存到m—result类型的指针变量 res

  res=msqlStoreResult();

  //得到查询结果的记录数

  numrow=msqlNumRows(res);

  if (numrow==1)

  {

  //得到当前记录,类型为:m_row

  row=msqlFetchRow(res);

  //将保存在表中的口令和用户输入的口令相比较

  if (!strcmp(password_ur,row[2]))

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)

  {

  //输出注册成功信息

  } else

  {

  //输出口令不对的提示信息

  }

  } else

  {

  //输出用户名输入出错信息

  }

  }

  //释放查询结果的指针

  msqlFreeResult(res);

  //关闭数据库系统的套接字

  msqlClose(sock);

  return;

  }

  以上的例子包含有将mSQL集成到C语言程序中用到的主要函数,这些函数基本能满足应用程序的需要。如果采用w3—msql能解释的类C语言嵌入到HTML文件中,可以达到同样的功能。与C语言编写的CGI程序需要编译不同,脚本语言不需要编译,该脚本由mSQL数据库系统提供的CGI程序w3—msql来解释执行。脚本中主要的代码段如下所示:

  〈HTML〉

  〈HEAD〉

  〈META HTTP-EQUIV=″Content-Type″ CONTENT=″text/HTML;charset=iso-8859-1″〉

  〈/HEAD〉

  〈body TEXT=″#000000″ BACKGROUND=″/icon/back.jpg″ topmargin=″10″〉

  〈!

  //解析用户提交上来的用户名和口令并

  保存到变量username和password—usr中

  …

  //创建与本机的mSQL数据库系统的套接字

  $sock = msqlConnect();

  //选择数据库test

  if (msqlSelectDB($sock,″test″)==-1)

  {

  //输出数据库选择失败信息

  fatal(″错误 : 无法与数据库连接n″);

  } else

  {

  $buff = ″ select  from registered—user where username=′$username ′″;

  //以username查询表registered—user中的记录

  if (msqlQuery($sock,$buff)==-1)

  {

    //输出查询失败的错误信息

    fatal(″查询错误n″);

  }

  //将查询出来的结果保存到查询结果的指针变量res中

  $res=msqlStoreResult();

  //得到查询结果的记录数目

  $numrow=msqlNumRows($res);

  if ($numrow==1)

  {

  //得到当前记录的指针

  $row=msqlFetchRow($res);

  //将保存在表中的口令和用户输入的口令相比较

  if (!strcmp($password—ur,$row[2]))

  {

  //输出注册成功信息

  echo(″〈center〉注册成功〈/center〉″);

  } else

  {

//输出口令不对的提示信息

  echo(″〈center〉您输入的口令不正确〈/center〉″);

  }

  } else

  {

  //输出用户名输入出错信息

  echo(″〈center〉您输入的用户名不正确〈/center〉″);

  }

  }

  //释放查询结果占用的内存

  msqlFreeResult($res);

  //关闭数据库系统的套接字

  msqlClose($sock);

  〉

  〈/BODY〉

  〈/HTML〉

  以上介绍了在Linux下以mSQL数据库系统作为后台数据库开发应用系统的方法。有了这些基本的方法,我们就能开发出各种基于mSQL数据库的应用系统。

来源:https://www.tulaoshi.com/n/20160219/1623922.html

延伸阅读
3.7 加注释     MySQL 允许在SQL 代码中使用注释。这对于说明存放在文件中的查询很有用处。可用两个方式编写注释。以“ #”号开头直到行尾的所有内容都认为是注释。另一种为C 风格的注释。即,以“/ *”开始,以“* /”结束的所有内容都认为是注释。C 风格的注释可跨多行,如:     自MySQL 3.23 版以...
5.2 选择API     本节介绍根据各种类型的应用程序选择A P I的方法,比较C、DBI 和PHP API 的能力,并给出它们相对的优点和缺点,并指出什么时候应选择哪一个。     首先应该指出,笔者不认为任一种语言优于其他语言。尽管笔者的确有自己的喜好,但还是统统使用它们。您也会有自己的喜好,像我的评论家一...
3.8 解决方案随笔     本节内容相当杂;介绍了怎样编写解决各种问题的查询。多数内容是在邮件清单上看到的解决问题的方案(谢谢清单上的那些朋友,他们为解决方案作了很多工作)。     3.8.1 将子选择编写为连接     MySQL自3.24版本以来才具有子选择功能。这项功能的缺少是MySQL 中一件...
MySQL提供用C编程语言编写的客户机库,可以用它编写访问M y S Q L的客户机程序。这个库定义了应用程序编程接口,包括下面的实用程序:     ■ 建立和终止与服务器会话的连接管理例程。     ■ 构造查询的例程,将例程发送到服务器,并处理结果。     ■ 当其他C API调用失败时,确定错误...
4.2 MySQL 查询优化程序     在发布一个选择行的查询时, MySQL 进行分析,看是否能够对它进行优化,使它执行更快。本节中,我们将研究查询优化程序怎样工作。更详细的信息,可参阅MySQL 参考指南中的“Getting Maximum Performance from MySQL”,该章描述了MySQL 采用的各种优化措施。该章中的信息会不断变化,因为MySQL...

经验教程

813

收藏

6
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部