数据库各种函数
- 格式:doc
- 大小:25.50 KB
- 文档页数:4
mysql查找函数MySQL是一种开源的关系型数据库管理系统,提供了丰富的内置函数来帮助开发者进行数据查询。
这些函数可以用于各种场景,从简单的字符串处理到复杂的数学计算。
下面是一些常用的MySQL查找函数。
1.字符串查找函数:- `LOCATE(substr, str)`:返回子字符串在字符串中第一次出现的位置。
如果找不到子字符串,则返回0。
- `SUBSTRING_INDEX(str, delim, count)`:返回从字符串的起始位置或结束位置到指定分隔符的子字符串。
- `INSTR(str, substr)`:返回子字符串在字符串中第一次出现的位置。
2.字符串截取函数:- `LEFT(str, length)`:返回字符串左边指定长度的子字符串。
- `RIGHT(str, length)`:返回字符串右边指定长度的子字符串。
- `SUBSTRING(str, start, length)`:返回字符串从指定位置开始的指定长度的子字符串。
3.字符串替换函数:- `REPLACE(str, old, new)`:用新字符串替换字符串中的旧字符串。
4.字符串转换函数:- `UPPER(str)`:将字符串转换为大写。
- `LOWER(str)`:将字符串转换为小写。
- `CONCAT(str1, str2, ...)`:将多个字符串连接为一个字符串。
5.数学函数:- `ROUND(num, decimals)`:返回按指定小数位数四舍五入的结果。
- `CEIL(num)`:向上取整。
- `FLOOR(num)`:向下取整。
- `ABS(num)`:返回数字的绝对值。
- `POWER(num, exponent)`:返回一个数的指定次幂。
6.聚合函数:- `COUNT(column)`:计算给定列中的行数。
- `SUM(column)`:计算给定列的总和。
- `AVG(column)`:计算给定列的平均值。
大全数据库函数大全VisualFoxPro数据库函数ADATABASES()将所有打开数据库的名称和路径放到内存变量数组中ADBOBJECTS()把当前数据库中的命名连接名、关系名、表名或sQL视图名放到一个内存变量数组中AFIELDS()把当前表的结构信息存放在一个数组中,并且返回表的字段数ALIAS()返回当前表或指定工作区衰的别名ASESSIONS()创建一个已存在的数据工作期ID数组ATAGINFO()创建一个包含索引和键表达式的名字、数量和类型信息的数组AUSED()将一个数据工作期中的表别名和工作区存入内存变量数组BOF()确定当前记录指针是否在表头CANDIDATE()判断索引是否为候选索引CDX()根据指定的索引位置编号,返回打开的复合索引(.CDX)文件名称CPDBP()返回一个打开表所使用的代码页CREATEOFFLINE()由已存在的视图创建一个游离视图CURSORGETPROP()返回VisualFoxPro表或临时表的当前属性设置CURSORSETPROP()指定VisualFoxPro表或临时表的属性设置CURSORTOXML()转换VisualFoxPro临时表为XML文本CURVAL()从磁盘上的表或远程数据源中直接返回字段值DBC()返回当前数据库的名称和路径DBF()返回指定工作区中打开的表名,或根据表别名返回表名DBSETPROP()给当前数据库或当前数据库中的字段、命名连接、表或视图设置一个属性DELETED()返回一个表明当前记录是否标有删除标记的逻辑值DESCENDING()是否用DESCENDING关键字创建了一个索引标识DROPOFFLINE()放弃对游离视图的所有修改,并把游离视图放回到数据库中EOF()确定记录指针位置是否超出当前表或指定表中的最后一个记录FCOUNT()返回衰中的字段数目FIELD()根据编号返回表中的字段名FILTER()返回SETFILTER命令中指定的表筛选表达式FLDLIST()对于SETmELDS命令指定的字段列表,返回其中的字段和计算结果字段表达式FLOCK()尝试锁定当前表或指定表FOR()返回一个己打开的单项索引文件或索引标识的索引筛选表达式FOUND()如果CONTINUE、FIND、LOCATE或SEEK命令执行成功,函数的返回值为"真"FSIZE()以字节为单位,返回指定字段或文件的大小GETFLDSTATE()返回一个数值,标明表或临时表中的字段是否已被编辑,或是否有追加的记录,或者记录的删除状态是否已更改GETNEXTMODIFIED()返回一个记录号,对应于缓冲表或临时表中下一个被修改的记录HEADER()返回当前或指定表文件的表头所占的字节数IDXCOLLATE()返回索引或索引标识的排序序列INDBC()如果指定的数据库对象在当前数据库中,则返回"真"(.T.)INDEXSEEK()在一个索引表中搜索第一次出现的某个记录ISEXCLUSIVE()判断一个表或数据库是以独占方式打开的ISFLOCKED()返回表的锁定状态ISREADONLY()判断是否以只读方式打开表ISRLOCKED()返回记录的锁定状态KEY()返回索引标识或索引文件的索引关键字表达式KEYMATCH()在索引标识或索引文件中搜索一个索引关键字LOOKUP()在表中搜索字段值与指定表达式匹配的第一个记录LUPDATE()返回一个表最近一次更新的日期MDX()根据指定的索引编号返回打开的.CDX复合索引文件名MEMLINES()返回备注字段中的行数MLINE()以字符串形式返回备注字段中的指定行NDX()返回为当前表或指定表打开的某一索引(JDX)文件的名称ORDER()返回当前表或指定表的主控索引文件或标识PRIMARY()检查索引标识,如果为主索引标识,就返回"真"(.T.)RECCOUNT()返回当前或指定表中的记录数目RECNO()返回当前表或指定表中的当前记录号RECSIZE()返回表中记录的大小(宽度)REFRESH()在可更新的SQL视图中刷新数据RELATION()返回为给定工作区中打开的表所指定的关系表达式SEEK()在一个已建立索引的表中搜索一个记录的第一次出现位置SELECT()返回当前工作区编号或未使用工作区的最大编号SETFLDSTATE()为表或临时表中的字段或记录指定字段状态值或删除状态值SQLCANCEL()请求取消一条正在执行的SQL语句SQLCOLUMNS()把指定数据源表的列名和关于每列的信息存储到一个VisualFoxPro临时表中SQLCOMMIT()提交一个事务SQLCONNECT()建立一个指向数据源的连接SQLDISCONNECT()终止与数据源的连接SQLEXEC()将一条SQL语句送入数据源中处理SQLGETPROP()返回一个活动连接的当前设置或默认设置SQLMORERESULTS()如果存在多个结果集合,则将另一个结果集合复制到VisualFoxPro临时表中SQLPREPARE()在使用SQLEXEC()执行远程数据操作前,可使用本函数使远程数据为将要执行的命令做好准备SQLROLLBACK()取消当前事务处理期间所做的任何更改SQLSETPROP()指定一个活动连接的设置SQLSTRINGCONNECT()使用一个连接字符串建立和数据源的连接SQLTABLES()把数据源中的表名存储到VisualFoxPro临时表中SYS(14)索引表达式SYS(21)控制索引编号SYS(22)控制标识名或索引名SYS(2011)返回当前工作区中记录锁定或表锁定的状态SYS(2012)返回表的备注字段块大小SYS(2021)筛选索引表达式SYS(2029)返回与表类型对应的值SYS(3054)Rushmore优化等级·TAG()返回打开的.CDX多项复合索引文件的标识名,或者返回打开的.IDX单项索引文件的文件名TAGCOUNT()返回复合索引文件(.CDX)标识以及打开的单项索引文件(.IDX)的数目TAGNO()返回复合索引文件(.CDX)标识以及打开的单项索引(.IDX)文件的索引位置TARGET()返回一个表的别名,该表是SETRELATION命令的INTO子句所指定关系的目标UNIQUE()用于测试索引是否以惟一性方式建立UPDATED()用于测试在最近的READ命令中,数据是否已被修改USED()确定是否在指定工作区中打开了一个表XMLTOCURSOR()转换XML文本到VisualFoxPro游标或表----------------------------------------------Visual FoxPro日期和时间函数CTOD()把字符表达式转换成日期表达式。
MySQL中的字符串操作函数在数据库管理系统中,字符串操作是非常常见和重要的内容之一。
MySQL是最流行的开源关系型数据库管理系统之一,为了方便开发者对字符串进行处理,MySQL提供了各种各样的字符串操作函数。
本文将介绍MySQL中常用的字符串操作函数,并且通过实际例子展示它们的用法和作用。
1. CONCAT函数CONCAT函数用于连接两个或多个字符串。
它可以接受两个或多个字符串作为参数,并返回连接后的结果。
例如:SELECT CONCAT('Hello', ' ', 'World') AS Result;执行以上SQL语句,将返回"Hello World"。
CONCAT函数可以接受任意数量的参数,并将它们连接成一个字符串。
2. SUBSTRING函数SUBSTRING函数用于提取指定位置开始的子字符串。
它可以接受三个参数:原字符串、起始位置和子字符串的长度。
例如:SELECT SUBSTRING('MySQL', 2, 3) AS Result;执行以上SQL语句,将返回"ySQ"。
SUBSTRING函数从第2个字符开始提取3个字符。
3. REPLACE函数REPLACE函数用于替换字符串中的指定字符或子字符串。
它接受三个参数:原字符串、需要替换的子字符串和替换后的字符串。
例如:SELECT REPLACE('Hello World', 'World', 'MySQL') AS Result;执行以上SQL语句,将返回"Hello MySQL"。
REPLACE函数将原字符串中的"World"替换为"MySQL"。
4. UPPER和LOWER函数UPPER函数用于将字符串中的所有字符转换为大写,LOWER函数用于将字符串中的所有字符转换为小写。
INFORMIX数据库函数一、内部函数1、内部合计函数1)COUNT(*)返回行数2)COUNT(DISTINCT COLNAME)返回指定列中唯一值的个数3)SUM(COLNAME/EXPRESSION)返回指定列或表达式的数值和;4)SUM(DISTINCT COLNAME)返回指定列中唯一值的和5)AVG(COLNAME/EXPRESSION)返回指定列或表达式中的数值平均值6)AVG(DISTINCT COLNAME)返回指定列中唯一值的平均值7)MIN(COLNAME/EXPRESSION)返回指定列或表达式中的数值最小值8)MAX(COLNAME/EXPRESSION)返回指定列或表达式中的数值最大值2、日期与时间函数1)DAY(DATE/DATETIME EXPRESSION)返回指定表达式中的当月几号2)MONTH(DATE/DATETIME EXPRESSION)返回指定表达式中的月份3)YEAR(DATE/DATETIME EXPRESSION)返回指定表达式中的年份4)WEEKDAY(DATE/DATETIME EXPRESSION)返回指定表达式中的当周星期几5)DATE(NOT DATE EXPRESSION)返回指定表达式代表的日期值6)TODAY 返回当前日期的日期值7)CURRENT[FIRST TO LAST] 返回当前日期的日期时间值8)COLNAME/EXPRESSION UNITS PRECISION 返回指定精度的指定单位数9)MDY(MONTH,DAY,YEAR)返回标识指定年、月、日的日期值10)DATETIME(DATE/DATETIME EXPRESSION)FIRST TO LAST 返回表达式代表的日期时间值11)INTERVAL(DATE/DATETIME EXPRESSION)FIRST TO LAST 返回表达式代表的时间间隔值12)EXTEND(DATE/DATETIME EXPRESSION,[FIRST TO LAST])返回经过调整的日期或日期时间值To_char函数将datetime和date值转化为字符值。
在数据库中,位函数用于处理二进制位数据类型。
它们提供了在位级别上操作和处理二进制数据的功能。
下面是一些常见的数据库中使用的位函数:
BITAND(x, y):计算两个二进制数的按位与(bitwise AND)操作,返回结果。
BITOR(x, y):计算两个二进制数的按位或(bitwise OR)操作,返回结果。
BITXOR(x, y):计算两个二进制数的按位异或(bitwise XOR)操作,返回结果。
BITNOT(x):计算一个二进制数的按位非(bitwise NOT)操作,返回结果。
BITSHIFTLEFT(x, n):对一个二进制数进行向左移位操作,移动n个位数,返回结果。
BITSHIFTRIGHT(x, n):对一个二进制数进行向右移位操作,移动n个位数,返回结果。
这些位函数可以用于执行位级别的逻辑运算、位移操作和位数运算等。
值得注意的是,位函数通常用于处理二进制数据,如标志位、权限控制、位图索引等。
在普通的数据处理中,位函数的使用相对较少。
数据库常⽤函数⼀、数学函数abs(x) 返回x的绝对值bin(x) 返回x的⼆进制(oct返回⼋进制,hex返回⼗六进制)ceiling(x) 返回⼤于x的最⼩整数值exp(x) 返回值e(⾃然对数的底)的x次⽅floor(x) 返回⼩于x的最⼤整数值greatest(x1,x2,...,xn)返回集合中最⼤的值least(x1,x2,...,xn) 返回集合中最⼩的值ln(x) 返回x的⾃然对数log(x,y)返回x的以y为底的对数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位⼩数的结果⼆、聚合函数(常⽤于group by从句的select查询中)avg(col)返回指定列的平均值count(col)返回指定列中⾮null值的个数min(col)返回指定列的最⼩值max(col)返回指定列的最⼤值sum(col)返回指定列的所有值之和group_concat(col) 返回由属于⼀组的列值连接组合⽽成的结果三、字符串函数ascii(char)返回字符的ascii码值bit_length(str)返回字符串的⽐特长度concat(s1,s2...,sn)将s1,s2...,sn连接成字符串concat_ws(sep,s1,s2...,sn)将s1,s2...,sn连接成字符串,并⽤sep字符间隔insert(str,x,y,instr) 将字符串str从第x位置开始,y个字符长的⼦串替换为字符串instr,返回结果find_in_set(str,list)分析逗号分隔的list列表,如果发现str,返回str在list中的位置lcase(str)或lower(str) 返回将字符串str中所有字符改变为⼩写后的结果left(str,x)返回字符串str中最左边的x个字符length(s)返回字符串str中的字符数ltrim(str) 从字符串str中切掉开头的空格position(substr in str) 返回⼦串substr在字符串str中第⼀次出现的位置quote(str) ⽤反斜杠转义str中的单引号repeat(str,srchstr,rplcstr)返回字符串str重复x次的结果reverse(str) 返回颠倒字符串str的结果right(str,x) 返回字符串str中最右边的x个字符rtrim(str) 返回字符串str尾部的空格strcmp(s1,s2)⽐较字符串s1和s2trim(str)去除字符串⾸部和尾部的所有空格ucase(str)或upper(str) 返回将字符串str中所有字符转变为⼤写后的结果四、⽇期和时间函数curdate()或current_date() 返回当前的⽇期curtime()或current_time() 返回当前的时间date_add(date,interval int keyword)返回⽇期date加上间隔时间int的结果(int必须按照关键字进⾏格式化),如:selectdate_add(current_date,interval 6 month);date_format(date,fmt) 依照指定的fmt格式格式化⽇期date值date_sub(date,interval int keyword)返回⽇期date加上间隔时间int的结果(int必须按照关键字进⾏格式化),如:selectdate_sub(current_date,interval 6 month);dayofweek(date) 返回date所代表的⼀星期中的第⼏天(1~7)dayofmonth(date) 返回date是⼀个⽉的第⼏天(1~31)dayofyear(date) 返回date是⼀年的第⼏天(1~366)dayname(date) 返回date的星期名,如:select dayname(current_date);from_unixtime(ts,fmt) 根据指定的fmt格式,格式化unix时间戳tshour(time) 返回time的⼩时值(0~23)minute(time) 返回time的分钟值(0~59)month(date) 返回date的⽉份值(1~12)monthname(date) 返回date的⽉份名,如:select monthname(current_date);now() 返回当前的⽇期和时间quarter(date) 返回date在⼀年中的季度(1~4),如select quarter(current_date);week(date) 返回⽇期date为⼀年中第⼏周(0~53)year(date) 返回⽇期date的年份(1000~9999)⼀些⽰例:获取当前系统时间:select from_unixtime(unix_timestamp());select extract(year_month from current_date);select extract(day_second from current_date);select extract(hour_minute from current_date);返回两个⽇期值之间的差值(⽉数):select period_diff(200302,199802);在mysql中计算年龄:select date_format(from_days(to_days(now())-to_days(birthday)),'%y')+0 as age from employee;这样,如果brithday是未来的年⽉⽇的话,计算结果为0。
MySQL数据库常用函数大全字符串函数字符串函数是最常用的一种函数,MySQL支持很多种字符串函数。
下列是MySQL支持的字符串函数表。
1、LOWER(str) 和UPPER(str)函数:用于转换大小写。
2、CONCAT(s1,s2…sn): 把传入的参数拼接成一个字符串。
任何和NULL进行字符串拼接的结果都是NULL。
3、LEFT(str,x) 和RIGHT(str,x) 函数:分别返回字符串最左边的x个字符和最右边的x个字符。
如果第二个参数是NULL,那么将不会返回任何字符串。
4、INSERT(str,x,y,instr): 将字符串str 从指定x的位置开始,取y个长度的字串替换为instr。
5、LTRIM(str)和RTRIM(str)分别表示去掉字符串str左侧和右侧的空格。
6、REPEAT(str,x)函数:返回str 重复x次的结果。
7、TRIM(str)函数,用于去掉目标字符串的空格。
8、SUBSTRING(str,x,y)函数,返回从字符串str中第x位置起y个字符长度的字符串。
9、LPAD(str,n,pad)和RPAD(str,n,pad)函数,用字符串pad对str左边和右边进行填充,直到长度为n个字符长度。
10、STRCMP(s1,s2)用于比较字符串s1和s2的ASCII值大小。
如果s1<s2,则返回-1,如果s1=s2,则返回0,如果s1>s2,则返回1。
11、REPLACE(str,a,b),用字符串b替换字符串str中所有出现的字符串a。
数值函数MySQL支持数值函数,这些函数能够处理很多数值运算。
1、A B S ( x )函数,返回x 的绝对值2、C E I L ( x )函数,返回大于x 的整数。
、M O D ( x , y ),对x 和y 进行取模操作。
、R O U N D ( x , y )返回x 四舍五入后保留位小数的值,如果是整数,那么y 为就是0,如不指定,那么y 默认也是0。
数据库常用函数1.绝对值S: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.23466.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; 18.取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:selectINSTR('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:select Translate('fasdbfasegas','fa','我' ) value from dual27.长度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) value O: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标准时间。
数据库函数类型数据库函数类型数据库函数是一种可重复使用的代码块,它定义在数据库中,用于执行一些特定的操作或计算。
它们可以是内置函数,也可以是用户定义的函数。
数据库函数类型有很多种,常见的包括以下几类:1. 聚合函数聚合函数用于计算某些列的统计值,如总数、平均值、最大值、最小值等。
常见的聚合函数有SUM、AVG、MAX、MIN等。
例如,我们可以使用以下SQL语句来计算某个表中某列的总和:SELECT SUM(column_name) FROM table_name;2. 字符串函数字符串函数用于处理字符或字符串类型的数据。
它们可以用于截取、替换、拼接、转换字符串等操作。
常见的字符串函数有CONCAT、SUBSTR、UPPER、LOWER、REPLACE等。
例如,我们可以使用以下SQL语句来将某个表中的字符串字段全部转换为大写:SELECT UPPER(column_name) FROM table_name;3. 数学函数数学函数用于执行数学计算,如求绝对值、平方、开方、自然对数等。
常见的数学函数有ABS、SQR、SIN、COS、LOG等。
例如,我们可以使用以下SQL语句来计算某个表中某列的平方值:SELECT SQR(column_name) FROM table_name;4. 日期时间函数日期时间函数用于处理日期和时间类型的数据。
它们可以用于格式化、计算、比较日期和时间。
常见的日期时间函数有DATE_FORMAT、DATEDIFF、NOW、TIMESTAMPDIFF等。
例如,我们可以使用以下SQL语句来计算某个表中某列的日期差:SELECT DATEDIFF(column_name1, column_name2) FROM table_name;在设计数据库时,我们可以使用函数来定义计算、检查和转换数据值的规则。
通过函数,我们可以避免重复性的数据转换和计算,提高代码的可重用性和可维护性。
因此,了解数据库函数类型和使用场景是非常重要的。
一、字符转换函数
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个字符的部分。
四、字符串比较函数
1、CHARINDEX()
返回字符串中某个指定的子串出现的开始位置。
CHARINDEX (<’substring_expression’>,<expression>)
其中substring _expression 是所要查找的字符表达式,expression 可为字符串也可为列名表达式。
如果没有发现子串,则返回0 值。
此函数不能用于TEXT 和IMAGE 数据类型。
2、PATINDEX()
返回字符串中某个指定的子串出现的开始位置。
PATINDEX (<’%substring _expression%’>,<column_ name>)其中子串表达式前后必须有百分号“%”否则返回值为0。
与CHARINDEX 函数不同的是,PATINDEX函数的子串中可以使用通配符,且此函数可用于CHAR、VARCHAR 和TEXT 数据类型。
五、字符串操作函数
1、QUOTENAME()
返回被特定字符括起来的字符串。
QUOTENAME (<’character_expression’>[,quote_ character]) 其中quote_ character 标明括字符串所用的字符,缺省值为“[]”。
2、REPLICATE()
返回一个重复character_expression 指定次数的字符串。
REPLICATE (character_expression integer_expression) 如果integer_expression 值为负值,则返回NULL 。
3、REVERSE()
将指定的字符串的字符排列顺序颠倒。
REVERSE (<character_expression>) 其中character_expression 可以是字符串、常数或一个列的值。
4、REPLACE()
返回被替换了指定子串的字符串。
REPLACE (<string_expression1>,<string_expression2>,<string_expression3>) 用string_expression3 替换在string_expression1 中的子串string_expression2。
4、SPACE()
返回一个有指定长度的空白字符串。
SPACE (<integer_expression>) 如果integer_expression 值为负值,则返回NULL 。
5、STUFF()
用另一子串替换字符串指定位置、长度的子串。
STUFF (<character_expression1>,<start_ position>,<length>,<character_expression2>)
如果起始位置为负或长度值为负,或者起始位置大于character_expression1 的长度,则返回NULL 值。
如果length 长度大于character_expression1 中start_ position 以右的长度,则character_expression1 只保留首字符。
六、数据类型转换函数
1、CAST()
CAST (<expression> AS <data_ type>[ length ])
2、CONVERT()
CONVERT (<data_ type>[ length ],<expression> [,style])
1)data_type为SQL Server系统定义的数据类型,用户自定义的数据类型不能在此使用。
2)length用于指定数据的长度,缺省值为30。
3)把CHAR或VARCHAR类型转换为诸如INT或SAMLLINT这样的INTEGER类型、结果必须是带正号或负号的数值。
4)TEXT类型到CHAR或VARCHAR类型转换最多为8000个字符,即CHAR或VARCHAR 数据类型是最大长度。
5)IMAGE类型存储的数据转换到BINARY或VARBINARY类型,最多为8000个字符。
6)把整数值转换为MONEY或SMALLMONEY类型,按定义的国家的货币单位来处理,如人民币、美元、英镑等。
7)BIT类型的转换把非零值转换为1,并仍以BIT类型存储。
8)试图转换到不同长度的数据类型,会截短转换值并在转换值后显示“+”,以标识发生了这种截断。
9)用CONVERT()函数的style 选项能以不同的格式显示日期和时间。
style 是将DATATIME 和SMALLDATETIME 数据转换为字符串时所选用的由SQL Server 系统提供的转换样式编号,不同的样式编号有不同的输出格式。
七、日期函数
1、day(date_expression)
返回date_expression中的日期值
2、month(date_expression)
返回date_expression中的月份值
3、year(date_expression)
返回date_expression中的年份值
4、DATEADD()
DATEADD (<datepart>,<number>,<date>)
返回指定日期date 加上指定的额外日期间隔number 产生的新日期。
5、DATEDIFF()
DATEDIFF (<datepart>,<date1>,<date2>)
返回两个指定日期在datepart 方面的不同之处,即date2 超过date1的差距值,其结果值是一个带有正负号的整数值。
6、DATENAME()
DATENAME (<datepart>,<date>)
以字符串的形式返回日期的指定部分此部分。
由datepart 来指定。
7、DATEPART()
DATEPART (<datepart>,<date>)
以整数值的形式返回日期的指定部分。
此部分由datepart 来指定。
DATEPART (dd,date) 等同于DAY (date)
DATEPART (mm,date) 等同于MONTH (date) DATEPART (yy,date) 等同于YEAR (date)
8、GETDATE()
以DATETIME 的缺省格式返回系统当前的日期和时间。