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

来源:互联网 发布:ummy mac 编辑:程序博客网 时间:2024/06/10 00:59

                       

一、连接符

连接符的应用

用户在访问数据库时,往往需要将表中的几列数据作为一列进行处理,这时可采用连接符“+”(或“||”)。究竟采用何种符号,要依据用户要访问的数据库系统。在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

          

             

 

原创粉丝点击