是取决于类型的最大可能尺寸。例如,一个 VARCHAR(10)列能保存最大长度为 10 个字符的一个字符串,实际
的存储需要是字符串的长度(L),加上1 个字节以记录字符串的长度。对于字符串"abcd",L 是4 而存储要求是5
个字节。
TEXT 类型需要1,2 ,3 或4 个字节来记录列值的长度,这取决于类型的最大可能长度。
5。用在查询中的运算符和函数
同PHP 等程序设计语言一样,MySQL 等许多DBMS 都有自己的数据类型(即列类型),运算符,语句结构,关
键字,以及函数。其中广泛用于 SELECT 和WHERE 子句中的函数,对程序员简化查询语句的构造,提高查询
计算的效率,起着非常重要的作用。这些函数将一些复杂的查询计算操作用函数封装起来,由MySQL 自己执行
计算,仅将结果返回给PHP 。
这些函数,涵盖了数学运算,字符串处理,逻辑运算,日期时间运算,比较运算,语句流程控制,分组汇总,排
序等许多方面的处理,下面介绍常用到的一些函数。
为简便起见,用…》表示执行查询后MySQL 返回的结果。
(1)强制运算
括号。使用它们来强制在一个表达式的计算顺序。
mysql》 select 1+2*3;
…》 7
mysql》 select (1+2)*3;
…》 9
(2 )算术运算
+ 加法
mysql》 select 3+5;
…》 8
以此类推:
减法
* 乘法
/ 除法
被零除产生一个NULL 结果:
mysql》 select 102/(1…1);
…》 NULL
(3)逻辑运算
所有的逻辑函数返回1 (TRUE )或0 (FALSE)。 NULL 被认为是假值。
NOT (! )逻辑非
PHP 讲义 第 70 页 共 90 页
…………………………………………………………Page 71……………………………………………………………
OR (||)逻辑或
AND (&&)逻辑与
(4 )比较运算符
比较操作得出值1 (TRUE )、0 (FALSE)或NULL 等结果。这些函数工作运用在数字和字符串上。
= 等于
不等于
!= 不等于
= 大于或等于
》 大于
mysql》 select 2 》 2;
…》 0
IS NULL 是否为空
IS NOT NULL 是否不为空
mysql》 select 1 IS NULL; 0 IS NULL; NULL IS NULL:
…》 0 0 1
expr BETWEEN min AND max
如果expr 对大于或等于min 且expr 是小于或等于max,BETWEEN 返回1,否则它返回0。
mysql》 select 1 BETWEEN 2 AND 3;
…》 0
mysql》 select 2 BETWEEN 2 AND "3";
…》 1
expr IN (value;。。。)
如果expr 是在IN 表中的任何值,返回1,否则返回0。如果所有的值是常数,那么所有的值根据expr 类型被计
算和排序,然后项目的搜索是用二进制的搜索完成。这意味着如果IN 值表全部由常数组成,IN 是很快的。如果
expr 是一个大小写敏感的字符串表达式,字符串比较以大小写敏感方式执行。
mysql》 select 2 IN (0;3;5;"wefwf");
…》 0
mysql》 select "wefwf" IN (0;3;5;"wefwf");
…》 1
expr NOT IN (value;。。。)
与NOT (expr IN (value;。。。))相同。
ISNULL(expr)
如果expr 是NULL,ISNULL()返回1,否则它返回0。
mysql》 select ISNULL(1+1);
…》 0
mysql》 select ISNULL(1/0);
…》 1
注意,使用=的NULL 的值比较总为假!
(5)字符串比较函数
通常,如果在字符串比较中的任何表达式是区分大小写的,比较以大小写敏感的方式执行。
expr LIKE pat tern'ESCAPE "escape…char"'
将expr 与模式字符串pattern 进行模式匹配。返回 1 (TRUE )或0 (FALSE)。用LIKE,你可以在模式中使用
下列2 个①% 匹配任何数目的字符,甚至零个字符
PHP 讲义 第 71 页 共 90 页
…………………………………………………………Page 72……………………………………………………………
②_ 精确匹配一个字符
mysql》 select "David!" LIKE "David_";
…》 1
mysql》 select "David!" LIKE "%D%v%";
…》 1
为了测试一个通配符的文字实例,用转义字符的加在字符前面。如果你不指定ESCAPE 字符,假定为“ ”:
% 匹配%字符
_ 匹配_字符
mysql》 select "David!" LIKE "David_";
…》 0
mysql》 select "David_" LIKE "David_";
…》 1
为了指定一个不同的转义字符,使用ESCAPE 子句:
mysql》 select "David_" LIKE "David|_" ESCAPE "|";
…》 1
LIKE 允许用在数字的表达式上!(这是MySQL 对ANSI SQL LIKE 的一个扩充。)
mysql》 select 10 LIKE "1%";
…》 1
expr NOT LIKE pattern 'ESCAPE "escape…char"'
与NOT (expr LIKE pattern'ESCAPE "escape…char"')相同。
(6 )控制流函数
IF(expr1;expr2;expr3)
如果expr1 是TRUE(expr10 且expr1NULL),那么IF()返回expr2,否则它返回expr3 。IF()返回一个数字
或字符串值,取决于它被使用的上下文。
mysql》 select IF(1》2;2;3);
…》 3
mysql》 select IF(1 "yes"
mysql》 select IF(strcmp("test";"test1");"yes";"no");
…》 "no"
expr1 作为整数值被计算,它意味着如果你正在测试浮点或字符串值,应该使用一个比较操作来做。
mysql》 select IF(0。1;1;0);
…》 0
mysql》 select IF(0。10;1;0);
…》 1
在上面的第一种情况中,IF(0。1)返回0,因为0。1 被变换到整数值; 导致测试IF(0)。这可能不是你期望的。在第
二种情况中,比较测试原来的浮点值看它是否是非零,比较的结果被用作一个整数。
CASE value WHEN 'pare…value' THEN result 'WHEN 'pare…value' THEN result 。。。' 'ELSE result'
END
CASE WHEN 'condition' THEN result 'WHEN 'condition' THEN result 。。。' 'ELSE result' END
第一个版本返回 result,其中value=pare…value。第二个版本中如果第一个条件为真,返回result。如果没
PHP 讲义 第 72 页 共 90 页
…………………………………………………………Page 73……………………………………………………………
有匹配的result 值,那么结果在ELSE 后的result 被返回。如果没有ELSE 部分,那么NULL 被返回。
mysql》 SELECT CASE 1 WHEN 1 THEN 〃one〃 WHEN 2 THEN 〃two〃 ELSE 〃more〃 END;
…》 〃one〃
mysql》 SELECT CASE WHEN 1》0 THEN 〃true〃 ELSE 〃false〃 END;
…》 〃true〃
mysql》 SELECT CASE BINARY 〃B〃 when 〃a〃 then 1 when 〃b〃 then 2 END;
…》 NULL
(7)数学函数
所有的数学函数在一个出错的情况下返回NULL。
ABS(X)
返回X 的绝对值。
SIGN(X)
返回参数的符号,为…1、0 或1,取决于X 是否是负数、零?
小说推荐
- JMS简明教程(PDF格式)
- -Page 1-JMS1.1规范中文版卫建军2007‐11‐22-Page 2
- 其他
- 最新章:第28章
- JSP入门教程(DOC格式)
- -Page 1-jsp 入门教程0.0.1版权(c 2008 叮咚老菜鸟叮咚对文档的任何问题或建议,请给叮咚发邮件或留言。QQ:475784337QQ 群:51239192MSN:lingirl6@hotmail.EMAIL:lingirl6@hotmail.2008-02-28 20:05:061
- 其他
- 最新章:第37章
- asp基础实用教程(DOC格式)
- 目 录一、关于ASP二、ASP的新功能三、创建ASP页四、使用脚本语言五、使用变量和常量六、使用集合七、ASP内建对象八、向浏览器发送内容九、包含文件十、访问数据库十一、调试ASP脚本十二、维护ASP应用程序的安全一、关于ASP Active Server Pages(ASP)是服务器端脚本编写环境
- 其他
- 最新章:第17章
- VC语言6.0程序设计从入门到精通
- -Page 1-Visual C 6.0 程序设计从入门到精通求是科技 王正军 编著
- 其他
- 最新章:第136章
- C语言实例教程(PDF格式)
- -Page 1-前 言Visual C+是开发运行于Windows 95和Windows NT环境下的Win32应用程序的可视化编程工具中最重要的成员之一,它为软件开发人员提供了完整的编辑、编译和调试工具和建立于Win32 API(ApplicationProgramming Interface)基
- 其他
- 最新章:第143章
- 软件工程实践者的思想(PDF格式)
- -Page 1-大 道 至 简—软件工程实践者的思想周爱民(Aimingoo 著-Page 2-序2004 年 11 月初爱民(Aimingoo)第一次把他的书稿给我,我翻看了一下,第一反应讲的是感想。这不错,在技
- 其他
- 最新章:第26章
- C语言游戏编程从入门到精通(PDF格式)
- -Page 1-Page 2-Page 3-Page 4-Page 5-Page 6-Page 7-Page 8-Page 9-Page 10-Page 11-Page 12-Page 13-Page 14
- 其他
- 最新章:第4章
- Java编程思想第4版[中文版](PDF格式)
- -Page 1-Page 2《Thinking In Java》中文版作者:Bruce Eckel主页:http/BruceEckel.编译:Trans Bot主页:http/memberease~transbot致谢-献给那些直到现在仍在孜孜不倦创造下一代计算机语言的人们!指导您利用万维网的语言进
- 其他
- 最新章:第295章
- 超级程序员
- 《超级程序员》作者:星若云第一章 毕业,北漂“为什么选择计算机这个专业“很多奇迹都是在计算机这个行业发生,你根本不知道,下一刻,什么技术会出现,什么人又成了世界首富“谈谈你对这个专业的看法,以及你的理想“我要做一名超级程序员,随心所欲,什么样的东西都能用程序来实现”简单的对话在一所大学的录音室里出现
- 都市言情
- 最新章:第472章