SQL语句大全完整版.docx

上传人:b****5 文档编号:8203527 上传时间:2023-01-29 格式:DOCX 页数:11 大小:24.14KB
下载 相关 举报
SQL语句大全完整版.docx_第1页
第1页 / 共11页
SQL语句大全完整版.docx_第2页
第2页 / 共11页
SQL语句大全完整版.docx_第3页
第3页 / 共11页
SQL语句大全完整版.docx_第4页
第4页 / 共11页
SQL语句大全完整版.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

SQL语句大全完整版.docx

《SQL语句大全完整版.docx》由会员分享,可在线阅读,更多相关《SQL语句大全完整版.docx(11页珍藏版)》请在冰豆网上搜索。

SQL语句大全完整版.docx

SQL语句大全完整版

设置内存选项:

SQLcode

--设置minservermemory配置项EXECsp_configureN'minservermemory(MB)',0--设置maxservermemory配置项EXECsp_configureN'maxservermemory(MB)',256--使更新生效RECONFIGUREWITHOVERRIDE

使用文件及文件组.sql:

SQLcode

/*--功能说明下面的代码是在SQLServer2000上创建名为MyDB的数据库该数据库包括1个主要数据文件、3个用户定义的文件组和1个日志文件ALTERDATABASE语句将用户定义文件组指定为默认文件组。

之后,通过指默认的文件组来创建表,并且将图像数据和索引放到指定的文件组中。

最后,将文件组中的指定数据文件删除--*/--切换到master数据库USEmasterGO--A.创建数据库MyDBCREATEDATABASEMyDBONPRIMARY--主文件组和主要数据文件(NAME='MyDB_Primary',FILENAME='c:

\MyDB_Prm.mdf'),FILEGROUPMyDB_FG1--用户定义文件组1(NAME='MyDB_FG1_Dat1',FILENAME='c:

\MyDB_FG1_1.ndf'),--次要数据文件1(NAME='MyDB_FG1_Dat2',FILENAME='d:

\MyDB_FG1_2.ndf'),--次要数据文件2FILEGROUPMyDB_FG2--用户定义文件组2(NAME='MyDB_FG1_Dat',FILENAME='e:

\MyDB_FG2.ndf')--次要数据文件LOGON--日志文件(NAME='MyDB_log',FILENAME='d:

\MyDB.ldf')GO--B.修改默认数据文件组ALTERDATABASEMyDBMODIFYFILEGROUPMyDB_FG1DEFAULTGO--切换到新建的数据库MyDBUSEMyDB--C.在默认文件组MyDB_FG1创建表,并且指定图像数据保存在用户定义文件组MMyDB_FG2CREATETABLEMyTable(colaintPRIMARYKEY,colbchar(8),colcimage)TEXTIMAGE_ONMyDB_FG2--在用户定义文件组MyDB_FG2上创建索引CREATEINDEXIX_MyTableONMyTable(cola)ONMyDB_FG2GO--D.将要删除数据文件MyDB_FG1_Dat1上的数据转移到其他数据文件中,并且清空数据文件MyDB_FG1_Dat1DBCCSHRINKFILE(MyDB_FG1_Dat1,EMPTYFILE)--删除数据文件MyDB_FG1_Dat1ALTERDATABASEMyDBREMOVEFILEMyDB_FG1_Dat1

调整tempdb数据库的文件属性.sql:

SQLcode

--A.将tempdb数据库的主数据文件大小设置为10MB。

ALTERDATABASEtempdbMODIFYFILE(name=tempdev,size=100MB)GO--B.将tempdb数据库的主数据文件移动到指定的磁盘分区上,并且为其添加一个数据文件。

--移动主数据文件ALTERDATABASEtempdbMODIFYFILE(NAME='tempdev',FILENAME='d:

\tempdb.mdf')--添加次要数据文件ALTERDATABASEtempdbADDFILE(NAME='tempdata_1',FILENAME='d:

\tempdb_data_1.ndf')

日期概念理解中的一些测试.sql:

SQLcode

--A.测试datetime精度问题DECLARE@tTABLE(datechar(21))INSERT@tSELECT'1900-1-100:

00:

00.000'INSERT@tSELECT'1900-1-100:

00:

00.001'INSERT@tSELECT'1900-1-100:

00:

00.009'INSERT@tSELECT'1900-1-100:

00:

00.002'INSERT@tSELECT'1900-1-100:

00:

00.003'INSERT@tSELECT'1900-1-100:

00:

00.004'INSERT@tSELECT'1900-1-100:

00:

00.005'INSERT@tSELECT'1900-1-100:

00:

00.006'INSERT@tSELECT'1900-1-100:

00:

00.007'INSERT@tSELECT'1900-1-100:

00:

00.008'SELECTdate,转换后的日期=CAST(dateasdatetime)FROM@t/*--结果date转换后的日期-----------------------------------------------1900-1-100:

00:

00.0001900-01-0100:

00:

00.0001900-1-100:

00:

00.0011900-01-0100:

00:

00.0001900-1-100:

00:

00.0091900-01-0100:

00:

00.0101900-1-100:

00:

00.0021900-01-0100:

00:

00.0031900-1-100:

00:

00.0031900-01-0100:

00:

00.0031900-1-100:

00:

00.0041900-01-0100:

00:

00.0031900-1-100:

00:

00.0051900-01-0100:

00:

00.0071900-1-100:

00:

00.0061900-01-0100:

00:

00.0071900-1-100:

00:

00.0071900-01-0100:

00:

00.0071900-1-100:

00:

00.0081900-01-0100:

00:

00.007(所影响的行数为10行)--*/GO--B.对于datetime类型的纯日期和时间的十六进制表示DECLARE@dtdatetime--单纯的日期SET@dt='1900-1-2'SELECTCAST(@dtasbinary(8))--结果:

0x0000000100000000--单纯的时间SET@dt='00:

00:

01'SELECTCAST(@dtasbinary(8))--结果:

0x000000000000012CGO--C.对于smalldatetime类型的纯日期和时间的十六进制表示DECLARE@dtsmalldatetime--单纯的日期SET@dt='1900-1-2'SELECTCAST(@dtasbinary(4))--结果:

0x00010000--单纯的时间SET@dt='00:

10'SELECTCAST(@dtasbinary(4))--结果:

0x0000000A

CONVERT在日期转换中的使用示例.sql:

SQLcode

--字符转换为日期时,Style的使用--1.Style=101时,表示日期字符串为:

mm/dd/yyyy格式SELECTCONVERT(datetime,'11/1/2003',101)--结果:

2003-11-0100:

00:

00.000--2.Style=101时,表示日期字符串为:

dd/mm/yyyy格式SELECTCONVERT(datetime,'11/1/2003',103)--结果:

2003-01-1100:

00:

00.000/*==日期转换为字符串==*/DECLARE@dtdatetimeSET@dt='2003-1-11'--1.Style=101时,表示将日期转换为:

mm/dd/yyyy格式SELECTCONVERT(varchar,@dt,101)--结果:

01/11/2003--2.Style=103时,表示将日期转换为:

dd/mm/yyyy格式SELECTCONVERT(varchar,@dt,103)--结果:

11/01/2003/*==这是很多人经常犯的错误,对非日期型转换使用日期的style样式==*/SELECTCONVERT(varchar,'2003-1-11',101)--结果:

2003-1-11

SETDATEFORMAT对日期处理的影响.sql

SQLcode

--1./*--说明SETDATEFORMAT设置对使用CONVERT把字符型日期转换为日期的处理也具有影响但不影响明确指定了style的CONVERT处理。

--*/--示例,在下面的示例中,第一个CONVERT转换未指定style,转换的结果受SETDATAFORMAT的影响,第二个CONVERT转换指定了style,转换结果受style的影响。

--设置输入日期顺序为日/月/年SETDATEFORMATDMY--不指定Style参数的CONVERT转换将受到SETDATEFORMAT的影响SELECTCONVERT(datetime,'2-1-2005')--结果:

2005-01-0200:

00:

00.000--指定Style参数的CONVERT转换不受SETDATEFORMAT的影响SELECTCONVERT(datetime,'2-1-2005',101)--结果:

2005-02-0100:

00:

00.000GO--2./*--说明如果输入的日期包含了世纪部分,则对日期进行解释处理时年份的解释不受SETDATEFORMAT设置的影响。

--*/--示例,在下面的代码中,同样的SETDATEFORMAT设置,输入日期的世纪部分与不输入日期的世纪部分,解释的日期结果不同。

DECLARE@dtdatetime--设置SETDATEFORMAT为:

月日年SETDATEFORMATMDY--输入的日期中指定世纪部分SET@dt='01-2002-03'SELECT@dt--结果:

2002-01-0300:

00:

00.000--输入的日期中不指定世纪部分SET@dt='01-02-03'SELECT@dt--结果:

2003-01-0200:

00:

00.000GO--3./*--说明如果输入的日期不包含日期分隔符,那么SQLServer在对日期进行解释时将忽略SETDATEFORMAT的设置。

--*/--示例,在下面的代码中,不包含日期分隔符的字符日期,在不同的SETDATEFORMAT设置下,其解释的结果是一样的。

DECLARE@dtdatetime--设置SETDATEFORMAT为:

月日年SETDATEFORMATMDYSET@dt='010203'SELECT@dt--结果:

2001-02-0300:

00:

00.000--设置SETDATEFORMAT为:

日月年SETDATEFORMATDMYSET@dt='010203'SELECT@dt--结果:

2001-02-0300:

00:

00.000--输入的日期中包含日期分隔符SET@dt='01-02-03'SELECT@dt--结果:

2003-02-0100:

00:

00.000

SETLANGUAGE对日期处理的影响示例.sql

SQLcode

--以下示例演示了在不同的语言环境(SETLANGUAGE)下,DATENAME与CONVERT函数的不同结果。

USEmaster--设置会话的语言环境为:

EnglishSETLANGUAGEN'English'SELECTDATENAME(Month,GETDATE())AS[Month],DATENAME(Weekday,GETDATE())AS[Weekday],CONVERT(varchar,GETDATE(),109)AS[CONVERT]/*--结果:

MonthWeekdayCONVERT----------------------------------------------------------MarchTuesdayMar1520058:

59PM--*/--设置会话的语言环境为:

简体中文SETLANGUAGEN'简体中文'SELECTDATENAME(Month,GETDATE())AS[Month],DATENAME(Weekday,GETDATE())AS[Weekday],CONVERT(varchar,GETDATE(),109)AS[CONVERT]/*--结果MonthWeekdayCONVERT---------------------------------------------------------------------05星期四051920052:

49:

20:

607PM--*/

日期格式化处理.sql日期推算处理.sql

CONVERT在日期转换中的使用示例.sql:

SQLcode

--字符转换为日期时,Style的使用--1.Style=101时,表示日期字符串为:

mm/dd/yyyy格式SELECTCONVERT(datetime,'11/1/2003',101)--结果:

2003-11-0100:

00:

00.000--2.Style=101时,表示日期字符串为:

dd/mm/yyyy格式SELECTCONVERT(datetime,'11/1/2003',103)--结果:

2003-01-1100:

00:

00.000/*==日期转换为字符串==*/DECLARE@dtdatetimeSET@dt='2003-1-11'--1.Style=101时,表示将日期转换为:

mm/dd/yyyy格式SELECTCONVERT(varchar,@dt,101)--结果:

01/11/2003--2.Style=103时,表示将日期转换为:

dd/mm/yyyy格式SELECTCONVERT(varchar,@dt,103)--结果:

11/01/2003/*==这是很多人经常犯的错误,对非日期型转换使用日期的style样式==*/SELECTCONVERT(varchar,'2003-1-11',101)--结果:

2003-1-11

SETDATEFORMAT对日期处理的影响.sql

SQLcode

--1./*--说明SETDATEFORMAT设置对使用CONVERT把字符型日期转换为日期的处理也具有影响但不影响明确指定了style的CONVERT处理。

--*/--示例,在下面的示例中,第一个CONVERT转换未指定style,转换的结果受SETDATAFORMAT的影响,第二个CONVERT转换指定了style,转换结果受style的影响。

--设置输入日期顺序为日/月/年SETDATEFORMATDMY--不指定Style参数的CONVERT转换将受到SETDATEFORMAT的影响SELECTCONVERT(datetime,'2-1-2005')--结果:

2005-01-0200:

00:

00.000--指定Style参数的CONVERT转换不受SETDATEFORMAT的影响SELECTCONVERT(datetime,'2-1-2005',101)--结果:

2005-02-0100:

00:

00.000GO--2./*--说明如果输入的日期包含了世纪部分,则对日期进行解释处理时年份的解释不受SETDATEFORMAT设置的影响。

--*/--示例,在下面的代码中,同样的SETDATEFORMAT设置,输入日期的世纪部分与不输入日期的世纪部分,解释的日期结果不同。

DECLARE@dtdatetime--设置SETDATEFORMAT为:

月日年SETDATEFORMATMDY--输入的日期中指定世纪部分SET@dt='01-2002-03'SELECT@dt--结果:

2002-01-0300:

00:

00.000--输入的日期中不指定世纪部分SET@dt='01-02-03'SELECT@dt--结果:

2003-01-0200:

00:

00.000GO--3./*--说明如果输入的日期不包含日期分隔符,那么SQLServer在对日期进行解释时将忽略SETDATEFORMAT的设置。

--*/--示例,在下面的代码中,不包含日期分隔符的字符日期,在不同的SETDATEFORMAT设置下,其解释的结果是一样的。

DECLARE@dtdatetime--设置SETDATEFORMAT为:

月日年SETDATEFORMATMDYSET@dt='010203'SELECT@dt--结果:

2001-02-0300:

00:

00.000--设置SETDATEFORMAT为:

日月年SETDATEFORMATDMYSET@dt='010203'SELECT@dt--结果:

2001-02-0300:

00:

00.000--输入的日期中包含日期分隔符SET@dt='01-02-03'SELECT@dt--结果:

2003-02-0100:

00:

00.000

SETLANGUAGE对日期处理的影响示例.sql

SQLcode

--以下示例演示了在不同的语言环境(SETLANGUAGE)下,DATENAME与CONVERT函数的不同结果。

USEmaster--设置会话的语言环境为:

EnglishSETLANGUAGEN'English'SELECTDATENAME(Month,GETDATE())AS[Month],DATENAME(Weekday,GETDATE())AS[Weekday],CONVERT(varchar,GETDATE(),109)AS[CONVERT]/*--结果:

MonthWeekdayCONVERT----------------------------------------------------------MarchTuesdayMar1520058:

59PM--*/--设置会话的语言环境为:

简体中文SETLANGUAGEN'简体中文'SELECTDATENAME(Month,GETDATE())AS[Month],DATENAME(Weekday,GETDATE())AS[Weekday],CONVERT(varchar,GETDATE(),109)AS[CONVERT]/*--结果MonthWeekdayCONVERT---------------------------------------------------------------------05星期四051920052:

49:

20:

607PM--*/

日期格式化处理.sql

SQLcode

DECLARE@dtdatetimeSET@dt=GETDATE()--1.短日期格式:

yyyy-m-dSELECTREPLACE(CONVERT(varchar(10),@dt,120),N'-0','-')--2.长日期格式:

yyyy年mm月dd日--A.方法1SELECTSTUFF(STUFF(CONVERT(char(8),@dt,112),5,0,N'年'),8,0,N'月')+N'日'--B.方法2SELECTDATENAME(Year,@dt)+N'年'+DATENAME(Month,@dt)+N'月'+DATENAME(Day,@dt)+N'日'--3.长日期格式:

yyyy年m月d日SELECTDATENAME(Year,@dt)+N'年'+CAST(DATEPART(Month,@dt)ASvarchar)+N'月'+DATENAME(Day,@dt)+N'日'--4.完整日期+时间格式:

yyyy-mm-ddhh:

mi:

ss:

mmmSELECTCONVERT(char(11),@dt,120)+CONVERT(char(12),@dt,114)

日期推算处理.sql

SQLcode

DECLARE@dtdatetimeSET@dt=GETDATE()DECLARE@numberintSET@number=3--1.指定日期该年的第一天或最后一天--A.年的第一天SELECTCONVERT(char(5),@dt,120)+'1-1'--B.年的最后一天SELECTCONVERT(char(5),@dt,120)+'12-31'--2.指定日期所在季度的第一天或最后一天--A.季度的第一天SELECTCONVERT(datetime,CONVERT(char(8),DATEADD(Month,DATEPART(Quarter,@dt)*3-Month(@dt)-2,@dt),120)+'1')--B.季度的最后一天(CASE判断法)SELECTCONVERT(datetime,CONVERT(char(8),DATEADD(Month,DATEPART(Quarter,@dt)*3-Month(@dt),@dt),120)+CASEWHENDATEPART(Quarter,@dt)in(1,4)THEN'31'ELSE'30'END)--C.季度的最后一天(直接推算法)SELECTDATEADD(Day,-1,CONVERT(char(8),DATEADD(Month,1+DATEPART(Quarter,@dt)*3-Month(@dt),@dt),120)+'1')--3.指定日期所在月份的第一天或最后一天--A.月的第一天SELECTCONVERT(datetime,CONVERT(char(8),@dt,120)+'1')--B.月的最后一天SELECTDATEADD(Day,-1,CONVERT(char(8),DATEADD(Month,1,@dt),120)+'1')--C.月的最后一天(容易使用的错误方法)SELECTDATEADD(Month,1,DATEADD(Day,-DAY(@dt),@dt))--4.指定日期所在周的任意一天SELECTDATEADD(Day,@number-DATEPART(Weekday,@dt),@dt)--5.指定日期所在周的任意星期几--A.星期天做为一周的第1天SELECTDATEADD(Day,@number-(DATEPART(Weekday,@dt)+@@DATEFIRST-1)%7,@dt)--B.星期一做为一周的第1天SELECTDATEADD(Day,@number-(DATEPART(Weekday,@dt)+@@DATEFIRST-2)%7-1,@dt)

查询指定日期段内过生日的人员.sql

SQLcode

QQ291911320

--测

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

当前位置:首页 > 经管营销 > 财务管理

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

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