数据类型 | 解释 | 相应值的示例 |
INT, INTEGER | 32位整数。取值范围为-21亿到+21亿,如果是非符号数,值可以达到42亿,但这样做就不能包括负数 | 123,345 -2,000,000,000 |
BIGINT | 64位整数。取值范围为-9万亿到+9万亿或者非负的0到18万亿 | 9,000,000,000,000,000,000 -9,000,000,000,000,000,000 |
FLOAT | 32位浮点数。取值范围为1.7e38 to 1.7e38或者非负的0到3.4e38 | 0.00000000000002 17897.890790 -345.8908770 1.7e21 |
DOUBLE | 64位浮点数。取值范围接近无限(1.7e308) | 1.765e203 -1.765e100 |
DECIMAL(precision,scale) NUMERIC(precision,scale) | 定点数。存储情况取决于precision,能保存可能出现的数字范围。 NUMERIC通常用来保存重要的十进制数,例如现金 | 78979.00 -87.50 9.95 |
DATE | 日期类型,没有详述时间 | '1999-12-31' |
DATETIME | 日期和时间,时间精确到秒 | '1999-12-31 23:59:59' |
CHAR(length) | 定长字符串。值会被空白填充至制定长度,最大长度为255字节 | 'hello world ' |
VARCHAR(length) | 最大长度为64K的可变字符串 | 'Hello world' |
BLOB, TEXT | 最大64K长度,BLOB用来保存2进制数据,TEXT用来保存文本数据 | 任何能想象的内容 |
LONGBLOB, LONGTEXT | BLOB和TEXT的加长版本,存储能力达4GB | 任何能想象的内容,但比BLOB和TEXT能存放更大的长度 |
提示:在你的存储程序中适时使用“用户”变量,过度使用超出程序作用域的变量会导致你的程序非模块化并难于维护 |
操作符 | 描述 | 用例 |
+ | 加 | SET var1=2+2; à 4 |
- | 减 | SET var2=3-2; à 1 |
* | 乘 | SET var3=3*2; à 6 |
/ | 除 | SET var4=10/3; à 3.3333 |
DIV | 整除 | SET var5=10 DIV à3; 3 |
% | 模 | SET var6=10%3; à 1 |
操作符 | 描述 | 示例 | 示例结果 |
> | 是否大于 | 1>2 | False |
< | 是否小于 | 2<1 | False |
<= | 是否小于等于 | 2<=2 | True |
>= | 是否大于等于 | 3>=2 | True |
BETWEEN | 是否位于两个值之间 | 5 BETWEEN 1 AND 10 | True |
NOT BETWEEN | 是否不位于两个值之间 | 5 NOT BETWEEN 1 AND 10 | False |
IN | 值位于列表中 | 5 IN (1,2,3,4) | False |
NOT IN | 值不位于列表中 | 5 NOT IN (1,2,3,4) | True |
= | 等于 | 2=3 | False |
<>, != | 不等于 | 2<>3 | False |
<=> | Null安全等于(如果两个值均为Null返回TRUE) | NULL<=>NULL | True |
LIKE | 匹配简单模式 | "Guy Harrison" LIKE "Guy%" | True |
REGEXP | 匹配扩展正则表达式 | "Guy Harrison" REGEXP "[Gg]reg" | False |
IS NULL | 值为空 | 0 IS NULL | False |
IS NOT NULL | 值不为空 | 0 IS NOT NULL | True |
AND | TRUE | FALSE | NULL |
TRUE | TRUE | FALSE | NULL |
FALSE | FALSE | FALSE | NULL |
NULL | NULL | NULL | NULL |
OR | TRUE | FALSE | NULL |
TRUE | TRUE | TRUE | TRUE |
FALSE | TRUE | FALSE | NULL |
NULL | TRUE | NULL | NULL |
XOR | TRUE | FALSE | NULL |
TRUE | FALSE | TRUE | NULL |
FALSE | TRUE | FALSE | NULL |
NULL | NULL | NULL | NULL |
操作符 | 用途 |
| | OR |
& | AND |
<< | Shift bits to left |
>> | Shift bits to right |
~ | NOT or invert bits |
函数 | 描述 |
ABS(number) | 返回提供数字的绝对值。比方说, ABS(-2.3)=2.3. |
CEILING(number) | 返回下一个最大整数,比方说, CEILING(2.3)=3. |
CONCAT(string1[,string2,string3,...]) | 返回所有提供字符串的连接形式的值 |
CURDATE | 返回当前时间(不带时间) |
DATE_ADD(date,INTERVAL amount_type) | 给提供的时间值加上一个时间间隔并返回一个新时间。正确的形式有SECOND, MINUTE, HOUR, DAY, MONTH和YEAR |
DATE_SUB(date,INTERVAL interval_type) | 从提供的时间值上减去一个时间间隔并返回一个新的时间。正确的形式有SECOND, MINUTE, HOUR, DAY, MONTH和YEAR |
FORMAT(number,decimals) | 返回一个指定精确度的数值,并给与以1000为单位的分割(通常使用“,”) |
GREATEST(num1,num2[,num3, ... ]) | 返回所有提供参数中的最大数 |
IF(test, value1,value2) | 测试一个逻辑条件,如果为真则返回value1,如果为假返回value2 |
IFNULL(value,value2) | 返回第一个值,除非第一个值为空;这样的话返回第二个值 |
INSERT(string,position,length,new) | 把一个字符串插入到另一个字符串中 |
INSTR(string,substring) | 返回一个字符串中子串的位置 |
ISNULL(expression) | 如果参数为空则返回1,否则返回0 |
LEAST(num1,num2[,num3, ... ]) | 返回参数列表中的最小值 |
LEFT(string,length) | 返回字符串最左边的部分 |
LENGTH(string) | 返回字符串中的字节数。CHAR_LENGTH可以被用来返回字符数(这会在你使用多字节字符集是产生差异) |
LOCATE(substring,string[,number]) | 返回字符串中子串的位置,可选的第三个参数为在父字符串中开始搜索的位置 |
LOWER(string) | 返回给定字符串的小写形式 |
LPAD(string,length,padding) | 返回字符串 str, 其左边由字符串padding 填补到length 字符长度,第三个参数为填充字符 |
LTRIM(string) | 删除所有字符串中的前缀空格 |
MOD(num1,num2) | 返回第一个数除于第二个数后的模(余数部分) |
NOW | 返回当前日期和时间 |
POWER(num1,num2) | 返回num1的num2次方 |
RAND([seed]) | 返回一个随机数。seed可被用于随机数生成器的种子数 |
REPEAT(string,number) | 返回一个重复number次string的字符串 |
REPLACE(string,old,new) | 用new替换所有出现old的地方 |
ROUND(number[,decimal]) | 舍去给定数值的指定精度的位数 |
RPAD(string,length,padding) | 返回字符串 str, 其右边由字符串padding 填补到length 字符长度,第三个参数为填充字符 |
RTRIM(string) | 删除字符串尾部的空格 |
SIGN(number) | 如果number小于0则返回-1,如果大于0则返回1,如果为0则返回0 |
SQRT(number) | 返回number的平方根 |
STRCMP(string1,string2) | 如果两个值相同则返回0,若根据当前分类次序,第一个参数小于第二个,则返回 -1,其它情况返回 1 。 |
SUBSTRING(string,position,length) | 从字符串指定位置开始返回length个字符 |
UPPER(string) | 将指定字符串转换为大写 |
VERSION | 返回MySQL服务器当前版本号的字符串 |
数据类型 | 空间要求(bit) | 有符号最大值 | 无符号最大值 |
TINYINT | 8 | 127 | 255 |
SMALLINT | 16 | 32767 | 65535 |
MEDIUMINT | 24 | 8388607 | 16777215 |
INT | 32 | 2147483647 | 4294967295 |
BIGINT | 64 | 9223372036854775807 | 9223372036854775807 |
提示:存储程序应该始终运行在严格模式下来避免不正规赋值过程中的不可预期的行为。存储程序严格模式决定与程序创建是sql_mode变量的设定,而与运行时无关 |
欢迎光临 MariaDB社区 (http://123.56.88.72/) | Powered by Discuz! X3.2 |