数据库函数
数据库MySQL常用函数大全
数据库MySQL常用函数大全一、数学函数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,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必须按照关键字进行格式化),如:SELECT DATE_ADD(CURRENT_DATE,INTERVAL 6 MONTH); DATE_FORMAT(date,fmt) 依照指定的fmt格式格式化日期date值DATE_SUB(date,INTERVAL int keyword) 返回日期date加上间隔时间int的结果(int必须按照关键字进行格式化),如:SELECT DATE_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的月份名,如:SELECTMONTHNAME(CURRENT_DATE);NOW() 返回当前的日期和时间QUARTER(date) 返回date在一年中的季度(1~4),如SELECTQUARTER(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。
excel的数据库函数
excel的数据库函数
Excel提供了一些强大的数据库函数,可以帮助用户在数据处理和分析方面更加高效。
其中一些常用的数据库函数包括:
1. VLOOKUP函数,VLOOKUP函数用于在数据表中查找某个值,并返回该值所在行的指定列的数值。
这个函数在数据表的查找和匹配中非常有用。
2. HLOOKUP函数,HLOOKUP函数与VLOOKUP函数类似,但是它是水平查找,用于在数据表的第一行中查找某个值,并返回该值所在列的指定行的数值。
3. INDEX函数,INDEX函数可以根据给定的行号和列号返回数据表中的数值。
这个函数在需要根据特定条件来获取数据时非常有用。
4. MATCH函数,MATCH函数用于在数据表中查找某个值,并返回该值所在位置的相对位置。
这个函数通常与其他函数一起使用,用于数据的定位和匹配。
5. SUMIF函数,SUMIF函数可以根据指定的条件对数据表中的数值进行求和。
这个函数在统计和汇总数据时非常有用。
6. COUNTIF函数,COUNTIF函数可以根据指定的条件对数据表中的数值进行计数。
这个函数在统计数据出现次数时非常有用。
这些数据库函数可以帮助用户在Excel中更加高效地处理和分析数据,提高工作效率。
当然,除了上述列举的函数之外,Excel 还提供了其他许多数据库函数,用户可以根据自己的需求选择合适的函数来完成数据处理和分析的工作。
希望这些信息能够对你有所帮助。
VisualFoxPro数据库编程函数大全
大全数据库函数大全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()把字符表达式转换成日期表达式。
数据库聚集函数
数据库聚集函数数据库聚集函数是数据库中常用的一种函数,它用于统计数据表中某一列的数据信息。
本文将介绍常用的数据库聚集函数及其用法。
1. COUNT函数COUNT函数是最常用的聚集函数之一,它用于计算数据表中某一列的记录数。
语法如下:COUNT(column_name)其中,column_name是要统计记录数的列名。
如果不指定列名,则统计整个数据表的记录数。
COUNT函数返回值为一个整数,表示记录数。
2. SUM函数SUM函数用于计算数据表中某一列的数值总和。
语法如下:SUM(column_name)其中,column_name是要计算总和的列名。
SUM函数返回值为一个数值,表示总和。
3. AVG函数AVG函数用于计算数据表中某一列的数值平均值。
语法如下:AVG(column_name)其中,column_name是要计算平均值的列名。
AVG函数返回值为一个数值,表示平均值。
4. MAX函数MAX函数用于计算数据表中某一列的最大值。
语法如下:MAX(column_name)其中,column_name是要计算最大值的列名。
MAX函数返回值为一个数值,表示最大值。
5. MIN函数MIN函数用于计算数据表中某一列的最小值。
语法如下:MIN(column_name)其中,column_name是要计算最小值的列名。
MIN函数返回值为一个数值,表示最小值。
除了以上五种常用的聚集函数外,还有一些其他的聚集函数,例如:6. VARIANCE函数VARIANCE函数用于计算数据表中某一列的方差。
语法如下:VARIANCE(column_name)其中,column_name是要计算方差的列名。
VARIANCE函数返回值为一个数值,表示方差。
7. STDDEV函数STDDEV函数用于计算数据表中某一列的标准差。
语法如下:STDDEV(column_name)其中,column_name是要计算标准差的列名。
STDDEV函数返回值为一个数值,表示标准差。
Excel的14个常用的数据库函数
Excel的14个常用的数据库函数1. DVARP函数:用于计算总体方差。
语法:DVARP(database,field,criteria)参数:database表示要在其中计算方差的数据范围,field表示要计算方差的字段,criteria 是一个可选的筛选条件。
2. GETPOVOTDATA函数:用于从数据透视表中获取特定单元格的值。
语法:GETPOVOTDATA(data_field, pivot_table, [field1, item1], [field2, item2], …)参数:data_field表示从数据透视表中返回的数据区域,pivot_table表示要检索数据的数据透视表,field1, item1等表示要使用的筛选条件。
3. DVAR函数:用于计算样本方差。
语法:DVAR(database,field,criteria)参数:database表示要在其中计算方差的数据范围,field表示要计算方差的字段,criteria 是一个可选的筛选条件。
4. DSTDEVP函数:用于计算总体标准差。
语法:DSTDEVP(database,field,criteria)参数:database表示要在其中计算标准差的数据范围,field表示要计算标准差的字段,criteria是一个可选的筛选条件。
5. DSUM函数:用于计算数据范围中数值的总和。
语法:DSUM(database,field,criteria)参数:database表示要在其中计算总和的数据范围,field表示要计算的字段,criteria 是一个可选的筛选条件。
6. DPRODUCT函数:用于计算数据范围中数值的乘积。
语法:DPRODUCT(database,field,criteria)参数:database表示要在其中计算乘积的数据范围,field表示要计算的字段,criteria 是一个可选的筛选条件。
7. DSTDEV函数:用于计算样本标准差。
高斯数据库时间函数
高斯数据库时间函数
高斯数据库支持以下时间函数:
1. NOW():返回当前的日期和时间。
2. DATE():从日期时间值中提取日期。
3. TIME():从日期时间值中提取时间。
4. MONTH():从日期时间值中提取月份。
5. YEAR():从日期时间值中提取年份。
6. DAY():从日期时间值中提取天数。
7. HOUR():从日期时间值中提取小时数。
8. MINUTE():从日期时间值中提取分钟数。
9. SECOND():从日期时间值中提取秒数。
10. TIMESTAMP():将日期时间值转换为UNIX时间戳形式。
11. FROM_UNIXTIME():将UNIX时间戳转换为日期时间值形式。
12. ADDDATE():添加一个日期时间值的指定数量的年、月和日。
13. SUBDATE():从一个日期时间值中减去指定数量的年、月和日。
14. DATE_FORMAT():将日期时间值格式化为指定的形式。
15. STR_TO_DATE():将字符串转换为日期时间值形式。
数据库常用函数表
DTOC(DATE())
11/01/2002
DTOS(D)
把日期转成年月日式的字符串
DTOS(DATE())
CTOT(C)
字符串转成日期时间型
CTOT(11/01/2002 10:30:50am)
11/01/2002 10:30:50am
DTOT(D)
日期型转为日期时间型
DTOT(DATE())
ROUND(3.14159,4)
3.1416
RAND()
随机小数(0<RAND()<1)
0.0001,0.333,0.9999
Sum(x)
对一列求和计算
Sum(字段名)
Avg(x)
对一列求平均计算
Avg(字段名)
平均数
MAX(x)
求一列中的最大值
MAX(字段名)
最大值
MIN(x,y)
求一TE())
12
DOW(D)
求星期几(数值)
DOW(DATE())
1
CDOW(D)
求星期几(英文)
CDOW(DATE())
sunday
TIME(D)
求当前时间
TIME(DATE())
10:20:38am
4、数据类型转换函数
函数名
操作
例
结果
ASC(S)
求第一个字符串的ASCII码
ASC("what")
11/25/2001 00:00:01am
TTOC(T)
日期时间型转为字符型
TTOC(DATETIME())
11/25/2001 00:00:01am
TTOD(T)
日期时间型转为日期型
MySQL数据库常用函数大全
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;在设计数据库时,我们可以使用函数来定义计算、检查和转换数据值的规则。
通过函数,我们可以避免重复性的数据转换和计算,提高代码的可重用性和可维护性。
因此,了解数据库函数类型和使用场景是非常重要的。
数据库函数详解含举例说明
一:DSTDEV函数应用实例函数功能:将列表或数据库的列中满足指定条件的数字作为一个样本,估算样本总体的标准偏差。
语法DSTDEV(database,field,criteria)Database构成列表或数据库的单元格区域。
数据库是包含一组相关数据的列表,其中包含相关信息的行为记录,而包含数据的列为字段。
列表的第一行包含着每一列的标志项。
Field指定函数所使用的数据列。
列表中的数据列必须在第一行具有标志项。
Field可以是文本,即两端带引号的标志项,如“使用年数”或“产量”;此外,Field 也可以是代表列表中数据列位置的数字:1 表示第一列,2 表示第二列,等等。
Criteria为一组包含给定条件的单元格区域。
可以为参数criteria 指定任意区域,只要它至少包含一个列标志和列标志下方用于设定条件的单元格。
以下为该函数的两个应用实例,请仔细阅读!二:DSTDEVP函数应用实例函数功能:将列表或数据库的列中满足指定条件的数字作为样本总体,计算总体的标准偏差。
语法DSTDEVP(database,field,criteria)Database构成列表或数据库的单元格区域。
数据库是包含一组相关数据的列表,其中包含相关信息的行为记录,而包含数据的列为字段。
列表的第一行包含着每一列的标志项。
Field指定函数所使用的数据列。
列表中的数据列必须在第一行具有标志项。
Field 可以是文本,即两端带引号的标志项,如“使用年数”或“产量”;此外,Field 也可以是代表列表中数据列位置的数字:1 表示第一列,2 表示第二列,等等。
Criteria为一组包含给定条件的单元格区域。
可以为参数criteria指定任意区域,只要它至少包含一个列标志和列标志下方用于设定条件的单元格。
以下为该函数的两个应用实例,请仔细阅读!的两个应用实例,请仔细阅读!一:理论知识函数功能:返回列表或数据库的列中满足指定条件的数值的乘积。
visual foxpro 数据库 函数大全
【格式】COL ( )
ROW()
【功能】COL ( )返回光标的列坐标值,ROW ( )返回光标的行坐标值。
11.打印机列坐标和行坐标函数PCOL( ),PROW( )
【格式】PCOL( )
PROW()
【功能】返回打印机打印头所处位置的列坐标和行坐标。
【格式】INT(<nExp>)
【功能】计算nExp的值,返回该值的整数部分。
4.上界函数CEILING( )
【格式】CEILING(<nExp>)
【功能】计算nExp的值,返回一个大于或等于该值的最小整数。
5.下界函数FLOOR( )
【格式】FLOOR(<nExp>)
【功能】计算nExp的值,返回一个小于或等于该值的最大整数。
6.当前记录号函数RECNO()
【格式】RECNO([<工作区号> | <别名>])
【功能】返回指定工作区中表的当前记录的记录号。对于空表返回值为1。
7.当前记录逻辑删除标志测试函数DELETED( )
【格式】DELETED([<工作区号> | <别名>])
【功能】测试指定工作区中表的当前记录是否被逻辑删除。如果当前记有逻辑删除标记,函数返回真(.T.),否则为假(.F.)。
4.取子串函数SUBSTR( )
【格式】SUBSTR (<cExp>,<nExp1> [,< nExp2>] )
【功能】返回从串cExp中第nExp1个字符开始,截取nExp2个字符的子串。
excel 数据库函数
excel 数据库函数Excel 数据库函数Excel 数据库函数是一种非常强大的工具,它可以帮助用户在Excel 中快速地处理大量的数据。
下面我们来介绍一些常用的Excel 数据库函数。
1. SUMIF 函数SUMIF 函数可以根据指定的条件对数据进行求和。
例如,我们可以使用SUMIF 函数来计算某个部门的总销售额。
其语法为:SUMIF(range, criteria, [sum_range])。
2. COUNTIF 函数COUNTIF 函数可以根据指定的条件对数据进行计数。
例如,我们可以使用COUNTIF 函数来计算某个部门的员工人数。
其语法为:COUNTIF(range, criteria)。
3. AVERAGEIF 函数AVERAGEIF 函数可以根据指定的条件对数据进行平均值计算。
例如,我们可以使用AVERAGEIF 函数来计算某个部门的平均销售额。
其语法为:AVERAGEIF(range, criteria, [average_range])。
4. MAX 函数MAX 函数可以返回指定数据范围中的最大值。
例如,我们可以使用MAX 函数来找出某个部门的最高销售额。
其语法为:MAX(number1, [number2], …)。
5. MIN 函数MIN 函数可以返回指定数据范围中的最小值。
例如,我们可以使用MIN 函数来找出某个部门的最低销售额。
其语法为:MIN(number1, [number2], …)。
6. VLOOKUP 函数VLOOKUP 函数可以根据指定的值在数据表中查找对应的值。
例如,我们可以使用VLOOKUP 函数来查找某个员工的工资。
其语法为:VLOOKUP(lookup_value, table_array, col_index_num, [range_lookup])。
7. HLOOKUP 函数HLOOKUP 函数与 VLOOKUP 函数类似,不同之处在于它是在水平方向上查找数据。
excel中数据库函数的用法
excel中数据库函数的用法1.引言1.1 概述概述在Excel中,数据库函数提供了一种便捷的方式来处理和分析大量的数据。
它们是一类特殊的函数,旨在帮助用户对数据库中的数据进行有序的提取、过滤、排序和计算。
无论是在商业、科研还是个人数据处理的场景中,数据库函数都扮演着重要的角色。
本文将深入探讨Excel中数据库函数的用法,从基本概念到常见用法,逐步介绍它们的功能和操作方法。
初学者可以通过本文学习如何正确使用这些函数,而有经验的用户则可以进一步提高数据处理和分析的效率。
在正文部分,我们将详细讨论数据库函数的基本概念,包括函数的定义和区别于常规函数的特殊之处。
我们还将解释如何正确设置和使用数据库函数,以及如何获取所需的数据结果。
接着,我们将深入研究数据库函数的常见用法。
我们将介绍一些最常用和实用的函数,例如VLOOKUP、SUMIF、COUNTIF等等,并通过具体的示例来演示它们的应用。
读者将能够学习到如何根据特定的条件在数据库中查找和提取数据,以及如何对数据进行统计和汇总。
最后,在结论部分,我们将总结数据库函数的作用和优势,并展望它们的未来发展。
随着Excel功能的不断完善和用户需求的不断增长,我们可以期待数据库函数在数据处理领域的更多应用和发展。
通过阅读本文,读者将能够全面了解和掌握Excel中数据库函数的用法。
无论是在工作中还是个人生活中,掌握这些函数将为我们的数据处理提供更多的选择和便利。
让我们一同探索数据库函数的奥秘,提升我们的数据处理技能!文章结构部分的内容:文章结构是指在撰写文章时,按照一定的逻辑顺序和层次展开内容,以使读者能够清晰地理解和掌握文章的主要思想和论证过程。
本文按照以下结构组织内容。
引言部分:介绍文章的背景和意义,说明本文着重介绍Excel中数据库函数的用法。
引言分为以下几个部分:1.1 概述:简单介绍数据库函数的概念和作用,以及其在Excel中的重要性。
1.2 文章结构:说明本文的结构和组织方式,让读者对文章的整体框架有一个清晰的了解。
数据库5种聚合函数的具体含义
数据库5种聚合函数的具体含义数据库中的聚合函数是SQL语言中非常重要的一部分,它允许我们在数据集上进行计算和汇总操作。
常见的数据库聚合函数有5种,它们分别是:COUNT、SUM、AVG、MIN和MAX。
每个聚合函数都有其特定的用途和功能,下面我将详细介绍这5种聚合函数的具体含义。
1. COUNT(计数)COUNT函数用于计算指定列或表中的行数。
它可以用来统计某个表中的记录数量或某个列中的非空值数量。
在使用COUNT函数时,可以使用WHERE子句来指定条件,从而筛选需要计数的行。
COUNT函数还可以与DISTINCT关键字一起使用,以得到唯一值的计数结果。
2. SUM(求和)SUM函数用于计算指定列的数值之和。
它主要适用于数值型数据,可以用来统计某个表中某一列的总和,比如销售额的总和或某个时间段内的销售总量。
使用SUM函数时,要确保被计算的列是可以进行数值计算的。
3. AVG(平均值)AVG函数用于计算指定列的平均值。
它和SUM函数类似,但不同之处在于它返回的是列的平均值而不是总和。
AVG函数主要适用于数值型数据,可以用来计算某个表中某一列的平均值,比如平均销售额或平均消费金额。
4. MIN(最小值)MIN函数用于找出指定列的最小值。
它可以用来查找某个表中某一列的最小值,比如最低销售额或最低温度。
MIN函数也可以与其他聚合函数一起使用,比如找到某列的最小值,并计算它的平均值。
5. MAX(最大值)MAX函数用于找出指定列的最大值。
它可以用来查找某个表中某一列的最大值,比如最高销售额或最高温度。
和MIN函数类似,MAX函数也可以与其他聚合函数一起使用,比如找到某列的最大值,并计算它的总和。
以上就是数据库中常见的5种聚合函数的具体含义。
它们在数据处理和分析中发挥着重要的作用,可以帮助我们对数据进行汇总、计算和统计。
通过对这些聚合函数的理解和运用,我们可以更好地处理和分析数据,为决策和业务提供有价值的支持。
不同数据库的特殊函数
不同数据库的特殊函数不同数据库的特殊函数在不同的数据库中,都有一些特殊的函数,这些函数可以帮助我们更好地处理数据,提高数据的处理效率。
下面是一些常见的数据库及其特殊函数:1. MySQLMySQL是一种开源的关系型数据库管理系统,它的特殊函数有:(1) CONCAT()函数:用于将多个字符串连接成一个字符串。
(2) SUBSTRING()函数:用于截取字符串的一部分。
(3) IFNULL()函数:用于判断一个值是否为NULL,如果为NULL则返回另一个值。
(4) GROUP_CONCAT()函数:用于将多个行的值连接成一个字符串。
(5) DATE_FORMAT()函数:用于将日期格式化成指定的格式。
2. OracleOracle是一种商业化的关系型数据库管理系统,它的特殊函数有:(1) TO_CHAR()函数:用于将数值、日期等类型转换为字符类型。
(2) TO_NUMBER()函数:用于将字符类型转换为数值类型。
(3) TO_DATE()函数:用于将字符类型转换为日期类型。
(4) NVL()函数:用于判断一个值是否为NULL,如果为NULL则返回另一个值。
(5) DECODE()函数:用于实现条件判断,类似于if-else语句。
3. SQL ServerSQL Server是一种商业化的关系型数据库管理系统,它的特殊函数有:(1) LEN()函数:用于返回字符串的长度。
(2) SUBSTRING()函数:用于截取字符串的一部分。
(3) CAST()函数:用于将一个数据类型转换为另一个数据类型。
(4) ISNULL()函数:用于判断一个值是否为NULL,如果为NULL则返回另一个值。
(5) DATEPART()函数:用于返回日期的某个部分,比如年、月、日等。
4. PostgreSQLPostgreSQL是一种开源的关系型数据库管理系统,它的特殊函数有:(1) CONCAT()函数:用于将多个字符串连接成一个字符串。
数据库常用函数
数据库常⽤函数函数对于函数需要⼤家了解的有:1、函数名2、除了&宏函数外,所有函数必须加()3、函数的作⽤4、函数的参数5、函数的返回值及其类型数值运算函数: INT()、ABS()、MAX()、MIN()、SQRT()、ROUND()、MOD()字符处理函数: LEN()、A T()、SPACE()、SUBSTR()、LEFT()、RIGHT()TRIM=RTRIM(TRIM\ALLTRIM\LTRIM\RTRIM)、STUFF()、&:宏函数转换函数:LOWER()、UPPER()、CTOD()、DTOC()、STR()、V AL() ASC()、CHR()⽇期时间函数: DA TE()、TIME()、YEAR()、MONTH()、DAY()测试函数: RECNO()、BOF()、EOF()、FOUND()、FILE()、DBF()、RECCOUNT()、SELECT()、TYPE()、IIF()、其它:ROW()、COL()、INKEY()、READKEY()1.数值处理函数(1)求对数函数LOG()【格式】LOG(<数值表达式>)【功能】返回<数值表达式>的⾃然对数值。
【说明】<数值表达式>值必须⼤于零。
【例如】输⼊语句:?LOG(16.5),LOG(10),LOG(1)显⽰结果: 2.80 2.30 0.00(2)求四舍五⼊函数ROUND()【格式】ROUND(<数值表达式1>,<数值表达式2>)【功能】返回<数值表达式1>按<数值表达式2>所指定的保留⼩数位数进⾏四舍五⼊的值。
若<数值表达式2>的值为负,则返回⼩数点左边为<数值表达式2>绝对值个数零的整数值。
【例如】:输⼊语句:?ROUND(68.345,2),ROUND(68.745,0),ROUND(68.345,-1),ROUND(68.345,-2)显⽰结果:68.35 69 70100注意:在执⾏函数ROUND(68.345,-1)时,⼩数点左边的数是两位68,由于参数2为-1,则返回值是整数且应带⼀个0,故经四舍五⼊后,8进位到6则⾸位变为7,第⼆位按规定是0。
数据库函数
第五讲函数函数是用程序来实现的一种数据运算或转换。
每一个函数都有特定的数据运算或转换功能,它往往需要若干个自变量,即运算对象,但只能有一个运算结果,称为函数值或返回值。
函数调用的格式为:函数名(自变量)函数调用可以出现在表达式里,表达式将函数的返回值作为自己运算的对象。
函数调用也可作为一条命令使用,但此时系统忽略函数据的返回值。
常用函数的使用1.数值函数2.字符串函数3.日期和时间函数4.数据类型转换函数5.测试函数VFP提供了非常丰富的函数,在此仅举了一些常用函数的例子,希望同学们在今后的深入学习中逐渐体会各种函数的功能。
相关题型1.下列字符型常量的表示中,错误的是A)’65+13’B)[“电脑商情”]C)[[中国]]D)`[x=y]`3.下列关于变量的叙述中,不正确的一项是A)变量值可以随时改变B)在Visual FoxPro中,变量可为字段变量和内存变量C)变量的类型决定变量值的类型D)在Visual FoxPro中,可以将不同类型的数据赋给同一个变量4.表达式LEN(SPACE(5)—SPACE(10))的结果为[ 15 ]5.若内存变量名与当前的数据表中的一个字段“student”同名,则执行命令?student后显示的是A)字段变量的值B)内存变量的值C)随机显示D)错误信息6.下列日期表达式错误的是A){^2004/03/09}+15 B){^2004/02/25}+date() C){^2004/03/09}-15 D){004/02/25^}-date() 8.下列各字符函数中,函数返回值不是数值型的是A)LEN(“2003/04/15”)B)SUBSTR(“计算机俗称电脑”,11,4)C)AT(“Fox”,“Visual FoxPro”)D)LIKE(“a*”,“abcd”)9.在下列各项中,运算级别最低的为A)算术运算符B)关系运算符C)逻辑运算符D)圆括号()10.下列字段名中,合法的是A)_学生姓名B)学生□姓名C)学生_姓名D)学生.姓名12.打开数据库abc的正确命令是A)OPEN DATABSE abc B)USE abc C)USE DATABASE abc D)OPEN abc 13.在Visual FoxPro中,恢复逻辑删除记录的命令是A)DELETEB)RECALLC)PACKD)ZAP15.设X=6〈5,命令?VARTYPE(X)的输出是A)N B)C C)L D)出错16.命令?vartype(time())结果是a)c b)d c)t d)出错17.命令?len(space(3)-space(2))的结果是a)1 b)2 c)3 d)518.想要将日期型或日期时间型数据中的年份用4位数字显示,应当使用设置命令a)set century on b)set century offc)set century to 4 d)set century of习题五一、选择题1.在VFP中,有下面几个内存变量赋值语句:X={^2001-07-28} 10:15:20 PM}Y=.T.M=$123.45N=123.45Z=”123.45”执行上述赋值语句之后,内存变量X、Y、M、N和Z的数据类型分别是A)D、L、Y、N、C B)D、L、M、N、CC)T、L、M、N、C D)T、L、Y、N、C2.以下日期值正确的是A){“2001-05-25”} B){^2001-05-25}C){2001-05-25} D){[2001-05-25]}3.在下面的VFP表达式中,不正确的是A){^2001-05-01 10:10:10 AM}-10 B){^2001-05-01}—DATE()C){^2001-05-01}+DATE()D)[^2001-05-01]+[1000] 4.在下面的VFP表达式中,运算结果是逻辑真的是A)EMPTY(.NULL.)B)LIKE(“acd”,”ac?”)C)AT(“a”,”123abc”) D)EMPTY(SPACE(2))5.设D=CTOD(“04-14-89”),命令?V ARTYPE(D)的输出值是A)L B)D C)N D)C6.在下列函数中,函数值为数值的是A)BOF()D)SUBSTR(DTOC(DATE()),7)C)AT(“人民”,“中华人民共和国”)B)CTOD(“01/01/96”)7.设N=886,M=345,K=“M+N”,表达式1+&K的值是A)1232 B)数据类型不匹配C)1+M+N D)3468.表达式V AL(SUBS(“奔腾586”,5,1))*LEN(“Visual FoxPro”)的结果是A)63.00 B)64.00 C)65.00 D)60.009.连续执行以下命令之后,最后一条命令的输出结果是SET EXACT OFFX=“A□”?IIF(X =“A”,X-“BCD”,X+“BCD”)A)A B)BCD C)ABCD□D)A□BCD二、填空题1.命令?ROUND(337.2007,3)的执行结果是。
数据库中的常用函数
重点内容:
• • • •
数字类型处理
字符串类型处理
时间类型处理
类型转换
一、数字
1、算术运算和数学函数
所有类型的数字字段存储的数据都具有相同的基本类型,就是数字。算 术运算是我们对数字类型数据的常见处理方式,而最基本的算术运算是我们 使用基本的算术运算符,比如“+”、“-”、“*”、“/”等进行的数学运算。 大部分的算术运算我们大家都已经很熟悉了,对一些较复杂的具体的问题还 有现成的数学公式可以查阅使用,有了这些,我们就能够针对某个要处理的 问题,列出所需的算术表达式来。 在数据库系统中,许多基本的算术运算已经被作为数学函数整理出来, 用户不再需要自己建立复杂而具体的算术式,只需要调用这些数学函数,将 需要进行计算的数据作为函数的参数输入,就可以直接得到答案。数学函数 也可以使用在算术表达式中,大大简化了我们的算术运算。
三、时间
2、日期时间函数
SQL语句中存在日期时间数据类型的数值,就有相应的日期时间函数来对 其进行数据处理。这些日期时间函数在不同的数据库可能有着不同的函数名 称,所以在使用这些函数前一定要先查阅当前使用的数据库系统的文档资料。
三、时间
3、日期时间的算法
日期时间数据的运算类型不多,包括日期时间的比较、加减日期时间、 格式化时间值等。但是日期时间的运算在某种程度上是比数字和字符串更复 杂一些的,因为,在不同的数据库系统中,对日期时间的处理方法并不一样。 例如,Oracle只能提供DATE一种时间日期类型,而Transact-SQL则可以提供 大量的类型。另外,在不同的数据库系统中,对时间日期进行格式化和其它 处理的函数也会有很大的差别,通常会完全不同。
数据类型 格式 范围 ———— —————————— —————————— DATE YYYY-MM-DD 0001-01-01 TO 9999-12-31 TIME HH:MI:SS.nn 00:00:00 TO 23:59:61.999 TIMESTAMP YYYY-MM-DD HH:MI:SS.nn 0001-01-01 00:00:00 TO 9999-12-31 23:59:61.999
Access数据库常用标准函数新
Access数据库常用标准函数一、算术函数1.绝对值函数:Abs(<表达式>)返回数值表达式的绝对值。
如Abs(-3)=32.向下取整函数:Int(<数值表达式>)返回数值表达式的向下取整数的结果,参数为负值时返回小于等于参数值的第一负数。
3.取整函数:Fix(<数值表达式>)返回数位表达式的整数部分,参数为负值时返回大于等于参数值的第一负数。
例如:Int(3.25)=3,Fix(3.25)=3但Int(-3.25)= -4,Fix(-3.25)= -34.四舍五入函数:Round(<数值表达式>[,<表达式>])按照指定的小数位数进入四舍五入运算的结果。
[<表达式>]是进入四舍五入运算小数点右边应保留的位数。
例如:Round(3.255,1)= 3.3;Round(3. 754,2)= 3.75;Round(3.754,0)= 45.开平方函数:Sqr(<数值表达式>)计算数值表达式的平方根。
例如:Sqr(9)= 36.产生随机数函数:Rnd(<数值表达式>)产生一个0-1之间的随机数,为单精度类型。
例如:Int(100 * Rnd)’产生[0,99]的随机整数Int(101 * Rnd)’产生[0,100]的随机整数7..求平均值函数Avg()例如:在tstud表中求小于所有学生年龄的平均值的学生<(select avg([年龄]) from tstud)8.. 求和函数sum()二、字符串函数1.字符串检索函数:InStr([Start,] <Strl>,<Stf2> [,Compare])检索子字符申Str2在字符串Strl中最早出现的位置,返回一整型数。
Start为可选参数,为数值式,设置检索的起始位置。
如省略,从第一个字符开始检索;注意,如果Strl的申长度为零,或Str2表示的申检索不到,则InStr返回0;如果Str2的串长度为零,InStr返回Start的值。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
DECLARE @g geometry;
DECLARE @h geometry;空间数据库操作函数
1、STArea() 面积计算
2、STBuffer()缓冲区计算
3、STCrosses()如果geometry实例与另一个geometry实例相交,则返回1。
否则,返回0
SET @g = geometry::STGeomFromText('LINESTRING(0 2, 2 0)', 0);
SET @h = geometry::STGeomFromText('LINESTRING(0 0, 2 2)', 0);
SELECT @g.STCrosses(@h);
4、STDifference()返回一个对象,该对象表示来自一个geometry实例的点,这些点在另一个geometry 实例中不存在
SET @g = geography::STGeomFromText('POL YGON((-122.358 47.653, -122.348 47.649, -122.348 47.658, -122.358 47.658, -122.358 47.653))', 4326);
SET @h = geography::STGeomFromText('LINESTRING(-122.360 47.656, -122.343 47.656)', 4326);
SELECT @g.STDifference(@h).ToString();
5、STDisjoint()如果一个geography 实例与另一个geography 实例在空间上不相联,则返回1。
否则,返回0
SET @g = geography::STGeomFromText('LINESTRING(-122.360 47.656, -122.343 47.656)', 4326);
SET @h = geography::STGeomFromText('POINT(-122.34900 47.65100)', 4326);
SELECT @g.STDisjoint(@h)
6、STDistance()返回一个geometry 实例中的点与另一个geometry 实例中的点之间的最短距离
SET @g = geometry::STGeomFromText('POL YGON((0 0, 2 0, 2 2, 0 2, 0 0))', 0);
SET @h = geometry::STGeomFromText('POINT(10 10)', 0);
SELECT @g.STDistance(@h
7、STEnvelope()返回实例的最小轴对齐边界矩形
SET @g = geometry::STGeomFromText('LINESTRING(0 0, 2 3)', 0);
SELECT @g.STEnvelope().ToString()
8、STIntersection()返回一个对象,该对象表示一个Geometry 实例与另一个Geometry 实例的交点
SET @g = geography::STGeomFromText('POL YGON((-122.358 47.653, -122.348 47.649, -122.348 47.658, -122.358 47.658, -122.358 47.653))', 4326);
SET @h = geography::STGeomFromText('LINESTRING(-122.360 47.656, -122.343 47.656)', 4326);
SELECT @g.STIntersection(@h).ToString()
9、STIntersects()如果geography 实例与另一个geography 实例相交,则返回1。
否则,返回0
SET @g = geometry::STGeomFromText('LINESTRING(0 2, 2 0, 4 2)', 0);
SET @h = geometry::STGeomFromText('POINT(1 1)', 0);
SELECT @g.STIntersects(@h)
10、STOverlaps()确定指定的Geometry 对象是否与当前Geometry 重叠
SET @g = geography::Parse('POL YGON ((-120.533 46.566, -118.283 46.1, -122.3 47.45, -120.533 46.566))');
SET @h= geography::Parse('POL YGON ((-120.533 46.566, -118.283 46.1, -122.3 47.45, -120.533 46.566))')
SELECT @g.STOverlaps(@h)
11/STSymDifference()返回表示位于一个geometry 实例或者另一个geometry 实例中的所有点的对象,但不包含同时位于这两个实例中的那些点
SET @g = geometry::STGeomFromText('POL YGON((0 0, 0 2, 2 2, 2 0, 0 0))', 0);
SET @h = geometry::STGeomFromText('POL YGON((1 1, 3 1, 3 3, 1 3, 1 1))', 0);
SELECT @g.STSymDifference(@h).ToString()
12、STTouches()是否接触
SET @g = geometry::STGeomFromText('LINESTRING(0 2, 2 0, 4 2)', 0);
SET @h = geometry::STGeomFromText('POINT(1 1)', 0);
SELECT @g.STTouches(@h)
13、@pg.STWithin(@s)@pg是否包含在@s里
SET @g = geometry::STGeomFromText('POL YGON((0 0, 2 0, 2 2, 0 2, 0 0))', 0);
SET @h = geometry::STGeomFromText('POL YGON((1 1, 3 1, 3 3, 1 3, 1 1))', 0);
SELECT @g.STWithin(@h)
14、STGeometryN(geometry 数据类型)返回geometry collection 中的指定几何图形
SET @cd=geometry::STGeomFromText('MULTIPOINT((30.6666587469201
104.062021177233),(29.5076372217973106.489384971208))',4326)
Select STGeometryN(1).STAsText() 表示返回第一个点
15、STIsValid();验证geometry对象是否为正确的空间对象,若正确,返回1,否则0
SET @g=geometry::STGeomFromText('MULTILINESTRING((30.6666 104.06202,
29.50763 106.48938),(30.6666 104.06202,33.78142 105.97914))',4326);
select @g.STIsValid()
游标函数
CREATE function getpolygon(@ZNo varchar(50))
returns varchar(2000)
as
begin
declare@points nvarchar(2000),@point nvarchar(100),@startPoint nvarchar(100) set@points=''
declare myCursor Cursor for
select ltrim(rtrim(str(X)))+' '+ltrim(rtrim(str(Y)))from dbo.界址点
where Number in(select Number from dbo.宗地界址点
where ZNo=@ZNo)
open myCursor
fetch next from myCursor into@Point
while(@@fetch_status=0)
begin
if(@points='')
begin
set@points=@point
set@startpoint=@point
end
else
set@points=@points+','+@point
fetch next from myCursor into@point
end
deallocate myCursor
return@points+','+@startpoint
END
调用游标函数创建宗地多边形实例
update dbo.宗地
set Geom=geometry::Parse('POL YGON(('+dbo.getpolygon(dbo.宗地.ZNo)+'))') //dbo.getpolygon(dbo.宗地.ZNo)已在前面游标函数中转成字符串。