sql收獲
A. sql語言學習總結
SQL語言學習總結
總結就是把一個時間段取得的成績、存在的問題及得到的經驗和教訓進行一次全面系統的總結的書面材料,它能夠給人努力工作的動力,讓我們來為自己寫一份總結吧。總結你想好怎麼寫了嗎?下面是我為大家整理的SQL語言學習總結,供大家參考借鑒,希望可以幫助到有需要的朋友。
暑假過的真快總感覺昨天才剛放假,還想著這個暑假怎麼過時,暑假就已經去了。
這個暑假一開始我們看了浙大的sql的視頻,老師給我們的要求是只要看一遍就行。剛開始看的時候還能聽懂一些,看到後面的時候基本就聽不懂了,幸好老師對我們的要求不高,於時只好硬著頭皮繼續。
sql的視頻其實總的說來無非講的是對資料庫、表、欄位等的創建、修改和刪除。我們不懂的也就是怎樣使用代碼來實現這些操作。我們現在只要對這些有了解就夠了,以後還會有鍛煉機會的。
之後我們參照著原代碼做了《學生信息管理系統》,大概用了七天的`時間。剛開始做的時候,覺得這個工程肯定會挺復雜的。但是做著做著感覺也就是那麼回事。無非就是對幾張表的操作。做這個工程最大的收獲就是對剛學的sql知識有了一次熟練的機會,鞏固了剛學的知識。也可以說是趁熱打鐵吧。
然後米老師給了我們更大的考驗,讓我們做《機房收費系統》,而且這次和上一次的《學生信息管理系統》不同的是,這次我們除了只有一個程序和資料庫外,沒有一個字的原碼。
在得知我們可以把這次的工程做成任何樣子時,我打算做一個類似於網吧那樣的收費系統。也是一個cs系統。在網上查了一些主機如何與客戶端通信的資料後,就開工了。雖然遇到了一些困難,但是到最後都一一解決了
這三次的學習困難程度可以說是一次比一次高,米老師也是用心良苦呀。
經過這個暑假,對sql已經有了深一步的了解,還有就是將米老師的學習方法又應用了一次。可謂是受益匪淺。
現在軟體工程的學習已經開始,我會繼續努力的。
;B. 求SQL資料庫實驗報告
*****系實驗(上機)報告
課程名稱 資料庫系統基礎
實驗名稱 數據查詢與存儲過程
學號 33
學生姓名 嘻習喜戲
成績
年 月 日
序號 5 實驗名稱 SQL數據查詢
實驗目的:
熟練掌握SQL SELECT 語句,能夠運用該語句完成各種查詢。
實驗內容:
用SQL SELECT 語句完成下列查詢:
1. 查詢客戶表中的所有記錄。
2. 從訂購單表中查詢客戶號信息(哪些客戶有訂購單)。
3. 查詢單價在20元以上(含)的產品信息。
4. 查詢單價在20元以上(不含)的產品名稱為牛奶的產品信息。
5. 查詢單價在20元以上(不含)的產品名稱為牛奶或德國乳酪的產品信息。
6. 查詢有2003年7月訂購單的客戶名稱、聯系人、電話號碼和訂單號信息。
7. 查詢有德國乳酪訂貨的客戶的名稱、聯系人和電話號碼信息。
8. 查詢有德國乳酪訂購需求的訂單名細記錄。
9. 查詢所有訂購數量(即訂單名細中每個訂購項目的數量)都在10個以上的訂購單的信息。
10. 找出和德國乳酪同等價位的所有產品信息。
11. 查詢單價范圍在10元到30元范圍內的產品信息(使用BETWEEN…AND)。
12. 從客戶表中查詢出客戶名稱中有「公司」二字的客戶信息(使用LIKE運算符)。
13. 從客戶表中查詢出客戶名稱中沒有「公司」二字的客戶信息(使用NOT LIKE運算符)。
14. 按產品的單價升序列出全部產品信息。
15. 先按產品名稱排序,再按單價排序列出全部產品信息。
16. 從產品表中查詢共有幾種產品。
17. 從訂購名細表中查詢德國乳酪的訂購總數。
18. 計算德國乳酪所有訂購的總金額。
19. 求所有訂購單的平均金額,在查詢結果中列出訂購單的個數和平均金額。
20. 求每個訂購單訂購的項目數和總金額。
21. 求每個客戶包含了德國乳酪訂購的訂單號及其最高金額和最低金額。
22. 求至少有兩個訂購項目的訂購單的平均金額。
23. 找出尚未最後確定訂購單(即訂購日期為空值的記錄)的有關客戶信息(客戶的名稱、聯系人和電話號碼)和訂單號。
24. 找出在2000年1月1日之後簽訂的訂購單的客戶信息(客戶的名稱、聯系人和電話號碼)、訂單號和訂購日期。
25. 列出每類產品(相同名稱)具有最高單價的產品信息(產品號、名稱、規格說明和單價,提示:使用內外層互相關嵌套查詢)。
26. 確定哪些客戶目前沒有訂購單(使用謂詞NOT EXISTS)。
27. 查詢目前有訂購單的客戶的信息(使用謂詞EXISTS)。
28. 查詢符合條件的產品信息,要求該產品的單價達到了任意一款產品名稱為牛奶的單價的一半(使用ANY或SOME量詞)。
29. 查詢符合條件的產品信息,要求該產品的單價大於任何一款產品名稱為牛奶的單價(使用ALL量詞)。
30. 設計如下的連接操作,並分析各自的特點:
•廣義笛卡兒積
•內連接
•外連接
•左連接
•右連接
•全連接
掌握存儲過程的創建命令,按照題目要求創建存儲過程,理解存儲過程的作用。
(1) 建立存儲過程。查詢單價范圍在x元到y元范圍內的產品信息。
(2) 建立存儲過程。查詢在某年某月某日之後簽訂的訂購單的客戶信息(客戶的名稱、聯系人和電話號碼)、訂單號和訂購日期。
(3) 建立存儲過程。將某產品的訂購日期統一修改為一個指定日期。
(4) 建立存儲過程。刪除沒有簽訂單的客戶信息。
實驗要求:
用SELECT語句完成本次實驗,並提交上機報告。
(1) 掌握存儲過程的創建命令,按照實驗內容的要求創建存儲過程,理解存儲過程的作用。
(2) 用CREATE PROCEDURE和EXECUTE 語句完成本次實驗,並提交上機報告。
實驗准備(本實驗預備知識和為完成本實驗所做的准備):
仔細閱讀課本第五章關於SQL的數據查詢功能的內容
實驗過程(實驗的操作過程、遇到的問題及其解決辦法或未能解決的問題):
用SQL SELECT 語句完成以上30題查詢
實驗總結(總結本次實驗的收獲、未解決的問題以及體會和建議等):
熟練掌握SQL SELECT 語句,能夠運用該語句完成各種查詢
附錄(SQL語句):
--1. 查詢客戶表中的所有記錄。
select * from 客戶
--2. 從訂購單表中查詢客戶號信息(哪些客戶有訂購單)
select 客戶號from 訂單where 訂單號!=null
--3. 查詢單價在元以上(含)的產品信息。
select *from 產品where 單價> 20 or 單價=20
--4. 查詢單價在元以上(不含)的產品名稱為牛奶的產品信息。
select *from 產品where 單價>20 and 產品名稱='牛奶'
--. 查詢單價在元以上(不含)的產品名稱為牛奶或德國乳酪的產品信息
select *from 產品where 單價>20 and (產品名稱='牛奶'or 產品名稱='德國乳酪')
--6. 查詢有年月訂購單的客戶名稱、聯系人、電話號碼和訂單號信息
select 客戶名稱,聯系人, 電話,訂單號from 客戶,訂單where (year(訂購日期)=2003 and month (訂購日期)=7)and (訂單.客戶號=客戶.客戶號)
--7. 查詢有德國乳酪訂貨的客戶的名稱、聯系人和電話號碼信息。
select 客戶名稱,聯系人, 電話from 客戶
where
(客戶號= (select 客戶號from 訂單where(訂單號 =(select 訂單號from 訂單明細
where 產品號= ( select 產品號from 產品where 產品名稱= ' 德國乳酪' )))))
--8. 查詢有德國乳酪訂購需求的訂單名細記錄。
select * from 訂單明細where (數量!=null and 產品號=(select 產品號from 產品where 產品名稱= '德國乳酪'))
--9. 查詢所有訂購數量(即訂單名細中每個訂購項目的數量)都在個以上的訂購單的信息。
select * from 訂單where (訂單號in (select 訂單號from 訂單明細where (數量>10)))
--10. 找出和德國乳酪同等價位的所有產品信息。
select * from 產品where (
--11. 查詢單價范圍在元到元范圍內的產品信息(使用BETWEEN…AND)。
select * from 產品where (單價between 10 and 30)
--12. 從客戶表中查詢出客戶名稱中有「公司」二字的客戶信息(使用LIKE運算符)
select * from 客戶where 客戶名稱like '%公司%'
--13. 從客戶表中查詢出客戶名稱中沒有「公司」二字的客戶信息(使用NOT LIKE運算符)。
select * from 客戶where 客戶名稱not like '%公司%'
--14. 按產品的單價升序列出全部產品信息。
select *from 產品order by 單價
--15. 先按產品名稱排序,再按單價排序列出全部產品信息。
select * from 產品order by 產品名稱,單價
--16. 從產品表中查詢共有幾種產品。
select count ( distinct 產品名稱) as 產品總數from 產品
--17. 從訂購名細表中查詢德國乳酪的訂購總數
select sum (數量) as '訂購乳酪數量'
from 訂單明細
where 產品號in(select 產品號from 產品where 產品名稱='德國乳酪')
--18. 計算德國乳酪所有訂購的總金額
declare @a money
select @a=(select 單價from 產品where 產品名稱='德國乳酪')
declare @b int
select @b=(select sum (數量) as '訂購乳酪數量'
from 訂單明細
where 產品號in(select 產品號from 產品where 產品名稱='德國乳酪'))
declare @c int
select @c=@a*@b
select @c as 總金額
--19. 求所有訂購單的平均金額,在查詢結果中列出訂購單的個數和平均金額。
select 訂單均值= avg(單價*數量) ,訂單個數=count ( 訂單號)
from 訂單明細,產品
where 產品.產品號=訂單明細.產品號
--20. 求每個訂購單訂購的項目數和總金額。
select 訂單號, count (產品.產品號) as 項目數,sum(數量*單價) as 總金額
from 產品,訂單明細
where (產品.產品號=訂單明細.產品號)
group by 訂單號
--21.求每個客戶包含了德國乳酪訂購的訂單號及其最高金額和最低金額
select 客戶.客戶號,產品.產品號,數量*單價as 總金額
from 客戶,訂單,訂單明細,產品
where 客戶.客戶號=訂單.客戶號and 訂單.訂單號=訂單明細.訂單號and 訂單明細.產品號=產品.產品號and
產品名稱='德國乳酪'
order by 客戶號
compute max(數量*單價),min (數量*單價) by 客戶號
--22.求至少有兩個訂購項目的訂購單的平均金額
select 訂單號,avg(數量*單價),count(產品.產品號)
from 訂單明細,產品
where 訂單明細.產品號=產品.產品號
group by 訂單號
having count(產品.產品號)>=2
--23.找出尚未最後確定訂購單(即訂購日期為空值的記錄)的有關客戶信息
-- (客戶的名稱、聯系人和電話號碼)和訂單號
select 客戶名稱,聯系人,電話,訂單明細.訂單號
from 客戶, 訂單明細,訂單
where(客戶.客戶號= 訂單.客戶號) and 訂購日期=null
--24.找出在年月日之後簽訂的訂購單的客戶信息
--(客戶的名稱、聯系人和電話號碼)、訂單號和訂購日期
select 客戶名稱,聯系人,電話,訂單號,訂購日期
from 客戶,訂單
where 客戶.客戶號=訂單.客戶號
and year(訂購日期)>1996 and month(訂購日期)>4 and day(訂購日期)>2
--25.列出每類產品(相同名稱)具有最高單價的產品信息
--(產品號、名稱、規格說明和單價,提示:使用內外層互相關嵌套查詢)
select A.產品號, A.產品名稱, A.規格說明, A.單價
from 產品A
where 單價= (SELECT MAX(單價)
FROM 產品B
WHERE A.規格說明= B.規格說明)
--26.確定哪些客戶目前沒有訂購單(使用謂詞NOT EXISTS)
select *
from 客戶
where not exists (select* from 訂單where 客戶號=訂單.客戶號)
--27.查詢目前有訂購單的客戶的信息(使用謂詞EXISTS)
select *
from 客戶
where exists (select* from 訂單where 客戶號=訂單.客戶號)
--28.查詢符合條件的產品信息,要求該產品的單價達到了任
--意一款產品名稱為牛奶的單價的一半(使用ANY或SOME量詞)
select *
from 產品a
where(單價>any(select 單價/2 from 產品b where b.產品名稱='牛奶'))
--29.查詢符合條件的產品信息,要求該產品的單價大於任何
-- 一款產品名稱為牛奶的單價(使用ALL量詞)
select *
from 產品a
where(單價>all(select 單價from 產品b where b.產品名稱='牛奶'))
--30.設計如下的連接操作,並分析各自的特點:
-- •廣義笛卡兒積
SELECT *
FROM 客戶CROSS JOIN 訂購單
WHERE 客戶.客戶號= 訂購單.客戶號
-- •內連接
SELECT *
FROM 客戶INNER JOIN 訂購單
ON 客戶.客戶號= 訂購單.客戶號
-- •外連接
-- •左連接
SELECT *
FROM 客戶LEFT JOIN 訂購單
ON 客戶.客戶號= 訂購單.客戶號
-- •右連接
SELECT *
FROM 客戶RIGHT JOIN 訂購單
ON 客戶.客戶號= 訂購單.客戶號
-- •全連接
SELECT *
FROM 客戶FULL JOIN 訂購單
ON 客戶.客戶號= 訂購單.客戶號
說明:
1. 上機報告上傳到211.68.36.251的資料庫文件夾中的上傳目錄
2. 文件名的命名規則為:學號+姓名+實驗+序號。如:9724101汪偉的第二次上機報告名為:9724101汪偉實驗2
3. 封面由學生填寫;
4. 正文的實驗名稱、實驗目的、實驗內容、實驗要求已經由教師指定;
5. 實驗准備由學生在實驗或上機之前填寫;
6. 實驗過程由學生記錄實驗的過程,包括操作過程、遇到哪些問題以及如何解決等;
7. 實驗總結由學生在實驗後填寫,總結本次實驗的收獲、未解決的問題以及體會和建議等;
8. 將相關的語句粘貼到附錄中。
你自己改改吧。想要word原版的話再說一聲。
C. 收獲,不止sql優化是關於sqlserver的么
sql優化
sql指的是資料庫的語言 而用此語言的基本含所有的關系資料庫
所以Oracle Mysql 等等都是有SQL優化的
D. sql中in和exists的區別效率問題 轉
in和exists
in 是把外表和內表作hash 連接,而exists是對外表作loop循環,每次loop循環再對內表進行查詢。
如果兩個表中一個較小,一個是大表,則子查詢表大的用exists,子查詢表小的用in:
例如:表A(小表),表B(大表)1:select * from A where cc in (select cc from B)
效率低,用到了A表上cc列的索引;select * from A where exists(select cc from B where cc=A.cc)
效率高,用到了B表上cc列的索引。
相反的2:select * from B where cc in (select cc from A)
效率高,用到了B表上cc列的索引;select * from B where exists(select cc from A where cc=B.cc)
效率低,用到了A表上cc列的索引。
not in 和not exists如果查詢語句使用了not in 那麼內外表都進行全表掃描,沒有用到索引;而not extsts 的子查詢依然能用到表上的索引。所以無論那個表大,用not exists都比not in要快。
in 與 =的區別
select name from student where name in ('zhang','wang','li','zhao');與
select name from student where name='zhang' or name='li' or
name='wang' or name='zhao'
的結果是相同的。
轉的
http://..com/link?url=JYAd0XwcGuw_iczn2GEo-0dlXPx8VAJ5yioHevPcHMn47Gl-
E. 沒有任何基礎的人怎麼學SQL
如果是初學sql的話,推薦自己安裝單機安裝一個資料庫(比如經典的mysql),然後找一本書(當當網找搜索mysql,然後找排名靠前的,對自己胃口的……當然,如果英語不錯的話,官方文檔是你最好的選擇),就著書實際操作下資料庫,這樣學習起來應該比較快。對了,個人比較建議先找本講資料庫基礎、原理的書來看一遍,理論實踐結合的方式我認為是最好的sql可以認為是一種編程語言,學習相對比較容易,難得是如何解決實際問題,在各種情況下通過協調滿足一定的指標。比如如何設計表、索引等使得的查詢速度達到最快,允許犧牲一定的寫性能。比如如何設計可以達到實時寫的能力,允許舍棄一定的讀性能。最終,還是要結合具體的資料庫、業務場景,在某方面達到最低保證的情況下,使得另一方面發揮到極致,這才是最重要的也是最難的。
F. 收獲,不止sql優化 抓住sql的本質 怎麼樣
收獲,不止sql優化 抓住sql的本質 怎麼樣
sql優化 sql指的是資料庫的語言 而用此語言的基本含所有的關系資料庫 所以Oracle Mysql 等等都是有SQL優化的
G. 怎麼提高這個很簡單的SQL的性能
在SQL查詢中,為了提高查詢的效率,我們常常採取一些措施對查詢語句進行SQL性能優化。本文我們總結了一些優化措施,接下來我們就一一介紹。
1.查詢的模糊匹配
盡量避免在一個復雜查詢裡面使用 LIKE '%parm1%'—— 紅色標識位置的百分號會導致相關列的索引無法使用,最好不要用。
解決辦法:
其實只需要對該腳本略做改進,查詢速度便會提高近百倍。改進方法如下:
a、修改前台程序——把查詢條件的供應商名稱一欄由原來的文本輸入改為下拉列表,用戶模糊輸入供應商名稱時,直接在前台就幫忙定位到具體的供應商,這樣在調用後台程序時,這列就可以直接用等於來關聯了。
b、直接修改後台——根據輸入條件,先查出符合條件的供應商,並把相關記錄保存在一個臨時表裡頭,然後再用臨時表去做復雜關聯。
2.索引問題
在做性能跟蹤分析過程中,經常發現有不少後台程序的性能問題是因為缺少合適索引造成的,有些表甚至一個索引都沒有。這種情況往往都是因為在設計表時,沒去定義索引,而開發初期,由於表記錄很少,索引創建與否,可能對性能沒啥影響,開發人員因此也未多加重視。然一旦程序發布到生產環境,隨著時間的推移,表記錄越來越多。這時缺少索引,對性能的影響便會越來越大了。
法則:不要在建立的索引的數據列上進行下列操作:
避免對索引欄位進行計算操作
避免在索引欄位上使用not,<>,!=
避免在索引列上使用IS NULL和IS NOT NULL
避免在索引列上出現數據類型轉換
避免在索引欄位上使用函數
避免建立索引的列中使用空值
3.復雜操作
部分UPDATE、SELECT 語句 寫得很復雜(經常嵌套多級子查詢)——可以考慮適當拆成幾步,先生成一些臨時數據表,再進行關聯操作。
4.update
同一個表的修改在一個過程里出現好幾十次,如:
update table1 set col1=... where col2=...; update table1 set col1=... where col2=... ...
這類腳本其實可以很簡單就整合在一個UPDATE語句來完成(前些時候在協助xxx項目做性能問題分析時就發現存在這種情況)
5.在可以使用UNION ALL的語句里,使用了UNION
UNION 因為會將各查詢子集的記錄做比較,故比起UNION ALL ,通常速度都會慢上許多。一般來說,如果使用UNION ALL能滿足要求的話,務必使用UNION ALL。還有一種情況大家可能會忽略掉,就是雖然要求幾個子集的並集需要過濾掉重復記錄,但由於腳本的特殊性,不可能存在重復記錄,這時便應該使用 UNION ALL,如xx模塊的某個查詢程序就曾經存在這種情況,見,由於語句的特殊性,在這個腳本中幾個子集的記錄絕對不可能重復,故可以改用UNION ALL)。
6.在WHERE 語句中,盡量避免對索引欄位進行計算操作
這個常識相信絕大部分開發人員都應該知道,但仍有不少人這么使用,我想其中一個最主要的原因可能是為了編寫寫簡單而損害了性能,那就不可取了。9月份在對XX系統做性能分析時發現,有大量的後台程序存在類似用法,如:where trunc(create_date)=trunc(:date1),雖然已對create_date 欄位建了索引,但由於加了TRUNC,使得索引無法用上。此處正確的寫法應該是where create_date>=trunc(:date1) and create_date< pre=""><>或者是where create_date between trunc(:date1) and trunc(:date1)+1-1/(24*60*60)。
注意:因between 的范圍是個閉區間(greater than or equal to low value and less than or equal to high value.),故嚴格意義上應該再減去一個趨於0的小數,這里暫且設置成減去1秒(1/(24*60*60)),如果不要求這么精確的話,可以略掉這步。
7.對Where 語句的法則
7.1 避免在WHERE子句中使用in,not in,or 或者having。
可以使用 exist 和not exist代替in和not in。
可以使用表鏈接代替 exist。Having可以用where代替,如果無法代替可以分兩步處理。
例子
SELECT * FROM ORDERS WHERE CUSTOMER_NAME NOT IN (SELECT CUSTOMER_NAME FROM CUSTOMER)
優化
SELECT * FROM ORDERS WHERE CUSTOMER_NAME not exist (SELECT CUSTOMER_NAME FROM CUSTOMER)
7.2 不要以字元格式聲明數字,要以數字格式聲明字元值。(日期同樣)否則會使索引無效,產生全表掃描。
例子使用:
SELECT emp.ename, emp.job FROM emp WHERE emp.empno = 7369;
--不要使用:
SELECT emp.ename, emp.job FROM emp WHERE emp.empno = '7369'
8.對Select語句的法則
在應用程序、包和過程中限制使用select * from table這種方式。看下面例子
--使用
SELECT empno,ename,category FROM emp WHERE empno = '7369'
--而不要使用
SELECT * FROM emp WHERE empno = '7369'
9. 排序
避免使用耗費資源的操作,帶有DISTINCT,UNION,MINUS,INTERSECT,ORDER BY的SQL語句會啟動SQL引擎 執行,耗費資源的排序(SORT)功能. DISTINCT需要一次排序操作, 而其他的至少需要執行兩次排序。
10.臨時表
慎重使用臨時表可以極大的提高系統性能。
關於SQL性能優化的知識就介紹到這里了,希望本次的介紹能夠帶給您一些收獲,謝謝!
H. SQL語言藝術怎麼樣
假期里看了一大半,沒有細讀,但讀的過程中隨意想到的問題列出許多,有好多基礎的地方要去翻翻資料庫系統概論之類的書,同時也要有機會多接觸一些資料庫產品。 此書推薦給有資料庫系統開發經驗的同學看,有過實戰經驗的看此書可能收獲會更多一點。此書是作者十幾年下來的經驗談,相比理論的教材或者是資料庫開發的實例書,此書並不涉及明確教你如何做,而是有很多細節之處的考慮,這些都是作者在開發過程中遇到過的實際問題,可以說是作者的感悟。在讀的過程中你會覺得有很多問題似曾相識,然後就想自己在開發中是怎麼解決的。我個人感覺此書可以長放手頭,每隔一段時間就翻翻,並不在於書中講的是什麼,而是在讀的過程中,聯想到自己在資料庫系統開發過程中遇到的問題,不斷的去思考更好解決問題的過程。
I. 如何用SQL按日期循環獲取庫存數據
那直接用int統計不就完了一個庫存數量表:欄位1編號 欄位2 數量 欄位3 剩餘 欄位4時間第二個表發貨表:欄位1編號 欄位2 發貨數量 欄位3發貨時間第3個表收貨表:欄位1編號 欄位2收貨數量 欄位3收獲時間這樣你就可以實現按日期查詢收貨時間和數量,按日期查詢發貨數量 按日期查詢當前貨物庫存數量和剩餘數量按日期查詢收貨時間和數量需要的話聯系我給我詳細信息庫我給你做好調試好網頁形的直接用就行了免費的哦呵呵。Q787642701
J. 求一道SQL資料庫的語句題解答!求SQL專家完全解答!!!!
use 教師資料庫
go
/*1、創建教師表*/
create table 教師表
(
教師編號 char(6) primary key,
姓名 varchar(10) not null,
性別 varchar(10) not null,
職稱 varchar(10),
身份證號 varchar(10) unique nonclustered
)
/*2、創建課程表*/
create table 課程表
(
課號 char(6) primary key,
名稱 varchar(20) not null
)
/*3、創建任課表*/
create table 任課表
(
ID int null,
教師編號 char(6) references 教師表(教師編號),
課號 char(6) references 課程表(課號),
課時數 int
)
/*4、將下列課程信息添加到課程表的代碼*/
insert 課程表 values ('100001','SQL Server資料庫')
insert 課程表 values ('100002','數據結構')
insert 課程表 values ('100003','VB程序設計')
/*5 、查找所有教師的信息。*/
select * from 教師表
/*6、檢索有一門或一門以上課程課時數大於90的所有教師的信息,包括編號、姓名。*/
select 教師編號,姓名 from 教師表 where EXISTS (select count(*) from 任課表 where 教師表.教師編號=任課表.教師編號 group by 教師編號 HAVING count(*)>90)
/*7、查找張老師的代課總課數。*/
select count(*) from 任課表 where EXISTS (select * from 教師表 where 教師表.教師編號=任課表.教師編號 and 姓名='張老師')