《SQL語言基礎》PPT課件.ppt
《《SQL語言基礎》PPT課件.ppt》由會員分享,可在線閱讀,更多相關《《SQL語言基礎》PPT課件.ppt(70頁珍藏版)》請在裝配圖網上搜索。
1、2020/8/12,1,第三章 SQL 語言基礎,SQL概述 SQL (Structured query Language,結構化查詢語言),功能包括查詢、操縱、定義、控制。 功能豐富、語言簡潔、使用靈活,倍受歡迎。 1974年由Boyce,Chamberlin提出,1975年在IBM公司的System R上首次實現。原型稱為SEQUEL(Structured English QUEry Language). 1986年ANSI SQL-86標準,是第一個SQL 標準。1987年成為國際標準。 1992年SQL-92標準(簡稱SQL2)。,2020/8/12,2,1999年SQL-99標準(簡
2、稱SQL3)。增加了對對象關系模型的支持。目前僅部分實現。 最流行的國際標準數據庫語言。 主要特點: SQL是非結構化的語言,使用SQL 查詢數據庫時,只需要告訴它做什么而不用告訴它如何去做。 SQL 本身不提供任何程序流程控制結構,而是通過PL/SQL提供SQL語言的過程化功能 SQL提供相對固定的數據類型,一般不需要擴展 SQL本身十分靈活,方便易學。,2020/8/12,3,,標準SQL只包含9種語句: 數據查詢:select 數據定義: create, drop, alter 數據操縱: insert, update, delete 數據控制: grant, revoke,2020/8
3、/12,4,數據定義語言(DDL),用于定義數據結構 數據操縱語言(DML),用于檢索和修改數據結構 數據控制語言(DCL),用于規(guī)定數據庫用戶的各種權限 數據庫事務處理,用來保證數據庫的完整性,SQL語言分類,2020/8/12,5,SQL語言分類,數據定義語言(DDL):用于定義數據結構 能使用戶完成下列任務 創(chuàng)建數據庫對象 刪除數據庫對象 更改數據庫對象,2020/8/12,6,常用的數據定義語言DDL語句包括: Create Table:創(chuàng)建數據庫表 Create Index:創(chuàng)建數據庫表的索引 Drop Table:刪除數據庫表 Drop Index:刪除數據庫表的索引 Trunca
4、te:刪除表中所有行 Alter Table:增加表列,重定義表列,更改存儲分配 Alter Table ADD CONSTRAINT :在已有的表上增加約束,2020/8/12,7,,數據操縱語言(DML):允許用戶對數據庫中的數據進行Insert,Update,Delete和Select等操作 常用DML語句包括: Insert :增加數據行到表 Delete:從表中刪除數據行 Update:更改表中數據 Select:從表中或視圖中檢索數據行,2020/8/12,8,,數據控制語言(DCL):用于規(guī)定數據庫用戶的各種權限 常用的數據控制語句包括: GRANT:將權限或角色授予用戶或其它角
5、色 REVOKE:從用戶或數據庫角色回收權限 Set Role:禁止或允許一個角色,2020/8/12,9,,數據庫事務控制:用來保證數據庫的完整性 常用的事務處理語句包括: COMMIT WORK:把當前事務所作的更改永久化(寫入磁盤) ROLLBACK:作廢上次提交以來的所有更改,2020/8/12,10,事務:指作為單個邏輯工作單元執(zhí)行的一系列操作,而這些邏輯工作單元需要具有原子性,一致性,隔離性和持久性四個屬性。,2020/8/12,11,SQL語句的基本語法,基本語法如下: 每條SQL語句必須以分號結束 每條SQL語句可以單獨寫成一行,也可以分成若干行 SQL語句對大小寫不敏感,對于
6、SQL語句的關鍵字(如Insert等),表名,列名等,可以大小寫混合;但對列的內容則是大小寫敏感的。,2020/8/12,12,對象命名約定,SQL Server用三段式名字標識對象: .. 前兩者可以省略,系統(tǒng)自動有一個默認值。數據庫名的默認值是當前數據庫,所有者名的默認值是數據庫的所有者(dbo) 例如:在pubs數據庫中的authors表的所有者是dbo,它可以在多個數據庫中按如下方法引用:pubs.dbo.authors Pubs.authors,2020/8/12,13,別名:使用別名的主要目的是增加select語句的可讀性??墒褂萌缦抡Z句指派數據表的別名: 數據表名稱 as 數據表
7、別名,2020/8/12,14,例如:use sample Select e.員工編號,e.員工姓名 From 員工數據表 as e 注意:如果為數據表指定了別名,則在相應的T-SQL語句中,對該數據表的所有顯式引用都必須使用別名,而不能使用數據表名。例如: Select 員工數據表.員工編號,e.員工姓名 From 員工數據表 as e,2020/8/12,15,SELECT 語句,數據檢索是數據庫中最頻繁執(zhí)行的活動 在 SQL 中,使用 SELECT 語句可以在需要的表單中檢索數據 在進行檢索之前,必須知道需要的數據存儲在哪里 SELECT 語句可以由多個查詢子句組成,2020/8/12,
8、16,SELECT 語句,SELECT 語句可用于檢索: 全部的行和列 全部的行和特定的列 限定范圍的行 與一組值匹配的行 根據未知值檢索的行 隱藏有重復值的行 根據多個搜索條件檢索的行,2020/8/12,17,SELECT 語句,Select語句的基本結構如下: SELECT ALL | DISTINCT select_list INTO new_table_name FROM table_name | view_name ,table_name2 | view_name2 .,table_name16 | view_name16 WHERE search_conditions GROU
9、P BY group_by_list HAVING search_conditions ORDER BY order_list ASC|DESC,2020/8/12,18,SELECT 子 句,SELECT 子句指定需要通過查詢返回的表的列。其語法如下: SELECT ALL | DISTINCT TOP n 各參數說明如下: 其中,select_list表示需要檢索的字段的列表,字段名稱之間用逗號分隔。這個列表中既可以包含數據源表或視圖中的字段名稱,還可以包含其它表達式。如用*,則系統(tǒng)將返回數據表中的所有字段。,2020/8/12,19,ALL:指明查詢結果中可以顯示值相同的列ALL 是系
10、統(tǒng)默認的 DISTINCT:指明查詢結果中如果有值相同的列,則只顯示其中的一列。對DISTINCT 選項來說,Null 值被認為是相同的值 TOP n PERCENT:指定返回查詢結果的前n 行數據,如果PERCENT 關鍵字指定的話,則返回查詢結果的前百分之n 行數據。,2020/8/12,20,INTO 子句,INTO 子句用于把查詢結果存放到一個新建的表中。SELECT...INTO 句式不能與 COMPUTE 子句一起使用。其語法如下 INTO new_table 參數new_table 指定了新建的表的名稱,新表的列由SELECT 子句中指定的列構成。 新表中的數據行是由WHERE
11、子句指定的。但如果SELECT 子句中指定了計算列,在新表中對應的列則不是計算列,而是一個實際存儲在表中的列,其中的數據由執(zhí)行SELECT...INTO 語句時計算得出。,2020/8/12,21,FROM 子句,FROM 子句指定需要進行數據查詢的表只要SELECT 子句中有要查詢的列就必 須使用FROM 子句其語法如下 FROM ,...n table_source:指明SELECT 語句要用到的表、視圖等數據源,該列表中的數據表名和視圖名之間使用逗號分隔。,2020/8/12,22,,T-SQL可以支持在from子句中指定除了數據表或視圖以外的其他對象,例如查詢結果集構成的派生表。這些派
12、生表實際上是from 子句中select語句的查詢結果集,這些結果集構成了外層select語句查詢時所用的數據表。,2020/8/12,23,例如:,Select Emp.員工編號,emp.員工姓名,sp.部門名稱 From 員工數據表 as emp, (select 部門數據表.部門編號,部門數據表.部門名稱 From 部門數據表 Where 部門數據表.部門編號2) as sp Where emp.部門編號sp.部門編號 首先使用select語句檢索高級部門,并用別名sp表示該派生表,然后從員工數據表和sp派生表中檢索數據。,2020/8/12,24,Where 子句,Where 子句指定
13、數據檢索的條件,以限制返回的數據行。 Where 子句中的查詢條件 比較運算符:、=、=、、!=、 ! 范圍說明: Between A and B、Not Between A and B 可選值列表:IN、NOT IN 模式匹配:LIKE,NOT LIKE 是否空值:IS NULL、IS NOT NULL 上述條件的邏輯組合:AND、OR、NOT,2020/8/12,25,比較查詢條件:text、ntext和image數據類型不能與比較運算符組合成查詢條件。 列表查詢條件:in 關鍵字在大多數情況下應用于嵌套查詢(又稱為子查詢)中,通常首先使用select語句選定一個范圍,然后將選定的范圍作為
14、in關鍵字的符號條件的列表,從而得出最終的結果集。,2020/8/12,26,,模式查詢條件:Like、Not Like 通配符 * 匹配任意字符串 ? 匹配任意一個字符 大小寫敏感,2020/8/12,27,,Like關鍵字中的通配符及其含義,2020/8/12,28,Like關鍵字舉例,,2020/8/12,29,,空值判斷查詢條件:null值表示字段的數據值未知或不可用,它并不表示零(數字值或二進制值)、零長度的字符串或空白(字符值),2020/8/12,30,如果用戶要查找的數據中本身就包含了通配符,如SQL_Mail, 就需要使用轉義字符來區(qū)分通配符與實際存在的字符。其格式如下 LI
15、KE 字符匹配串 ESCAPE 轉義字符 例: 查找對象名稱為SQL_M 開頭,il 結尾,中間有一個不確定字符的對象 select * from objects where object_name like SQL#_M_il escape # /* 這里使用了兩個下劃線_符號,前一個下劃線由于有逃逸字符在其前面作標識,因而被認為是實際存在的下劃線字符;后面一個下劃線沒有逃逸字符在其前面作標識,因此將它作為 通配符 */,2020/8/12,31,使用來將通配符指定為普通字符。 例如: Select * from object Where column1 like %54%% 將返回所有包含
16、54%的字符串,2020/8/12,32,GROUP BY 子句,GROUP BY 子句指定查詢結果的分組條件。其語法如下: GROUP BY ALL group_by_expression ,...n WITH CUBE | ROLLUP 各參數說明如下: group_by_expression:指明分組條件group_by_expression 通常是一個列名,但不能是列的別名。數據類型為TEXT、 NTEXT、 IMAGE 或BIT 類型的列不能作為分組條件 ALL:返回所有可能的查詢結果組合,即使此組合中沒有任何滿足WHERE 子句的數據。分組的統(tǒng)計列如果不滿足查詢條件,則將由NUL
17、L 值構成其數據。ALL 選項不能與CUBE或ROLLUP 選項同時使用,2020/8/12,33,CUBE:除了返回由GROUP BY 子句指定的列外,還返回按組統(tǒng)計的行。返回的結果先按分 組的第一個條件列排序顯示,再按第二個條件列排序顯示,以此類推。統(tǒng)計行包括了GROUP BY 子句指定的列的各種組合的數據統(tǒng)計 ROLLUP:與CUBE 不同的是,此選項對GROUP BY 子句中的列順序敏感,它只返回第一個分組條件指定的列的統(tǒng)計行,改變列的順序會使返回的結果的行數發(fā)生變化。,2020/8/12,34,例如:,例: 查詢工作級別為2 的員工姓名,查詢結果按部門分組 select e_name
18、, dept_id from employee where job_level = 2 group by dept_id, e_name,2020/8/12,35,CUBE:除了返回由GROUP BY 子句指定的列外,還返回按組統(tǒng)計的行。返回的結果先按分組的第一個條件列排序顯示,再按第二個條件列排序顯示,以此類推。統(tǒng)計行包括了GROUP BY 子句指定的列的各種組合的數據統(tǒng)計 Select 所屬部門,性別,AVG(工資) FROM 員工數據表 Group by 所屬部門,性別 With cube,2020/8/12,36,ROLLUP:與CUBE 不同的是,此選項對GROUP BY 子句中的列
19、順序敏感,它只返回第一個分組條件指定的列的統(tǒng)計行,改變列的順序會使返回的結果的行數發(fā)生變化。 Select 所屬部門,性別,AVG(工資) FROM 員工數據表 Group by 所屬部門,性別 With rollup,2020/8/12,37,若希望在查詢結果總僅包含按照性別分組后取得的平均值,則需要將group by子句中的“所屬部門”和“性別”字段的位置調換。 Select 所屬部門,性別,AVG(工資) FROM 員工數據表 Group by 性別,所屬部門 With rollup,2020/8/12,38,HAVING 子句,HAVING 子句指定分組搜索條件。HAVING 子句通常
20、與GROUP BY 子句一起使用。TEXT、NTEXT和IMAGE 數據類型不能用于HAVING 子句。其語法如下 HAVING HAVING 子句與WHERE 子句很相似,其區(qū)別在于其作用的對象不同。WHERE 子句 作用于表和視圖,HAVING 子句作用于組,2020/8/12,39,例如:,例:查詢有多個員工的工資不低于6000 的部門編號 select dept_id, count(*) from employee where e_wage = 6000 group by dept_id having count(*) 1,2020/8/12,40,ORDER BY 子句,ORDER
21、BY 子句指定查詢結果的排序方式。其語法如下: ORDER BY order_by_expression ASC | DESC ,...n 各參數說明如下: order_by_expression:指定排序的規(guī)則order_by_expression 可以是表或視圖的列的名稱或別名,如果SELECT語句中沒有使用DISTINCT 選項或UNION 操作符,那么ORDER BY 子句中可以包含select list 中沒有出現的列名或別名。ORDER BY 子句中也不能使用TEXT、NTEXT和IMAGE 數據類型 ASC:指明查詢結果按升序排列這是系統(tǒng)默認值 DESC:指明查詢結果按降序排列
22、,2020/8/12,41,COMPUTE 子句,COMPUTE 子句在查詢結果的末尾生成一個匯總數據行,其語法如下:COMPUTE AVG | COUNT | MAX | MIN | SUM (expression) ,...n BY expression ,...n 各參數說明如下: AVG | COUNT | MAX | MIN | SUM:以上參數與對應的函數有相同的含義,這些函數均會忽略NULL值且DISTINCT選項不能在此使用,2020/8/12,42,expression:指定需要統(tǒng)計的列的名稱,此列必須包含于SELECT列表中,且不能用別名。COMPUTE子句中也不能使用T
23、EXT、NTEXT和IMAGE 數據類型 BY expression:在查詢結果中生成分類統(tǒng)計的行。如果使用此選項,則必須同時使用ORDER BY 子句。expression 是對應的ORDER BY 子句中的order_by_expression 的子集或全集,2020/8/12,43,例如:,Select 員工姓名,所屬部門,工資 From 員工數據表 Order by 所屬部門 Coumpute sum(工資) by 所屬部門 注意:在加入by 關鍵字及其分組字段的同時必須將這個分組字段同時作為排序條件,否則查詢會出錯。,2020/8/12,44,UNION 子句,UNION 操作符將兩
24、個或兩個以上的查詢結果合并為一個結果集。它與使用連接查詢 合并兩個表的列是不同的,使用UNION 操作符合并查詢結果需要遵循兩個基本規(guī)則:列的數目和順序在所有查詢中必須是一致的;數據類型必須兼容 其語法如下: Select 語句 UNION ALL Select 語句,2020/8/12,45,注意: 使用union子句獲得的結果集的字段名稱與union運算符 之前的select語句結果集中的字段名相同,union運算符之后的select語句結果集的字段名將被忽略。 在默認情況下,union運算符將從最終結果集中刪除重復的記錄。如果希望最終結果集保留所有的記錄,則必須使用all關鍵字。,202
25、0/8/12,46,,在使用union運算符時,單獨的select語句中不能包含其自己的order by或coumpute子句 只能在最后一個select語句的后面使用一個order by 或compute 子句,此時,該子句將適用于最終的組合結果集 若需要對查詢結果進行分組以及在分組后對結果使用having子句進行過濾,則必須在單獨的select語句中指定group by和having子句。,2020/8/12,47,聯接查詢,通過使用聯接查詢,可以根據各個數據表之間的邏輯關系從兩個或多個數據表中檢索數據。 定義數據表之間的關聯方式: 1 在數據表中指定用于聯接的字段。典型的聯接條件是在一個
26、數據表中指定外鍵,同時在另一個數據表中指定與其關聯的主鍵。 2 在select 語句中指定比較各字段值時要使用的邏輯運算符。 聯接的類型: 內連接 外聯接:左向外聯接,右向外聯接,完整外聯接 交叉聯接,2020/8/12,48,,內連接 內聯接的格式為: 數據表1 inner join 數據表2 on 聯接表達式 指定返回兩個表中所有匹配的行。 Inner是缺省的連接方式 例: select * from 員工數據表 Inner join 項目數據表 On 員工數據表.員工編號項目數據表.負責人,2020/8/12,49,外聯接:左向外聯接,右向外聯接和完整外聯接。 左向外聯接的格式為: 數據
27、表1 left join 數據表2 on 聯接表達式 或 數據表1 left outer join 數據表2 on 聯接表達式 注意:返回結果集中將包括數據表1中所有的記錄,而不僅僅是聯接字段所匹配的記錄。如果數據表1的某條記錄在數據表2中沒有匹配的記錄,則結果集相應記錄的有關數據表2的所有字段將為空值。 例如:select * from 員工數據表 left join 項目數據表 On 員工數據表.員工編號項目數據表.負責人 則:檢索員工數據表中的所有記錄,并將項目數據表中負責人字段可以匹配的記錄輸出到結果集。,2020/8/12,50,右向外聯接的格式為: 數據表1 right join
28、數據表2 on 聯接表達式 或 數據表1 right outer join 數據表2 on 聯接表達式 注意:返回結果集中將包括數據表2中所有的記錄,而不僅僅是聯接字段所匹配的記錄。如果數據表2的某條記錄在數據表1中沒有匹配的記錄,則結果集相應記錄的有關數據表1的所有字段將為空值。 例如:select * from 員工數據表 right join 項目數據表 On 員工數據表.員工編號項目數據表.負責人 則:檢索項目數據表中的所有記錄,并將員工數據表中員工編號字段可以匹配的記錄輸出到結果集。,2020/8/12,51,完整外聯接 格式如下: 數據表1 full join 數據表2 on 聯接
29、表達式 或: 數據表1 full outer join 數據表2 on 聯接表達式 結果集將包含兩個數據表中的所有記錄,當某條記錄在另一個數據表中沒有匹配記錄時,則將另一個數據表的選擇列表字段指定為空值,2020/8/12,52,交叉聯接 格式為:數據表1 cross join 數據表2 如果在select語句中沒有使用where子句,則交叉聯接將返回數據表1和數據表2中記錄的笛卡兒乘積,即交叉聯接返回數據表1中的所有記錄,以及數據表1中的每一條記錄與數據表2中的所有記錄的組合。 例如:select * from 員工數據表 Cross join 項目數據表 將返回員工數據表中的所有記錄,以及
30、員工數據表中的每條記錄與項目數據表中的所有記錄的組合。,2020/8/12,53,嵌套查詢,嵌套查詢是指在一個外層查詢中包含有另一個內層查詢。其中,外層查詢稱為主查詢,內層查詢稱為子查詢。 SQL允許多層嵌套,由內而外地進行分析,子查詢的結果作為主查詢的查找條件 可以用多個簡單查詢來構成復雜查詢,以增強SQL的查詢能力 子查詢中一般不使用 Order By 子句,Order By子句只能對最終查詢結果進行排序,2020/8/12,54,,子查詢(Subquery ),包含子查詢的格式通常采用如下格式: Where 表達式 not in (子查詢) Where 表達式 比較運算符 any|all
31、 子查詢 Where not exists (子查詢),2020/8/12,55,返回單值的子查詢,只返回一行一列 主查詢與單值子查詢之間用比較運算符進行連接 運算符:、=、=、 例:找出與95001同齡的學生 Select * From Student Where sage = ( Select sage From Student Where sno = 95001 ),子查詢單值比較,2020/8/12,56,例:查詢選修C01課程的學生的學號、姓名。 Select sno,sname From Student Where sno IN ( Select sno From SC Whe
32、re cno = C01 ),子查詢In,2020/8/12,57,多值比較:多行一列 父查詢與多值子查詢之間的比較需用All來連接 標量值s比子查詢返回集R中的每個都大時,sAll R 為True All表示所有 all、=all、 all all 等價于 not in 例:找出年齡最小的學生 Select * From Student Where sage < all ( Select sage From Student ),子查詢多值比較all,2020/8/12,58,父查詢與多值子查詢之間的比較需用Some/Any來連接 標量值s比子查詢返回集R中的某一個大時 s Some R為Tr
33、ue 或 s Any R為True Some(早期用Any)表示某一個,只要有一個即返回真 some、=some、 some = some 等價于 in、 some 不等價于 not in,子查詢多值比較Some/Any,2020/8/12,59,例:找出不是最小年齡的學生 Select * From student Where sage some ( Select sage From Student ),子查詢多值比較,2020/8/12,60,Exists 子查詢用來判斷該子查詢是否返回元組 當子查詢的結果集非空時,Exists為True 當子查詢的結果集為空時,Exists為False
34、 不關心子查詢的具體內容,因此用 Select *,子查詢存在判斷Exists,2020/8/12,61,例:列出選修了C01課程的學生的學號、姓名 Select sno,sname From Student Where Exists ( Select * From SC Where SC.sno = Student.sno And cno = C01),子查詢Exists,2020/8/12,62,例:列出沒有選C01課程的學生的學號、姓名 Select sno,sname From Student Where Not Exists ( Select * From SC Where S
35、C.sno = Student.sno And cno = C01),子查詢Not Exists,2020/8/12,63,如何提高select語句的效率,使用exists關鍵字檢查結果集:不要用count(*)來檢查結果集中是否包含行。 使用標準聯接代替嵌套查詢:在執(zhí)行嵌套查詢時,SQL Server將先執(zhí)行內部的子查詢,然后將查詢結果返回給外部查詢作為檢索的數據源,最后執(zhí)行外部的主查詢。而在執(zhí)行包含標準聯接的查詢時,SQL Server將要執(zhí)行的僅僅是一個查詢。 有效避免整表掃描:使用索引; 除了缺失索引外,可能導致整表掃描的另外一種常見的情況是在like子句的匹配條件的開始使用了%。若在
36、like子句的匹配條件的開始使用了%,那么包含這個like分句的查詢將會調用完整表掃描。,2020/8/12,64,數據插入,格式1:INSERT INTO ( , ) VALUES ( , ) ; insert語句把values后給出的各值按排列順序依次賦到表名后列出的各列。每次只能插入一條記錄。 例:INSERT INTO student VALUES(95006, 張三, 男, 21,cs); 例:insert into student(sname,sno,sdept) values(章小山, 96008, IS); ---在student中添加一條記錄,其中列ssex,sag
37、e為空(null)。 若表名后不列出列名,則等價于列出了全部列名,必須在values后給出全部列值,并按創(chuàng)建表時的列定義順序,把這些值賦入相應列中。若某些列暫時沒有值,則給出null,,2020/8/12,65,格式2: INSERT INTO ( , ) Select 語句; 把select語句查詢的結果按順序插入到對應的列中。允許一次插入多條記錄。 Select查得的各列值必須與后的各列名在個數、類型及順序上一致。 若后沒有(列名),則對該表的所有字段插入。 create table student2(sno char(6) not null, sname varchar(20), bir
38、thdate date, sdept char(2), phone varchar(15)); Insert into student2(sno, sname, sdept, birthdate) select sno, sname, sdept, 2001-sage from student;,2020/8/12,66,格式:UPDATE SET = , = WHERE ; Where后的條件與查詢語句中的where條件語法和作用相同。 該語句將指定表中符合WHERE 的行中的指定列賦新值。若沒有where,則對整個表修改。 該語句一次可以更新一列或多列;更新一行或多行(由where的選擇條
39、件決定)。,數據修改,2020/8/12,67,例:將95001學生轉入MA系 Update Student Set sdept = MA Where sno = 95001 例:所有學生年齡加1 Update Student Set sage = sage + 1,數據修改,2020/8/12,68,刪除數據,DELETE FROM table_name | view_name WHERE 子句 刪除表中符合選擇條件的行(一行或多行)。 若無where部分,則刪除整個表中全部數據,但表結構仍存在,即成為空表。 delete只能整行刪除,不能只刪一行的部分。,2020/8/12,69,刪除單個元組 例:刪除學號為95001的學生的選課信息 Delete From SC Where sno = 95001 刪除多個元組 例:刪除選課而未參加考試的學生的選課信息 Delete From SC Where grade is null 刪除整個關系中的所有數據 例:刪除所有學生的選課信息 Delete From SC,2020/8/12,70,注意:,數據更新語句只能對單表操作,不能同時對多表更新。(從而引起階段性的數據不一致性) 數據更新語句僅當事務(transaction)提交(commit)后才正式生效。也可通過事務回滾(rollback)來作廢。,
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
5. 裝配圖網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。