6_1.數據查詢

EMIS數據庫創建的表,下面的查詢語句需要哪個表你可以自己創建,實在不想創建給我留言,我給你。我個人覺得還是自己創建好點。

--select 語句對於列的查詢
use EMIS
go
select * from 學生

--查詢部分列
select 學號,姓名,性別 from 學生
--給列設置別名
select 學號 as 學生編號,姓名 學生姓名 from 學生
--計算列值
select 學號,課程號,成績 as 原始分數,成績*0.7 as 折算分數 from 選課

--select語句對行的註釋
-- 選擇表中的若干記錄根據設置條件選擇。
--消除重複 distinct | all (所有,默認) • 數量上限制
--     – top n
--     – top n percent

--消除重複和數量限制
--行選擇
--消除結果的重複性
--選擇所要參與選課的學生的學號
select distinct 學號 from 選課

--限制結果返回的行數,學生表有超過十條記錄
--使用top n,返回10條
select top 10 * from 學生

--使用percent,返回11條(四捨五入)
select top 10 percent * from 學生

--查詢滿足條件的元祖例
--使用比較運算符
--查詢課程表中的學分爲4分的課程
select * from 課程 where 學分=4

--邏輯運算
--查詢課程表中學分大於1且小於4的課程信息
select * from 課程 where 學分>1 and 學分<4

--使用like模式匹配,%多個,_一個,[]在範圍內,[^]不在範圍內
--查詢學生表內姓孫的同學信息
select * from 學生 where 姓名 like '孫%'
--查詢以"物聯網_"開頭的課程
select * from 課程 where 課程名 like '物聯網_%'  --查的多
select * from 課程 where 課程名 like '物聯網\_%' escape '\'  --查詢正確

--確定範圍between包含兩端值
--查詢學分在2到4之間的課程信息
select * from 課程 where 學分 between 2 and 4
--查詢分數在60到80之間的成績
select * from 課程 where 學分 between 60 and 80

--確定集合 in
--在選課表中,查詢選課課程號爲0022或0001的信息
select * from 選課 where 課程號 in('0022','0001')

--涉及NULL的查詢
--查詢沒有先修課的課程,即先修課爲NULL的課程
select * from 課程 where 先修課=NULL  --錯誤
select * from 課程 where 先修課 IS NULL

--對查詢結果進行排序
--order by子句可以對查詢的結果按照指定字段進行排序
--order by 排序表達式 [asc|desc]  asc升序 desc 降序 默認爲升序排列
--對字段類型爲text,ntext,Image的字段不能使用order by進行排序
--查詢學生表中的女生情況,按年齡升序排列(出生日期的降序)
select * from 學生 where 性別='女' order by 出生日期 desc
--查詢選課表中成績按升序排列
select * from 選課 order by 成績 asc

--對查詢結果進行統計
--聚合函數:count(),avg(),sun(),max(),min()
--統計查詢學生總人數
select count(*) from 學生
--統計參加選課的學生人數
select count(distinct 學號) from 選課
select count(學號) from 選課 --全部選課次數

--查詢選修'0005'課程的學生的最高分,最低分和平均分
select max(成績) as '最高分',min(成績) as '最低分',avg(成績) as '平均分' from 選課 where '課程號'='0005'

--對結果進行分組
--GROUP BY子句用於對錶或視圖中的數據按字段分組,還可以利用HAVING短語按照一定的條件對分組後的數據迚行篩選。
--GROUP BY [ALL] 分組表達式 [HAVING 查詢條件]
--當使用HAVING短語指定篩選條件時,HAVING短語必須與GROUP BY配合使用。
--Where是對錶的選擇,having是設置分組的篩選條件
--求每個學生選課的門數
select 學號,count(*) as 選課數 from 選課 group by 學號
--求選課修了兩門以上的課程,並且分數均超過90分的學生學號
select 學號 from 選課 where 成績>90 group by 學號 having count(*)>2

--對查詢結果生成新表
--• INTO 新表名
-- 新表名是被創建的新表,查詢的結果集中的記錄將添加到此表中;
-- 新表的字段由結果集中的字段列表決定;
--如果表名前加“#”則創建的表爲臨時表;
--用戶必須擁有該數據庫中建表的權限;
--對查詢結果生成新表
select 課程號,max(成績) as '最高分',min(成績) as '最低分',avg(成績) as '平均分' into 課程成績單3 from 選課 group by 課程號
select * from 課程成績單3

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章