SQL语言的其他用法
--求半径2米。高3米的圆柱体体积
select PI()
select SQUARE(2)*PI()*3 '体积'
--求字符串‘adsgdajfhwruhwuiriutooqrfiewi’的长度
select len('adsgdajfhwruhwuiriutooqrfiewi')as '长度'
--显示pubs数据库中所有作家的au_name的开头两个字目
select LEFT(au_Name,2) from authors--返回字符串左边开始指定个数的字符串、字符、二进制数据表达式,
--前一个参数是字符串的表达式,可以是常量,变量,字段,后面的参数是正整数。表示的是字符串的长度。
--,大写显示
select UPPER(LEFT(au_Name,2)) from authors
--取字符串'abhdjddlak'的第2到第5个字母
select SUBSTRING('abhdjddlak',2,4)
--right()
select right('dadsdsadaf',5)
--计算2001年9月11日到今天已经多少天了
select DATEDIFF(day,'1996-2-4',GETDATE())as'天'
select DATEDIFF(month,'1996-2-4',GETDATE())
select DATEDIFF(year,'1996-2-4',GETDATE())
--查看指定字符的ASCII值,输入的语句如下:
/*
ASCII(American Standard Code for Information Interchange,
美国信息互换标准代码)
是基于拉丁字母的一套电脑编码系统。
它主要用于显示现代英语和其他西欧语言。
它是现今最通用的单字节编码系统,并等同于国际标准ISO/IEC 646。
用于返回字符串表达式中最左侧的字符的ASCII代码值。参数必须是一个char或varchar类型的字符串表达式。
*/
select ASCII('a'),ASCII('sql'),ASCII(1)
--将整数类型的ASCII值转换为对应的字符,其数介于0-255之间的整数。如果该整数表达式不在此范围,将返回null值
select CHAR(97),CHAR(255)
--LEFT()
select left('dh',6)
--right()
select right('chkds',4)
--ltrim()--去除字符串左边多余的空格,括号内的参数可以是常量,变量,字符串字段或二进制数据列。
select ltrim(' dedew')
select '('+' book '+')','('+RTRIM(' book ')+')'--同 理可以试一下rtrim()--去右边的空格
/*
带小数点的近似数字float
表示总长度,包括小数点,符号,数字以及空格,默认值为10
小数后边的位数,必须小于或等于16
*/
select str(3246.56,5,1)
--字符串逆序的函数
select REVERSE('asdfgh')
--计算字符串长度的函数
--如果字符串中包含前导空格和尾随空格,则函数会将它们包含在技术内
--LEN对相同的单字节和双字节字符串返回相同的值
select LEN('no'),LEN('日期'),LEN(12345678)
--匹配字串开始位置的函数
select CHARINDEX('a','banana'),CHARINDEX('a','banana',3)
select SUBSTRING('www.baidu.com',4,1)
select LEN('dah')
select LOWER('RTYUIIOOO')
select UPPER('yuquueuqwi')
--替换函数
select REPLACE('www.baidu.com','w','$')
--数学函数
--负数的绝对值为其相反数
select abs(2),abs(-3.3),abs(-33)
select PI()
select sqrt(4)--平方根
select rand(20),rand(20),rand(10)
select round(1.23,1),round(1.23,0),round(1.23,-3),round(1.23,-1)
------- ------
--符号函数sign(X)
--获取整数的函数CEILIN(X)和FLOOR(X)
--幂运算函数POWER(x,y),SQUARE(x)和EXP(x)
--对数运算函数
--角度与弧度相互转换的函数
--正弦函数和反正弦函数
--余弦函数和反余弦函数
--正切函数和反正切函数和余切函数
--文本和图像函数-----------
--数据类型转换函数-------------------------------------------------------------------------------------
select cast('121209' as date),cast(100 as char(3)),
CONVERT(time ,'2012-05-01 12:11:10')
--日期函数和时间函数
--使用日期函数获取系统当前日期
select getdate()
--UTC(世界标准时间)
select GETUTCDATE()
/*
对比getdate()函数的返回值,可以看到,
因为读者位于东8时区,
所以当前系统时间比UTC提前8个小时,
所以这里显示的UTC时间,
需要减去8个小时的时差
*/
--获取天数的函数DAY(d)
select DAY('2010-02-03 01:05:23')--二月份的第三天
--获取月份的函数MONTH()
select MONTH('2010-03-05 03:04:05')
--获取年份的函数YEAR(d)
select YEAR('2010-03-05 03:04:05')
--获取日期中指定部分字符串值的函数DATANAME(dp,d)
select DATENAME(year,'2010-03-05 03:04:05'),--年份值
DATENAME(WEEKDAY,'2010-03-05 03:04:05'),--星期值
DATENAME(DAYOFYEAR,'2010-01-05 03:04:05')--一年中的第几天
--获取日期中指定部分的整数值的函数DATEPART(dp,d)
--使用此函数返回日期制定部分的整数值
select DATEPART(year,'2010-03-05 03:04:05'),
DATEPART(MONTH,'2010-03-05 03:04:05'),
DATEPART(DAYOFYEAR,'2010-03-05 03:04:05')
--计算日期和时间的函数dateadd()
select DATEADD(YEAR,1,'2010-03-05 03:04:05'),--表示年值增加1
dateadd(month,2,'2010-03-05 03:04:05'),--表示月份值增加2
dateadd(hour,1,'2010-03-05 03:04:05')--表示时间部分的小时数增加1
----系统函数----------------------------------------------------------------------------------
--返回表中指定字段的长度
use pubs
go
select COL_LENGTH('authors','au_Name')
--返回表中指定字段的名称
select COL_NAME('authors',2)--出现数据类型转换
--改正
--显示pubs数据库中authors表中的第一个字段的名称
select COL_NAME(OBJECT_ID('pubs.dbo.authors'),1)--指定数据库中表的具体名称
--返回数据表达式的数据的实际长度函数--即字节数,其返回值类型是INT NULL的长度为NULL
--datalength()
--查找authors表中au_Age的长度
select DATALENGTH(au_Age) from authors where au_Id=1
--返回数据库的编号
select DB_ID('master'),DB_ID('pubs')--其返回值为smallint类型,如果没有指定数据库名称,则返回的是当前数据库的编号
--返回数据库名称
use master
select DB_NAME(),DB_NAME(DB_ID('pubs'))
--返回当前数据库默认的NULL值
select GETANSINULL('pubs')
--返回服务器端计算机的标识号
select HOST_ID()
--返回服务器端计算机的名称
select HOST_NAME()
--返回数据库对象的编号
select OBJECT_ID('pubs.dbo.authors')
--返回用户的SID(安全标识号)
select SUSER_SID('sa')--0x01
--返回数据库的登录名
select SUSER_NAME(0x01)
--返回数据库对象的名称
--查看pubs数据库中对象ID值为1的对象名称
select OBJECT_NAME(277576027,DB_ID('pubs')),OBJECT_ID('pubs.dbo.authors')
--返回数据库用户的标识号
use pubs
go
select USER_ID()
--返回数据库的用户名
use pubs
go
select USER_NAME() as '数据库的用户名'
作业:
/*使用数学函数进行如下运算
1,计算18除以5的商和余数
2,将弧度值PI()/4转换为角弧度
3,计算9的4次方值
4,保留浮点值3.14159小数点后面两位
使用字符串函数进行如下运算
1,分别计算字符串“hello World!”和“University”的长度
2,从字符串“Nice to meet you!”中获取子字符串“Nice”
3,除去字符串“hello”中的空格
4,将字符串“SQLSERVER”逆序输出
5,在字符串“SQLSERVERSQLSEREVER”中,从第四个字母开始查找字母为“Q”第一次出现的位置。
使用日期函数和时间函数进行如下运算
1,计算当前日期是一年的第几天
2,计算当前日期是一周中的第几个工作日
3,计算“1929-02-14”与当前日期之间相差的年份
*/