首页 > 数据库 >SQL函数大全及示例汇总及不同数据库之间的区别

SQL函数大全及示例汇总及不同数据库之间的区别

时间:2023-07-21 09:55:31浏览次数:43  
标签:返回 示例 expr 指定 char 日期 SQL 表达式 大全

SQL函数大全及示例汇总

概述

SQL中包含以下七种类型的函数:

聚合函数:返回汇总值。

转型函数:将一种数据类型转换为另外一种。

日期函数:处理日期和时间。

数学函数:执行算术运算。

字符串函数:对字符串、二进制数据或表达式执行操作。

系统函数:从数据库返回在SQLSERVER中的值、对象或设置的特殊信息。

文本和图像函数:对文本和图像数据执行操作。

1、聚合函数

它对其应用的每个行集返回一个值。

AVG(表达式) 返回表达式中所有的平均值。仅用于数字列并自动忽略NULL值。

COUNT(表达式) 返回表达式中非NULL值的数量。可用于数字和字符列。

COUNT(*) 返回表中的行数(包括有NULL值的列)。

MAX(表达式) 返回表达式中的最大值,忽略NULL值。可用于数字、字符和日期时间列。

MIN(表达式) 返回表达式中的最小值,忽略NULL值。可用于数字、字符和日期时间列。

SUM(表达式) 返回表达式中所有的总和,忽略NULL值。仅用于数字列。

2、转换函数

有CONVERT和CAST两种。

CONVERT(data_type[(length)], expression [, style])

例: Select convert(varchar(10) ,stuno) as stuno,stuname from student

CAST( expression AS data_type )

例: Select cast(stuno as varchar(10)) as stuno,stuname from student

Cast和Convert的区别

Cast 和Convert都是用来将一种数据类型的表达式转换为另一种数据类型的表达式。CAST 和 CONVERT 提供相似的功能,只是语法不同。在时间转化中一般用到convert,因为它比cast多加了一个style,可以转化成不同时间的格式。

3、日期函数

由于不能直接执行算术函数,所以日期函数就十分有用。

GETDATE() 当前的系统日期。

select GETDATE() --结果:2019-05-07 18:34:27.343

DATEADD(日期部分,number,date) 返回带有指定数字(number)的日期(date),该数字添加到指定的日期部分(datepart)

select DATEADD(dd, 5, getdate()) --增加5天时间

DATEDIFF(日期部分,date1,date2) 返回两个日期中指定的日期部分之间的差值。

select DATEDIFF(mm, '2010-1-1', '2010-3-1 00:00:00') --结果:2

DATENAME(日期部分,date) 返回日期中日期部分的字符串形式。

select DATENAME(dw,GETDATE()) --结果:星期二

注:DATENAME 和 DATEPART 的区别,返回的值类型不同,一个是VARCHAR一个是INT,另外就是星期会用本地语言来表示

DATEPART(日期部分,date) 返回日期中指定的日期部分的整数形式。

select DATEPART(dw,GETDATE()) --结果(返回今天是一周中的第几天):3

YEAR(date) 返回指定日期的年份数值

select YEAR(GETDATE()) --结果:2019

MONTH(date)返回指定日期的月份数值

DAY(date)返回指定日期的天数值

注:当显示日期列的内容时如果只显示年月日部分,可以使用CONVERT转换函数对日期列进行转换

CONVERT(VARCHAR(10),日期字段名,120) --120 为日期格式YYYY-MM-DD

SELECT CONVERT(VARCHAR(10),盘点日期,120) AS 盘点日期 FROM 原材料盘点日期明细表

SQL中日期的表示方法及有效范围,如下:

日期部分 缩写 值 日期部分 缩写 值

年 yy 1753-9999 周 wk 1-53

季度 qq 1-4 小时 hh 0-23

月 mm 1-12 分钟 mi 0-59

一年中的天 dy 1-366 秒 ss 0-59

一月中的天 dd 1-31 毫秒 ms 0-999

一周中的天 dw 1-7

4、数字函数

对数字值执行代数运算。

ABS(num_expr) 返回数值表达式的绝对值。

ACOS(float_expr) 返回角(以弧度表示),它的余弦值近似于指定的浮点表达式。

ASIN(float_expr) 返回角(以弧度表示),它的正弦值近似于指定的浮点表达式。

ATAN(float_expr) 返回角(以弧度表示),它的正切值近似于指定的浮点表达式。

ATN2(float_expr1, float_expr2) 返回角(以弧度表示),它的正切值在两个近似的浮点表达式之间。

CEILING(num_expr) 返回大于或等于数值表达式的最小整数。

COS(float_expr) 返回以浮点表达式表示的近似于指定角度(以弧度表示)的余弦三角函数的值。

COT(float_expr) 返回以浮点表达式表示的近似于指定角度(以弧度表示)的余切三角函数的值。

DEGREES(num_expr)返回数值表达式表示的弧度值对应的度值。

EXP(float_expr) 根据指定的近似浮点表达式,返回指数值。

FLOOR(num_expr) 返回小于或等于数值表达式的最大整数

LOG(float_expr) 根据指定的近似浮点表达式,返回自然对数值。

LOG10(float_expr) 根据指定的近似浮点表达式,返回以为底的对数。

PI() 返回常量值.141592653589793

POWER(num_expr,y) 返回幂为y的数值表达式的值。

RADIANS(num_expr) 返回数值表达式表示的度值对应的弧度值。

RAND([seed]) 随机返回的到之间的近似浮点值,可以对seed指定为整数表达式(可选)。

ROUND(num_expr,length) 对数值表达式截取指定的整数长度,返回四舍五入后的值。

SIGN(num_expr) 对正数执行+1操作,对负数和零执行-1操作。

SIN(float_expr) 返回以浮点表达式表示的近似于指定角度(以弧度表示)的正弦三角函数的值。

SQUARE(float_expr) 返回浮点表达式的平均值。

SQRT(float_expr) 返回指定的近似浮点表达式的平方根。

TAN(float_expr) 返回以浮点表达式表示的近似于指定角度(以弧度表示)的正切三角函数的值。

5、字符串函数

可用于binary 和varbinary数据类型列,但主要用于char和varchar数据类型。

Expr1+expr2 返回两个表达式的组合形式的字符串。

ASCII(char_expr) 返回表达式最左边字符的ASCⅡ代码值。

CHAR(int_expr) 返回到之间的整数表达式的ASCⅡ字符值。如果输入的值不在有效范围内,则返回NULL。

CHARINDEX('pattern',char_expr) 返回字符表达式中指定模式的起始位置。

DIFFERENCE(char_expr1,char_expr2) 根据比较两个字符表达式的相似度,返回到之间的值。表示匹配度最佳。

LEN(char_expr) 返回字符表达式的长度。

LOWER(char_expr) 将字符表达式全部转换为小写。

LTRIM(char_expr) 返回删除掉前面空格的字符表达式。

PATINDEX('%pattern%',expr) 返回表达式中模式第一次出现的起始位置。返回表示不存在模式形式。

REPLICATE(char_expr,int_expr) 返回重复指定次数的字符表达式产生的字符串。

REVERSE(char_expr) 反转字符表达式。

RIGHT(char_expr,int_expr) 返回从字符表达式最右端起根据指定的字符个数得到的字符。

RTRIM(char_expr) 返回删除掉其后空格的字符表达式。

SOUNDEX(char_expr) 评估两个字符串的相似度后得到的位代码。

SPACE(int_expr) 返回包含指定空格数的字符串。

STR(float_expr[,length[,decimal]]) 返回浮点表达式的字符串表示法。

STUFF(char_expr1,start,length,char_expr2) 使用字符表达式替换字符表达式的一部分字符,从指定的位置开始替换指定的长度。

SUBSTRING(char_expr,start,length) 返回从字符表达式的指定位置开始,截取指定长度得到的字符集。

UPPER(char_expr) 将字符表达式全部转换为大写。

6、系统函数

用于返回元数据或配置设置。

COALESCE(expr1,expr2, xprN) 返回第一个非NULL表达式。

COL_LENGTH('table_name','column_name') 返回列的长度。

COL_NAME(table_id,column_id) 返回指定的表中的列名。

DATALENGTH('expr') 返回任何数据类型的实际长度。

DB_ID([‘database_name']) 返回数据库的标识号。

DB_NAME([database_id]) 返回数据库的名称。

GETANSINULL([‘database_name']) 返回数据库的默认空性(Nullability)。

HOST_ID() 返回工作站的标识号。

HOST_NAME() 返回工作站的名称。

IDENT_INCR('table_or_view') 有新的记录添加入到表中时计数加。

IDENT_SEED('table_or_view') 返回标识列的起始编号。

INDEX_COL('table_name',index_id,key_id) 返回索引的列名。

ISNULL(expr,value) 使用指定的值替换的NULL表达式。

NULLIF(expr1,expr2) Expr1与Expr2相等时,返回Null。

OBJECT_ID('obj_name') 返回数据库对象标识号。

OBJECT_NAME('object_id') 返回数据库对象名。

STATS_DATE(table_id,index_id) 返回上次更新指定索引的统计的日期。

SUSER_SID([‘login_name']) 返回用户的登录标识号。

SUSER_ID([‘login_name']) 返回用户的登录标识号。这个函数类似于SUSER_SID()函数,并且保留了向后的兼容性。

SUSER_SNAME([server_user_id]) 返回用户的登录标识号。

SUSER_NAME([server_user_id]) 返回用户的登录标识号。这个函数类似于SUSER_SNAME()函数,并且保留了向后的兼容性。

USER_ID('user_name') 返回用户的数据库标识号。

USER_NAME(['user_id']) 返回用户的数据库名称。

7、文本和图像函数

通常返回有关文本和图像数据所需的信息。文本和图像数据是以二进制格式的形式进行存储的。

TEXTPTR(col_name) 返回varbinary格式的文本指针值。对文本指针进行检查以确保它指向第一个文本页。

TEXTVALID('table_name.col_name',text_ptr)检查给定的文本指针是否有效。返回表示有效,返回表示指针无效。

各数据库的区别

关系型数据库

mysql

描述:从开始开发网站,就一直使用的是mysql,所以对mysql了解的更多一点,在使用中发现mysql在开发中小型项目时,效率很高,而且能完全满足需求。

优点:

1. 开源免费

2. 轻量级,方便部署和备份恢复

3. 简单易学,方便开发

4. 几乎在主流的平台上都能运行

缺点:

1. 性能缓慢(相对)

2. 并发能力不强(最大连接数100)

oracle

优点:

1. 开发性好,几乎适合全平台(有的文章写全平台匹配,这个我没验证过)

2. 安全性,获得最高认证级别的ISO标准认证

3. 性能高

缺点:

1. 价格昂贵

2. 维护成功高

3. 学习复杂,开发成本比较高

access

优点:

1. 界面友好,便于操作

2. 维护简单

3. 支持广泛,易于拓展

缺点:

1. 数据量大时性能会很低(超过100M数据)

2. 并发编辑性能差

3. 安装麻烦,不能编译成安装包,必须安装access运行环境运营

sql server

优点:

1. 学习简单

缺点:

1. 开发性差,只适合在windows上运行

2. 风险大,没有任何安全证书

非关系型数据库

redis

优点:

1. 数据结构多样化

2. 支持数据持久化,不用担心数据丢失

3. 单线程请求,不用担心数据一致性

缺点:

1. 内存消耗大(string类型)

2. 数据关系性能差,尤其是对字符串数据进行检索时

3. 单进程,性能受CPU限制

mongo

优点:

1. 支持丰富的数据表达,索引

2. 适合大数据存储

3. 支持数据持久化

4. 内置数据分析功能

缺点:

1. 不支持事务,数据一致性差

memcache

优点:

1. 吞吐量大,速度快

缺点:

1. 数据结构单一

2. 保存在内存中,一旦机器关机,数据丢失

标签:返回,示例,expr,指定,char,日期,SQL,表达式,大全
From: https://www.cnblogs.com/fitfit/p/17570472.html

相关文章

  • mysqlimport
    mysqlimport为MySQL服务器用命令行方式导入数据补充说明mysqlimport命令为mysql数据库服务器提供了一种命令行方式导入数据工具,它从特定格式的文本文件中读取数据插入MySQL数据库表中。语法mysqlimport(选项)(参数)选项-D:导入数据前清空表;-f:出现错误时继续处理剩余的操......
  • mysqldump
    mysqldumpMySQL数据库中备份工具补充说明mysqldump命令是mysql数据库中备份工具,用于将MySQL服务器中的数据库以标准的sql语言的方式导出,并保存到文件中。语法mysqldump(选项)选项--add-drop-table:在每个创建数据库表语句前添加删除数据库表的语句;--add-locks:备份数据库......
  • mysqladmin
    mysqladminMySQL服务器管理客户端补充说明mysqladmin命令是mysql服务器管理任务的客户端工具,它可以检查mytsql服务器的配置和当前工作状态,创建和删除数据库,创建用户和修改用户密码等操作。语法mysqladmin(选项)(参数)选项-h:MySQL服务器主机名或ip地址;-u:连接MySQL服务器......
  • [极客大挑战 2019]LoveSQL
    [极客大挑战2019]LoveSQL题目来源:buuctf题目类型:web涉及考点:SQL注入1.题目页面给了两个输入框与之前相同,我们先随便输入数进去,获得回显页面:我们直接使用万能密码登录:只需用户名输入1'or1=1#即可原因是:当用户名输入1,密码输入1'时,发生报错当用户名输入1'#,密码输入1......
  • mysql分页后排序失效数据丢失解决方案
    mysql使用Limit分页不加索引列会导致数据丢失、重复和索引失效mysql官网对limit的详细说明及优化建议:https://dev.mysql.com/doc/refman/5.7/en/limit-optimization.html官网IfmultiplerowshaveidenticalvaluesintheORDERBYcolumns,theserverisfreetoreturnt......
  • mysql相关
    字段类型的选择优先级:数字类型》日期、二进制》字符型 相同级别的数据类型,应该选用占用空间小的类型。原因:数据比较,字符类型和当前排序规则相关,数字和二进制不需要。数据处理是以页为单位,innodb中是16K,数据小,容纳的就多,加载的页就少,减少磁盘IO。 实际分析整数类型......
  • Mybatis属性配置示例(properties)
    属性(properties)这些属性可以在外部进行配置,并可以进行动态替换。既可以在典型的Java属性文件中配置这些属性,也可以在properties元素的子元素中设置。参考官网:https://mybatis.net.cn/configuration.html#properties首先创建数据库配置文件db.propertiesdriver=com.mysql.c......
  • 北京普通中学、小学、幼儿园查询网址---普通中学、北京小学、幼儿园大全
    北京幼儿园查询的网址--北京幼儿园大全 http://www.bjedu.gov.cn/bjedu/78535942318587904/index.shtml 北京小学查询的网址http://www.bjedu.gov.cn/bjedu/78535938023620608/index.shtml北京普通中学查询的网址http://www.bjedu.gov.cn/bjedu/78535933728653312/index.sh......
  • windows mysql快速导入数据库文件
    Windows下快速导入MySQL数据库文件在开发和维护项目时,我们通常需要将数据库中的数据导入到本地进行分析和测试。对于MySQL数据库,我们可以通过一些简单的步骤来快速导入数据库文件。在本文中,我们将介绍在Windows环境下如何实现快速导入数据库文件的方法。步骤一:安装MySQL首先,我们......
  • windows mysql 启动日志
    实现"WindowsMySQL启动日志"的步骤下面是实现"WindowsMySQL启动日志"的步骤的表格示例:步骤描述1安装MySQL服务器2配置MySQL服务器启动参数3设置MySQL服务器日志输出4启动MySQL服务器接下来,我们将逐步解释每个步骤应该如何执行。步骤1:安......