SQL查詢實驗報告 - 下載本文

實驗題目:sql查詢—— 簡單查詢 【實驗目的與要求】 一、實驗目的

1. 熟練掌握單表查詢的select語法結構; 2. 通過觀察查詢結果, 體會select語句的實際應用。 二、實驗要求 1.實驗前做好上機實驗的準備,針對實驗內容,認真復習與本次實驗有關的知識,完成

實驗內容的預習準備工作。

2.能認真獨立完成實驗內容。 3.實驗后做好實驗總結,根據實驗情況完成實驗報告。 【實驗環境】

pc機、windows xp系統+sql server 2005 【實驗內容】

基于實驗一建立的educ 數據庫,用transact-sql 語句實現如下查詢: 1.選修了課程的學生學號; 2.計算機系的學生;

3.計算機系學生的學號和姓名; 4.計算機系和信息系的男生信息;(提示:邏輯運算符的優先級順序) 5.選修上課編號為1且成績在80-90 之間的學生學號和成績,并將成績乘以系數0.75 輸出;(提示:新輸出項要命名列標題) 6.沒有成績的學生的學號和上課編號; 7.選修上課編號為1或4的學生的學號和成績,并要求對查詢結果按成績的降序 排列,如果成績相同則按學號的升序排列;(提示:查詢輸出哪幾項) 8.1995年1月1日(含)以后出生的學生信息,并按姓氏拼音字母順序從前往后排列(注:默認排序規則通常是chinese_prc_ci_as,漢字按照漢語拼音的字典順序來排序:首先按拼音,拼音相同按聲調,聲調相同按筆畫數。) 9.姓李和劉的學生的信息; 10.不姓張王李劉的學生的學號、姓名和性別; 11.選修課程的學生人數;

12.選修上課編號為1的學生的最高分; 13.每位學生所修課程的平均分; 14.選修兩門以上課程的學生; 15.總成績大于200 分的學生的學號和總成績。(提示:group by分組統計) 【實驗方法和步驟】

1.新建查詢,在查詢編輯器中依次按照如上實驗內容編寫select語句完成查詢。 2.每執行一條查詢語句,在查詢結果網格中查看執行結果是否正確。 【實驗結果】

select distinct sno from student_course select * from student where dno = 計算機 select sno,sname from student where dno = 計算機 select * from student

where sex =男 and dno in(計算機,信息) select sno,0.75*score as 成績from student_course where tcid =1 and score between

80 and 90

select sno,score from student where (tcid=1 or tcid=4) order by score desc,sno select *from student where birthday>=1995-1-1order by sname asc select *from student where sname like[李劉]% select sno,sname,sex from student where sname like[^張王李劉]% select count(distinct sno)as 選課人數from student_course select max(score) as 最高分from student_course where tcid=1 select sno,avg(score)as 平均分from student_course group by sno select sno,count(distinct tcid)as 選課門數from student_course group by sno

having count(tcid)>2 select sno,sum(score)as 總成績from student_course group by sno having

sum(score)>=200 order by 總成績desc 【實驗體會】 利用select語句可以實現對已有表中數據的查詢的。通過實驗讓我對select語句的應用有了更深的理解,當輸出表中的幾列數據時只需要將輸出地列列出即可,如需要將表中的數據按列的顯示順序依次輸出則可以簡單地在<目標列名序列>中寫“*”,distinct關鍵字可以去掉查詢結果中重復行。distinct關鍵字放在select詞的后面、目標列名序列的

前邊。用where語句查詢滿足條件的元組,order篇二:sql查詢實驗報告 實驗四 數據庫查詢

姓名:夏慷 學號:201013424 一、實驗目的 本次實驗了解sql語言的select語句對數據的查詢,學會sql server 2005的查詢分析

器中用sql語言對表中的數據進行簡單查詢、連接查詢、嵌套查詢和組合查詢。 二、實驗內容 啟動sql server 2005的查詢窗口,用select語句對學生-課程數據庫進行查詢操作,題目如下:

1.用select語句求計算機系學生的學號和姓名。 2.用select語句求學生的學號、姓名、選的課程名及成績。 3.用select語句求c1課程的成績低于張三的學生的學號和成績。 4.用select語句求選了c2課程并且也選了c3課程的學生的學號。 5.用select語句求計算機系年齡在20歲以下的學生的詳細信息. 6. 查詢所有學生的詳細信息,結果按學號降序排列。 7.查詢每個系學生的人數。 8.查詢每個系學生的平均年齡。 9.查詢計算機系學生的最大年齡和最小年齡。 10,查詢每個學生的平均分。 11.查詢每個學生的選課門數。 12.查詢每門課程的選課人數。 13,查詢選修課程c1并且成績在80分以上的學生的學號。 14.查詢所有選修了c2課程的學生的學號。 15.查詢所有選了課的學生的學號。 16.查詢選修人數大于2的課程號。 17.查詢選修人數大于2并且平均成績大于80分的課程 三、實驗過程 要求個人填寫(要求有文字描述和適當的圖片輔助說明)

按以前實驗步驟,建立數據庫,建立表,建立關系,填表; 查詢過程如下:

1.用select語句求計算機系學生的學號和姓名 。 2.用select語句求學生的學號、姓名、選的課程名及成績 。 3.用select語句求1課程的成績低于李勇的學生的學號和成績 。 4.用select語句求選了2課程并且也選了3課程的學生的學號 。 5.用select語句求計算機系年齡在20歲以下的學生的詳細信息 . 6. 查詢所有學生的詳細信息,結果按學號降序排列。升序asc降序 desc 7.查詢每個系學生的人數。用count函數 分組group by 起別名 不然顯示無列 名 8.查詢每個系學生的平均年齡 。篇三:sql實驗二:數據庫查詢實驗報告 實驗二 數據庫的查詢實驗 一、 實驗目的和要求 (1)掌握sql server查詢分析器的使用方法,加深對sql和transact-sql語言的查詢語句的理解。

(2)熟練掌握簡單表的數據查詢、數據排序和數據連接查詢的操作方法。 (3)熟練掌握數據查詢中的分組、統計、計算和組合的操作方法。 二、 實驗內容和原理

在實驗一定義的“學生成績數據庫”中,使用t-sql語句完成以下查詢: (1)求計算機系學生的學號和姓名。 (2)求選修了數學的學生學號、姓名和成績。 (3)求選修01課程的學生學號和成績,并要求對查詢結果按成績降序排列,如果成績

相同則按學號升序排列。

(4)查找選修課程的平均成績位于前三名的學生的學號。 (5)查詢計算機系的姓劉且單名的學生的信息。 (6)查詢至少選修兩門課程的學生學號。 (7)查詢學生的學號、課程號以及對應成績與所有學生所有課程的最高成績的百分比。 (8)查詢選修“數據庫”課程,且成績在80分以上的學生的學號和成績。 (9)查詢所有姓“王”的同學沒有選修的課程名。(請分別用exists和in完成該查詢) (10)查詢選修了全部課程的學生的姓名。(請至少寫出兩種查詢語句) (11)求選修了學生“95001”所選修的全部課程的學生學號和姓名。 (12)查詢每一門課的間接先修課。 (13)列出所有學生所有可能的選課情況。 (14)列出每個學生的學號及選修課程號,沒有選修的學生的學號也一并列出。 (15)輸出與“張三”同性別并位于同一個系的所有同學的姓名。(請至少寫出兩種查詢語句)

(16)查詢至少被兩名男生選修的課程名。

(17)對被兩名以上學生所選修的課程統計每門課的選課人數。要求輸出課程號和選修

人數,查詢結果按人數降序排列;若人數相同,按課程號升序排列。 (18)列出選修課程超過3門的學生姓名及選修門數。 (19)檢索至少選修課程號為01和03的學生姓名。 (20)檢索至少選修課程“數學”和“操作系統”的學生學號。 (21)查詢‘操作系統’課程的最高分的學生的姓名、性別、所在系 (22)查詢數據結構的成績低于操作系統的成績的學生姓名及該生的這兩門課的成績 (23)所有成績都在70分以上的學生姓名及所在系。 三、實驗環境 四、實驗方法

1. 將查詢需求用transact-sql語言表示。 2. 在 sql server查詢分析器的輸入區中輸入 transact-sql查詢語句。 3. 發布執行命令,查看查詢結果;如果結果不正確,進行修改,直到正確為止。 4. 查詢分析器及使用方法。 查詢分析器是在開發數據庫應用 系統時使用最多的工具。查詢分析器的 主要作用是編輯transact-sql,將其發 送到服務器,并將執行結果及分析顯示 出來(或進行存儲)。查詢分析功能主 要通過測試查詢成本,判斷該查詢是否 需要增加索引以提高查詢速度,并可以 實現自動建立索引的功能、查詢分析器 的界面如圖1所示。

在查詢分析器中的左邊窗口是對 象瀏覽器,其中按樹結構列出了數據庫 對象;右上方是sql代碼區域.用于 輸入 sql的查詢語句;右下方為結果 區,用于顯示查詢結果和分析結果、對 圖1 sql server 2000查詢分析器 于tsql語句的執行結果,在結果區中 可以有4種不同的輸出形式:標準執行將結果直接顯示在結果區:網格執行將結果以表格形式顯示在結果區;計劃執行顯示執行計劃;索引分析為在結果區中顯示查詢的索引情況。

上述輸出形式,可以通過菜單或按鈕選擇。 五、調試過程 五、實驗結果 六、總結 附錄:

--(1) 求計算機系學生的學號和姓名。 select sno,sname from student

where sdept=計算機 --(2)求選修了數學的學生學號、姓名和成績。 select s.sno,sname,grade from student s,sc,course c where s.sno=sc.sno and sc.cno=c.cno and cname=數學

--(3 )求選修課程的學生學號和成績,并要求對查詢結果按成績降序排列,如果成績相同則

按 學號升序排列。 select sno,grade from sc where cno=1

order by grade desc,sno asc --(4)查找選修課程的平均成績位于前三名的學生的學號。 select top 3 sno from sc

group by sno

order by avg(grade) desc --(5)查詢計算機系的姓劉且單名的學生的信息。 select * from student

where sdept=計算機 and sname like 劉_ --(6)查詢至少選修兩門課程的學生學號。 select sno from sc

group by sno

having count(*)>=2 --(7)查詢學生的學號、課程號以及對應成績與所有學生所有課程的最高成績的百分比。

select sno,cno,grade,最高成績百分比= grade*100/(select max(grade)from sc) from sc --(8)查詢選修“數據庫”課程,且成績在分以上的學生的學號和成績。 select sno,grade from course c,sc

where cname=數據庫 and grade>80 and c.cno=sc.cno --(9)查詢所有姓“王”的同學沒有選修的課程名。(請分別用exists和in完成該查詢) --exists方法 select cname from course c where not exists

( select s.sno from student s,sc where s.sno=sc.sno and sname like 王% and c.cno=sc.cno )

--in方法 select cname from course c where cno not in

(





街机千炮捕鱼2016