1. 关于sql函数
sql拥有可用于计数和计算的内建函数,包括合计(Aggregate)函数和标记(Scalar)函数。
sql聚合(Aggregate)函数:AVG()、COUNT()、FIRST()、LAST()、MAX() 、MIN()、SUM()
sql标量(Scalar)函数:UCASE()、LCASE()、MID()、SubString(字段,1,end)、LEN()、ROUND()、NOW()、FORMAT()
2. 常用sql函数
函数 | 定义 | 语法 | 备注 |
---|---|---|---|
AVG() | 返回数值列的平均值 | SELECT AVG(column_name) FROM table_name; | |
COUNT() | 返回匹配指定条件的行数 | SELECT COUNT(column_name/*/DISTINCT column_name) FROM table_name; | |
FIRST() | 返回返回指定的列中第一个记录的值 | ① SELECT FIRST(column_name) FROM table_name;② SQL Server 语法 : SELECT TOP 1 column_name FROM table_name ORDER BY column_name ASC; ③ MySQL 语法 :SELECT column_name FROM table_name ORDER BY column_name ASC LIMIT 1; ④ Oracle 语法 :SELECT column_name FROM table_name ORDER BY column_name ASC WHERE ROWNUM <=1; | 只有 MS Access 支持 FIRST() 函数。 |
LAST() | 返回返回指定的列中最后一个记录的值 | ① SELECT LAST(column_name) FROM table_name; ② SQL Server 语法 : SELECT TOP 1 column_name FROM table_name ORDER BY column_name DESC; ③ MySQL 语法 :SELECT column_name FROM table_name ORDER BY column_name DESC LIMIT 1; ④ Oracle 语法 :SELECT column_name FROM table_name ORDER BY column_name DESC WHERE ROWNUM <=1; | 只有 MS Access 支持 LAST() 函数。 |
MAX() | 返回数值列的最大值 | SELECT MAX(column_name) FROM table_name; | |
MIN() | 返回数值列的最小值 | SELECT MIN(column_name) FROM table_name; | |
SUM() | 返回数值列的总数 | SELECT SUM(column_name) FROM table_name; | |
GROUP BY | 用于结合聚合函数,根据一个或多个列对结果集进行分组 | SELECT column_name, aggregate_function(column_name) FROM table_name WHERE column_name operator value GROUP BY column_name; | |
HAVING | 筛选分组后的各组数据 | SELECT column_name, aggregate_function(column_name) FROM table_name WHERE column_name operator value GROUP BY column_name HAVING aggregate_function(column_name) operator value; | 在 SQL 中增加 HAVING 子句原因是,WHERE 关键字无法与聚合函数一起使用。 |
UCASE() | 把字段的值转换为大写 | ①:SELECT UCASE(column_name) FROM table_name; ② SQL Server:SELECT UPPER(column_name) FROM table_name; | |
LCASE() | 把字段的值转换为小写 | ①:SELECT LCASE(column_name) FROM table_name; ② SQL Server:SELECT LOWER(column_name) FROM table_name; | |
MID() | 从文本字段中提取字符 | SELECT MID(column_name,start[,length]) FROM table_name; | start:必需。规定开始位置(起始值是 1)。length:可选。要返回的字符数。如果省略,则 MID() 函数返回剩余文本。 |
LEN() | 返回文本字段中值的长度 | ①:SELECT LEN(column_name) FROM table_name;② SQL Server:SELECT LENGTH(column_name) FROM table_name; | |
ROUND() | 把数值字段舍入为指定的小数位数 | SELECT ROUND(column_name,decimals) FROM table_name; | |
NOW() | 返回当前系统的日期和时间 | SELECT NOW() FROM table_name; | |
FORMAT() | 对字段的显示进行格式化 | SELECT FORMAT(column_name,format) FROM table_name; |
3. sql补充内容
sql关于删除的三个语句:DROP\TRUNCATE\DELETE
DROP table_name; 完全删除表,释放空间。
TRUNCATE table_name; 删除表内容,释放空间,不删除表定义,表结构还存在。
DELETE FROM table_name WHERE condition; 删除指定数据。
truncate table 命令将快速删除数据表中的所有记录,但保留数据表结构。这种快速删除与 delete from 数据表的删除全部数据表记录不一样,delete 命令删除的数据将存储在系统回滚段中,需要的时候,数据可以回滚恢复,而 truncate 命令删除的数据是不可以恢复的。
参考自http://www.runoob.com/