SQL函数汇总
- 格式:doc
- 大小:29.50 KB
- 文档页数:4
sql常用函数及用法SQL是一种使用结构化查询语言来管理关系数据库系统的编程语言。
在SQL中,有许多常用函数可用于在查询中计算结果值。
常用函数通常包括聚合函数、字符串函数、日期和时间函数、数学函数、条件函数等。
以下是SQL常用函数及其用法的参考内容。
1. 聚合函数聚合函数在SQL中用于计算和汇总数据。
最常用的聚合函数是SUM、AVG、MAX和MIN。
例如:SELECT SUM(salary) FROM employee;这将返回员工表中所有员工的总工资。
2. 字符串函数字符函数用于处理文本数据。
最常用的字符函数是LEN、UPPER、LOWER、SUBSTRING和CONCAT。
例如:SELECT UPPER(last_name) FROM employee;这将返回所有员工的姓氏的大写形式。
3. 日期和时间函数日期和时间函数用于处理日期和时间数据。
最常用的日期和时间函数是NOW、YEAR、MONTH、DAY和HOUR。
例如:SELECT YEAR(hire_date) FROM employee;这将返回每个员工被雇用的年份。
4. 数学函数数学函数用于计算数值数据。
最常用的数学函数是ABS、ROUND、CEILING和FLOOR。
例如:SELECT ABS(salary) FROM employee;这将返回员工工资的绝对值。
5. 条件函数条件函数根据给定的条件返回不同的结果。
最常用的条件函数是IF、CASE和COALESCE。
例如:SELECT IF(salary>50000, "High", "Low") FROM employee;这将返回“高”或“低”,具体取决于每个员工的工资是否大于50000。
总的来说,SQL中的常用函数可以大大简化数据处理和查询操作。
在实际使用时,根据需要选择适当的函数和参数可以大大提高工作效率。
SQL--Server常用公式与函数整理一、算术运算符SQL*Server*支持基本的算术运算符,如加(+)、减(-)、乘()、除(/)和取余(%)等。
这些运算符可以直接在*SQL*查询中使用,用于数字和日期类型的数据计算。
示例:sqlSELECT*5+3AS加法结果;--输出结果为8SELECT*10-5AS减法结果;--输出结果为5SELECT*32AS乘法结果;--输出结果为6SELECT*10/2AS除法结果;--输出结果为5SELECT*11%2AS取余结果;--输出结果为1二、字符串函数字符串函数主要用于字符串的处理和操作,包括截取、连接、查找、替换、转换等。
常用的字符串函数有:*LEN(string_expression):返回字符串的长度。
*LEFT(string_expression,*number_of_chars):返回字符串最左侧的指定数量的字符。
*RIGHT(string_expression,*number_of_chars):返回字符串最右侧的指定数量的字符。
*SUBSTRING(string_expression,*start,*length):返回字符串的子字符串。
*CHARINDEX(substring,*expression*[,*start_location]):返回子字符串在表达式中的起始位置。
REPLACE(string_expression,*search_string,*replacement_string):在字符串中替换指定的子字符串。
*LOWER(string_expression):将字符串转换为小写。
*UPPER(string_expression):将字符串转换为大写。
示例:sqlSELECT*LEN('Hello*World')*AS*字符串长度;*--*输出结果为*11SELECT*LEFT('Hello*World',*5)*AS*左侧子串;*--*输出结果为*Hello三、日期函数日期函数用于日期和时间的处理和计算,常用的日期函数有:*GETDATE():返回当前日期和时间。
sql汇总数据操作方法SQL汇总数据操作1. 简介在数据库操作中,经常需要对数据进行汇总、统计和计算等操作。
SQL提供了多种方式来实现这些功能,本文将介绍常见的SQL汇总数据操作方法。
2. COUNT函数COUNT函数用于统计表中满足某个条件的记录数量。
SELECT COUNT(*)FROM 表名WHERE 条件;3. SUM函数SUM函数用于计算表中某个列的合计值。
SELECT SUM(列名)FROM 表名WHERE 条件;4. AVG函数AVG函数用于计算表中某个列的平均值。
SELECT AVG(列名)FROM 表名WHERE 条件;5. MAX函数和MIN函数MAX函数和MIN函数分别用于计算表中某个列的最大值和最小值。
SELECT MAX(列名)FROM 表名WHERE 条件;SELECT MIN(列名)FROM 表名WHERE 条件;6. GROUP BY子句GROUP BY子句用于对结果集进行分组,可用于汇总数据。
SELECT 列名, COUNT(*)FROM 表名WHERE 条件GROUP BY 列名;7. HAVING子句HAVING子句用于在GROUP BY子句的基础上进行进一步的过滤。
SELECT 列名, COUNT(*)FROM 表名WHERE 条件GROUP BY 列名HAVING 条件;8. WITH ROLLUPWITH ROLLUP关键字用于在使用GROUP BY进行分组后,在结果集中添加小计和总计。
SELECT 列名1, 列名2, SUM(列名3)FROM 表名WHERE 条件GROUP BY 列名1, 列名2 WITH ROLLUP;9. CASE语句CASE语句用于根据条件进行汇总和计算。
SELECT 列名,CASEWHEN 条件1 THEN 结果1WHEN 条件2 THEN 结果2ELSE 结果3ENDFROM 表名WHERE 条件;10. 总结本文介绍了SQL中常用的汇总数据操作方法,包括COUNT函数、SUM函数、AVG函数、MAX函数和MIN函数、GROUP BY子句、HAVING子句、WITH ROLLUP和CASE语句。
sql分类汇总函数SQL分类汇总函数引言:在SQL中,分类汇总函数是一种强大的工具,用于对数据进行分类分组,并计算每个组的汇总结果。
这些函数可以对数据进行统计、计算平均值、求和、最大值、最小值等操作。
本文将介绍SQL中常用的分类汇总函数,包括COUNT、SUM、AVG、MAX和MIN,同时提供具体的使用示例。
一、COUNT函数COUNT函数用于统计某个列中非空值的个数。
它可以用于任何数据类型的列,包括数字、字符和日期等。
COUNT函数的语法如下:SELECT COUNT(column_name) FROM table_name;其中,column_name是要统计的列名,table_name是要统计的表名。
下面是一个示例:SELECT COUNT(id) FROM students;该语句将统计students表中id列的非空值的个数。
二、SUM函数SUM函数用于计算某个列的总和。
它只能用于数字类型的列。
SUM函数的语法如下:SELECT SUM(column_name) FROM table_name;其中,column_name是要计算总和的列名,table_name是要计算的表名。
下面是一个示例:SELECT SUM(salary) FROM employees;该语句将计算employees表中salary列的总和。
三、AVG函数AVG函数用于计算某个列的平均值。
它只能用于数字类型的列。
AVG 函数的语法如下:SELECT AVG(column_name) FROM table_name;其中,column_name是要计算平均值的列名,table_name是要计算的表名。
下面是一个示例:SELECT AVG(score) FROM students;该语句将计算students表中score列的平均值。
四、MAX函数MAX函数用于找出某个列的最大值。
它可以用于数字、字符和日期类型的列。
sql中简单的计算函数SQL是一种结构化查询语言,用于管理数据库中的数据。
在SQL 中,有许多用于执行计算的内置函数。
本文将介绍SQL中一些常用的计算函数。
1. COUNT函数COUNT函数用于计算指定列中的行数。
例如,如果要计算表中某个列中的行数,可以使用以下SQL语句:SELECT COUNT(col_name) FROM table_name;其中,col_name是要计算的列名,table_name是要从中计算行数的表名。
执行此语句后,将返回该列中的行数。
2. SUM函数SUM函数用于计算指定列中的数值的总和。
例如,如果要计算表中某个列中数值的总和,可以使用以下SQL语句:SELECT SUM(col_name) FROM table_name;其中,col_name是要计算总和的列名,table_name是要从中计算总和的表名。
执行此语句后,将返回该列中数值的总和。
3. AVG函数AVG函数用于计算指定列中数值的平均值。
例如,如果要计算表中某个列中数值的平均值,可以使用以下SQL语句:SELECT AVG(col_name) FROM table_name;其中,col_name是要计算平均值的列名,table_name是要从中计算平均值的表名。
执行此语句后,将返回该列中数值的平均值。
4. MAX函数MAX函数用于计算指定列中的最大值。
例如,如果要计算表中某个列中的最大值,可以使用以下SQL语句:SELECT MAX(col_name) FROM table_name;其中,col_name是要计算最大值的列名,table_name是要从中计算最大值的表名。
执行此语句后,将返回该列中的最大值。
5. MIN函数MIN函数用于计算指定列中的最小值。
例如,如果要计算表中某个列中的最小值,可以使用以下SQL语句:SELECT MIN(col_name) FROM table_name;其中,col_name是要计算最小值的列名,table_name是要从中计算最小值的表名。
sql函数⼤全⼀、字符转换函数1、ASCII()返回字符表达式最左端字符的ASCII 码值。
在ASCII()函数中,纯数字的字符串可不⽤‘’括起来,但含其它字符的字符串必须⽤‘’括起来使⽤,否则会出错。
2、CHAR()将ASCII 码转换为字符。
如果没有输⼊0 ~255之间的ASCII 码值,CHAR()返回NULL 。
3、LOWER()和UPPER()LOWER()将字符串全部转为⼩写;UPPER()将字符串全部转为⼤写。
4、STR()把数值型数据转换为字符型数据。
STR (<float_expression>[,length[, <decimal>]])length 指定返回的字符串的长度,decimal指定返回的⼩数位数。
如果没有指定长度,缺省的length 值为10,decimal缺省值为0。
当length 或者decimal 为负值时,返回NULL;当length ⼩于⼩数点左边(包括符号位)的位数时,返回length 个*;先服从length ,再取decimal ;当返回的字符串位数⼩于length ,左边补⾜空格。
⼆、去空格函数1、LTRIM() 把字符串头部的空格去掉。
2、RTRIM() 把字符串尾部的空格去掉。
三、取⼦串函数1、left()LEFT (<character_expression>,<integer_expression>)返回character_expression 左起 integer_expression 个字符。
2、RIGHT()RIGHT (<character_expression>,<integer_expression>)返回character_expression 右起 integer_expression 个字符。
3、SUBSTRING()SUBSTRING (<expression>,<starting_ position>, length)返回从字符串左边第starting_ position 个字符起length个字符的部分。
mssql中常用的字符串函数大集合1.绝对值SQL:select abs(-1) valueO:select abs(-1) value from dual2.取整(大)S:select ceiling(-1.001) valueO:select ceil(-1.001) value from dual3.取整(小)S:select floor(-1.001) valueO:select floor(-1.001) value from dual4.取整(截取)S:select cast(-1.002 as int) valueO:select trunc(-1.002) value from dual5.四舍五入S:select round(1.23456,4) value 1.23460O:select round(1.23456,4) value from dual 1.2346 6.e为底的幂S:select Exp(1) value 2.7182818284590451O:select Exp(1) value from dual 2.718281827.取e为底的对数S:select log(2.7182818284590451) value 1O:select ln(2.7182818284590451) value from dual; 1 8.取10为底对数S:select log10(10) value 1O:select log(10,10) value from dual; 19.取平方S:select SQUARE(4) value 16O:select power(4,2) value from dual 1610.取平方根S:select SQRT(4) value 2O:select SQRT(4) value from dual 211.求任意数为底的幂S:select power(3,4) value 81O:select power(3,4) value from dual 8112.取随机数S:select rand() valueO:select sys.dbms_random.value(0,1) value from dual;13.取符号S:select sign(-8) value -1O:select sign(-8) value from dual -1----------数学函数14.圆周率S:SELECT PI() value 3.1415926535897931O:不知道15.sin,cos,tan 参数都以弧度为单位例如:select sin(PI()/2) value 得到1(SQLServer)16.Asin,Acos,Atan,Atan2 返回弧度17.弧度角度互换(SQLServer,Oracle不知道)DEGREES:弧度-〉角度RADIANS:角度-〉弧度---------数值间比较18. 求集合最大值S:select max(value) value from(select 1 valueunionselect -2 valueunionselect 4 valueunionselect 3 value)aO:select greatest(1,-2,4,3) value from dual19. 求集合最小值S:select min(value) value from(select 1 valueunionselect -2 valueunionselect 4 valueunionselect 3 value)aO:select least(1,-2,4,3) value from dual20.如何处理null值(F2中的null以10代替)S:select F1,IsNull(F2,10) value from TblO:select F1,nvl(F2,10) value from Tbl--------数值间比较21.求字符序号S:select ascii('a') valueO:select ascii('a') value from dual22.从序号求字符S:select char(97) valueO:select chr(97) value from dual23.连接S:select '11'+'22'+'33' valueO:select CONCAT('11','22')||33 value from dual23.子串位置--返回3S:select CHARINDEX('s','sdsq',2) valueO:select INSTR('sdsq','s',2) value from dual23.模糊子串的位置--返回2,参数去掉中间%则返回7S:select patindex('%d%q%','sdsfasdqe') valueO:oracle没发现,但是instr可以通过第四霾问刂瞥鱿执问?BR> select INSTR('sdsfasdqe','sd',1,2) value from dual 返回624.求子串S:select substring('abcd',2,2) valueO:select substr('abcd',2,2) value from dual25.子串代替返回aijklmnefS:SELECT STUFF('abcdef', 2, 3, 'ijklmn') valueO:SELECT Replace('abcdef', 'bcd', 'ijklmn') value from dual26.子串全部替换S:没发现O:selectTranslate('fasdbfasegas','fa','我' ) value from dual 27.长度S:len,datalengthO:length28.大小写转换lower,upper29.单词首字母大写S:没发现O:select INITCAP('abcd dsaf df') value from dual30.左补空格(LPAD的第一个参数为空格则同space函数)S:select space(10)+'abcd' valueO:select LPAD('abcd',14) value from dual31.右补空格(RPAD的第一个参数为空格则同space函数)S:select 'abcd'+space(10) valueO:select RPAD('abcd',14) value from dual32.删除空格S:ltrim,rtrimO:ltrim,rtrim,trim33. 重复字符串S:select REPLICATE('abcd',2) valueO:没发现34.发音相似性比较(这两个单词返回值一样,发音相同)S:SELECT SOUNDEX ('Smith'), SOUNDEX ('Smythe')O:SELECT SOUNDEX ('Smith'), SOUNDEX ('Smythe') from dualSQLServer中用SELECT DIFFERENCE('Smithers', 'Smythers') 比较soundex的差返回0-4,4为同音,1最高--------------日期函数35.系统时间S:select getdate() valueO:select sysdate value from dual36.前后几日直接与整数相加减37.求日期S:select convert(char(10),getdate(),20) valueO:select trunc(sysdate) value from dualselect to_char(sysdate,'yyyy-mm-dd') value from dual38.求时间S:select convert(char(8),getdate(),108) valueO:select to_char(sysdate,'hh24:mm:ss') value from dual39.取日期时间的其他部分S:DATEPART 和DATENAME 函数(第一个参数决定)O:to_char函数第二个参数决定参数---------------------------------下表需要补充year yy, yyyyquarter qq, q (季度)month mm, m (m O无效)dayofyear dy, y (O表星期)day dd, d (d O无效)week wk, ww (wk O无效)weekday dw (O不清楚)Hour hh,hh12,hh24 (hh12,hh24 S无效)minute mi, n (n O无效)second ss, s (s O无效)millisecond ms (O无效)----------------------------------------------40.当月最后一天S:不知道O:select LAST_DAY(sysdate) value from dual41.本星期的某一天(比如星期日)S:不知道O:SELECT Next_day(sysdate,7) vaule FROM DUAL;42.字符串转时间S:可以直接转或者select cast('2004-09-08'as datetime) valueO:SELECT To_date('2004-01-05 22:09:38','yyyy-mm-dd hh24-mi-ss') vaule FROM DUAL;43.求两日期某一部分的差(比如秒)S:select datediff(ss,getdate(),getdate()+12.3) valueO:直接用两个日期相减(比如d1-d2=12.3)SELECT (d1-d2)*24*60*60 vaule FROM DUAL;44.根据差值求新的日期(比如分钟)S:select dateadd(mi,8,getdate()) valueO:SELECT sysdate+8/60/24 vaule FROM DUAL;45.求不同时区时间S:不知道O:SELECT New_time(sysdate,'ydt','gmt' ) vaule FROM DUAL; -----时区参数,北京在东8区应该是Ydt-------AST ADT 大西洋标准时间BST BDT 白令海标准时间CST CDT 中部标准时间EST EDT 东部标准时间GMT 格林尼治标准时间HST HDT 阿拉斯加—夏威夷标准时间MST MDT 山区标准时间NST 纽芬兰标准时间PST PDT 太平洋标准时间YST YDT YUKON标准时间Oracle支持的字符函数和它们的Microsoft SQL Server等价函数:函数Oracle Microsoft SQL Server把字符转换为ASCII ASCII ASCII字串连接CONCAT (expression + expression)把ASCII转换为字符CHR CHAR返回字符串中的开始字符(左起)INSTR CHARINDEX把字符转换为小写LOWER LOWER把字符转换为大写UPPER UPPER填充字符串的左边LPAD N/A清除开始的空白LTRIM LTRIM清除尾部的空白RTRIM RTRIM字符串中的起始模式(pattern)INSTR PATINDEX多次重复字符串RPAD REPLICATE字符串的语音表示SOUNDEX SOUNDEX重复空格的字串RPAD SPACE从数字数据转换为字符数据TO_CHAR STR子串SUBSTR SUBSTRING替换字符REPLACE STUFF将字串中的每个词首字母大写INITCAP N/A翻译字符串TRANSLATE N/A字符串长度LENGTH DATELENGTH or LEN列表中最大的字符串GREATEST N/A列表中最小的字符串LEAST N/A如果为NULL则转换字串NVL ISNULL日期函数函数Oracle Microsoft SQL Server日期相加(date column +/- value) orADD_MONTHS DATEADD两个日期的差(date column +/- value) or MONTHS_BETWEEN DATEDIFF当前日期和时间SYSDATE GETDATE()一个月的最后一天LAST_DAY N/A时区转换NEW_TIME N/A日期后的第一个周日NEXT_DAY N/A代表日期的字符串TO_CHAR DATENAME代表日期的整数TO_NUMBER(TO_CHAR)) DATEPART日期舍入ROUND CONVERT日期截断TRUNC CONVERT字符串转换为日期TO_DATE CONVERT如果为NULL则转换日期NVL ISNULL转换函数函数Oracle Microsoft SQL Server数字转换为字符TO_CHAR CONVERT字符转换为数字TO_NUMBER CONVERT日期转换为字符TO_CHAR CONVERT字符转换为日期TO_DATE CONVERT16进制转换为2进制HEX_TO_RAW CONVERT 2进制转换为16进制RAW_TO_HEX CONVERT其它行级别的函数函数Oracle Microsoft SQL Server返回第一个非空表达式DECODE COALESCE当前序列值CURRVAL N/A下一个序列值NEXTVAL N/A如果exp1 = exp2, 返回null DECODE NULLIF用户登录账号ID数字UID SUSER_ID用户登录名USER SUSER_NAME用户数据库ID数字UID USER_ID用户数据库名USER USER_NAME当前用户CURRENT_USER CURRENT_USER用户环境(audit trail) USERENV N/A在CONNECT BY子句中的级别LEVEL N/A合计函数函数Oracle Microsoft SQL ServerAverage AVG AVGCount COUNT COUNTMaximum MAX MAXMinimum MIN MINStandard deviation STDDEV STDEV or STDEVPSummation SUM SUMVariance VARIANCE VAR or VARPOracle还有一个有用的函数EXTRACT,提取并且返回日期时间或时间间隔表达式中特定的时间域:EXTRACT(YEAR FROM 日期)。
SQL函数使用大全及示例使用方法汇总1.数值函数:-ABS(x):返回x的绝对值。
示例:SELECTABS(-5);--返回结果为5-CEIL(x):返回大于或等于x的最小整数。
示例:SELECTCEIL(4.3);--返回结果为5-FLOOR(x):返回小于或等于x的最大整数。
示例:SELECTFLOOR(4.9);--返回结果为4-ROUND(x,d):返回x的四舍五入值,可指定小数位数d。
示例:SELECTROUND(4.567,2);--返回结果为4.57-MOD(x,y):返回x除以y的余数。
示例:SELECTMOD(10,3);--返回结果为12.字符串函数:- CONCAT(str1, str2):将str1和str2连接起来。
示例:SELECT CONCAT('Hello', 'World'); -- 返回结果为HelloWorld- UPPER(str):将str中的字符转换为大写。
示例:SELECT UPPER('abcd'); -- 返回结果为ABCD- LOWER(str):将str中的字符转换为小写。
示例:SELECT LOWER('ABCD'); -- 返回结果为abcd- LENGTH(str):返回str的字符数。
示例:SELECT LENGTH('HelloWorld'); -- 返回结果为11- SUBSTRING(str, start, length):返回str从start位置开始的length个字符。
示例:SELECT SUBSTRING('HelloWorld', 6, 5); -- 返回结果为World3.日期和时间函数:-NOW(:返回当前日期和时间。
示例:SELECTNOW(;--返回结果为当前日期和时间- DATE_FORMAT(date, format):将date按指定格式(format)进行格式化。
sql函数⼤全SQL函数⼤全收藏⼀、--聚合函数use pubsgoselect avg(distinct price) --算平均数from titleswhere type='business'gouse pubsgoselect max(ytd_sales) --最⼤数from titlesgouse pubsgoselect min(ytd_sales) --最⼩数from titlesgouse pubsgoselect type,sum(price),sum(advance) --求和from titlesgroup by typeorder by typegouse pubsgoselect count(distinct city) --求个数from authorsgouse pubsgoselect stdev(royalty) --返回给定表达式中所有值的统计标准偏差from titlesgouse pubsgoselect stdevp(royalty) --返回表达式中所有制的填充统计标准偏差from titlesgouse pubsgoselect var(royalty) --返回所有值的统计⽅差from titlesgouse pubsgoselect varp(royalty) --返回所有值的填充的统计⽅差from titlesgo⼆、--数学函数select sin(23.45),atan(1.234),rand(),PI(),sign(-2.34) --其中rand是获得⼀个随机数三、--配置函数SELECT @@VERSION --获取当前数据库版本SELECT @@LANGUAGE --当前语⾔四、--时间函数select getdate() as 'wawa_getdate' --当前时间select getutcdate() as 'wawa_getutcdate' --获取utc时间select day(getdate()) as 'wawa_day' --取出天select month(getdate()) as 'wawa_month' --取出⽉select year(getdate()) as 'wawa_year' --取出年select dateadd(d,3,getdate()) as wawa_dateadd --加三天,注意'd'表⽰天,'m'表⽰⽉,'yy'表⽰年,下⾯⼀样select datediff(d,'2004-07-01','2004-07-15') as wawa_datediff --计算两个时间的差select datename(d,'2004-07-15') as wawa_datename --取出时间的某⼀部分select datepart(d,getdate()) as wawa_datepart --取出时间的某⼀部分,和上⾯的那个差不多五、--字符串函数select ascii(123) as '123',ascii('123') as '"123"',ascii('abc') as '"abc"' --转换成ascii码select char(123),char(321),char(-123) --根据ascii转换成字符select lower('ABC'),lower('Abc'),upper('Abc'),upper('abc') --转换⼤⼩写select str(123.45,6,1), str(123.45,2,2) --把数值转换成字符串select ltrim(' "左边没有空格"') --去空格select rtrim('"右边没有空格" ') --去空格select ltrim(rtrim(' "左右都没有空格" ')) --去空格select left('sql server',3),right('sql server',6) --取左或者取右use pubsselect au_lname,substring(au_fname,1,1) --取⼦串from authorsorder by au_lnameselect charindex('123','abc123def',2) --返回字符串中指定表达式的起始位置select patindex('123','abc123def'),patindex('%123%','abc123def') --返回表达式中某模式第⼀次出现的起始位置select quotename('abc','{'),quotename('abc') --返回由指定字符扩住的字符串select reverse('abc'),reverse('上海') --颠倒字符串顺序select replace('abcdefghicde','cde','xxxx') --返回呗替换了指定⼦串的字符串select space(5),space(-2) --返回由重复的空格组成的字符串六、--系统函数select host_name() as 'host_name',host_id() as 'host_id',user_name() as 'user_name',user_id() as 'user_id',db_name() as 'db_name'七、--变量的定义及使⽤--声明局部变量declare @mycounter intdeclare @last_name varchar(30),@fname varchar(20),@state varchar(2) --⼀下声明多个变量--给变量赋值use northwindgodeclare @firstnamevariable varchar(20),@regionvariable varchar(30)set @firstnamevariable='anne' --可以⽤set,也可以⽤select给变量赋值,微软推荐⽤set,但select在选择⼀个值直接赋值时很有⽤set @regionvariable ='wa'select lastname,firstname,title --⽤声明并赋值过的变量构建⼀个Select语句并查询from employeeswhere firstname= @firstnamevariable or [email=region=@regionvariable]region=@regionvariable[/email]go--全局变量select @@version --返回数据库版本select @@error --返回最后的⼀次脚本错误select @@identity --返回最后的⼀个⾃动增长列的id⼋、--while,break,continue的使⽤--⾸先计算所有数的平均价格,如果低于30的话进⼊循环让所有的price翻倍,--⾥⾯⼜有个if来判断如果最⼤的单价还⼤于50的话,退出循环,否则继续循环,知道最⼤单价⼤于50就break出循环use pubsgowhile (select avg(price) from titles) <$30beginupdate titlesset price=price*2select max(price) from titlesif(select max(price) from titles) >$50breakelsecontinueendprint 'too much for the marker to bear'九、--事务编程经典例⼦--begin transaction是开始事务,commit transaction是提交事务,rollback transaction是回滚事务--这个例⼦是先插⼊⼀条记录,如果出现错误的话就回滚事务,也就是取消,并直接return(返回),如果没错的话就commit 提交这个事务了哦--上⾯的那个return返回可以返回⼀个整数值,如果这个值是0的话就是执⾏的时候没出错,如果出错了就是⼀个负数,--这个return也可以⽤在存储过程中,可⽤⽤ exec @return_status= pro_name来获取这个值use pubsgobegin tran mytraninsert into stores(stor_id,stor_name)values('333','my books')goinsert into discounts(discounttype,stor_id,discount)values('清仓甩卖','9999',50.00)if @@error<>0 [email=--@@error]--@@error[/email]返回最后执⾏的 Transact-SQL 语句的错误代码如果语句执⾏成功,则 @@ERROR 设置为 0。
SQL函数使用大全SQL(Structured Query Language)是一种用于管理关系数据库系统的语言。
在SQL中,函数(function)是为了简化和加强对数据库的操作而设计的一种特殊结构。
函数可以用于执行数学计算、字符串处理、日期处理等各种操作。
本文将介绍SQL中常用的函数,包括数值函数、字符串函数、日期函数、聚合函数等。
一、数值函数1.ABS(x):返回x的绝对值。
2.CEILING(x):返回大于等于x的最小整数。
3.FLOOR(x):返回小于等于x的最大整数。
4.MOD(x,y):返回x除以y的余数。
5.POWER(x,y):返回x的y次幂。
6.ROUND(x,d):返回将x四舍五入到d个位数的结果。
二、字符串函数1. CONCAT(str1, str2):将str1和str2拼接成一个字符串。
2. LENGTH(str):返回字符串str的长度。
3. LOWER(str):将字符串str转换为小写。
4. UPPER(str):将字符串str转换为大写。
5. SUBSTRING(str, start, length):返回字符串str从start位置开始的length个字符。
6. TRIM(str):去掉字符串str两边的空格。
三、日期函数1.CURRENT_DATE(:返回当前日期。
2.CURRENT_TIME(:返回当前时间。
3. DATE_ADD(date, INTERVAL n unit):在日期date上加上n个单位。
4. DATEDIFF(date1, date2):返回日期date1和date2之间的天数差。
5. DAYOFWEEK(date):返回日期date是星期几。
6. MONTH(date):返回日期date的月份。
四、聚合函数1. COUNT(column):返回其中一列的非空行数。
2. SUM(column):返回其中一列的数值总和。
3. AVG(column):返回其中一列的数值平均值。
SQL函数汇总***function(/*常用函数*/)***----统计函数----AVG --求平均值COUNT --统计数目MAX --求最大值MIN --求最小值SUM --求和--AVGuse panguselect avg(e_wage) as dept_avgWagefrom employeegroup by dept_id--MAX--求工资最高的员工姓名use panguselect e_namefrom employeewhere e_wage =(select max(e_wage)from employee)--STDEV()函数返回表达式中所有数据的标准差--STDEVP()函数返回总体标准差--VAR()函数返回表达式中所有值的统计变异数--VARP()函数返回总体变异数----算术函数----/***三角函数***/SIN(float_expressiοn) --返回以弧度表示的角的正弦COS(float_expressiοn) --返回以弧度表示的角的余弦TAN(float_expressiοn) --返回以弧度表示的角的正切COT(float_expressiοn) --返回以弧度表示的角的余切/***反三角函数***/ASIN(float_expressiοn) --返回正弦是FLOAT 值的以弧度表示的角ACOS(float_expressiοn) --返回余弦是FLOAT 值的以弧度表示的角ATAN(float_expressiοn) --返回正切是FLOAT 值的以弧度表示的角ATAN2(float_expressiοn1,float_expressiοn2)--返回正切是float_expressiοn1 /float_expres-sion2的以弧度表示的角DEGREES(numeric_expressiοn)--把弧度转换为角度返回与表达式相同的数据类型可为--INTEGER/MONEY/REAL/FLOAT 类型RADIANS(numeric_expressiοn) --把角度转换为弧度返回与表达式相同的数据类型可为--INTEGER/MONEY/REAL/FLOAT 类型EXP(float_expressiοn) --返回表达式的指数值LOG(float_expressiοn) --返回表达式的自然对数值LOG10(float_expressiοn)--返回表达式的以10 为底的对数值SQRT(float_expressiοn) --返回表达式的平方根/***取近似值函数***/CEILING(numeric_expressiοn) --返回>=表达式的最小整数返回的数据类型与表达式相同可为--INTEGER/MONEY/REAL/FLOAT 类型FLOOR(numeric_expressiοn) --返回<=表达式的最小整数返回的数据类型与表达式相同可为--INTEGER/MONEY/REAL/FLOAT 类型ROUND(numeric_expressiοn) --返回以integer_expressiοn 为精度的四舍五入值返回的数据--类型与表达式相同可为INTEGER/MONEY/REAL/FLOAT 类型ABS(numeric_expressiοn) --返回表达式的绝对值返回的数据类型与表达式相同可为--INTEGER/MONEY/REAL/FLOAT 类型SIGN(numeric_expressiοn) --测试参数的正负号返回0 零值1 正数或-1 负数返回的数据类型--与表达式相同可为INTEGER/MONEY/REAL/FLOAT 类型PI() --返回值为π即3.1415926535897936RAND([integer_expressiοn]) --用任选的[integer_expressiοn]做种子值得出0-1 间的随机浮点数----字符串函数----ASCII() --函数返回字符表达式最左端字符的ASCII 码值CHAR() --函数用于将ASCII 码转换为字符--如果没有输入0 ~ 255 之间的ASCII 码值CHAR 函数会返回一个NULL 值LOWER() --函数把字符串全部转换为小写UPPER() --函数把字符串全部转换为大写STR() --函数把数值型数据转换为字符型数据LTRIM() --函数把字符串头部的空格去掉RTRIM() --函数把字符串尾部的空格去掉LEFT(),RIGHT(),SUBSTRING() --函数返回部分字符串CHARINDEX(),PATINDEX() --函数返回字符串中某个指定的子串出现的开始位置SOUNDEX() --函数返回一个四位字符码--SOUNDEX函数可用来查找声音相似的字符串但SOUNDEX函数对数字和汉字均只返回0 值DIFFERENCE() --函数返回由SOUNDEX 函数返回的两个字符表达式的值的差异--0 两个SOUNDEX 函数返回值的第一个字符不同--1 两个SOUNDEX 函数返回值的第一个字符相同--2 两个SOUNDEX 函数返回值的第一二个字符相同--3 两个SOUNDEX 函数返回值的第一二三个字符相同--4 两个SOUNDEX 函数返回值完全相同QUOTENAME() --函数返回被特定字符括起来的字符串/*select quotename('abc', '{') quotename('abc')运行结果如下----------------------------------{{abc} [abc]*/REPLICATE() --函数返回一个重复character_expressiοn 指定次数的字符串/*select replicate('abc', 3) replicate( 'abc', -2)运行结果如下----------- -----------abcabcabc NULL*/REVERSE() --函数将指定的字符串的字符排列顺序颠倒REPLACE() --函数返回被替换了指定子串的字符串/*select replace('abc123g', '123', 'def')运行结果如下----------- -----------abcdefg*/SPACE() --函数返回一个有指定长度的空白字符串STUFF() --函数用另一子串替换字符串指定位置长度的子串----数据类型转换函数----CAST() 函数语法如下CAST() (<expressiοn> AS <data_ type>[ length ])CONVERT() 函数语法如下CONVERT() (<data_ type>[ length ], <expressiοn> [, style])select cast(100+99 as char) convert(varchar(12), getdate())运行结果如下------------------------------ ------------199 Jan 15 2000----日期函数----DAY() --函数返回date_expressiοn 中的日期值MONTH() --函数返回date_expressiοn 中的月份值YEAR() --函数返回date_expressiοn 中的年份值DATEADD(<datepart> ,<number> ,<date>)--函数返回指定日期date 加上指定的额外日期间隔number 产生的新日期DATEDIFF(<datepart> ,<number> ,<date>)--函数返回两个指定日期在datepart 方面的不同之处DATENAME(<datepart> , <date>) --函数以字符串的形式返回日期的指定部分DATEPART(<datepart> , <date>) --函数以整数值的形式返回日期的指定部分GETDATE() --函数以DATETIME 的缺省格式返回系统当前的日期和时间----系统函数----APP_NAME() --函数返回当前执行的应用程序的名称COALESCE() --函数返回众多表达式中第一个非NULL 表达式的值COL_LENGTH(<'table_name'>, <'column_name'>) --函数返回表中指定字段的长度值COL_NAME(<table_id>, <column_id>) --函数返回表中指定字段的名称即列名DATALENGTH() --函数返回数据表达式的数据的实际长度DB_ID(['database_name']) --函数返回数据库的编号DB_NAME(database_id) --函数返回数据库的名称HOST_ID() --函数返回服务器端计算机的名称HOST_NAME() --函数返回服务器端计算机的名称IDENTITY(<data_type>[, seed increment]) [AS column_name])--IDENTITY() 函数只在SELECT INTO 语句中使用用于插入一个identity column列到新表中/*select identity(int, 1, 1) as column_nameinto newtablefrom oldtable*/ISDATE() --函数判断所给定的表达式是否为合理日期ISNULL(<check_expressiοn>, <replacement_value>) --函数将表达式中的NULL 值用指定值替换ISNUMERIC() --函数判断所给定的表达式是否为合理的数值NEWID() --函数返回一个UNIQUEIDENTIFIER 类型的数值NULLIF(<expressiοn1>, <expressiοn2>)--NULLIF 函数在expressiοn1 与expressiοn2 相等时返回NULL 值若不相等时则返回expressiοn1 的值。