⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mysql 语言参考.txt

📁 大量Delphi开发资料
💻 TXT
📖 第 1 页 / 共 5 页
字号:
mysql> SELECT ROUND(1.58);
        -> 2
mysql> SELECT ROUND(1.298, 1);
        -> 1.3
mysql> SELECT ROUND(1.298, 0);
        -> 1

注意,当参数在两个整数之间时, ROUND() 的行为取决于 C 库的实现。某些取整到最近的偶数,总是向下取,总是向上取,也可能总是接近于零。如果你需要某种取整类型,应该使用一个明确定义的函数比如 TRUNCATE() 或 FLOOR() 代替。 

DIV 
整除。类似于 FLOOR(),但是它可安全地用于 BIGINT 值。 
mysql> SELECT 5 DIV 2
	-> 2

DIV 在 MySQL 4.1.0 中新加入。 

EXP(X) 
返回值 e (自然对数的底) 的 X 次方: 
mysql> SELECT EXP(2);
        -> 7.389056
mysql> SELECT EXP(-2);
        -> 0.135335

LN(X) 
返回 X 的自然对数: 
mysql> SELECT LN(2);
        -> 0.693147
mysql> SELECT LN(-2);
        -> NULL

这个函数在 MySQL 4.0.3 被新加入。在 MySQL 中,它是 LOG(X) 的同义词。 

LOG(X) 
LOG(B,X) 
如果以一个参数调用,它返回 X 的自然对数: 
mysql> SELECT LOG(2);
        -> 0.693147
mysql> SELECT LOG(-2);
        -> NULL

如果以两个参数调用,这个函数返回 X 任意底 B 的对数: 
mysql> SELECT LOG(2,65536);
        -> 16.000000
mysql> SELECT LOG(1,100);
        -> NULL

任意底选项在 MySQL 4.0.3 中被加入。LOG(B,X) 等价于 LOG(X)/LOG(B)。 

LOG2(X) 
返回 X 的以 2 为底的对数: 
mysql> SELECT LOG2(65536);
        -> 16.000000
mysql> SELECT LOG2(-100);
        -> NULL

LOG2() 通常可以用于计数出一个数字需要多少个比特位用于存储它。这个函数在 MySQL 4.0.3 中被添加。在更早的版本中,可以使用 LOG(X)/LOG(2) 来代替它。 

LOG10(X) 
返回 X 以 10 为底的对数: 
mysql> SELECT LOG10(2);
        -> 0.301030
mysql> SELECT LOG10(100);
        -> 2.000000
mysql> SELECT LOG10(-100);
        -> NULL

POW(X,Y) 
POWER(X,Y) 
返回 X 的 Y 幂: 
mysql> SELECT POW(2,2);
        -> 4.000000
mysql> SELECT POW(2,-2);
        -> 0.250000

SQRT(X) 
返回 X 的非负平方根: 
mysql> SELECT SQRT(4);
        -> 2.000000
mysql> SELECT SQRT(20);
        -> 4.472136

PI() 
返回 PI 值(圆周率)。缺少显示 5 位小数,但是在 MySQL 内部,为 PI 使用全部的双精度。 
mysql> SELECT PI();
        -> 3.141593
mysql> SELECT PI()+0.000000000000000000;
        -> 3.141592653589793116

COS(X) 
返回 X 的余弦,在这里,X 以弧度给出: 
mysql> SELECT COS(PI());
        -> -1.000000

SIN(X) 
返回 X 的正弦,在这里,X 以弧度给出: 
mysql> SELECT SIN(PI());
        -> 0.000000

TAN(X) 
返回 X 的正切,在这里,X 以弧度给出: 
mysql> SELECT TAN(PI()+1);
        -> 1.557408

ACOS(X) 
返回 X 的反余弦,更确切地说,返回余弦值为 X 的值。如果 X 不在 -1 到 1 之间的范围内,返回 NULL: 
mysql> SELECT ACOS(1);
        -> 0.000000
mysql> SELECT ACOS(1.0001);
        -> NULL
mysql> SELECT ACOS(0);
        -> 1.570796

ASIN(X) 
返回 X 的反正弦,更确切地说,返回正弦值为 X 的值。如果 X 不在 -1 到 1 之间的范围内,返回 NULL: 
mysql> SELECT ASIN(0.2);
        -> 0.201358
mysql> SELECT ASIN('foo');
        -> 0.000000

ATAN(X) 
返回 X 的反正切, 更确切地说,返回正切值为 X 的值: 
mysql> SELECT ATAN(2);
        -> 1.107149
mysql> SELECT ATAN(-2);
        -> -1.107149

ATAN(Y,X) 
ATAN2(Y,X) 
返回两个变量 X 和 Y 的反正切。它类似于计算 Y / X 的反正切,除了两个参数的符号用于决定结果的象限: 
mysql> SELECT ATAN(-2,2);
        -> -0.785398
mysql> SELECT ATAN2(PI(),0);
        -> 1.570796

COT(X) 
返回 X 的余切: 
mysql> SELECT COT(12);
        -> -1.57267341
mysql> SELECT COT(0);
        -> NULL

RAND() 
RAND(N) 
返回一个范围在 0 到 1.0 之间的随机浮点值。如果一个整数参数 N 被指定,它被当做种子值使用(用于产生一个可重复的数值): 
mysql> SELECT RAND();
        -> 0.9233482386203
mysql> SELECT RAND(20);
        -> 0.15888261251047
mysql> SELECT RAND(20);
        -> 0.15888261251047
mysql> SELECT RAND();
        -> 0.63553050033332
mysql> SELECT RAND();
        -> 0.70100469486881

在一个 ORDER BY 子句中,不可以使用 RAND() 值使用一个列,因为 ORDER BY 将多次重复计算列。从 MySQL 3.23 开始,你可以使用:SELECT * FROM table_name ORDER BY RAND(),这有利于得到一个来自 SELECT * FROM table1,table2 WHERE a=b AND c<d ORDER BY RAND() LIMIT 1000 的集合中的随机样本。 注意,在一个 WHERE 子句中的 RAND() 将在每次 WHERE 执行时被重新计算。 RAND() 并不是预期完美的随机数发生器,但是可以代替做为产生特别的随机数一个快速的方法,这样便于在两个不同平台下的同一 MySQL 版本间移动。 

LEAST(X,Y,...) 
有两个或更多个参数,返回最小(最小值)的参数。参数使用下列规则进行比较: 
如果返回值用于一个 INTEGER 语境,或所有的参数是整数值,它们作为整数比较。 
如果返回值用于一个 REAL 语境,或所有的参数均是实数值,它们作为实数被比较。 
如果任何一个参数是字母大小写敏感的,参数作为大小写敏感的字符串进行比较。 
在其它情况下,参数做为忽略大小写的字符中进行比较: 
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。 

DEGREES(X) 
将参数 X 从弧度转换为角度,然后返回: 
mysql> SELECT DEGREES(PI());
        -> 180.000000

RADIANS(X) 
将参数 X 从角度转换为弧度,然后返回: 
mysql> SELECT RADIANS(90);
        -> 1.570796

TRUNCATE(X,D) 
将数值 X 截到 D 个小数,然后返回。如果 D 为 0,结果将不包含小数点和小数部分: 
mysql> SELECT TRUNCATE(1.223,1);
        -> 1.2
mysql> SELECT TRUNCATE(1.999,1);
        -> 1.9
mysql> SELECT TRUNCATE(1.999,0);
        -> 1
mysql> SELECT TRUNCATE(-1.999,1);
        -> -1.9

从 MySQL 3.23.51 开始,所有数字被四舍五入到零。 如果 D 是负数,那么数字的整个部分被对准零位输出: 
mysql> SELECT TRUNCATE(122,-2);
       -> 100

注意, 十进值小数在计算机中通常不以精确数字存储,而是双精度型的值,你可能会被下列结果所愚弄: 
mysql> SELECT TRUNCATE(10.28*100,0);
       -> 1027

上面结果的发生是因为 10.28 实际上是以某些像 10.2799999999999999 的形式被存储的。 
6.3.4 日期和时间函数

对于每个类型的值范围以及日期和时间值有效指定格式,请查看章节 6.2.2 Date 和 Time 类型。 

这里是一个使用日期函数的例子。下面的查询选择所有 date_col 值在最后 30 天内的记录。 

mysql> SELECT something FROM tbl_name
           WHERE TO_DAYS(NOW()) - TO_DAYS(date_col) <= 30;

DAYOFWEEK(date) 
返回 date 的星期索引(1 = Sunday, 2 = Monday, ... 7 = Saturday)。索引值符合 ODBC 的标准。 
mysql> SELECT DAYOFWEEK('1998-02-03');
        -> 3

WEEKDAY(date) 
返回 date 的星期索引(0 = Monday, 1 = Tuesday, ... 6 = Sunday): 
mysql> SELECT WEEKDAY('1998-02-03 22:23:00');
        -> 1
mysql> SELECT WEEKDAY('1997-11-05');
        -> 2

DAYOFMONTH(date) 
返回 date 是一月中的第几天,范围为 1 到 31: 
mysql> SELECT DAYOFMONTH('1998-02-03');
        -> 3

DAYOFYEAR(date) 
返回 date 是一年中的第几天,范围为 1 到 366: 
mysql> SELECT DAYOFYEAR('1998-02-03');
        -> 34

MONTH(date) 
返回 date 中的月份,范围为 1 到 12: 
mysql> SELECT MONTH('1998-02-03');
        -> 2

DAYNAME(date) 
返回 date 的星期名: 
mysql> SELECT DAYNAME("1998-02-05");
        -> 'Thursday'

MONTHNAME(date) 
返回 date 的月份名: 
mysql> SELECT MONTHNAME("1998-02-05");
        -> 'February'

QUARTER(date) 
返回 date 在一年中的季度,范围为 1 到 4: 
mysql> SELECT QUARTER('98-04-01');
        -> 2

WEEK(date) 
WEEK(date,first) 
对于星期日是一周中的第一天的场合,如果函数只有一个参数调用,返回 date 为一年的第几周,返回值范围为 0 到 53 (是的,可能有第 53 周的开始)。两个参数形式的 WEEK() 允许你指定一周是否以星期日或星期一开始,以及返回值为 0-53 还是 1-52。 这里的一个表显示第二个参数是如何工作的: 值  含义  
0  一周以星期日开始,返回值范围为 0-53  
1  一周以星期一开始,返回值范围为 0-53  
2  一周以星期日开始,返回值范围为 1-53  
3  一周以星期一开始,返回值范围为 1-53 (ISO 8601)  

mysql> SELECT WEEK('1998-02-20');
        -> 7
mysql> SELECT WEEK('1998-02-20',0);
        -> 7
mysql> SELECT WEEK('1998-02-20',1);
        -> 8
mysql> SELECT WEEK('1998-12-31',1);
        -> 53

注意,在版本 4.0 中,WEEK(#,0) 被更改为匹配 USA 历法。 注意,如果一周是上一年的最后一周,当你没有使用 2 或 3 做为可选参数时,MySQL 将返回 0: 
mysql> SELECT YEAR('2000-01-01'), WEEK('2000-01-01',0);
        -> 2000, 0
mysql> SELECT WEEK('2000-01-01',2);
        -> 52

你可能会争辩说,当给定的日期值实际上是 1999 年的第 52 周的一部分时,MySQL 对 WEEK() 函数应该返回 52。我们决定返回 0 ,是因为我们希望该函数返回“在指定年份中是第几周”。当与其它的提取日期值中的月日值的函数结合使用时,这使得 WEEK() 函数的用法可靠。 如果你更希望能得到恰当的年-周值,那么你应该使用参数 2 或 3 做为可选参数,或者使用函数 YEARWEEK() : 
mysql> SELECT YEARWEEK('2000-01-01');
        -> 199952
mysql> SELECT MID(YEARWEEK('2000-01-01'),5,2);
        -> 52

YEAR(date) 
返回 date 的年份,范围为 1000 到 9999: 
mysql> SELECT YEAR('98-02-03');
        -> 1998

YEARWEEK(date) 
YEARWEEK(date,first) 
返回一个日期值是的哪一年的哪一周。第二个参数的形式与作用完全与 WEEK() 的第二个参数一致。注意,对于给定的日期参数是一年的第一周或最后一周的,返回的年份值可能与日期参数给出的年份不一致: 
mysql> SELECT YEARWEEK('1987-01-01');
        -> 198653

注意,对于可选参数 0 或 1,周值的返回值不同于 WEEK() 函数所返回值(0), WEEK() 根据给定的年语境返回周值。 
HOUR(time) 
返回 time 的小时值,范围为 0 到 23: 
mysql> SELECT HOUR('10:05:03');
        -> 10

MINUTE(time) 
返回 time 的分钟值,范围为 0 到 59: 
mysql> SELECT MINUTE('98-02-03 10:05:03');
        -> 5

SECOND(time) 
返回 time 的秒值,范围为 0 到 59: 
mysql> SELECT SECOND('10:05:03');

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -