按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!
如果返回值被使用在一个INT 上下文,或所有的参数都是整数值,他们作为整数比较。
如果返回值被使用在一个FLOAT 上下文,或所有的参数是实数值,他们作为实数比较。
如果任何参数是一个大小敏感的字符串,参数作为大小写敏感的字符串被比较。
在其他的情况下,参数作为大小写无关的字符串被比较。
mysql》 select LEAST(2;0);
…》 0
mysql》 select LEAST(34。0;3。0;5。0;767。0);
…》 3。0
mysql》 select LEAST(〃B〃;〃A〃;〃C〃);
…》 〃A〃
在MySQL 3。22。5 以前的版本,你可以使用MIN()而不是LEAST。
GREATEST(X;Y;。。。)
返回最大(最大值)的参数。参数使用与LEAST 一样的规则进行比较。
mysql》 select GREATEST(2;0);
…》 2
mysql》 select GREATEST(34。0;3。0;5。0;767。0);
…》 767。0
mysql》 select GREATEST(〃B〃;〃A〃;〃C〃);
…》 〃C〃
在MySQL 在 3。22。5 以前的版本; 你能使用MAX()而不是GREATEST。
(8 )字符串函数
对于针对字符串位置的操作,第一个位置被标记为1。
MySQL 根据上下文自动变换数字为字符串,并且反过来也如此:
mysql》 SELECT 1+〃1〃;
…》 2
CONCAT(str1;str2;。。。)
返回来自于参数连结的字符串。如果任何参数是NULL,返回NULL。可以有超过2 个的参数。一个数字参数被
变换为等价的字符串形式。
mysql》 select CONCAT('My'; 'S'; 'QL');
…》 'MySQL'
mysql》 select CONCAT('My'; NULL; 'QL');
…》 NULL
mysql》 select CONCAT(14。3);
PHP 讲义 第 74 页 共 90 页
…………………………………………………………Page 75……………………………………………………………
…》 '14。3'
mysql》 SELECT CONCAT(2;' test');
…》 '2 test'
LEFT(str;len)
返回字符串str 的最左面len 个字符。
mysql》 select LEFT('foobarbar'; 5);
…》 'fooba'
RIGHT(str;len)
返回字符串str 的最右面len 个字符。
mysql》 select RIGHT('foobarbar'; 4);
…》 'rbar'
SUBSTRING(str;pos;len)
MID(str;pos;len)
从字符串str 返回一个len 个字符的子串,从位置pos 开始。
mysql》 select SUBSTRING('123456789123456';5;6);
…》 '567891'
LTRIM(str)
返回删除了其前置空格的字符串str 。
mysql》 select LTRIM(' barbar');
…》 'barbar'
RTRIM(str)
返回删除了其尾部空格的字符串str 。
mysql》 select RTRIM('barbar ');
…》 'barbar'
TRIM(str)
返回去处了首尾空格的字符串str 。
mysql》 select TRIM(' bar ');
…》 'bar'
SPACE(N)
返回由N 个空格字符组成的一个字符串。
mysql》 select SPACE(6);
…》 ' '
REPEAT(str;count)
返回由重复countTimes 次的字符串str 组成的一个字符串。如果count select REPEAT('MySQL'; 3);
…》 'MySQLMySQLMySQL'
LCASE(str)
LOWER(str)
返回字符串str,根据当前字符集映射(缺省是ISO…8859…1 Latin1)把所有的字符改变成小写。
mysql》 select LCASE('ABCDEFG');
…》 'abcdefg'
UCASE(str)
UPPER(str)
返回字符串str,根据当前字符集映射(缺省是ISO…8859…1 Latin1)把所有的字符改变成大写。
mysql》 select UCASE(' abcdefg ');
…》 ' ABCDEFG '
PHP 讲义 第 75 页 共 90 页
…………………………………………………………Page 76……………………………………………………………
LOAD_FILE(file_name)
读入文件并且作为一个字符串返回文件内容。文件必须在服务器上,你必须指定到文件的完整路径名,而且你必
须有file 权限。文件必须所有内容都是可读的并且小于 max_allowed_packet。如果文件不存在或由于上面原因
之一不能被读出,函数返回NULL。
mysql》 UPDATE table_name
SET blob_column=LOAD_FILE(〃/tmp/picture〃)
WHERE id=1;
(9)日期和时间函数
NOW()
SYSDATE()
CURRENT_TIMESTAMP
以'YYYY…MM…DD HH:MM:SS'或YYYYMMDDHHMMSS 格式返回当前的日期和时间,取决于函数是在一个字符
串还是在数字的上下文被使用。
mysql》 select NOW();
…》 '1997…12…15 23:50:26'
mysql》 select NOW() + 0;
…》 19971215235026
CURDATE()
CURRENT_DATE
以'YYYY…MM…DD'或YYYYMMDD 格式返回今天日期值,取决于函数是在一个字符串还是数字上下文被使用。
mysql》 select CURDATE();
…》 '1997…12…15'
mysql》 select CURDATE() + 0;
…》 19971215
CURTIME()
CURRENT_TIME
以'HH:MM:SS'或HHMMSS 格式返回当前时间值,取决于函数是在一个字符串还是在数字的上下文被使用。
mysql》 select CURTIME();
…》 '23:50:26'
mysql》 select CURTIME() + 0;
…》 235026
…》 10
(10)分组计算函数
这些函数,常常是与GROUP BY 子句一起使用的函数,作用是对聚合在组内的行,进行计算。
如果在不包含GROUP BY 子句的一个语句中使用聚合函数,它等价于聚合所有行。
COUNT(expr)
返回由一个SELECT 语句检索出来的行的非NULL 值的数目。
mysql》 select student。student_name;COUNT(*)
from student;course
where student。student_id=course。student_id
GROUP BY student_name;
COUNT(*)在它返回的检索出来的行数目上有些不同,不管他们是否包含NULL 值。如果SELECT 从一个表检索,
或没有检索出其他列并且没有WHERE 子句,COUNT(*)被优化以便快速地返回。例如:
mysql》 select COUNT(*) from student;
COUNT(DISTINCT expr;'expr。。。')
返回一个无重复值的数目。
mysql》 select COUNT(DISTINCT results) from student;
PHP 讲义 第 76 页 共 90 页
…………………………………………………………Page 77……………………………………………………………
在MySQL 中,你可以通过给出一个表达式列表以得到不同的表达式组合的数目。
AVG(expr)
返回expr 的平均值。
mysql》 select student_name; AVG(test_score)
from student
GROUP BY student_name;
MIN(expr)
MAX(expr)
返回expr 的最小或最大值。MIN()和MAX()可以有一个字符串参数;在这种的情况下,他们返回最小或最大的字
符串值。
mysql》 select student_name; MIN(test_score); MAX(test_score)
from student
GROUP BY student_name;
SUM(expr)
返回expr 的和。注意,如果返回的集合没有行,它返回NULL !
第三节 实验四 MySQL 实验
1。MySQL 基本命令练习
(1)准备数据
在MS…DOS 或命令提示符下,进入MySQL 安装目录bin
键入命令mysql 回车,连接成功后键入以下简单命令,在test 数据库中建立测试表abc,并插入示例数据。
具体步骤和相应命令如下:
①use test; (回车)'说明:打开名为test 的数据库'
Database changed (MySQL 服务器返回的结果)
②create table abc(a varchar(10);b varchar(10);c varchar(10)); (回车)'说明:在test 数据库中建立测试表abc'
Query OK; 0 rows affected (0。05 sec) (MySQL 服务器返回的结果)
③desc abc; (回车)'说明:显示表abc 的结构'
(下面为MySQL 服务器返回的结果)
+…………………+…………………………………+………………+……………+………………………+………………………+………………………+
| Field | Type | Null | Key | Default | Extra |
+…………………+…………………………………+………………+……………+………………………+…………………+………………………………+
| a | varchar(10) | YES | | NULL | |
| b | varchar(10) | YES | | NULL | |
| c | varchar(10) | YES | | NULL | |
+…………………+…………………………………+………………+……………+………………………+………………………+…………………………+
3 rows in set (0。06 sec)
④select * from abc; (回车)'说明:查询表abc 中的数据'
Empty set (0。11 sec) '说明:表abc 中无数据'
⑤insert into abc values('a1';'b1';'c1'); (回车)'说明:在表abc 中插入第一行数据'
Query OK; 1 row affected (0。05 sec)
⑥insert into abc values('a2';'b2';'c2'); (回车)'说明:在表abc 中插入第二行数据'
Query OK; 1 row affected (0。05 sec)
⑦insert into abc values('a3';'b3';'c3'); (回车)'说明:在表abc 中插入第三行数据'
Query OK; 1 row affected (0。05 sec)
select * from abc;