2023年數(shù)據(jù)庫應用技術考試知識點_第1頁
2023年數(shù)據(jù)庫應用技術考試知識點_第2頁
2023年數(shù)據(jù)庫應用技術考試知識點_第3頁
2023年數(shù)據(jù)庫應用技術考試知識點_第4頁
2023年數(shù)據(jù)庫應用技術考試知識點_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第二章系統(tǒng)數(shù)據(jù)類型介紹p24創(chuàng)建用戶自定義數(shù)據(jù)類型:sp_addtypetype_name,phystype[(length)|([precision,scale]),null|notnull|identity]查看,重命名,刪除用戶定義的數(shù)據(jù)類型:sp_helptype_name查看用戶自定義數(shù)據(jù)類型的特性;sp_renametype_name給用戶自定義數(shù)據(jù)類型重新命名;sp_droptypetype_name刪除一個已經(jīng)定義且未被使用的用戶自定義數(shù)據(jù)類型。定義局部變量:DECLAER{@local_variabledata_type}[…n]設定局部變量的值,必須使用SELECT命令或者SET命令。其語法形式為:SET{{@local_variable=expression}或者SELECT{@local_variable=expression}[,...n]全局變量:全局變量分為兩類,一是與SQLServer連接有關的全局變量,如@@rowcount表達受最近一個語句影響的行數(shù);二是關于系統(tǒng)內部信息有關的全局變量,如@@version表達SQLServer的版本號。SQLServer運算符的優(yōu)先級別數(shù)學函數(shù):字符串函數(shù):日期函數(shù):轉換函數(shù):系統(tǒng)函數(shù):聚合函數(shù):批和腳本:批解決:包含一個或多個T-SQL語句的組,它將一次性地發(fā)送到SQLServer中執(zhí)行,用GO來告知SQLServer一批T-SQL語句的結束。腳本就是一系列順序提交的批。流程控制:各語句的作用:BEGIN…END用來設定一程序塊IF…ELSE用來判斷當某一條件成立時執(zhí)行某段程序,條件不成立時執(zhí)行另一段程序。CASE語句為多分支語句WHILE…CONTINUE…BREAK循環(huán)語句WAITFOR語句用來暫時停止程序執(zhí)行GOTO語句用來改變程序執(zhí)行的流程RETURN語句用于結束當前程序(所在的批、存儲過程和觸發(fā)器)的執(zhí)行,返回到上一個調用它的程序或其它程序。PRINT語句的作用是在屏幕上顯示用戶信息。RAISERROR語句的作用是將錯誤信息顯示在屏幕上,同時也可以記錄在日記中。各語句的形式:IF…ELSE語句的語法形式:IFBoolean_expression?

sql_statement|statement_block?[ELSE

sql_stat(yī)ement|statement_block]BEGIN…END語句的語法形式:BEGIN

sql_statement

|statement_block

?ENDCase語句:見p37WHILE…CONTINUE…BREAK語法形式:WHILEBoolean_expression?

sql_statement|statement_block?

[BREAK]?

sql_statement|statement_block

[CONTINUE]WAITFOR語句的語法形式為:WAITFOR{DELAY'time'|TIME'time'}RETURN語句的語法形式為:RETURN[integer_expression]GOTO和RAISERROR見p39-40第三章數(shù)據(jù)庫的邏輯結構從邏輯角度,SQLServer2023將數(shù)據(jù)庫組織成為各種數(shù)據(jù)庫對象,如數(shù)據(jù)表、視圖、索引、數(shù)據(jù)類型、存儲過程、觸發(fā)器等。(各對象的定義見p48)。數(shù)據(jù)庫的物理結構從物理角度,SQLServer2023數(shù)據(jù)庫以多種操作系統(tǒng)文獻形式存儲在計算機硬盤上,一般一個數(shù)據(jù)庫被組織成數(shù)據(jù)文獻和日記文獻兩種類型的文獻。重要數(shù)據(jù)文獻(.mdf),該文獻包含數(shù)據(jù)庫的啟動信息,并用于存儲數(shù)據(jù)次要數(shù)據(jù)文獻(.ndf),它具有不能置于重要數(shù)據(jù)文獻中的數(shù)據(jù),可以有多個,并分布在不同磁盤上。日記文獻(.ldf),記錄了用戶對數(shù)據(jù)庫的所有操作。文獻組文獻組是數(shù)據(jù)庫中數(shù)據(jù)文獻的邏輯組合。每個數(shù)據(jù)庫有一個重要文獻組。此文獻組包含重要數(shù)據(jù)文獻和未放入其他文獻組的所有次要文獻??梢詣?chuàng)建用戶定義的文獻組,用于將數(shù)據(jù)文獻集合起來,以便于管理、數(shù)據(jù)分派和放置。數(shù)據(jù)文獻的組織方式:數(shù)據(jù)文獻由若干個大小為64KB的區(qū)組成,每個區(qū)由8個8KB大小的連續(xù)空間組成,這些連續(xù)空間被成為數(shù)據(jù)頁。在數(shù)據(jù)頁上,數(shù)據(jù)行緊接著頁首按順序存放。頁尾有一個行偏移表,表中頁上的每一行都有一個條目,每個條目記錄那一行的第一個字節(jié)與頁首的距離。SQLServer2023有兩種區(qū),統(tǒng)一區(qū)和混合區(qū)。統(tǒng)一區(qū)屬于單個數(shù)據(jù)庫對象所有,區(qū)所有的數(shù)據(jù)頁只能由擁有該區(qū)的對象使用;混合區(qū)最多可以由8個邏輯對象來使用。事務日記:事務日記是數(shù)據(jù)庫中已經(jīng)發(fā)生的一連串修改和操作的記錄。SQLServer2023包含兩種類型的數(shù)據(jù)庫:系統(tǒng)數(shù)據(jù)庫和用戶數(shù)據(jù)庫。系統(tǒng)數(shù)據(jù)庫存儲有關數(shù)據(jù)庫系統(tǒng)的信息,例如master、model、msdb、tempdb。master數(shù)據(jù)庫記錄SQLServer2023的所有系統(tǒng)級信息,涉及登錄帳戶和系統(tǒng)配置設立。model數(shù)據(jù)庫為用戶創(chuàng)建新的數(shù)據(jù)庫提供模板。msdb數(shù)據(jù)庫是代理服務使用的數(shù)據(jù)庫,代理程序調度警報作業(yè)以及記錄操作員的操作時使用。tempdb數(shù)據(jù)庫保存所有的臨時表和臨時存儲過程。創(chuàng)建用戶數(shù)據(jù)庫:CREATEDATABASEdatabase_nameON{[PRIMARY](NAME=logical_file_name,FILENAME=’os_file_name’,[,SIZE=size][,MAXSIZE={max_size|UNLIMTED}][,FILEGROWTH=grow_increment])}[,…n]LOGON{(NAME=logical_file_name,FILENAME=’os_file_name’[,SIZE=size][,MAXSIZE={max_size|UNLIMTED}][,FILEGROWTH=grow_increment])}[,…n]參數(shù)說明:參數(shù)說明database_name要建立的數(shù)據(jù)庫名稱PRIMARY在主文獻組中指定文獻。ON指定存儲數(shù)據(jù)庫數(shù)據(jù)部分的磁盤文獻(數(shù)據(jù)文獻)。LOGON指定建立數(shù)據(jù)庫的日記文獻。NAME指定數(shù)據(jù)或日記文獻的文獻名稱FILENAME指定文獻的操作系統(tǒng)文獻名和途徑。os_file_name中的途徑必須指定為SQLServer所安裝服務器上的某個文獻夾。SIZE指定數(shù)據(jù)或日記文獻的大小。用戶可以以MB為單位指定大小,也可以使用默認單位MB來指定大小。假如沒有為主文獻提供size,則數(shù)據(jù)庫引擎

將使用model數(shù)據(jù)庫中的主文獻的大小。假如指定了輔助數(shù)據(jù)文獻或日記文獻,但未指定該文獻的size,則數(shù)據(jù)庫引擎

將以1MB作為該文獻的大小。。MAXSIZE指定文獻可以增長到的最大長度。默認單位為MB,用戶也可以以MB來指定該長度。假如沒有指定長度的話,文獻將一直增長直到磁盤滿為止。要建立的數(shù)據(jù)庫大小單位為MB。FILEGROWTH指定文獻的增長增量。該參數(shù)設立不能超過MAXSIZE參數(shù)。指定值的默認單位為MB,用戶也可以以KB為單位進行指定,此外還可以使用比例(%)。假如該參數(shù)沒有指定的話,默認值為10%,最小值為64KB。修改數(shù)據(jù)庫:ALTERDATABASEdatabasename{ADDfile<filespec>[,…n][TOfilegroupfilegroupname]|ADDlogfile<filespec>[,…n]|REMOVEfilelogical_file_name[withdelete]|MODIFYfile<filespec>|MODIFYname=new_databasename|ADDfilegroupfilegroup_name|REMOVEfilegroupfilegroup_name|MODIFYfilegroupfilegroup_name{filegroup_property|name=new_filegroup_name}}查看數(shù)據(jù)庫狀態(tài):sys.databases:數(shù)據(jù)庫和文獻目錄視圖,可以查看有關數(shù)據(jù)庫的基本信息。MicrosoftSQLServer實例中的每個數(shù)據(jù)庫都相應一行sys.databases_files:可以查看有關數(shù)據(jù)庫文獻的信息。每個存儲在數(shù)據(jù)庫自身中的數(shù)據(jù)庫文獻在表中占用一行。sys.master_files:可以查看數(shù)據(jù)庫文獻的基本信息和狀態(tài)信息。master數(shù)據(jù)庫中的每個文獻相應一行。增長用戶數(shù)據(jù)庫容量:ALTERDATABASEdatabase_nameMODIFYFILE(NAME=file_name,SIZE=newsize)縮減用戶數(shù)據(jù)庫容量:P65DBCCSHRINKDATABASE(‘dat(yī)abase_name’|database_id|0[,target_percent])[WITHNO_INFOMSGS]數(shù)據(jù)庫快照的作用:1、維護歷史數(shù)據(jù)以生成報表。2、將查詢實行在數(shù)據(jù)庫的快照上,可以釋放主體數(shù)據(jù)庫上的資源。3、使用快照將數(shù)據(jù)庫恢復到生成快照時的狀態(tài)比從備份還原快得多。創(chuàng)建快照數(shù)據(jù)庫語法格式CREATEDATABASEdatabase_snapshot_nameON(NAME=logical_file_name,FILENAME='os_file_name')[,...n]ASSNAPSHOTOFsource_database_name數(shù)據(jù)庫更名與刪除:p69更名:execsp_renamedb‘old_name’,’new_name’刪除:dropdatabasedatabase_name第四章數(shù)據(jù)表中行和列的作用:每行代表一唯一的記錄,每列代表記錄中的一個域。創(chuàng)建數(shù)據(jù)庫:CREATETABLE[database_name.[owner].|owner.]table_name({<column_definition>|column_nameAScomputed_column_expression|<table_constraint>::=[CONSTRAINTconstraint_name]}|[{PRIMARYKEY|UNIQUE}[,...n]][ON{filegroup|DEFAULT}][TEXTIMAGE_ON{filegroup|DEFAULT}]<column_definition>::={column_namedata_type}[COLLATE<collation_name>]……修改表結構:ALTERTABLEtable_name{[ALTERCOLUMNcolumn_name{new_dat(yī)a_type[(precision[,scale])][COLLATE<collation_name>][NULL|NOTNULL]|ADD{[<column_definition>][,...n]|DROP{[CONSTRAINT]constraint_name|COLUMNcolumn_name}[,...n]插入、更新和刪除表數(shù)據(jù):查看表結構:使用系統(tǒng)存儲過程sp_help查看表結構[EXECUTE]sp_help[table_name]數(shù)據(jù)插入:INSERT命令完畢數(shù)據(jù)插入。INSERT[INTO]table_name[(column1,column2…)]values(value1,value2…)更新表中現(xiàn)存記錄中的數(shù)據(jù):UPDATE語句可以更新表中現(xiàn)存記錄中的數(shù)據(jù)UPDATEtable_nameSETcolumn1=modified_value1[,column2=modified_values[,…]][WHEREcolumn1=value1][,column2=value2]刪除數(shù)據(jù):DELETE語句可以從表中刪除一行或多行記錄。DELETEFROMtable_name[WHEREcolumn1=value1],[column2=value2]數(shù)據(jù)完整性:存儲在數(shù)據(jù)庫中數(shù)據(jù)的一致性和對的性。數(shù)據(jù)完整性分為:實體完整性、參照完整性、域完整性和用戶定義完整性四種。約束:CHECK約束限制輸入到一列或多列的值的范圍DEFAULT約束假如沒有為列指定數(shù)據(jù),系統(tǒng)將默認值賦給列PRIMARYKEY約束假如某列或多列的值能惟一標記表中的每一行,這樣的列稱為表的主鍵,通過它可以強制表的實體完整性。FOREIGNKEY約束外鍵(ForeignKey)是用于建立和加強兩個表(主表與從表)的一列或多列數(shù)據(jù)之間的鏈接,當數(shù)據(jù)添加、修改或刪除時,通過參照完整性保證它們之間數(shù)據(jù)的一致性。定義表之間的參照完整性是先定義主表的主鍵,再對從表定義外鍵約束UNIQUE約束保證表中的兩個數(shù)據(jù)行在非主鍵列中沒有相同的列值約束的創(chuàng)建與刪除:CHECK約束的創(chuàng)建ALTERTABLEtable_nameADD[CONSTRAINTconstraint_name]CHECK(logical_expression)Check約束的刪除:DROPCONSTRAINTconstraint_name創(chuàng)建和刪除DEFAULT約束ALTERTABLEtable_nameADD[CONSTRAINTconstraint_name]DEFAULTconstraint_expressionDROPCONSTRAINTconstraint_name創(chuàng)建和刪除PRIMARYKEY約束ALTERTABLEtable_nameADD[CONSTRAINTconstraint_name]PRIMARYKEY[CLUSTERED|NONCLUSTERED]constraint_expressionDROPCONSTRAINTconstraint_name創(chuàng)建和刪除FOREIGNKEY約束ALTERTABLEtable_nameADD[CONSTRAINTconstraint_name][FOREIGNKEY]REFERENCESreferenced_table_name[(ref_column)]DROPCONSTRAINT[FOREIGNKEY]constraint_name創(chuàng)建和刪除UNIQUE約束ALTERTABLEtable_nameADD[CONSTRAINTconstraint_name]UNIQUEconstraint_expression[CLUSTERED|NONCLUSTERED]ALTERTABLEtable_nameDROPCONSTRAINTUNIQUEconstraint_name創(chuàng)建默認值和將其綁定到表上的某列CREATEDEFAULTdefault_nameASconstraint_expressionEXECsp_bindefaultdefault_name'table_name.[column_name[,…]|user_dat(yī)etype]'第五章SELECT語句的形式:SELECTselect_list[INTOnew_table_name]FROMtable_list[WHEREsearch_conditions][GROUPBYgroup_by_list][HAVINGsearch_conditions][ORDERBYorder_list[ASC|DESC]][COMPUTErow_aggregate(column_name)[BYcolumn_name]]簡樸查詢:SELECT[ALL|DISTINCT]*|{table_name|view_name}.*|column_name[AS]column_titleFROMtable_name|view_name各個子句的作用:FROM子句:指定SELECT語句查詢的一個或多個表,最多可以指定16個表,每一個表名用逗號分隔。即從指定的數(shù)據(jù)表table_name1[,table_name2,...]的記錄中,檢索(SELECT)出指定的列column_name1,column_name2[,...n]形成結果集。但是,FROM后面的表名在兩個或者兩個以上時,SELECT列表中應當采用table_name.[column_name]形式限定列所屬的表。使用SELECT…INTO語句可以在查詢數(shù)據(jù)的基礎上創(chuàng)建新的數(shù)據(jù)表。通常,可使用這種方法來創(chuàng)建臨時表,以便在隨后的開發(fā)過程中使用。SELECTcolumn_name1,column_name2[,...n][INTOnew_table]FROMtable_nameWhere子句:從整個表中選出滿足指定條件的內容,這就要用到WHERE子句。SELECTcolumn_name1,column_name2[,...n]FROMtable_nameWHEREsearch_conditionORDERBYcolumn_name1[ASC|DESC][,column_name2[ASC|DESC][,...]]ORDERBY是一個可選的子句,假如有ORDERBY子句,將按照排序列名column_name1[,column_name2[,...]]進行排序,其結果表還要按選項的值升序(ASC)或降序(DESC)排列。缺省時為查詢結果按升序排列。使用GROUPBY子句可以按一定的條件對查詢到的結果進行分組,再對每一組數(shù)據(jù)計算記錄信息。SELECTcolumn_name1,column_name2[,...n]FROMtable_nameWHEREsearch_conditionGROUPBYgroup_by_expressionHAVINGsearch_conditionGROUPBY將查詢結果按(group_by_expression)進行分組,該屬性列相等的記錄為一個組。通常,在每組中通過聚合函數(shù)來計算一個或者多個列。假如GROUP帶有HAVING,則只有滿足search_condition的組才干輸出。Compute子句:SELECTcolumn_name1,column_name2[,...n]FROMtable_nameWHEREsearch_conditionORDERBYcolumn_name[ASC|DESC][,...]COMPUTErow_aggregate(column_name)[,row_aggregat(yī)e(column_name)…][BYcolumn_name[,column_name…]其中,row_aggregate表達行聚合函數(shù),如AVG(),COUNT(),MAX(),MIN(),SUM()。COMPUTE子句生成合計作為附加的匯總列出現(xiàn)在結果集的最后。當與BY一起使用時,COMPUTE子句在結果集內對指定列進行分類匯總??稍谕徊樵儍戎付–OMPUTEBY和COMPUTE。內連接:內連接是用比較運算符比較兩個表中列值,將兩個表中滿足連接條件的行組合起來作為結果,它是最常見的表連接形式。內連接分為:等值連接,在SELECT列表中使用星號(*)的和在結果集中顯示冗余列數(shù)據(jù)的連接。不等值連接,在連接條件中使用除等于運算符以外的其它比較運算符(>、>=、<=、<、!>、!<、<>),來比較被連接列的列值。自然連接,對結果集的冗余列數(shù)據(jù)進行限制的連接。在連接條件中使用等號(=)運算符比較被連接列的列值,但它使用選擇列表指定查詢結果聚合中所涉及的列,并刪除連接表中的反復列。P109第六章視圖的概念視圖是基于某個查詢結果的一個虛擬表,只是用來查看數(shù)據(jù)的窗口而已。視圖與真正的表很類似,也是由一組命名的列和數(shù)據(jù)行所組成,其內容由查詢所定義。但是視圖并不是以一組數(shù)據(jù)的形式存儲在數(shù)據(jù)庫中,數(shù)據(jù)庫中只存放視圖的定義而不存放視圖相應的數(shù)據(jù),這些數(shù)據(jù)仍存放在導出視圖的基表中。當基表中的數(shù)據(jù)發(fā)生變化時,從視圖中查詢出來的數(shù)據(jù)也隨之改變。創(chuàng)建視圖:CREATEVIEWview_name[(column_name[,...n])][WITHENCRYPTION]ASSELECT_statement[WITHCHECKOPTION]通過視圖查詢數(shù)據(jù)p131第七章索引的概念:索引是一個表中所包含的值的列表,它說明了表中包含各個值的行所在的存儲位置。索引中數(shù)據(jù)的存儲:在沒有建立索引的表內,使用堆的集合的方法組織數(shù)據(jù)頁。在堆集中,數(shù)據(jù)行不按任何順序進行存儲,數(shù)據(jù)頁序列也沒有任何特殊順序。因此掃描這些數(shù)據(jù)堆集花費的時間肯定較長。在建有索引的表內,數(shù)據(jù)行基于索引的鍵值按順序存放,將改善系統(tǒng)查詢數(shù)據(jù)的速度。索引的分類:按照索引存儲方式的不同,可以將索引分為聚集索引和非聚集索引。在聚集索引(ClusteredIndex)中,行的物理存儲順序與索引順序完全相同,即索引的順序決定了表中行的存儲順序,由于行是通過排序的,所以每個表中只能有一個聚集索引。非聚集索引(NonclusteredIndex)并不在物理上排列數(shù)據(jù),即索引中的邏輯順序并不等同于表中行的物理順序,索引僅僅記錄指向表中行的位置的指針,這些指針自身是有序的,通過這些指針可以在表中快速地定位數(shù)據(jù)。按照索引取值方式可以將索引分為唯一索引和非唯一索引。唯一索引和非唯一索引既可以是聚集索引,也可以是非聚集索引。唯一索引是指索引值必須是唯一的,不允許數(shù)據(jù)表中具有兩行相同的索引值。創(chuàng)建PRIMARYKEY或UNIQUE,默認建立一個唯一索引。索引視圖:為視圖創(chuàng)建獨特的聚集索引,從而讓訪問此類視圖的查詢性能得以極大的改善。創(chuàng)建索引:CREATE[UNIQUE][CLUSTERED|NONCLUSTERED]INDEXindex_nameON{table|view}(column[ASC|DESC][,...n])[WITH[PAD_INDEX][[,]FILLFACTOR=fillfactor][[,]IGNORE_DUP_KEY][[,]DROP_EXISTING][[,]STATISTICS_NORECOMPUTE][[,]SORT_IN_TEMPDB]][ONfilegroup]索引的查看:通過系統(tǒng)視圖sys.indexs可查看數(shù)據(jù)庫中的索引信息,通過sys.index_columns可查看索引列信息。P157索引的更名p157sp_rename[@objname=]'object_name',[@newname=]'new_name'[,[@objtype=]'object_type']刪除索引:DROPINDEXtable_name.index_name[,…n]第八章存儲過程:一組完畢特定功能的T-SQL語句集,經(jīng)編譯后以特定的名稱存儲在數(shù)據(jù)庫中,用戶通過指定存儲過程的名字并給出參數(shù)(假如該存儲過程帶有參數(shù))來執(zhí)行存儲過程。創(chuàng)建不帶參數(shù)的存儲過程CREATEPROC[EDURE]procedure_nameASsql_statementsprocedure_name為所創(chuàng)建的存儲過程的名字;sql_statements為在存儲過程中需要執(zhí)行的數(shù)據(jù)庫操作。創(chuàng)建帶參數(shù)的存儲過程:CREATEPROC[EDURE]procedure_name[{@parameterdata_type}[=DEFAULT][OUTPUT]][,…n][WITH{RECOMPILE|ENCRYPTION|RECOMPILE,ENCRYPTI○N}]ASsql_statements使用ALTERPROCEDURE命令ALTERPROC[EDURE]procedure_name[{@parameterdata_type}[=DEFAULT][OUTPUT]][,…n][WITH{RECOMPILE|ENCRYPTION|RECOMPILE,ENCRYTION}]ASSql_statement[,…n]觸發(fā)器的概念:觸發(fā)器也是一種存儲過程,一種在基表被修改時自動執(zhí)行的內嵌過程,重要通過事件進行觸發(fā)而被執(zhí)行的,而存儲過程可以通過存儲過程名字而被直接調用。當對某一表進行諸如UPDATE、INSERT、DELETE這些操作時,SQLServer就會自動執(zhí)行觸發(fā)器所定義的SQL語句。從而保證對數(shù)據(jù)的解決必須符合由這些SQL語句所定義的規(guī)則。觸發(fā)器的重要作用就是其可以實現(xiàn)由主鍵和外鍵所不能保證的復雜的參照完整性和數(shù)據(jù)的一致性。創(chuàng)建觸發(fā)器:CREATETRIGGERtrigge_nameON{table|view}{FOR|AFTER|INSTEADOF}{[INSERT],[UPDATE],[DELETE]}[WITHENCRYPTION]ASIFUPDATE(column_name)[{and|or}UPDATE(column_name)…]sql_statesments修改觸發(fā)器:ALTERTRIGGERtrigge_nameON{table|view}{FOR|AFTER|INSTEADOF}{INSERT,UPDATE,DELETE}[WITHENCRYPTION]ASIFUPDATE(column_name){and|or}UPDATE(columnname)…]sql_stat(yī)esments第九章事務的概念:事務是由一系列的數(shù)據(jù)查詢操作或更新操作構成的。從用戶的觀點來看,根據(jù)業(yè)務規(guī)則,這些操作是一個整體,不能分割,即要么所有的操作都順利完畢,要么一個也不要做。絕不能只完畢了部分操作,而尚有一些操作沒有完畢。事務中任何一個語句執(zhí)行時犯錯,系統(tǒng)都會返回到事務開始前的狀態(tài)。事務的(原子性、一致性、隔離性、持久性)4個特性一般簡稱為事務的ACID特性事務的管理:使用BEGINTRANSACTION建立事務BEGINTRAN[SACTION][transaction_name|@tran_name_variable[WITHMARK['description']]]使用COMMITTRANSACTION標記事務結束COMMIT[TRAN[SACTION][transaction_name|@tran_name_variable]]使用COMMITWORK語句標記事務結束COMMIT[WORK]功能與COMMITTRANSACTION相同,但COMMITTRANSACTION接受用戶定義的事務名稱。使用ROLLBACKTRANSACTION回滾到事務的指定點ROLLBACK[TRAN[SACTION][transaction_name|@tran_name_variable|savepoint_name|@savepoint_variable]]使用ROLLBACKWORK回滾到事務的起點ROLLBACK[WORK]此語句的功能與ROLLBACKTRANSACTION相同,但ROLLBACKTRANSACTION接受用戶定義的事務名稱。嵌套事務時,ROLLBACKWORK始終回滾到最遠的BEGINTRANSACTION語句,并將@@TRANCOUNT系統(tǒng)函數(shù)減為0。事務模式:顯式事務由用戶在其中定義事務的啟動和結束隱式事務隱式事務是指在當前事務提交或回滾后,自動啟動新事務自動事務模式在自動事務模式下,每個Transact_SQL語句在成功執(zhí)行完畢后,都被自動提交;假如碰到錯誤,則自動回滾該語句。該模式為系統(tǒng)默認的事務管理模式。事務日記的內容各個事務的開始標記、結束標記、所有更新操作,每個記錄的內容包含:事務標記(標明是哪個事務)操作的類型(插入、刪除或修改)操作對象(記錄內部標記)更新前數(shù)據(jù)的舊值(對插入操作而言,此項為空值)更新后數(shù)據(jù)的新值(對刪除操作而言,此項為空值)游標的概念:游標是一種解決數(shù)據(jù)的方法,為了查看或者解決結果集中的數(shù)據(jù),游標提供了在結果集中向前或者向后瀏覽數(shù)據(jù)的能力。某些業(yè)務規(guī)則規(guī)定對結果集逐行執(zhí)行操作,而不是對整個結果集執(zhí)行操作。游標正是這樣一種基于逐行操作結果集的方法,它對SELECT語句的查詢結果集中的記錄行逐行解決,而不是整個結果集作同一解決,并基于游標的當前位置,更新或刪除表或視圖中的行。游標的使用:聲明或創(chuàng)建游標→打開游標→推動游標指針從游標的結果集中提取數(shù)據(jù)→逐行解決操作游標指針所指向的行數(shù)據(jù)→關閉和釋放游標聲明游標DECLAREcursor_nameCURSORFORselect_statement[FOR{READONLY|UPDATE[OFcolumn_name_list[,…]]}]打開游標OPENcrusor_name讀取游標中的數(shù)據(jù)FETCH[[NEXT|PRIOR|FIRST|LAST]FROM]cursor_name[INTOfetch_target_list]刪除數(shù)據(jù)DELETE[FROM]{table_name|view_name}WHERECURRENTOFcursor_name更新數(shù)據(jù)UPDATE{table_name|view_name}SET[table_name.|view.]column_name1={expression1|NULL|(select_stat(yī)ement)}[,column_name2={expression2|

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論