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