第一篇:網(wǎng)絡(luò)數(shù)據(jù)庫講稿(觸發(fā)器)[小編推薦]
網(wǎng)絡(luò)數(shù)據(jù)庫講稿
4/8/2013
觸發(fā)器
P191
一、觸發(fā)器概述
1.是一種特殊的存儲過程。
2.不能被顯式調(diào)用,只能由一些特定的操作(命令)引發(fā)(激活),這些命令是:INSERT、DELETE、UPDATE、CREATE、ALTER、DROP、GRANT、DENY、REVOKE等。3.每個觸發(fā)器由三部分組成
①觸發(fā)器名稱:命名規(guī)則與變量名、存儲過程名相同; ②激活該觸發(fā)器的操作(命令動詞)。③一個存儲過程。
4.使用觸發(fā)器可強(qiáng)制實現(xiàn)數(shù)據(jù)的一致性和完整性。
二、觸發(fā)器的分類(按引發(fā)命令分類)及其工作原理
1.DML觸發(fā)器(表級)(1)觸發(fā)器必須依附于某一個表(觸發(fā)器必須被包含在某一個表中)。(2)激活該觸發(fā)器的操作:可以是INSERT、DELETE、UPDATE之一。(3)當(dāng)上述操作發(fā)生在包含觸發(fā)器的表上時,觸發(fā)器中的過程被自動執(zhí)行。(4)支持兩種類型的觸發(fā)器: ①AFTER 可以為同一表的同一操作定義多個該類型的觸發(fā)器,并可定義執(zhí)行順序; ②INSTEAD OF 同一表的同一操作只能定義一個該類型的觸發(fā)器。(5)工作原理
P193 臨時邏輯表INSERTED和DELETED。2.DDL觸發(fā)器(數(shù)據(jù)庫級和服務(wù)器級)(1)觸發(fā)器必須依附于某一個數(shù)據(jù)庫(觸發(fā)器必須被包含在某一個數(shù)據(jù)庫中)。
(2)激活該觸發(fā)器的操作:可以是CREATE、ALTER、DROP、GRANT、DENY、REVOKE等之一。
(3)當(dāng)上述操作發(fā)生在包含觸發(fā)器的數(shù)據(jù)庫上時,觸發(fā)器中的過程被自動執(zhí)行。(4)只有AFTER型觸發(fā)器。
三、創(chuàng)建DML觸發(fā)器
P194 用命令CREATE TRIGGER創(chuàng)建 例: 1.
CREATE TRIGGER 增加學(xué)生學(xué)分 ON 成績
FOR INSERT AS UPDATE 學(xué)生 SET 已修學(xué)分=已修學(xué)分+(SELECT SUM(學(xué)分)FROM 課程 WHERE 課程編號 IN(SELECT DISTINCT 課程編號 FROM INSERTED
網(wǎng)絡(luò)數(shù)據(jù)庫講稿
4/8/2013 WHERE 學(xué)生.學(xué)號= INSERTED.學(xué)號 AND 分?jǐn)?shù)>=60))WHERE EXISTS(SELECT DISTINCT 課程編號 FROM INSERTED WHERE 學(xué)生.學(xué)號= INSERTED.學(xué)號 AND 分?jǐn)?shù)>=60)2.
CREATE TRIGGER 減少學(xué)生學(xué)分 ON 成績 FOR DELETE AS UPDATE 學(xué)生 SET 已修學(xué)分=已修學(xué)分-(SELECT SUM(學(xué)分)FROM 課程 WHERE 課程編號 IN(SELECT DISTINCT 課程編號 FROM DELETED WHERE 學(xué)生.學(xué)號=DELETED.學(xué)號 AND 分?jǐn)?shù)>=60))WHERE EXISTS(SELECT DISTINCT 課程編號 FROM DELETED WHERE 學(xué)生.學(xué)號=DELETED.學(xué)號 AND 分?jǐn)?shù)>=60)3.CREATE TRIGGER 修改學(xué)生學(xué)分 ON 成績 FOR UPDATE AS UPDATE 學(xué)生 SET 已修學(xué)分=已修學(xué)分-(SELECT SUM(學(xué)分)FROM 課程 WHERE 課程編號 IN(SELECT DISTINCT 課程編號 FROM DELETED WHERE 學(xué)生.學(xué)號=DELETED.學(xué)號 AND 分?jǐn)?shù)>=60))WHERE EXISTS(SELECT DISTINCT 課程編號 FROM DELETED WHERE 學(xué)生.學(xué)號=DELETED.學(xué)號 AND 分?jǐn)?shù)>=60)UPDATE 學(xué)生 SET 已修學(xué)分=已修學(xué)分+(SELECT SUM(學(xué)分)FROM 課程WHERE 課程編號 IN(SELECT DISTINCT 課程編號 FROM INSERTED WHERE 學(xué)生.學(xué)號=INSERTED.學(xué)號 AND 分?jǐn)?shù)>=60))WHERE EXISTS(SELECT DISTINCT 課程編號 FROM INSERTED WHERE 學(xué)生.學(xué)號=INSERTED.學(xué)號 AND 分?jǐn)?shù)>=60)
4.“修改學(xué)生學(xué)分”也可改為:
CREATE TRIGGER 修改學(xué)生學(xué)分 ON 成績 FOR UPDATE AS UPDATE 學(xué)生 SET 已修學(xué)分=(SELECT SUM(學(xué)分)FROM 課程
網(wǎng)絡(luò)數(shù)據(jù)庫講稿
4/8/2013 WHERE 課程編號 IN(SELECT 課程編號 FROM 成績
WHERE 學(xué)生.學(xué)號=成績.學(xué)號 AND 分?jǐn)?shù)>=60))
然后可執(zhí)行下列命令,并檢驗執(zhí)行結(jié)果。
--INSERT INTO 成績 VALUES('200202','L2020308',83)--INSERT INTO 成績 VALUES('200202','L2030501',80)--INSERT INTO 成績 VALUES('200202','L2030506',75)--DELETE FROM 成績 WHERE 學(xué)號='200202' AND LEFT(課程編號,1)='L'--UPDATE 成績 SET 分?jǐn)?shù)=80 WHERE 學(xué)號='200202' AND LEFT(課程編號,1)='L'
四、創(chuàng)建DDL觸發(fā)器
P198 例: 1.P199 CREATE TRIGGER 禁刪與修改表 ON DATABASE FOR DROP_TABLE,ALTER_TABLE AS PRINT '請不要刪除或修改表!' ROLLBACK TRANSACTION 2.CREATE TRIGGER 禁刪與修改數(shù)據(jù)庫 ON ALL SERVER FOR DROP_DATABASE,ALTER_DATABASE AS PRINT '請不要刪除或修改數(shù)據(jù)庫!' ROLLBACK TRANSACTION
DROP DATABASE 訂貨管理
五、嵌套觸發(fā)器和遞歸觸發(fā)器
P199, P200 1.概念
2.禁用與啟用嵌套觸發(fā)器
①在對象資源管理器中打開服務(wù)器屬性窗口,選“高級”,修改“允許觸發(fā)器激發(fā)其他觸發(fā)器”。
②調(diào)用存儲過程 SP_CONFIGURE 'NESTED TRIGGER',1或0 3.禁用與啟用遞歸觸發(fā)器
①在對象資源管理器中打開數(shù)據(jù)庫屬性窗口,選“選項”,修改“遞歸觸發(fā)器已啟用”。②命令 ALTER DATABASE 數(shù)據(jù)庫名 SET RECURSIVE_TRIGGERS ON 或 OFF 4.例
六、管理觸發(fā)器
P201 1.查看
網(wǎng)絡(luò)數(shù)據(jù)庫講稿
4/8/2013 2.修改 3.禁用 4.刪除
第二篇:網(wǎng)絡(luò)數(shù)據(jù)庫講稿(觸發(fā)器)
網(wǎng)絡(luò)數(shù)據(jù)庫講稿
3/26/2013
觸發(fā)器
P191
一、觸發(fā)器概述
1.是一種特殊的存儲過程。
2.不能被顯式調(diào)用,只能由一些特定的操作(命令)引發(fā)(激活),這些命令是:INSERT、DELETE、UPDATE、CREATE、ALTER、DROP、GRANT、DENY、REVOKE等。3.每個觸發(fā)器由三部分組成
①觸發(fā)器名稱:命名規(guī)則與變量名、存儲過程名相同; ②激活該觸發(fā)器的操作(命令動詞)。③一個存儲過程。
4.使用觸發(fā)器可強(qiáng)制實現(xiàn)數(shù)據(jù)的一致性和完整性。
二、觸發(fā)器的分類(按引發(fā)命令分類)及其工作原理
1.DML觸發(fā)器(表級)(1)觸發(fā)器必須依附于某一個表(觸發(fā)器必須被包含在某一個表中)。(2)激活該觸發(fā)器的操作:可以是INSERT、DELETE、UPDATE之一。(3)當(dāng)上述操作發(fā)生在包含觸發(fā)器的表上時,觸發(fā)器中的過程被自動執(zhí)行。(4)支持兩種類型的觸發(fā)器: ①AFTER 可以為同一表的同一操作定義多個該類型的觸發(fā)器,并可定義執(zhí)行順序; ②INSTEAD OF 同一表的同一操作只能定義一個該類型的觸發(fā)器。(5)工作原理
P193 臨時邏輯表INSERTED和DELETED。2.DDL觸發(fā)器(數(shù)據(jù)庫級和服務(wù)器級)(1)觸發(fā)器必須依附于某一個數(shù)據(jù)庫(觸發(fā)器必須被包含在某一個數(shù)據(jù)庫中)。
(2)激活該觸發(fā)器的操作:可以是CREATE、ALTER、DROP、GRANT、DENY、REVOKE等之一。
(3)當(dāng)上述操作發(fā)生在包含觸發(fā)器的數(shù)據(jù)庫上時,觸發(fā)器中的過程被自動執(zhí)行。(4)只有AFTER型觸發(fā)器。
三、創(chuàng)建DML觸發(fā)器
P194 用命令CREATE TRIGGER創(chuàng)建 例: 1.
CREATE TRIGGER 增加學(xué)生學(xué)分 ON 成績
//只能增加一條記錄
FOR INSERT AS DECLARE @XH CHAR(6),@KCH CHAR(8),@FS DECIMAL(4,1)SELECT @XH=學(xué)號,@KCH=課程編號,@FS=分?jǐn)?shù) FROM INSERTED IF @FS>=60
網(wǎng)絡(luò)數(shù)據(jù)庫講稿
3/26/2013
UPDATE 學(xué)生 SET 已修學(xué)分
=已修學(xué)分+(SELECT 學(xué)分 FROM 課程 WHERE 課程編號=@KCH)
WHERE 學(xué)號=@XH 2.
CREATE TRIGGER 減少學(xué)生學(xué)分 ON 成績 FOR DELETE AS UPDATE 學(xué)生 SET 已修學(xué)分=已修學(xué)分-(SELECT SUM(學(xué)分)FROM 課程 WHERE 課程編號 IN(SELECT DISTINCT 課程編號 FROM DELETED WHERE 學(xué)生.學(xué)號=DELETED.學(xué)號 AND 分?jǐn)?shù)>=60))WHERE EXISTS(SELECT DISTINCT 課程編號 FROM DELETED WHERE 學(xué)生.學(xué)號=DELETED.學(xué)號 AND 分?jǐn)?shù)>=60)3.CREATE TRIGGER 修改學(xué)生學(xué)分 ON 成績 FOR UPDATE AS UPDATE 學(xué)生 SET 已修學(xué)分=已修學(xué)分-(SELECT SUM(學(xué)分)FROM 課程 WHERE 課程編號 IN(SELECT DISTINCT 課程編號 FROM DELETED WHERE 學(xué)生.學(xué)號=DELETED.學(xué)號 AND 分?jǐn)?shù)>=60))WHERE EXISTS(SELECT DISTINCT 課程編號 FROM DELETED WHERE 學(xué)生.學(xué)號=DELETED.學(xué)號 AND 分?jǐn)?shù)>=60)UPDATE 學(xué)生 SET 已修學(xué)分=已修學(xué)分+(SELECT SUM(學(xué)分)FROM 課程WHERE 課程編號 IN(SELECT DISTINCT 課程編號 FROM INSERTED WHERE 學(xué)生.學(xué)號=INSERTED.學(xué)號 AND 分?jǐn)?shù)>=60))WHERE EXISTS(SELECT DISTINCT 課程編號 FROM INSERTED WHERE 學(xué)生.學(xué)號=INSERTED.學(xué)號 AND 分?jǐn)?shù)>=60)
4.“修改學(xué)生學(xué)分”也可改為:
CREATE TRIGGER 修改學(xué)生學(xué)分 ON 成績 FOR UPDATE AS UPDATE 學(xué)生 SET 已修學(xué)分=(SELECT SUM(學(xué)分)FROM 課程 WHERE 課程編號 IN
網(wǎng)絡(luò)數(shù)據(jù)庫講稿
3/26/2013(SELECT 課程編號 FROM 成績
WHERE 學(xué)生.學(xué)號=成績.學(xué)號 AND 分?jǐn)?shù)>=60))
然后可執(zhí)行下列命令,并檢驗執(zhí)行結(jié)果。
--INSERT INTO 成績 VALUES('200202','L2020308',83)--INSERT INTO 成績 VALUES('200202','L2030501',80)--INSERT INTO 成績 VALUES('200202','L2030506',75)--DELETE FROM 成績 WHERE 學(xué)號='200202' AND LEFT(課程編號,1)='L'--UPDATE 成績 SET 分?jǐn)?shù)=80 WHERE 學(xué)號='200202' AND LEFT(課程編號,1)='L'
四、創(chuàng)建DDL觸發(fā)器
P198 例: 1.P199 2.CREATE TRIGGER 禁刪數(shù)據(jù)庫ON ALL SERVER FOR DROP_DATABASE AS PRINT '請不要刪除數(shù)據(jù)庫!' ROLLBACK TRANSACTION
DROP DATABASE 訂貨管理
五、嵌套觸發(fā)器和遞歸觸發(fā)器
P199, P200
六、管理觸發(fā)器
P201 1.查看 2.修改 3.禁用 4.刪除
--根據(jù)成績表計算每個學(xué)生的已修學(xué)分
update 學(xué)生set 已修學(xué)分=(select sum(學(xué)分)from 課程 where 課程編號in(select 課程編號from 成績where 學(xué)生.學(xué)號=成績.學(xué)號 and 分?jǐn)?shù)>=60))
--修改插入觸發(fā)器,使得向成績表中插入多條記錄,也能成功執(zhí)行 CREATE TRIGGER 插入學(xué)生學(xué)分ON 成績 FOR insert
網(wǎng)絡(luò)數(shù)據(jù)庫講稿
3/26/2013 AS UPDATE 學(xué)生SET 已修學(xué)分=已修學(xué)分+(SELECT SUM(學(xué)分)FROM 課程 WHERE 課程編號IN(SELECT DISTINCT 課程編號FROM inserted WHERE 學(xué)生.學(xué)號=inserted.學(xué)號AND 分?jǐn)?shù)>=60))WHERE EXISTS(SELECT DISTINCT 課程編號FROM inserted WHERE 學(xué)生.學(xué)號=inserted.學(xué)號AND 分?jǐn)?shù)>=60)
select * from 成績
select 學(xué)號,已修學(xué)分from 學(xué)生
INSERT INTO 成績VALUES('200202','L2020308',83)INSERT INTO 成績VALUES('200202','L2030501',80)INSERT INTO 成績VALUES('200202','L2030506',75)INSERT INTO 成績VALUES('200201','L2020308',83)INSERT INTO 成績VALUES('200201','L2030501',80)INSERT INTO 成績VALUES('200201','L2030506',75)
select * into 備份成績from 成績 //備份成績表 select 學(xué)號,姓名,已修學(xué)分from 學(xué)生
insert into 成績 select * from 成績
INSERT INTO 成績VALUES('200212','L2030506',75)
第三篇:網(wǎng)絡(luò)數(shù)據(jù)庫講稿(查詢)
網(wǎng)絡(luò)數(shù)據(jù)庫講稿
一、簡單的SELECT
P95 1.SELECT … FROM …(1)DISTINCT(2)TOP n [PERCENT](3)字段別名
有三種書寫格式。
2.WHERE子句(SELECT … FROM … WHERE …)
P101(1)比較運(yùn)算符(2)邏輯運(yùn)算符
(3)范圍運(yùn)算符BETWEEN(4)列表(包含)運(yùn)算符 IN(5)字符匹配運(yùn)算符LIKE及通配符(6)空值NULL 3.ORDER BY子句(SELECT … FROM … WHERE … ORDER BY …)
P107 ORDER BY子句必須放在SELECT語句的最后。
4.GROUP BY子句(SELECT … FROM … WHERE …GROUP BY … ORDER BY …)P109(1)GROUP BY子句中的列名必須是原表中的列名,不能是別名。(2)當(dāng)SELECT子句中有聚合函數(shù)時,GROUP BY子句實現(xiàn)分組統(tǒng)計。
(3)當(dāng)SELECT子句中同時有字段名列和聚合函數(shù)列時,必須使用GROUP BY子句。例如
select 班級,SUM(已修學(xué)分)from 學(xué)生GROUP BY 班級
(4)在SELECT子句中出現(xiàn)的列名必須出現(xiàn)在GROUP BY子句中、或聚合函數(shù)中。GROUP BY子句中的列名則不一定出現(xiàn)在SELECT子句中。(5)ROLLUP返回第一個分組列的統(tǒng)計行。例如:
select 班級,性別,SUM(已修學(xué)分)from 學(xué)生GROUP BY 班級,性別WITH ROLLUP(6)CUBE是ROLLUP的擴(kuò)展。(7)ALL短語
P109 select 班級,性別,SUM(已修學(xué)分)from 學(xué)生
WHERE已修學(xué)分>4 GROUP BY ALL 班級,性別
ALL不能與WITH同用。6.HAVING子句
(SELECT … FROM … WHERE …GROUP BY … HAVING … ORDER BY …)P111(1)HAVING應(yīng)與GROUP BY配對使用,否則沒必要使用。(2)HAVING的主要作用是第二次篩選。
(3)HAVING中可以包含聚合函數(shù)(WHERE中不可以)。
(4)HAVING中非聚合函數(shù)中的字段名,必須出現(xiàn)在GROUP BY中。(5)SELECT列表中命名的別名,不能在HAVING中使用。7.COMPUTE子句,按排序字段分組求和。
SELECT 姓名,分?jǐn)?shù)FROM 學(xué)生,成績WHERE 學(xué)生.學(xué)號=成績.學(xué)號 ORDER BY 姓名COMPUTE SUM(分?jǐn)?shù))
SELECT 姓名,分?jǐn)?shù)FROM 學(xué)生,成績WHERE 學(xué)生.學(xué)號=成績.學(xué)號 ORDER BY 姓名COMPUTE SUM(分?jǐn)?shù))BY 姓名
網(wǎng)絡(luò)數(shù)據(jù)庫講稿
SELECT 姓名,分?jǐn)?shù)FROM 學(xué)生,成績WHERE 學(xué)生.學(xué)號=成績.學(xué)號 ORDER BY 姓名COMPUTE SUM(分?jǐn)?shù))BY 姓名COMPUTE SUM(分?jǐn)?shù))
Compute By 必須與 Order By 子句一起使用,而且Compute By 子句中的統(tǒng)計列名列表也必須與之相同。
8.SELECT INTO,將查詢結(jié)果保存到永久表中。
P136
二、多表查詢
P112 1.內(nèi)、外連接
內(nèi)外連接中用ON<條件> 2.交叉連接
交叉連接中用WHERE<條件>,用WHERE<條件>的交叉連接等同于內(nèi)連接。3.合并兩個查詢
(1)聯(lián)合查詢
P120 SELECT 員工編號,員工姓名,'員工信息表' FROM 員工信息WHERE 所任職位='經(jīng)理' UNION SELECT 部門編號,部門名稱,'部門信息表' FROM 部門信息
(2)INTERSECT
P305 SELECT 學(xué)號FROM 成績表 INTERSECT SELECT 學(xué)號FROM 學(xué)生信息
(3)EXCEPT SELECT 學(xué)號FROM 學(xué)生信息 EXCEPT SELECT 學(xué)號FROM 成績表
三、子查詢
P121
第四篇:網(wǎng)絡(luò)數(shù)據(jù)庫講稿(復(fù)制)
網(wǎng)絡(luò)數(shù)據(jù)庫講稿
4/20/2013
一、復(fù)制的基本概念
SQL Server復(fù)制是在數(shù)據(jù)庫之間對數(shù)據(jù)和數(shù)據(jù)庫對象進(jìn)行復(fù)制和分發(fā)并且對于數(shù)據(jù)的修改進(jìn)行同步,以確保其一致性的一組技術(shù)。使用復(fù)制可以將數(shù)據(jù)分發(fā)到不同位置,通過局域網(wǎng)、Internet分發(fā)給多個遠(yuǎn)程服務(wù)器站點;還可將多個用戶和站點的數(shù)據(jù)進(jìn)行合并。
二、復(fù)制模型
復(fù)制技術(shù)采用發(fā)布(出版)——訂閱模型分發(fā)數(shù)據(jù)。
SQL Server復(fù)制模型由下列對象組成:發(fā)布服務(wù)器,分發(fā)服務(wù)器,訂閱服務(wù)器,發(fā)布,項目,訂閱。還有幾個負(fù)責(zé)在發(fā)布服務(wù)器和訂閱服務(wù)器之間復(fù)制和移動數(shù)據(jù)的復(fù)制進(jìn)程:快照代理程序,分發(fā)代理程序,日志讀取器代理程序,隊列讀取器代理程序,合并代理程序。1.服務(wù)器角色
參與復(fù)制的服務(wù)器根據(jù)任務(wù)不同可劃分為以下角色: ①發(fā)布服務(wù)器:數(shù)據(jù)源所在的服務(wù)器。
②分發(fā)服務(wù)器:將出版物從發(fā)布服務(wù)器移動到訂閱服務(wù)器。③訂閱服務(wù)器 2.項目
3.發(fā)布(出版物)4.訂閱 5.復(fù)制的類型 ①快照復(fù)制 ②事務(wù)復(fù)制 ③合并復(fù)制 6.復(fù)制代理程序
①快照代理程序:與所有復(fù)制類型一起使用。
②分發(fā)代理程序:與快照復(fù)制和事務(wù)復(fù)制一起使用。③合并代理程序:與合并復(fù)制一起使用。
④日志讀取器代理程序:與事務(wù)復(fù)制一起使用。
⑤隊列讀取器代理程序:與快照復(fù)制或事務(wù)復(fù)制一起使用。
三、服務(wù)器的連接方式
1.發(fā)布服務(wù)器與分發(fā)服務(wù)器為同一物理服務(wù)器 2.發(fā)布服務(wù)器與分發(fā)服務(wù)器為不同物理服務(wù)器 3.發(fā)布者與再次發(fā)布者連接方式
4.多發(fā)布服務(wù)器單訂閱服務(wù)器連接方式
四、配置復(fù)制
復(fù)制一般包括以下幾個階段:配置發(fā)布和分發(fā),生成和應(yīng)用初始快照,修改復(fù)制數(shù)據(jù),同步和傳播數(shù)據(jù)。
復(fù)制過程中各代理程序的調(diào)度由SQL Server Agent服務(wù)管理,應(yīng)配置SQL Server Agent服務(wù)能夠在系統(tǒng)啟動的時候自動啟動,并且在意外停止時能夠自動重新啟動,由于復(fù)制操作跨越多個服務(wù)器傳輸數(shù)據(jù),所以SQL Server Agent服務(wù)的啟動帳號應(yīng)使用域用戶帳號。1.配置分發(fā)服務(wù)器
網(wǎng)絡(luò)數(shù)據(jù)庫講稿
4/20/2013 分發(fā)服務(wù)器是快照復(fù)制和事務(wù)復(fù)制的首要組件。在企業(yè)管理器中運(yùn)行向?qū)?,右擊【?fù)制】,單擊【配置發(fā)布、訂閱服務(wù)器和分發(fā)】啟動【配置發(fā)布和分發(fā)向?qū)А?。然后按提示進(jìn)行。
配置完成后,系統(tǒng)在分發(fā)服務(wù)器上創(chuàng)建distribution系統(tǒng)數(shù)據(jù)庫、復(fù)制文件夾、復(fù)制監(jiān)視器。
2.配置發(fā)布服務(wù)器和創(chuàng)建出版物
出版物是準(zhǔn)備發(fā)布的表、表中數(shù)據(jù)的子集或其它數(shù)據(jù)庫對象的集合。出版物是訂閱的單元。
在企業(yè)管理器中運(yùn)行向?qū)?,右擊【?fù)制】,單擊【新建/發(fā)布】啟動【創(chuàng)建發(fā)布向?qū)А浚缓蟀刺崾具M(jìn)行。
在“指定項目”步驟,單擊“項目默認(rèn)值”或“對象”右端的省略號按鈕,可設(shè)置快照屬性。
可循環(huán)創(chuàng)建多個發(fā)布。
可查閱和修改已建發(fā)布的屬性。
3.訂閱
訂閱是對發(fā)布到指定訂閱服務(wù)器的數(shù)據(jù)或數(shù)據(jù)庫對象的請求。一個訂閱服務(wù)器可以向不同發(fā)布請求多個訂閱。
訂閱可在發(fā)布服務(wù)器上創(chuàng)建(強(qiáng)制訂閱)或在訂閱服務(wù)器上創(chuàng)建(請求訂閱)。(1)強(qiáng)制訂閱
在企業(yè)管理器中:工具/向?qū)?,展開【復(fù)制】,啟動【創(chuàng)建強(qiáng)制訂閱向?qū)А浚缓蟀刺崾具M(jìn)行。
(2)請求訂閱 在企業(yè)管理器中:工具/向?qū)?,展開【復(fù)制】,啟動【創(chuàng)建請求訂閱向?qū)А?,然后按提示進(jìn)行。
也可按教材P175的例子,先創(chuàng)建發(fā)布,再配置發(fā)布和分發(fā)服務(wù)器,最后創(chuàng)建訂閱。
第五篇:網(wǎng)絡(luò)數(shù)據(jù)庫講稿(查詢)
網(wǎng)絡(luò)數(shù)據(jù)庫講稿
一、簡單的SELECT
P95 1.SELECT … FROM …(1)DISTINCT(2)TOP n [PERCENT](3)字段別名
有三種書寫格式。
2.WHERE子句(SELECT … FROM … WHERE …)
P101(1)比較運(yùn)算符(2)邏輯運(yùn)算符
(3)范圍運(yùn)算符BETWEEN(4)列表(包含)運(yùn)算符 IN(5)字符匹配運(yùn)算符LIKE及通配符(6)空值NULL 3.ORDER BY子句(SELECT … FROM … WHERE … ORDER BY …)
P107 ORDER BY子句必須放在SELECT語句的最后。
4.GROUP BY子句(SELECT … FROM … WHERE …GROUP BY … ORDER BY …)P109(1)GROUP BY子句中的列名必須是原表中的列名,不能是別名。(2)當(dāng)SELECT子句中有聚合函數(shù)時,GROUP BY子句實現(xiàn)分組統(tǒng)計。
(3)當(dāng)SELECT子句中同時有字段名列和聚合函數(shù)列時,必須使用GROUP BY子句。例如
select 班級編號,SUM(已修學(xué)分)from 學(xué)生 GROUP BY 班級編號
(4)在SELECT子句中出現(xiàn)的列名必須出現(xiàn)在GROUP BY子句中、或聚合函數(shù)中。GROUP BY子句中的列名則不一定出現(xiàn)在SELECT子句中。(5)ROLLUP返回第一個分組列的統(tǒng)計行。例如:
select 班級編號,性別,SUM(已修學(xué)分)from 學(xué)生GROUP BY 班級編號,性別 WITH ROLLUP(6)CUBE是ROLLUP的擴(kuò)展。(7)ALL短語
P109 select 班級編號,性別,SUM(已修學(xué)分)from 學(xué)生
WHERE已修學(xué)分>4 GROUP BY ALL 班級編號,性別
ALL不能與WITH同用。6.HAVING子句
(SELECT … FROM … WHERE …GROUP BY … HAVING … ORDER BY …)P111(1)HAVING應(yīng)與GROUP BY配對使用,否則不能使用。(2)HAVING的主要作用是第二次篩選。
(3)HAVING中可以包含聚合函數(shù)(WHERE中不可以)。
(4)HAVING中非聚合函數(shù)中的字段名,必須出現(xiàn)在GROUP BY中。(5)SELECT列表中命名的別名,不能在HAVING中使用。7.COMPUTE子句,按排序字段分組求和。
SELECT 姓名,分?jǐn)?shù) FROM 學(xué)生,成績 WHERE 學(xué)生.學(xué)號=成績.學(xué)號 ORDER BY 姓名 COMPUTE SUM(分?jǐn)?shù))
SELECT 姓名,分?jǐn)?shù) FROM 學(xué)生,成績 WHERE 學(xué)生.學(xué)號=成績.學(xué)號 ORDER BY 姓名 COMPUTE SUM(分?jǐn)?shù))BY 姓名
網(wǎng)絡(luò)數(shù)據(jù)庫講稿
SELECT 姓名,分?jǐn)?shù) FROM 學(xué)生,成績 WHERE 學(xué)生.學(xué)號=成績.學(xué)號 ORDER BY 姓名 COMPUTE SUM(分?jǐn)?shù))BY 姓名 COMPUTE SUM(分?jǐn)?shù))
Compute By 必須與 Order By 子句一起使用,而且Compute By 子句中的統(tǒng)計列名列表也必須與之相同。
8.SELECT INTO,將查詢結(jié)果保存到永久表中。
P136
二、多表查詢
P112 1.內(nèi)、外連接
內(nèi)外連接中用ON<條件> 2.交叉連接
交叉連接中用WHERE<條件>,用WHERE<條件>的交叉連接等同于內(nèi)連接。3.合并兩個查詢
(1)聯(lián)合查詢
P120 SELECT 員工編號,員工姓名,'員工信息表' FROM 員工信息 WHERE 所任職位='經(jīng)理' UNION SELECT 部門編號,部門名稱,'部門信息表' FROM 部門信息
(2)INTERSECT
P305 SELECT 學(xué)號 FROM 成績表 INTERSECT SELECT 學(xué)號FROM 學(xué)生信息
(3)EXCEPT SELECT 學(xué)號FROM 學(xué)生信息 EXCEPT SELECT 學(xué)號FROM 成績表
三、子查詢
P121