您的位置:首页 > 数据库

精通数据库SQL——连接符、数值运算与函数

2010-09-18 01:53 316 查看

一、连接符

连接符的应用

用户在访问数据库时,往往需要将表中的几列数据作为一列进行处理,这时可采用连接符“+”(或“||”)。究竟采用何种符号,要依据用户要访问的数据库系统。在Access 、SQL和Sybase数据库系统中采用的连接符为“+”,在DB2、Oracle 、PostgreSQL和Sybase数据库系统中,采用的连接符为“||”。
Select col1 + ‘ ( ’+ col2 +‘ )’ , col3
From table_name
Order by col3
注:
·如果用户使用的是mysql数据库,由于它不支持连接符,取而代之的是concat()函数,通过语句select concat(col1,‘(’,col2,‘)’)实现与连接符相同的操作。
·使用连接符进行多列连接时,要求被连接的列必须有相同或相近的数据类型。
·如果连接多列时,有一列为NULL,则连接后该列数据为NULL。

使用cast表达式转换数据类型

Select col1 + cast ( col2 as data_type(字节) ) ,col3
From table_name

使用别名

SQL 提供AS关键字,使用它可以为列和表定义别名。
Select column as column_alias
From table

二、数值运算

数学运算符的种类

在SQL中可用的数学运算符如下:+,-,*,/,%。使用运算符时,也可以使用括号()改变运算的优先级。

数学运算符的运用

Select col1 , col2 , col1*col2 as col_alias
From table
Order by col_alias

使用case表达式

Case表达式实际上十一个条件表达式,能够根据列的值选择实际值,为SQL提供了有限的决策能力。
Case
When search_condition then result_expression
[ … when last search_condition
Then last result_expression ]
[
Else else_result_expression
]
End
举例说明:
Select cname,ctime,credit=
Case
When ctime>=40 then 5
When ctime>=30 then 4
When ctime>=20 then 3
Else 2
End
From course
Order by credit

三、函数

字符处理函数

在SQL Server数据库系统中,常用的SQL字符处理函数及其功能如下所示:
函数表达式
函数参数及功能
ASCII(<character_expression>)
返回字符表达式最左端字符的ASCII码值
CHAR(<integer_expression>)
将ASCII码转换为字符。如果没有输入0~255之间的ASCII码值,函数会返回一个NULL值
LOWER(<character_expression>)
把字符串全部转换为小写
UPPER(<character_expression>)
把字符串全部转换为大写
LTRIM(<character_expression>)
把字符串头部的空格去掉
RTRIM(<character_expression>)
把字符串尾部的空格去掉
LEFT(<character_expression>,
<integer_expression>)
返回部分字符串,返回的字串是从字符串最左边起,到第integer_expression个字符的部分
RIGTH(<character_expression>,
<integer_expression>)
返回部分字符串,返回的字串是从字符串右边第integer_expression个字符起,到最后一个字符的部分
CHARINDEX(‘substring_expression’>,
<expression>)
返回字符串中某个指定的字串出现的开始位置,substring_expression是所要查找的字符表达式,expression可以使字符串,也可以是列名表达式。如果没有发现字串,则返回0。此函数不能用于TEXT和IMAGE数据类型。
SUBSTRING(<expression>,
<starting_position>,length)
返回部分字符串,返回的字串是从字符串左边第starting_expression个字符起,length个字符的部分。
REPLICATE(character_expression,
Integer_expression)
返回一个重复character_expression指定次数的字符串
REVERSE(<character_expression>)
将指定的字符串的字符排列顺序颠倒。Character_expression可以是字符串、常数或一个列的值
REPLACE(<string_expression1>,
<string_expression2>,
<string_expression3>)
用string_expression3替换string_expression1中的字串string_expression2

算数运算函数

在SQL Server数据库系统中,常用的SQL算数计算函数及其功能如下所示:
函数表达式
函数参数及功能
ABS(numeric_expression)
返回表达式的绝对值
SIGN(numeric_expression)
测试参数的正负号。返回0(零值),1(正数),-1(负数)
CEILING(numeric_expression)
返回>=表达式的最小整数
FLOOR(numeric_expression)
返回<=表达式的最小整数
ROUND(numeric_expression,
integer_expression)
返回以integer_expression为精度的四舍五入值
COS(float_expression)
返回以弧度表示的角的余弦
ACOS(float_expression)
返回余弦是FLOAT值的以弧度表示的角
SIN(float_expression)
返回以弧度表示的角的正弦
ASIN(float_expression)
返回正弦是FLOAT值的以弧度表示的角
TAN(float_expression)
返回以弧度表示的角的正切
ATAN(float_expression)
返回正切是FLOAT值的以弧度表示的角
EXP(float_expression)
返回表达式的指数值
LOG(float_expression)
返回表达式的自然对数值
SORT(float_expression)
返回表达式的平方根
PI()
返回值为∏,即3.1415926535897936
RAND()
得到0~1之间的随机浮点数

日期时间函数

在SQL Server数据库系统中,常用的SQL日期处理函数及其功能如下所示:
函数表达式
函数参数及功能
DAY(<date_expression>)
返回date_expression中的日期值
MONTH(<date_expression>)
返回date_expression中的月份值
YEAR(<date_expression>)
返回date_expression中的年份值
DATEADD(<datepart>,<number>,<date>)
返回指定日期date加上指定的额外日期间隔number产生的新日期
DATEDIFF(<datepart>,<date1>,<date2>)
返回两个指定日期在datepart方面的不同之处,即date2超过date1的差距值,其结果值是一个带有正负号的整数值
DATENAME(<datepart>,<date>)
以字符串的形式返回日期的指定部分。此部分由由datepart来指定
DATEPART(<datepart>,<date>)
以整数值的形式返回日期的指定部分。此部分由大datepart来指定
GETDATE()
以DATETIME的缺省格式,返回系统当前的日期和时间

convert()函数转换日期、时间

Convert ( date_type [( length )] , expression ,style )
例如:
Select convert ( varchar ,getdate(), 8 ) as now_time
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: