PHP 和 MySQL 基础教程(四)

MySQL 中的 SQL 对于 MySQL ,第一件你必得牢记的是它的每一行命令都以用分号
(;卡塔尔国 作为完成的,但……未有完全绝没有错事,在那个时候也是相似。
前面小编早就讲到,当一行 MySQL 被插入在 PHP
代码中时,最佳把后边的分号省略掉,比方: mysql_query (“INSERT INTO
tablename (first_name, last_name) VALUES ($first_name, $last_澳门新浦京8455com,name卡塔尔国”State of Qatar; 那是因为 PHP 也是以分行作为一行的终结的,额外的子公司不时会让 PHP
的语法分析器搞不晓得,所以照旧省略掉的好。在此种情况下,尽管简易了子集团,可是PHP 在实行 MySQL 命令时会自动的帮你加上的。
其它还应该有三个绝不加分号的状态。当你想把要字段的竖者排列展现下来,并非像平常的那么横着排列时,你能够用
G 来终结一行 SQL 语句,这个时候就用不上分号了,举例: SELECT * FROM PENPALS
WHERE USER_ID = 1G TEXT、DATE、和 SET 数据类型 作 者 : 扬眉 编写翻译本文点击次数:114 MySQL 数据表的字段必得有定义叁个数据类型。那有大约 25
种接纳,大多数都以直接明了的,就相当的少废话了。但有多少个有必要提一下。
TEXT 不是一种数据类型,即便恐怕某些书上是那般说的。它实质上应该是“ LONG
VARCHACRUISER ”只怕“ MEDIUMTEXT ”。 DATE 数据类型的格式是 YYYY-MM-DD ,例如:
1999-12-08 。你能够相当轻松的用 date 函数来赢得这种格式的脚下系统时间:
date(“Y-m-d”卡塔尔 并且,在 DATA 数据类型之间能够作减法,取得相差的光下雨天数:
$age = ($current_date – $birthdate卡塔尔; 集合 SET
是二个管用的数据类型,它和枚举 ENUM 有一点相近,只但是是 SET
能够保留三个值而 ENUM 只可以保留八个值而已。并且, SET 类型最八只能有 六十三个约定的值,而 ENUM 类型却可以管理最多 65,5三19个预约义的值。而一旦急需有超越 六16个值的集纳,该咋做吧?这个时候就供给定义两个汇聚来同盟解决这么些主题材料了。
通配符 SQL 的同配符有三种:“ * ”和“ %
”。分别用在分歧的动静下。比如:如若您想见见数据库的具有内容,能够像这么来询问:
SELECT * FROM dbname WHERE USER_ID LIKE %;
那儿,五个通配符都被用上了。他们代表一致的意味 ??
都是用来合作任何的字符串,但是她们用在差别的前后文中。“ *
”用来相称字段名,而“ % ”用来相配字段值。其余一个不易于引起注意的地点是“
% ”通配符供给和 LIKE 关键字一齐使用。 还应该有三个通配符,正是下划线“ _
”,它意味着的意趣和方面分裂,是用来合作任何单个的字符的。 NOT NULL
和空记录 作 者 : 扬眉 编写翻译 本文点击次数:114
倘诺客商在还未填任何事物的图景下按了 submit
按键,会怎么着呢?借使您真的须要四个值,那么能够用客商端脚本可能服务器端脚本来进行数据印证,那点在近来早就说过了。可是,在数据库中却是允许有的字段被空出来怎么样也不填。对该类纪录,
MySQL 就要为之实行一些业务: 插入值 NULL ,那是缺省的操作。
假若你在字段定义中为之注解了 NOT NULL , MySQL
将把那个字段空出来什么东西也不填。 对于八个 ENUM
枚举类型的字段,假诺您为之证明了 NOT NULL , MySQL
将把枚举集的第三个值插入到字段中。也便是说, MySQL
把枚举集的率先个值作为这一个枚举类型的缺省值。 贰个值为 NULL
的纪录和八个空纪录是有一点点组其他。 %
通配符能够相配空纪录,不过却不可能相配 NULL
纪录。在好何时候,这种不一致会形成一些奇怪的后果。就自己的资历来说,任何字段都应该阐明为
NOT NULL 。那样下边包车型客车 SELECT 查询语句就能够平常运行了: if (!$CITY)
{$CITY = “%”;} $selectresult = mysql_query (“SELECT * FROM dbname
WHERE FIRST_NAME = 柳 AND LAST_NAME = 如风 AND CITY LIKE $CITY “State of Qatar;
在第一行中,假如顾客未有一点名一个 CITY 值,那么就能够用通配符 % 来代入 CITY
变量,那样找出时就能够把其他的 CITY 值都考虑进来,以至席卷那个 CITY
字段为空的纪要。 可是假如有局地纪录,它的 CITY 字段值是 NULL
,那个时候难题就应际而生了。上边的询问是不能找到这几个字段的。难题的叁个解决办法能够是这么:
if (!$CITY) {$CITY = “%”;} $selectresult = mysql_query (“SELECT * FROM
dbname WHERE FIRST_NAME = 柳 AND LAST_NAME = 如风 AND (CITY LIKE $CITY
OPAJERO CITY IS NULL卡塔尔(قطر‎ “卡塔尔(قطر‎; 注意在查找 NULL 时,必得用“ IS ”关键字,而 LIKE
时不会健康干活的。
在结尾要涉及的是,若是您在步向可能校正多个新的字段早先,数据库中早原来就有了一些笔录了,这个时候新参与的字段在原来的记录中的值,可能是
NULL ,也也许为空。这也终归 MySQL 的一个 Bug 吧,所以在此种情形下,使用
SELECT 查询要特地的小心。

You can leave a response, or trackback from your own site.

Leave a Reply

网站地图xml地图