MySQLMySQL 编程的6个紧要的技艺

**正文摘自同行说用户“春风拂面”分享的篇章,原文链接:http://codecloud.net/mysql-tips-2694.html,如涉及版权问题请及时联系小编!****
**

一、每一行命令都是用分号(;)作为完毕

对于MySQL,第一件你必须铭记的是它的每一行命令都是用分号(;)作为已毕的,但当一行MySQL被插入在PHP代码中时,最好把后边的分号省略掉,例如:


二、拔取关联数组存取查询结果

看下边的例证:

函数mysql_fetch_array()把询问结果的一行放入数组,可以而且用三种艺术引用,例如cust_id可以而且用上面三种办法:$row[“cust_id”]或者$row[0]。明显,前者的可读性要比后者好多了。

在多表连查中,如若多个列名字如出一辙,最好用别名分别:

列名的引用为:$row[“wname”]和$row[“rname”]

在指定表名和列名的情形下,只援引列名:

列名的引用为:$row[“region_id”]

聚拢函数的引用就是引用名:

列名的引用为:$row[“count(*)”]


三、TEXT、DATE、和SET数据类型

MySQL数据表的字段必须有定义一个数据类型。这有大体25种接纳,半数以上都是直接明了的,就不多废话了。但有多少个有必不可少提一下。

TEXT不是一种数据类型,尽管可能有些书上是那样说的。它实在应该是“LONG
VARCHAR”或者“MEDIUMTEXT”。

DATE数据类型的格式是YYYY-MM-DD,比如:1999-12-08。你可以很简单的用date函数来得到那种格式的脚下系统时间:date(“Y-m-d”)并且,在DATA数据类型之间可以作减法,获得相差的光阴天数:

集合SET是一个卓有成效的数据类型,它和枚举ENUM有点相似,只不过是SET可以保留四个值而ENUM只可以保留一个值而已。而且,SET类型最多只好够有64个约定的值,而ENUM类型却可以处理最多65,535个预订义的值。而假使须要有超出64个值的聚集,该怎么做吧,那时就须要定义多少个汇聚来
一起化解那个题材了。


四、用mysql_unbuffered_query()开发神速的本子

其一函数能用来替换mysql_query()函数,主要的区分就是mysql_unbuffered_query()执行完询问后立即再次回到,不需求拭目以待或者对数据库加锁。可是回去的行数不可能用mysql_num_rows()函数来检查,因为出口的结果集大小未知。


五、通配符

SQL的通配符有二种:“*”和“%”。分别用在不一样的景况下。例如:如若您想见到数据库的享有内容,能够像这么来询问:

此处,四个通配符都被用上了。他们表示同样的意味??都是用来合营任何的字符串,但是她们用在不相同的光景文中。“*”用来匹配字段名,而“%”用来
匹配字段值。别的一个不便于滋生注意的地点是“%”通配符须求和LIKE关键字一起利用。还有一个通配符,就是下划线“_”,它意味着的意思和地点分化,是
用来协作任何单个的字符的。


六、NOT NULL和空记录

假如用户在尚未填任何东西的情状下按了submit按钮,会怎样呢?若是你确实须要一个值,那么可以用客户端脚本或者服务器端脚本来进行数据表明。
可是,在数据库中却是允许部分字段被空出来什么也不填。对该类纪录,MySQL将要为之实践一些业务:插入值NULL,即缺省的操作。

要是你在字段定义中为之注解了NOT
NULL(在建立或者修改那些字段的时候),MySQL将把那么些字段空出来什么事物也不填。对于一个ENUM枚举类型的字段,即使您为之声明了NOT
NULL,MySQL将把枚举集的首先个值插入到字段中。也就是说,MySQL把枚举集的率先个值作为那个枚举类型的缺省值。

一个值为NULL的纪要和一个空纪录是有一些有别于的。%通配符可以匹配空纪录,然而却不能匹配NULL纪录。在少数时候,那种不一样会招致局地意想不
到的结局。就自我的经历而言,任何字段都应当注脚为NOT
NULL。那样许多的SELECT查询语句就可以正常运作了。注目的在于搜索NULL时,必须用“IS”关键字,而LIKE是不会正常办事的。

在终极要提到的是,若是你在进入或者涂改一个新的字段此前,数据库中一度有了一些记录了,那时新出席的字段在原先的纪录中的值,可能是NULL,也可能为空。那也总算MySQL的一个Bug吧,所以在那种气象下,使用SELECT查询要越发的小心。


团队支付了一款工程师、产品首席执行官必备神器【同行说】APP,找大牛、看最新最热干货,勾搭妹纸,快来同行说呢!

网站地图xml地图