1、基本SQL语句
MySQL中定义数据字段的类型对你数据库的优化是非常重要的。
MySQL支持多种类型,大致可以分为三类:数值、日期/时间和字符串(字符)类型。
- 函数应用在sql语句中
-- 临时表
select now() from dual;-- 数学函数 二进制
-- 返回x的绝对值
select abs(-19) from dual;
select hex(100) from dual;
-- 返回x的最小整数值(向上取整)
select ceiling(2.999999) from dual;
select ceiling(2.11) from dual;
-- 向下取整
select floor(2.11) from dual;
-- 返回自然对数的底的次方
select exp(3) from dual;
-- 返回最大值
select greatest(34,56,1,0,100) from dual;
select least(1,0,19,100) as little from dual;
-- 返回8的自然对数
select ln(8) from dual;
-- 返回以参数一的以参数为底的对数
select log(9,3) from dual ;-- mod取模 即取得是余数
select mod(9,3) from dual;
-- 圆周率的值
select pi() from dual;-- 返回任意值
select rand(10) from dual;
-- 返回x的y为小数四舍五入以后的值
select round(3.1415926,3) from dual;
-- 返回某个数符号的值
select sign(9) from dual;
-- 求平方根
select sqrt(9) from dual;
-- 返回数字x 截断为y位小数的值
select truncate(3.1415926,4) from dual;
2、数据类型
1)数值类型
MySQL支持所有标准SQL数值数据类型。
这些类型包括严格数值数据类型(INTEGER、SMALLINT、DECIMAL和NUMERIC),以及近似数值数据类型(FLOAT和DOUBLE)。
关键字INT是INTEGER的同义词,关键字DEC是DECIMAL的同义词。
BIT数据类型保存位字段值,并且支持MyISAM、MEMORY、InnoDB和BDB表。
作为SQL标准的扩展,MySQL也支持整数类型的TINYINT、MEDIUMINT和BIGINT。下面的表显示了需要的每个整数类型的存储和范围。
2)日期和时间类型
表示时间值的日期和时间类型为DATETIME、DATE、TIMESTAMP、TIME和YEAR。
每个时间类型有一个有效范围和一个“零”值,当指定不合法的MySQL不能表示的值时使用“零”值。
TIMESTAMP类型有专有的自动更新特性。当更新数据中其他字段的数据的时候,也会即时修改TIMESTAMP这一列的时间。
3)字符串类型指CHAR、VARCHAR、BINARY、VARBINARY、BLOB、TEXT、ENUM和SET。
BLOB和TEXT中,BLOB用于存储二进制数据,TEXT用于存储文本类型数据,也就是说大的字符串。
char和varcha类型类似,但他们保存和检索的方式不同。他们的最大长度和是否尾部空格被保留等方面也不同。在存储或检索过程中不进行大小写转换。
binary和varbinary类似于char和varchar,不同的是他们包含二进制字符串而不要非二进制字符串。也就是说,他们包含字节字符串而不是字符字符串。这说明他们没有字符集,并且排序和比较基于列值字节的数值。
BLOB是一个二进制大对象,可以容纳可变数量的数据。有4种BLOB类型:TINYBLOB、BLOB、MEDIUMBLOB和LONGBLOB。它们只是可容纳值的最大长度不同。
有4种 TEXT类型:TINYTEXT、TEXT、MEDIUMTEXT和LONGTEXT。这些对应4种BLOB类型,有相同的最大长度和存储需求。
3、基本函数应用
1)MySQL中主要有:
——数学函数、聚合函数(常用于GROUP BY从句的SELECT查询中)、字符串函数、日期和时间函数、格式化函数、类型转换函数、系统信息函数。
——数学函数
ABS(x)返回x的绝对值。
BIN(x) 返回x的二进制(OCT返回八进制,HEX返回十六进制)
CEILING(x)返回大于等于x的最小整数值。
FLOOR(x) 返回小于x的最大整数值。
EXP(x) 返回e(自然对数的底)的x次方(数学中的e, e 约等于 2.71828 59045 23536 02874 71352 66249 77572)。
GREATEST(x1,x2,.....xn) 返回集合中最大的值。
LEAST(x1,x2,......xn) 返回集合中最小的值。
LN(x) 返回x的自然对数。
LOG(x,y) 返回x的以y为底的对数 --- 3^?=9
MOD(x,y) 返回x/y的模(余数)。
PI() 返回pi的值(圆周率)
RAND() 返回0 到1 内的随机值,可以通过提供一个参数(种子)使RAND()随机数生成器生成一个指定的值。
ROUND(x,y) 返回参数x的四舍五入的有y位小数的值。
SIGN(x) 返回代表数字x的符号的值。
SQRT(x) 返回一个数的平方根。
TRUNCATE(x,y) 返回数字x截短为y位小数的结果。