對學生數據庫進行查詢等操作


對學生數據庫進行查詢等操作

學生數據庫中有3張數據表,關系模型如下:

1、學生信息

字段名 數據類型 備注
學號 char(10) primary key
姓名 nvarchar(10)
性別 nchar(2)
出生日期 date
專業 nvarchar(10)

2、課程信息

字段名 數據類型 備注
課程序號 char(10) primary key
課程名稱 nvarchar(20)
開課學期 char(1)
學分 smallint

3、成績信息

字段名 數據類型 備注
學號 char(10) primary key, foreign key
課程序號 char(10) primary key, foreign key
成績 tinyint

查詢“計算機科學與技術”專業的學生人數,顯示字段名為學生人數

select count(*) 學生人數 from 學生信息
where 專業 = "計算機科學與技術"
group by 專業

查詢與“劉晨”在同一個專業學習的學生,顯示學號、姓名。

注意:結果中不包括劉晨

select 學號,姓名 from 學生信息
where 專業 in (select 專業 from 學生信息 where 姓名 = "劉晨") and 姓名!="劉晨"

查詢選修了課程名為“操作系統”的學生,顯示學號,姓名

select a.學號,a.姓名 from 學生信息 a
inner join 成績信息 b on a.學號 = b.學號
inner join 課程信息 c on b.課程序號 = c.課程序號
where c.課程名稱 = "操作系統"

建立一個計算機科學與技術專業,且年齡不大於19歲的學生的視圖,字段包括學生學號,姓名,出生日期,視圖名字為 學生年齡視圖

提示1 :如何利用出生日期結合系統函數計算年齡

​ DATEDIFF(datepart,startdate,enddate)

​ 返回兩個指定日期的日期和時間邊界數(差值),datepart 規定了用日期的哪一部分(year、month、day、week、hour等)來計算差額。

提示2 :獲得當前時間GETDATE()

create view 學生年齡視圖 as
select 學號,姓名,出生日期 from 學生信息
where DATEDIFF(yy,出生日期,GETDATE())<=19 and 專業 = "計算機科學與技術"

通過剛建立的 學生年齡視圖,查詢計算機科學與技術專業年齡不大於19歲的學生學號,姓名

select 學號,姓名 from 學生年齡視圖

建立一個既選修了課程1又選修了課程2的學生視圖,名為 學生課程視圖 ,包含字段學號、姓名、專業

create view 學生課程視圖 as
select a.學號,a.姓名,a.專業 from 學生信息 a
inner join 成績信息 b on a.學號 = b.學號
where b.課程序號 = "1" 
union
select a.學號,a.姓名,a.專業 from 學生信息 a
inner join 成績信息 b on a.學號 = b.學號
where b.課程序號 = "2"

通過剛建立的學生課程視圖,查詢學生學號,姓名

select 學號,姓名 from 學生課程視圖


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM