SQL 函数
1 MySQL Date 函数
函数 | 描述 | 在数据库中的存储格式 |
---|---|---|
now() | 返回当前的日期和时间 | |
curdate | 返回当前的日期 | |
curtime | 返回当前的时间 | |
date | 提取日期或日期/时间表达式的日期部分 | YYYY-MM-DD |
extract | 返回日期/时间的单独部分 | |
date_add() | 向日期添加指定的时间间隔 | |
date_sub() | 从日期减去指定的时间间隔 | |
datediff() | 返回两个日期之间的天数 | |
date_format() | 用不同的格式显示日期/时间 |
2 SQL server Date函数
函数 | 描述 |
---|---|
getdate() | 返回当前的日期和时间 |
datepart() | 返回日期/时间的单独部分 |
dateadd() | 在日期中添加或减去指定的时间间隔 |
datediff() | 返回两个日期之间的时间 |
convert() | 用不同的格式显示日期/时间 |
3 SQL null值和not null 值
null 值代表遗漏的未知数据。
注释:无法比较 null 和 0;它们是不等价的。
函数 | 描述 |
---|---|
ISNULL() | |
NVL() | |
IFNULL() | |
COALESCE() |
4 SQL Aggregate函数
SQL Aggregate 函数计算从列表中取得的值,返回一个单一的值。
函数 | 描述 |
---|---|
AVG() | 返回平均值 |
count() | 返回行数 |
first() | 返回第一个记录的值 |
last() | 返回最后一个记录的值 |
max() | 返回最大值 |
min() | 返回最小值 |
sum() | 返回综合 |
4.1 语法
4.1.1 avg()
avg()语法
selecct avg(column_name) from table_name
4.1.2 count()
count(column_name)语法:
count(column_name)函数返回指定列的值得数目(null不计入)
select count(column_name) from table_name;
count(*)语法:
count(*)函数返回表中的记录数:
select count(*) from table_name;
count(distinct column_name)语法
count(distinct column_name)函数返回指定列的不同值得数目:
select count(distinct column_name) from table_name;
注释:count(distinct) 适用于oracle和 MSSQL,但是无法用于 MSAccess。
4.4.3 first() 函数
first() 函数返回指定的列中第一个记录的值。
first() 语法
select first(column_name) from table_name;
注释:只有 MS Access 支持 first() 函数。
SQL server、MySQL 和 oracle 中的 SQL first() 工作区
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
ordrt by column_name asc
where rownum<=1;
4.1.4 last() 函数
last() 函数返回指定的列中最后一个记录的值。
last() 语法
select last(column_name) from table_name;
注释:只有MS Access 支持 last() 函数。
SQL server、MySQL 和 oracle 中的 SQL last() 工作区
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;
4.4.5 max()、min() 和 sum() 函数
max() 返回指定列的最大值。
min() 返回指定列的最小值。
sum() 返回数值列的总数。
max() 语法
select max(column_name) from table_name;
min() 语法
select min(column_name) from table_name
sun() 语法
select sum(column_name) from table_name;
4.2 group by 语句
group by 语句可结合一些聚合函数来使用,根据一个或多个列对结果集进行分组。
group by 语法
select column_name,aggregate_function(column_name)
from table_name
where column_name operator value
group by column_name;
4.3 having 子句
在 SQL 中增加 having 子句原因是,where关键字无法与聚合函数一起使用。
having 子句可以让我们筛选分组后的各组数据。
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;
4.4 exists 运算符
exists 运算符用于判断查询子句是否有记录,如果有一条或多条记录存在返回 true,否则返回 false。
exists 语法
sselect column_name(s)
from table_name
where exists
(select colument_name from table_name where condition);
查询Websites表:
查询access_log表:
5 SQL Scalar 函数
SQL scalar 函数基于输入值,返回一个单一的值。
函数 | 描述 |
---|---|
ucase() | 将某个字段转换成大写 |
lcase() | 将某个字段转换为小写 |
mid() | 从某个文本字段提取字符,MySQL中使用 |
substring(字段,1,end) | 从某个文本字段提取字符 |
len() | 返回某个文本字段的长度 |
round() | 对某个字段的显示方式 |
now() | 返回当前的系统日期和时间 |
format() | 格式化某个字段的显示方式 |
5.1 ucase() 函数
ucase() 函数把字段的值转换为大写。
ucase() 语法
select ucase(column_name) from table_name;
用于SQL server 的语法
select upper(column_name) from table_name;
5.2 lcase() 函数
lcase() 函数把字段的值转换为小写。
lcase() 语法
select lcase(column_name) from table_name;
用于SQL server 的语法
select lower(column_name) from table_name;
5.3 mid() 函数
mid() 函数用于从文本字段中提取字符。
mid() 语法
select mid(column_name,start[,length]) from table_name;
参数 | 描述 |
---|---|
column_name | 必需。要提取字符的字段 |
start | 必需。规定开始位置(起始值是1) |
length | 可选。要返回的字符数。如果省略,则mid()函数返回剩余文本。 |
5.4 len() 函数
len() 函数返回文本字段中值得长度。
len() 语法
select len(column_name) from table_name;
mysql中函数为length()
select length(column_name) from table_name;
5.5 round() 函数
round() 函数用于吧数值字段舍入为指定的小树位数。
round() 语法
select round(column_name,decimals) from table_name;
| 参数 | 描述 |
| column_name| 必需。要舍入的字段 |
| decimals | 可选。规定要返回的小数位数 |
round(X):返回参数X的四舍五入的一个整数。
round(x,D):返回参数X的四舍五入的有D位小数的一个数字。如果D为0,结果将没有小数点或小数部分。
5.5 now() 函数
now() 函数返回当前系统的日期和时间。
now() 语法
select now() from table_name;
5.6 format() 函数
format() 函数用于对字段的显示进行格式化。
fermat() 语法
select format(column_name,format) from table_name;
参数 | 描述 |
---|---|
column_name | 必需。要格式化的字段 |
format | 必需。规定格式 |