毛片在线视频观看,一级日韩免费大片,在线网站黄色,澳门在线高清一级毛片

薈聚奇文、博采眾長、見賢思齊
當前位置:公文素材庫 > 計劃總結 > 工作總結 > SQL用法總結

SQL用法總結

網(wǎng)站:公文素材庫 | 時間:2019-05-29 22:28:40 | 移動端:SQL用法總結

SQL用法總結

--=======================checkspacesandcleandata====================================--checkalldbsspacesp_helpdb

--checkalltablesspace

createtable#test(namevarchar(50),rowsint,reservedvarchar(20),datavarchar(20),index_sizevarchar(20),unusedvarchar(20))

insertinto#test

execsp_MSforeachtable"execsp_spaceused"?""

select*from#testorderbycast(replace(reserved,"KB","")asint)desc

droptable#test

--cleanalltabledata/*

execsp_MSforeachtable"deletefrom?"execsp_MSforeachtable"truncatetable?"*/

--========================處理日志====================================--由于SQL201*對文件和日志管理進行了優(yōu)化,所以以下語句在SQL201*中可以運行但在SQL201*中已經(jīng)被取消:--SQL201*/*

BackupLogDNNamewithno_log

DumpTransactionDNNamewithno_log

DBCCSHRINKFILE(2)*/

--SQL201*

--在SQL201*中清除日志就必須在簡單模式下進行,等清除動作完畢再調回到完全模式.

ALTERDATABASEDNNameSETRECOVERYSIMPLE--WITHNO_WAIT簡單模式

DBCCSHRINKFILE("DNName_Log",EMPTYFILE,TRUNCATEONLY)--DBCCSHRINKFILE("DNName_Log",1,TRUNCATEONLY)

ALTERDATABASEDNNameSETRECOVERYFULL--WITHNO_WAIT還原為完全模式

--優(yōu)點:此清除日志所運行消耗的時間短,90GB的日志在分鐘左右即可清除完畢,做完之后做個完全備份在分鐘內即可完成.

--缺點:不過此動作最好不要經(jīng)常使用,因為它的運行會帶來系統(tǒng)碎片.普通狀態(tài)下LOG和DIFF的備份即可截斷日志.

--此語句使用的恰當環(huán)境:當系統(tǒng)的日志文件異常增大或者備份LOG時間太長可能影響生產的情況下使用.

--========================Rankingwindow

functions====================================--runonAdventureWorks

--UsingtheOVERclausewithaggregatefunctionsSELECTSalesOrderID,ProductID,OrderQty

,SUM(OrderQty)OVER(PARTITIONBYSalesOrderID)AS"Total",AVG(OrderQty)OVER(PARTITIONBYSalesOrderID)AS"Avg"

,COUNT(OrderQty)OVER(PARTITIONBYSalesOrderID)AS"Count",MIN(OrderQty)OVER(PARTITIONBYSalesOrderID)AS"Min",MAX(OrderQty)OVER(PARTITIONBYSalesOrderID)AS"Max"

,CAST(1.*OrderQty/SUM(OrderQty)OVER(PARTITIONBYSalesOrderID)*100ASDECIMAL(5,2))AS"PercentbyProductID"FROMSales.SalesOrderDetail

WHERESalesOrderIDIN(43659,43664)

--UsingtheOVERclausewiththeROW_NUMBERfunctionSELECTc.FirstName,c.LastName

,ROW_NUMBER()OVER(partitionbyPostalCodeORDERBYSalesYTDDESC)AS"RowNumber"

,s.SalesYTD,a.PostalCodeFROMSales.SalesPersons

INNERJOINPerson.Contactc

ONs.SalesPersonID=c.ContactIDINNERJOINPerson.Addressa

ONa.AddressID=c.ContactIDWHERETerritoryIDISNOTNULLANDSalesYTD0

SELECTc.FirstName,c.LastName

,ROW_NUMBER()OVER(ORDERBYa.PostalCode)AS"RowNumber",RANK()OVER(ORDERBYa.PostalCode)AS"Rank"

,DENSE_RANK()OVER(ORDERBYa.PostalCode)AS"DenseRank",NTILE(4)OVER(ORDERBYa.PostalCode)AS"Quartile",s.SalesYTD,a.PostalCodeFROMSales.SalesPersons

INNERJOINPerson.Contactc

ONs.SalesPersonID=c.ContactIDINNERJOINPerson.Addressa

ONa.AddressID=c.ContactIDWHERETerritoryIDISNOTNULLANDSalesYTD0

--=======================CreatePartitionondatabase====================================

--1.AddfilegroupsandfilestodatabaseALTERDATABASETestADDfilegrouptestFg1

ALTERDATABASETestADDFILE(NAME=test1,FILENAME="C:\\ProgramFiles\\MicrosoftSQL

Server\\MSSQL10.MSSQLSERVER\\MSSQL\\DATA\\test1.ndf",SIZE=3MB,MAXSIZE=UNLIMITED,FILEGROWTH=1MB

)TOFILEGROUPtestFg

ALTERDATABASETestADDfilegrouptestFg2

ALTERDATABASETestADDFILE(NAME=test1,FILENAME="C:\\ProgramFiles\\MicrosoftSQL

Server\\MSSQL10.MSSQLSERVER\\MSSQL\\DATA\\test2.ndf",SIZE=3MB,MAXSIZE=UNLIMITED,FILEGROWTH=1MB

)TOFILEGROUPtestFg2GO

--2.createpartitionfunctionandschemeCREATEPARTITIONFUNCTIONmyRangePF1(int)

ASRANGERIGHTFORVALUES(201*0101,201*0101,201*0101);GO

CREATEPARTITIONSCHEMEmyRangePS1ASPARTITIONmyRangePF1

TO([PRIMARY],testFg1,testFg2,testFg3)

--3.applypartitionontable/*

CREATETABLEPartitionTable(col1int,col2char(10))ONmyRangePS1(col1)

select*fromsys.partition_functions

select*fromsys.partition_schemes

select*fromsys.partition_range_values

--checkrowsoneverypartitionselect*fromsys.partitionswhereobject_id=*/

BEGINTRANSACTION

CREATECLUSTEREDINDEX[ClusteredIndex_on_myRangePS1]ON[dbo].[factCharge]([DateKey]

)WITH(SORT_IN_TEMPDB=OFF,IGNORE_DUP_KEY=OFF,DROP_EXISTING=OFF,ONLINE=OFF)ON[myRangePS1]([DateKey])

DROPINDEX[ClusteredIndex_on_myRangePS1]ON[dbo].[factChargeBak]WITH(ONLINE=OFF)

COMMITTRANSACTION

--=======================SQLCDC====================================USEAdventureWorksDW;GO

EXECUTEsys.sp_cdc_enable_db;--啟用數(shù)據(jù)庫對CDC的支持GOEXECsys.sp_cdc_enable_table"dbo","FactInternetSales",@role_name=NULL,@supports_net_changes=0;--啟用某個表對CDC的支持GO

SELECTname,is_tracked_by_cdcFROMsys.tablesWHEREnameLIKE("fact%")

INSERTINTOFactInternetSales

VALUES(484,1127,1139,1134,18759,1,100,6,"SO75124",1,1,1,21.9800,21.9800,0,0,8.2205,8.2205,21.9800,1.7584,0.5495,NULL,NULL)INSERTINTOFactInternetSales

VALUES(486,1127,1139,1134,18759,1,100,6,"SO75125",1,1,1,21.9800,21.9800,0,0,8.2205,8.2205,21.9800,1.7584,0.5495,NULL,NULL)

UPDATEFactInternetSalesSETPromotionKey=2WHERESalesOrderNumber="SO75124"

DELETEFROMFactInternetSalesWHERESalesOrderNumber="SO75125"SELECT*FROMcdc.dbo_FactInternetSales_CT;

DECLARE@begin_timedatetime,@end_timedatetime,@from_lsnbinary(10),@to_lsnbinary(10);

--Obtainthebeginningofthetimeinterval.SET@begin_time=GETDATE()-1SET@end_time=GETDATE()

--Mapthetimeintervaltoachangedatacapturequeryrange.

SELECT@from_lsn=sys.fn_cdc_map_time_to_lsn("smallestgreaterthanorequal",@begin_time)

SELECT@to_lsn=sys.fn_cdc_map_time_to_lsn("largestlessthanorequal",@end_time)

print@begin_timeprint@end_timeprint@from_lsnprint@to_lsn

SELECT*FROMcdc.dbo_FactInternetSales_CTWHERE__$start_lsnBETWEEN@from_lsnAND@to_lsn

--撤銷SQLServer201*CDC

EXECsys.sp_cdc_disable_table"dbo","FactInternetSales","All"EXECsys.sp_cdc_disable_db

--=======================Convertinttomoney====================================

SELECTREVERSE(SUBSTRING(REVERSE(CONVERT(varchar,CONVERT(money,123456789),1)),4,30))RMB

擴展閱讀:SQL的一些用法小結

SQL的一些用法小結(精彩實用)

1.模糊查詢:select*from表名where查詢字段like"%biao_"%通配符--匹配任意字符_通配符--匹配單個字符

2.字符串的連接(||):select字段1||","||字段2別名from表名輸出:字段1,字段2

3.查找非空項:select*from表名where字段isnotnull4.集合查詢:

union返回兩個查詢的結果并去除其中的重復部分:select字段1from表1unionselect字段1from表2

unionall與union一樣對表進行了合并但是它不去掉重復的記錄:select字段1from表1unionallselect字段1from表2

intersect(相交)返回兩個表中共有的行:select字段1from表1intersectselect字段1from表2

mimus(相減)返回的記錄是存在于第一個表中但不存在于第二個表中的記錄例:select字段1from表1mimusselect字段1from表25.從屬運算(in,between)

select*from表where字段in("值1","值2",-----)----括號內是數(shù)字則不需要用引號

select*from表where字段betweenMinandMax二.函數(shù)

1.count:該函數(shù)將返回滿足WHERE條件子句中記錄的個數(shù)selectcount(*)from表where條件2.sum返回某一列的所有數(shù)值的和selectsum(字段)from表3.avg可以返回某一列的平均值selectavg(字段)from表

4.max(min)取得某一列中的最大(小)值selectmax(字段)from表

select*from表where字段=min(字段)

@_@(太多了,不一一列舉了,弄些自己喜歡的^_^)----------------5.user該函數(shù)返回當前使用數(shù)據(jù)庫的用戶的名字selectuser[from表]三.子句

1.groupby用于分組

selectsum(字段1)from表groupby字段2having條件------按照字段2進行分組顯示

2.having在分組中設置條件

四.子查詢(子查詢的條件可以關聯(lián)主表和子表)

select*from表1where字段=(select字段from表2條件)---子查詢的結果必須是唯一

select*from表1where字段in(select字段from表2條件)----子查詢的結果不唯一

select*from表1whereexists(select........)-----exists返回trueorfalse五.精彩語句:

insertinto表1(字段1,字段2....)select字段1,字段2.....from表2條件-----復制表六.創(chuàng)建和操作表1.創(chuàng)建表:CREATETABLEtable_name(field1datatype[NOTNULL]

field2datatype[NOTNULL]

field3datatype[NOTNULL]...)

2.ALTERTABLE語句可以幫助你做兩件事-加入一列到已經(jīng)存在的表中-修改已經(jīng)存在的表中的某一列

ALTERTABLE語句的語法如下

ALTERTABLEtable_name-------修改一列3.刪除表和數(shù)據(jù)庫:

DROPTABLEtable_nameDROPDATABASEdatabase_name4.創(chuàng)建臨時表:

createtable#table_name(field1datatype,

.

fieldndatatype七,存貯過程:創(chuàng)建存貯過程的語法:

createprocedureprocedure_name[[(]@parameter_name

datatype[(length)|(precision[,scale])[=

default][output]-----------參數(shù)

[,@parameter_name

datatype[(length)|(precision[,scale])[=default][output]]...[)]][withrecompile]asSQL_statements運行存貯過程的EXECUTE命令的語法:execute[@return_status=]procedure_name

[[@parameter_name=]value

|------------參數(shù)值

[@parameter_name=]@variable[output]...]][withrecompile]八.SQLSERVER提供的全局變量:

在使用存儲過程的時候你可以自己定義全局變量是非常有用的SQLSERVER也提供

了幾種系統(tǒng)全局變量對于數(shù)據(jù)庫的系統(tǒng)用戶來說它可能是有用的下表中給出了這些變

量的全部清單你可以在SQLSERVERSYSTEM10的文檔中找到它變量名作用

@@char_convert如果字符轉換成功時其值為0@@client_csid客戶機所使用字符集的

ID

@@client_csname客戶機的字符集的名字

@@connections從SQLServer啟動以來的登錄次數(shù)

@@cpu_busy從SQLServer啟動以來的CPU忙的時間總數(shù)@@error錯誤的狀態(tài)

@@identity插入到確定列中的最后一個值@@idle從SQLServer啟動以來的總時間數(shù)@@io_busySQLServer用于I/O操作的時間

@@isolation當前的Transact-SQL程序的隔離級別@@langid定義了本地語言的ID號@@language定義了本地語言的名稱@@maxcharlen字符的最大長度

@@max_connections可與SQLSERVER進行連接的最大數(shù)量@@ncharsizeAveragelengthofanationalcharacter.@@nestlevel當前進程的嵌套級別

@@pack_received從SQLServer啟動以來的讀入的數(shù)據(jù)包的數(shù)量@@pack_sent從SQLServer所發(fā)出的輸出包的數(shù)量

@@packet_errors從SQLServer啟動以來產生錯誤的數(shù)量@@procid當前正在運行的存儲過程的ID號@@rowcount上一個命令所涉及的行數(shù)

@@servername本地localSQLServer的名字@@spid當前正在處理的進程ID號@@sqlstatus存儲狀態(tài)信息

@@textsize由SELECT語句所返回的文本映像的最大長度@@thresh_hysteresisChangeinfreespacerequiredtoactivateathreshold.@@timeticksNumberofmicrosecondspertick.@@total_errors在讀寫過程中產生的錯誤數(shù)

@@total_read在SQLServer啟動以來讀磁盤的次數(shù)@@total_write在SQLServer啟動以來寫磁盤的次數(shù)@@tranchained在Transact-SQL程序中當前事務的模式@@trancount事務的嵌套級別

@@transtate當一個語句運行后當前事務的狀態(tài)@@version當前SQLServer的版本日期

友情提示:本文中關于《SQL用法總結》給出的范例僅供您參考拓展思維使用,SQL用法總結:該篇文章建議您自主創(chuàng)作。

來源:網(wǎng)絡整理 免責聲明:本文僅限學習分享,如產生版權問題,請聯(lián)系我們及時刪除。


SQL用法總結》由互聯(lián)網(wǎng)用戶整理提供,轉載分享請保留原作者信息,謝謝!
鏈接地址:http://www.seogis.com/gongwen/747389.html
相關文章