【正文】
) as 總分 ,。 avg(成績(jī) ) as 平均分 ,。 max(成績(jī) ) as 最高分 ,。 min(成績(jī) ) as 最低分 。 from student, score。 where = and。 專(zhuān)業(yè) =“計(jì)算機(jī)科學(xué)與技術(shù)” ; group by 學(xué)號(hào) 課程編號(hào) 成績(jī) XS0401 C002 96 XS0402 C008 84 XS0401 C003 67 XS0403 C010 55 XS0402 C007 82 XS0402 C003 65 XS0402 C009 89 XS0401 C007 75 Eg3:檢索選修課程在 3門(mén)以上 ( 含 3門(mén) ) 的每個(gè)學(xué)生的學(xué)號(hào)和平均成績(jī) , 并按平均成績(jī)升序排序 注意: order by后只能接字段名 , 不能接函數(shù) select 學(xué)號(hào) ,avg(成績(jī) ) as 平均成績(jī) from score。 group by 學(xué)號(hào) having count(*)=3。 order by 平均成績(jī) 分組條件 學(xué)號(hào) 課程編號(hào) 成績(jī) XS0401 C002 96 XS0401 C003 67 XS0401 C007 75 XS0402 C008 84 XS0402 C007 82 XS0402 C003 65 XS0402 C009 89 XS0403 C010 55 學(xué)號(hào) 平均分 XS0401 XS0402 80 學(xué)號(hào) 平均分 XS0402 80 XS0401 select 學(xué)號(hào) ,avg(成績(jī) ) as 平均成績(jī) from score。 group by 學(xué)號(hào) having count(*)=3。 order by 平均成績(jī) 學(xué)號(hào) 課程編號(hào) 成績(jī) XS0401 C002 96 XS0402 C008 84 XS0401 C003 67 XS0403 C010 55 XS0402 C007 82 XS0402 C003 65 XS0402 C009 89 XS0401 C007 75 Eg4:檢索計(jì)算機(jī)科學(xué)與技術(shù)系選修課程在 3門(mén)以上( 含 3門(mén) ) 的每個(gè)學(xué)生的學(xué)號(hào)和平均成績(jī) , 并按平均成績(jī)降序排序 select student. 學(xué)號(hào) ,avg(成績(jī) ) as 平均成績(jī) from student,score。 where = and。 專(zhuān)業(yè) =“計(jì)算機(jī)科學(xué)與技術(shù)” 。 group by student. 學(xué)號(hào) having count(*)=3。 order by 平均成績(jī) desc 查詢條件 分組條件 連接條件 注意:先用 where選擇滿足條件的元組,然后分組,再計(jì)算,最后去掉不滿足分組條件的記錄 Eg5:檢索除 “ 商務(wù)英語(yǔ) ” 專(zhuān)業(yè)之外的 , 選修課程在3門(mén)以上 ( 含 3門(mén) ) 的每個(gè)學(xué)生的學(xué)號(hào) 、 姓名和平均成績(jī) , 并按將結(jié)果按平均成績(jī)降序排序 , 保存到表 select ,姓名 ,avg(成績(jī) ) as 平均成績(jī) 。 from student,score。 where = and 專(zhuān)業(yè) !=”商務(wù)英語(yǔ)” 。 group by student. 學(xué)號(hào) having count(*)=3。 order by 平均成績(jī) desc into table aa Eg6:求至少有兩名學(xué)生選修的課程的平均分。 select 課程編號(hào) ,avg(成績(jī) ) as 平均分 from score 。 group by 課程編號(hào) having count(*)=2 Eg7: 檢索出平均分在 80分以上的每個(gè)學(xué)生的學(xué)號(hào)、總分和平均分,并將結(jié)果按學(xué)號(hào)升序排列,保存到表 。 select 學(xué)號(hào) , sum(成績(jī) ) as 總分 ,。 avg(成績(jī) ) as 平均分 。 from score 。 group by 學(xué)號(hào) having avg(成績(jī) )=80。 order by 學(xué)號(hào) into table xx ( 1)位置 : where后, order by前 ( 2) having子句總是跟在 group by子句之后 ,不 可以單獨(dú)使用 ( 3)先 where,再 group by,然后 計(jì)算 ,最后having. 注 意 (查詢結(jié)果出自一個(gè)表,條件涉及多個(gè)表) 格式: SELECT… FROM 表 1 WHERE 字段名 in ; (SELECT 字段名 FROM 表 2 WHERE… ) 五、嵌套查詢 Eg1:檢索沒(méi)有授課的教師信息。 Eg2:檢索選修了課程的學(xué)生信息。 Eg3:找出沒(méi)有選課的學(xué)生的信息。 select * from teacher。 where 教師編號(hào) not in (select 教師編號(hào) from course) select * from student。 where 學(xué)號(hào) not in (select 學(xué)號(hào) from score ) select * from student。 where 學(xué)號(hào) in (select 學(xué)號(hào) from score ) ? 格式: – 字段名 IS NULL – 字段名 IS NOT NULL 六、利用空值查詢 Eg1:查詢出還沒(méi)有確定聯(lián)系方式的學(xué)生記錄。 Eg2:查詢已經(jīng)確定了聯(lián)系方式的學(xué)生信息。 select * from student where 聯(lián)系方式 is null select * from student where 聯(lián)系方式 is not null 不能寫(xiě)成“ =NULL”或“ !=NULL” 注意 ? 顯示部分結(jié)果 ? 將結(jié)果存放在臨時(shí)文件中 ? ※ 將結(jié)果存放在永久表中 七、查詢中的特殊選項(xiàng) 顯示部分結(jié)果 (顯示前幾項(xiàng)) 格式 : top n [percent] ① 位置:緊跟 select后 ② top短語(yǔ)要與 order by 同時(shí)使用 Eg1:顯示成績(jī) 最低 的 兩 名學(xué)生成績(jī)信息。 Eg2:顯示成績(jī) 最高 的那 40%的學(xué)生成績(jī)信息 select * top 2 from score order by 成績(jī) asc select * top 40 percent from score order by 成績(jī) desc 將結(jié)果存放在臨時(shí)文件中 格式: into cursor 臨時(shí)文件名 注意 : ( 1)文件關(guān)閉后,自動(dòng)刪除 ( 2)位置: from短語(yǔ)后或最后 將結(jié)果存放在臨時(shí)文件中 Eg1:將 teacher表中的信息保存在 臨時(shí)文件“教師”中。 select * from teacher into cursor 教師 將結(jié)果存放在永久表中 格式: into table 表名 注意: ( 1)查看結(jié)果可以使用下面的命令操作 –use 表名 –browse ( 2)通過(guò)該子句可實(shí)現(xiàn) 表的復(fù)制 。 Eg1 :將所有課程信息按學(xué)分降序保存永久表“課程”中。 select * from course order by 學(xué)分 desc; into table 課程 Select ….. From 表名 [where 查詢條件 [and 聯(lián)接條件 ]] [group by ….[having….]] [order by…..] [ into cursor | into table ] 字段名 , as… , 函數(shù) 說(shuō)明查詢內(nèi)容來(lái)自哪個(gè)些表 說(shuō)明條件 按某列分組 ,分組條件 對(duì)查詢結(jié)果排序 保存查詢結(jié)果 SQL 查詢語(yǔ)句的總格式 Visual FoxPro 應(yīng) 用 基礎(chǔ) 與 面向?qū)ο蟪绦蛟O(shè)計(jì)教程 本 章 要 點(diǎn)