SQLServer常用函数对比Word文档下载推荐.docx

上传人:b****5 文档编号:21438809 上传时间:2023-01-30 格式:DOCX 页数:40 大小:49.10KB
下载 相关 举报
SQLServer常用函数对比Word文档下载推荐.docx_第1页
第1页 / 共40页
SQLServer常用函数对比Word文档下载推荐.docx_第2页
第2页 / 共40页
SQLServer常用函数对比Word文档下载推荐.docx_第3页
第3页 / 共40页
SQLServer常用函数对比Word文档下载推荐.docx_第4页
第4页 / 共40页
SQLServer常用函数对比Word文档下载推荐.docx_第5页
第5页 / 共40页
点击查看更多>>
下载资源
资源描述

SQLServer常用函数对比Word文档下载推荐.docx

《SQLServer常用函数对比Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《SQLServer常用函数对比Word文档下载推荐.docx(40页珍藏版)》请在冰豆网上搜索。

SQLServer常用函数对比Word文档下载推荐.docx

selectsys.dbms_random.value(0,1)valuefromdual;

13.取符号

selectsign(-8)value-1

selectsign(-8)valuefromdual-1数学函数

14.圆周率

SelectPI()value3.1415926535897931

不知道

15.sin,cos,tan参数都以弧度为单位例如:

selectsin(PI()/2)value得到1(SQLServer)

16.Asin,Acos,Atan,Atan2返回弧度

17.弧度角度互换(SQLServer,Oracle不知道)

DEGREES:

弧度-〉角度

RADIANS:

角度-〉弧度

数值间比较

18.求集合最大值S:

selectmax(value)valuefrom(select1valueunionselect-2valueunionselect4valueunionselect3value)a

selectgreatest(1,-2,4,3)valuefromdual

19.求集合最小值S:

selectmin(value)valuefrom(select1value

union

select-2valueunionselect4valueunionselect3value)a

selectleast(1,-2,4,3)valuefromdual

20.如何处理null值(F2中的null以10代替)

selectF1,IsNull(F2,10)valuefromTblO:

selectF1,nvl(F2,10)valuefromTbl数值间比较

21.求字符序号S:

selectascii('

a'

)value

)valuefromdual

22.从序号求字符S:

selectchar(97)value

selectchr(97)valuefromdual

23.连接

select'

11'

+'

22'

33'

value

selectCONCAT('

'

)||33valuefromdual

23子串位置--返回3

selectCHARINDEX('

s'

sdsq'

2)value

selectINSTR('

2)valuefromdual

23■模糊子串的位置--返回2,参数去掉中间%则返回7

selectpatindex('

%d%q%'

sdsfasdqe'

oracle没发现,但是instr可以通过第四霾问證刂瞥鱿执问?

BR>

selectINSTR('

sd'

1,2)

valuefromdual返回6

24.求子串

selectsubstring('

abcd'

2,2)value

selectsubstr('

2,2)valuefromdual

25子串代替返回aijklmnef

SelectSTUFF('

abcdef'

2,3,'

ijklmn'

SelectReplace('

'

bed'

ijklmn'

)valuefrom

dual

26.子串全部替换

没发现

selectTranslate('

fasdbfasegas'

fa'

我'

)valuefromdual

27.长度

len,datalength

length

28.大小写转换lower,upper

29.单词首字母大写

s:

selectINITCAP('

abcddsafdf'

30.左补空格(LPAD的第一个参数为空格则同space函数)

selectspace(10)+'

selectLPAD('

14)valuefromdual

31.右补空格(RPAD的第一个参数为空格则同space函数)

+space(10)value

selectRPAD('

32.删除空格

ltrim,rtrim

ltrim,rtrim,trim

33.重复字符串

selectREPLICATE('

34.发音相似性比较(这两个单词返回值一样,发音相同)

SelectSOUNDEX('

Smith'

),SOUNDEX('

Smythe'

)fromdual

SQLServer中用SelectDIFFERENCE('

Smithers'

Smythers'

)比较soundex的差

返回0-4,4为同音,1最高

日期函数

35.系统时间

selectgetdate()value

selectsysdatevaluefromdual

36.前后几日直接与整数相加减

37.求日期

selectconvert(char(10),getdate(),20)value

selecttrunc(sysdate)valuefromdual

selectto_char(sysdate,'

yyyy-mm-dd'

38.求时间

selectconvert(char(8),getdate(),108)value

hh24:

mm:

ss'

)valuefrom

39.取日期时间的其他部分

 

DATEPART和DATENAME函数(第一个参数决定)

to_char函数第二个参数决定参数下表需要补充

yearyy,yyyyquarterqq,q(季度)monthmm,m(mO无效)

dayofyeardy,y(O表星期)daydd,d(dO无效)weekwk,ww(wkO无效)weekdaydw(O不清楚)

Hourhh,hh12,hh24(hh12,hh24S无效)minutemi,n(nO无效)secondss,s(sO无效)millisecondms(O无效)

40.当月最后一天

selectLAST_DAY(sysdate)valuefromdual

41.本星期的某一天(比如星期日)

SelectNext_day(sysdate,7)vauleFROMDUAL;

42.字符串转时间

可以直接转或者selectcast('

2004-09-08'

asdatetime)value

SelectTo_date('

2004-01-05

22:

09:

38'

yyyy-mm-ddhh24-mi-ss'

)vauleFROMDUAL;

43.求两日期某一部分的差(比如秒)

selectdatediff(ss,getdate(),getdate()+12.3)value

直接用两个日期相减(比如d1-d2=12.3)

Select(d1-d2)*24*60*60vauleFROMDUAL;

44.根据差值求新的日期(比如分钟)

selectdateadd(mi,8,getdate())value

Selectsysdate+8/60/24vauleFROMDUAL;

45.求不同时区时间

SelectNew_time(sysdate,'

ydt'

gmt'

)vaule

FROMDUAL;

时区参数,北京在东8区应该是Ydt

ASTADT大西洋标准时间

BSTBDT白令海标准时间

CSTCDT中部标准时间

ESTEDT东部标准时间

GMT格林尼治标准时间

HSTHDT阿拉斯加—夏威夷标准时间

MSTMDT山区标准时间

NST纽芬兰标准时间

PSTPDT太平洋标准时间

YSTYDTYUKON标准时间

配置SQLServer数据库

EXECsp_dboption'

pubs'

readonly'

True'

此选项把数据库“pubs”设置为只读。

autoshrinktrue此选项把符合条件的“pubs”数据库文件设置为自动周期性收缩。

singleuser此命令每次只允许一个用户访问数据库。

DBCCSHRINKDATABASE(PUBS,10)

会减小“pubs”数据库中文件的大小,并允许有10%

的可用空间。

使用T-SQL创建表

createtableMyTable

(stdIDint,

stdNamevarchar(50)

自定义数据类型

EXECsp_addtypeCity,'

nvarchar(15)'

NULL

EXECsp_addtypePostCode,'

nvarchar(6)'

EXECsp_addtypeNCode,'

nvarchar(18)'

删除自定义数据类型

EXECsp_droptypecity

CREATETABLECategories

(CategoryIDintIDENTITY(1,1),

NOT

CategoryNamenvarchar(15)

NULL,

DescriptionntextNULL,

PictureimageNULL)

实体完整性实现

l主键约束

CREATETABLEjobs(

Job_idsmallintPRIMARYKEY,job_descvarchar(50)NOTNULL)

l唯一约束

Job_idsmallintUNIQUE)

标识列

Job_idsmallintIDENTIRY(2,1)PRIMARYKEY)

lUniqueidentifier数据类型和NEWID函数CREATETABLECustomer

(CustIDuniqueidentifierNOTNULLDEFAULTNEWID(),

CustNamechar(30)NOTNULL)

INSERTCustomerVALUES(NEWID(),'

ASB'

l引用完整性实现

ALTERTABLEdbo.Orders

ADDCONSTRAINTFK_Orders_CustomersFOREIGNKEY(CustomerID)REFERENCESdbo.Customers(CustomerID)

l更新表结构

ALTERTABLEMyTableALTERCOLUMNNullCOlNVARCHAR(20)NOTNULL

ALTERTABLEjobsADDHIRE_DATEDATETIMEALTERTABLEDoc_EDDROPCOLUMNColumn_B

ALTERTABLEDoc_EDWITHNOCHECKADD

CONSTRAINTExd_CheckCHECK(Column_a>

1)

l在已有字段中增加标识约束时,必须先删除该字段,再新建字段。

altertablemytabledropcolumnuserid

altertablemytableadduseridintidentity(1,1)

l删除表

DROPTABLEAirlines_Master

lDEFAULT约束

USENorthwind

CREATETABLEABC(ASDintDefault8,

ASDEvarchar(20)Default'

UNKNOWN'

ALTERTABLEdbo.CustomersADDCONSTRAINTDF_contactnameDEFAULT'

FORContactName

lCHECK约束

CREATETABLEABCD

(ASDintCHECK(ASD<

100),

ASDEvarchar(80)Default'

ALTERTABLEEmployeesADDCONSTRAINTCK_birthdate

CHECK(BirthDate>

'

01-01-1900'

ANDBirthDate

<

0-011-2010'

PRIMARYKEY约束

CREATETABLEAWC

100)PRIMARYKEYASDEvarchar(80)Default'

ALTERTABLECustomersADDCONSTRAINTPK_CustomersPRIMARYKEY(CustomerID)

lUNIQUE约束

CREATETABLEAAC

100)PRIMARYKEY,

ASDEintUNIQUE)

ALTERTABLESuppliersADDCONSTRAINT

U_CompanyNameUNIQUE(CompanyName)

lFOREIGNKEY约束

CREATETABLEACC

ASDEintFOREIGNKEYREFERENCESAAC(ASD))

ALTERTABLEOrdersWITHNOCHECKADDCONSTRAINTFK_Or_Cu

FOREIGNKEY(CustomerID)

REFERENCESCustomers(CustomerID)

通配符

解释

例子

II

一个字符

BranchLike'

L__'

%

任意长度

Route_CodeLike'

AMS-%'

[]

指定范围内

AirbusnoLike'

AB0[1-5]'

[A]

不在括号中

AB0[A1-5]'

向表中插入数据

语法:

INSERT[INTO]表名(字段列表)

VALUES(值列表)

例:

1.插入指定值的一条记录

INSERTINTOMyTable(PriKey,Description)

VALUES(123,'

Adescriptionofpart123.'

2.从查询中获得数据(多条)

SELECTForeignKey,

DescriptionFROMSomeView

更新数据行

UPDATE表名SET字段名=新值,…WHERE条件

UPDATETITLESSETPrice=Price+0.25*PriceWhereTitle_ID=‘TC777'

联接:

根据表之间的逻辑关系搜索多表中的数据

1.内联接

SELECT…FROM表1INNERJOIN表2ON表1.字段1=表2.字段1WHERE条件

UPDATETITLESSETPrice=Price+10FromTitlesINNERJOINTitleAuthor

ONTitles.Title_IS=TitleAuthor.Title_IDWHERETitles.Title='

SuShi,AnyOne?

'

2.外联接左联接:

左表与右表相联接的数据和左表的其他数据:

SELECT…FROM表1LEFTJOIN表2ON表1.字段1=表2.字段1WHERE条件

UPDATETITLESSETPrice=Price+10FromTitlesLEFTOUTERJOINTitleAuthor

右联接:

右表与左表相联接的数据和右表的其他数据:

SELECT…FROM表1RIGHTJOIN表2

ON表1.字段1=表2.字段1WHERE条件

UPDATETITLESSETPrice=Price+10FromTitlesRIGHTOUTERJOINTitleAuthor

全联接:

右表与左表相联接的数据及右表和左表的其他数据:

SELECT…FROM表1FULLJOIN表2ON

表1.字段1=表2.字段1WHERE条件

3.自联接:

表与其自身联接

SELECT…FROM表1asAJOIN表1asBONA.字段1=B.字段2WHERE条件

删除数据

DELETEFROM表WHERE条件

TRUNCATETABLE表--删除表中所有的记录,但不记日志

查询数据

1.数据库和所有者限定

SELECT*FROMNorthwind.dbo.Shippers

2.查询中使用常量和运算符

SELECTtitle_id+'

:

+title+'

->

+typeAsMyTitleFROMtitles

3.聚合函数

SELECTproductid,SUM(quantity)AStotal_quantityFROMorderhistGROUPBYproductid

显示所有type的值,并按type分组求平均值SELECTtype,AVG(price)FROMtitlesWHEREroyalty=10GROUPBYALLtype

条件中带有聚合函数的,要用Having子句

SELECTproductid,SUM(quantity)AStotal_quantity

FROMorderhist

GROUPBYproductidHAVING

SUM(quantity)>

=30

4.模糊查询

WHEREcompanynameLIKE'

%Restaurant%'

WHEREfaxISNULL

WHEREcountryIN('

Japan'

Italy'

WHEREunitpriceBETWEEN10AND20

1.说明:

复制表(只复制结构,源表名:

a新表名:

b)

SQL:

select*intobfromawhere1<

>

12.说明:

拷贝表(拷贝数据,源表名:

a目标表名:

b)

insertintob(a,b,c)selectd,e,ffromb;

3.说明:

显示文章、提交人和最后回复时间

selecta.title,a.username,b.adddatefromtablea,(selectmax(adddate)adddatefromtablewheretable.title=a.title)b

4.说明:

外连接查询(表名1:

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高等教育 > 工学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1