来源:www.cncfan.com | 2006-1-11 | (有1938人读过)
三,mSQL与MySQL.
mSQL(mini SQL)是一种小型的关系数据库,性能不是太好,对SQL语言的 支持也不够完全,但在一些网络数据库应用中是足够了.
MySQL是mSQL的一个变种,性能有所提高,增加了用户访问控制.
这两种数据库都是通过SQL语言访问的,但MySQL基本支持全部SQL92规范, 只是"select ... where select .."不支持,另外还扩充了一些数据类型,而mSQL 则基本上不支持任何嵌套SQL语句,也不支持"update set column1=column1-1"这 样的语句.
mSQL由于较简单,在运行简单的SQL语句时速度比MySQL略快,而MySQL在 线程和索引上下了功夫,运行复杂的SQL语句时比mSQL,PostgreSQL,Oracle等都 要快一些.
安全性方面,mSQL通过ACL文件设定各主机上各用户的访问权限,缺省是 全部可读/写,而MySQL通过一个授权库设定用户名,口令和访问权限,较可靠一些.
mSQL的存储能力不是很清楚,MySQL的存储能力受文件系统限制,例如在 Linux下不能超过2G(3G?记不清楚了). 它们的好处就是都能免费得到并在Linux下安装,不过如果用于商业用途 需要付费.
PostgreSQL也是Linux下的免费数据库,RedHat5里面就带了,不过我没有 用过,就不说了.
mSQL与MySQL既然本来就是差不多的两个东西,PHP中对它们的访问语句也 都差不多,例如msql_close与mysql_close就分别完成同样的关闭动作.
所以以下介绍 时只对mysql介绍,msql的访问语句只需换个前缀即可(特殊情况另行说明). 注意:mSQL与MySQL访问函数都需要有相应的权限才能运行.
(1)mysql_connect(主机,用户名,口令); 返回一个连接号. 注意:mysql各用户的口令可以随该用户所在机器IP地址不同而改变. 另外,mSQL没有用户名机制,所以msql_connect只需要一个主机参数. 主机可以是IP地址或域名.
(2)mysql_create_db(数据库名);
(3)mysql_select_db(数据库名,连接号); 连接一个数据库.
(4)mysql_query(SQL语句,连接号); 如果SQL语句是select,则返回一个结果号.否则返回的值可以不理会. 如果失败,返回false.
(5)mysql_fetch_array(结果号); 取出下一行,返回一个数组.可以用数字下标访问(第一个字段是下标 0),也可以用字符串下标访问(即使用各字段名). 如已取了最后一行,返回false.
(6)mysql_fetch_field(结果号,[字段序号]); 如无字段序号,取下一个字段. 返回一个哈希表,下标有: name,table,max_length,not_null,primary_key,unique_key, multiple_key,numeric,blob,type,unsigned,zerofill 各下标的意思应该比较明白了.
(7)mysql_num_rows(结果号);mysql_num_fields(结果号);
(8)mysql_free_result(结果号);
(9)mysql_list_dbs();mysql_list_tables(数据库名);
(10)mysql_close(连接号);
(11)mysql_pconnect(主机,用户名,口令); 与mysql_connect完全相似,但建立一个"永久连接",该连接一经建立永不关闭, 即使使用mysql_close函数或程序执行完毕也不关闭.下一次试图建立永久连接时,系统 如发现已存在一个永久连接,则直接返回该连接号而不重新创建.
还有很多mSQL与MySQL函数,不一一介绍了.
|