仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 3728|回复: 19

[学习教程] MYSQL教程之MySQL数据库函数详解(3)

[复制链接]
金色的骷髅 该用户已被删除
发表于 2015-2-16 00:23:20 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
MySQL采用双重授权(Dual Licensed),它们是GPL和MySQL AB制定的商业许可协议。作者:随想 OSO奥索 (9) string MySQL_error(int [link_id]);
关于给定的毗连,前往含有比来前往形态的与MySQL相干的函数的毛病动静字符串。空值意味着未呈现毛病。

<?php
$link=mysql_pconnect("localhost","sunsoft","suixiang") or die("Could not connect");
PRint("Connected successfully");
$query="SELECT * FROM president";
$result=mysql_query($query) or die("query failed,error message=".mysql_error());
?>

(10)array mysql_fetch_array(int result, int [result_typ]);
本函式用来将查询了局 result 拆到阵列变数中。若 result 没有材料,则传回 false 值。而本函式可以说是 mysql_fetch_row() 的增强函式,除可以将传回列及数字索引放入阵列以外,还可以将文字索引放入阵列中。若是好几个传回栏位都是不异的文字称号,则最初一个置入的栏位无效,处理办法是利用数字索引或为这些同名的栏位 (column) 取别号 (alias)。值得注重的是利用本函式的处置速度其实不会比mysql_fetch_row() 函式慢,要用哪一个函式仍是看利用的需求决意。参数 result_typ 是一个常数值,有以下几种常数 MYSQL_ASSOC、MYSQL_NUM 与 MYSQL_BOTH。
利用典范


<?php
$link=mysql_pconnect("localhost","sunsoft","suixiang") or die("Could not connect");
mysql_select_db("stamp_db") or die("Could not select database");
$query="SELECT last_name,first_name FROM president";
$result=mysql_query($query) or die("Query failed");
while($row=mysql_fetch_array($result))
{
printf("%s %s<BR>
",$row[0],$row[1]);
printf("%s %s<BR>
",$row["last_name"],$row["first_name"]);
}
mysql_free_result($result);

?>


(11) object mysql_fetch_field(int result [,int col_num]);
前往了局集中给定列的相干元数据信息,假如没有如许的列,则前往假。假如省略col_num,则对mysql_fetch_field()的后继挪用前往了局集后续列的信息。假如不再有残剩的列。则前往值为假。假如指定了col_num,则其取值局限为0到mysql_num_fields()-1。在此情形下,mysql_num_fields()前往给定列的相干信息,假如col_num超越局限,前往假。
<?php
$link=mysql_pconnect("localhost","sunsoft","suixiang") or die("Could not connect");
mysql_select_db("stamp_db") or die("Could not select database");
$query="SELECT * FROM president";
$result=mysql_query($query) or die("Query failed");
for($i=0;$i<mysql_num_fields($result);$i++)
{
printf("information for column %d:<BR>
",$i);
$meta=mysql_fetch_field($result);
if(!$meta)
{
print("No information available<BR>
");
continue;
}
print("<PRE>
");
printf("blob: %s
",$meta->blob);
printf("max_length: %s
",$meta->max_length);
printf("multiple_key: %s
",$meta->multiple_key);
printf("name: %s
",$meta->name);
printf("not_null: %s
",$meta->not_null);
printf("numeric: %s
",$meta->numeric);
printf("primary_key: %s
",$meta->primary_key);
printf("table: %s
",$meta->table);
printf("type: %s
",$meta->type);
printf("unique_key: %s
",$meta->unique_key);
printf("unsigned: %s
",$meta->unsigned);
printf("zerofill: %s
",$meta->zerofill);
print("</PRE>
");
}
?>

(12) array mysql_fetch_lengths(int result);
本函式将 mysql_fetch_row() 处置过的最初一列材料的各栏位材料最大长度放在阵列变数当中。若履行掉败则传回 false 值。传回阵列的第一笔材料索引值是 0。

<?php
$link=mysql_pconnect("localhost","sunsoft","suixiang") or die("Could not connect");
mysql_select_db("stamp_db") or die("Could not select database");
$query="SELECT * FROM president" or die("Query failed");
$row_num=0;
while(mysql_fetch_row($result))
{
++$row_num;
printf("Lengths of values in row %d:<BR>
",$row_num);
$len=mysql_fetch_lengths($result);
if(!$len)
{
print("No information available<BR>
");
break;
}
print("<PRE>
");
for($i=0;$i<mysql_num_fields($result);$i++)
printf("Column %d: %s
",$i,$len[$i]);
print("</PRE>
");
}
?>
而且其固有的弹性使得它易于扩展以处理不断增长的需求,或当需求MySQL学习教程减弱时缩减规模。
蒙在股里 该用户已被删除
发表于 2015-2-16 00:49:36 | 显示全部楼层
只能告诉你,学好数据库语言和原理,多见识几种数据库软件,比一棵树上吊死要好。
莫相离 该用户已被删除
发表于 2015-3-7 01:11:50 | 显示全部楼层
比如,MicrosoftSQLServer2008的某一个版本可以满足现在的这个业务的需要,而且价格还比Oracle11g要便宜,那么这一产品就是适合的。
老尸 该用户已被删除
发表于 2015-3-11 12:06:47 | 显示全部楼层
你可以简单地认为适合的就是好,不适合就是不好。
变相怪杰 该用户已被删除
发表于 2015-3-17 20:10:23 | 显示全部楼层
可能有的朋友会抱怨集成的orderby,其实如果使用ranking函数,Orderby是少不了的。如果担心Orderby会影响效率,可以为orderby的字段建立聚集索引,查询计划会忽略orderby操作(因为本来就是排序的嘛)。
冷月葬花魂 该用户已被删除
发表于 2015-3-21 18:18:17 | 显示全部楼层
不好!如果出了错;不好调试;不好处理!其实web开发将代码分为3层:web层;业务逻辑层和数据访问层;一般对数据库的操作都在数据访问层来做;这样便于调试和维护!而且将来如果是换了数据库的话;你只需要改数据层的代码;其他层的基本可以不变!要是你在jsp中直接调用sql数据库;那么如果换了数据库呢?岂不都要改?如果报了异常呢?怎么做异常处理?
再现理想 该用户已被删除
发表于 2015-3-30 19:10:56 | 显示全部楼层
对于数据库来说,查询是数据库的灵魂,那么SQL查询效率究竟效率如何呢?下文将带对SQL查询的相关问题进行讨论,供您参考。
简单生活 该用户已被删除
发表于 2015-4-9 12:11:48 | 显示全部楼层
groupby子句可以将查询结果分组,并返回行的汇总信息Oracle按照groupby子句中指定的表达式的值分组查询结果。
第二个灵魂 该用户已被删除
发表于 2015-4-13 09:56:27 | 显示全部楼层
代替了原来VB式的错误判断。比Oracle高级不少。
山那边是海 该用户已被删除
发表于 2015-4-17 21:25:41 | 显示全部楼层
一个是把SQL语句写到客户端,可以使用DataSet进行加工;
深爱那片海 该用户已被删除
发表于 2015-4-18 22:15:54 | 显示全部楼层
多走走一此相关论坛,多看一些实例开发,多交流0经验,没什么的,我也是刚学没多久!加油
因胸联盟 该用户已被删除
发表于 2015-4-21 13:13:00 | 显示全部楼层
原来公司用过MYSQL自己也只是建个表写个SQL
兰色精灵 该用户已被删除
发表于 2015-4-24 11:17:27 | 显示全部楼层
对于微软系列的东西除了一遍遍尝试还真没有太好的办法
精灵巫婆 该用户已被删除
发表于 2015-6-12 18:31:29 | 显示全部楼层
是要和操作系统进行Socket通讯的场景。否则建议慎重!
愤怒的大鸟 该用户已被删除
发表于 2015-7-1 06:32:31 | 显示全部楼层
这是一个不错的新特性。虽然索引的附加字段没有索引键值效率高,但是相对映射到数据表中效率还是提高了很多。我做过试验,在我的实验环境中会比映射到表中提高30%左右的效率。
灵魂腐蚀 该用户已被删除
发表于 2015-7-10 10:23:36 | 显示全部楼层
SP4包括用于以下SQLServer2000组件的程序包:Database组件(下载文件:SQL2000-KB884525-SP4-x86.EXE)更新SQLServer2000的32位Database组件,包括数据库引擎、复制、客户端连接组件及工具。有关其他信息,请参阅ReadmeSql2k32Sp4.htm。AnalysisServices组件(下载文件:SQL2000.AS-KB884525-SP4-x86.EXE)更新SQLServer2000的32位AnalysisServices。
admin 该用户已被删除
发表于 2015-7-10 20:56:26 | 显示全部楼层
having子句的作用是筛选满足条件的组,即在分组之后过滤数据,条件中经常包含聚组函数,使用having条件显示特定的组,也可以使用多个分组标准进行分组。
分手快乐 该用户已被删除
发表于 2015-7-13 19:57:52 | 显示全部楼层
sqlserver的痛苦之处在于有用文档的匮乏,很多只是表明的东西
若天明 该用户已被删除
发表于 2015-7-14 01:11:33 | 显示全部楼层
可以动态传入参数,省却了动态SQL的拼写。
透明 该用户已被删除
发表于 2015-7-17 02:05:28 | 显示全部楼层
比如,MicrosoftSQLServer2008的某一个版本可以满足现在的这个业务的需要,而且价格还比Oracle11g要便宜,那么这一产品就是适合的。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-3-29 17:41

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表