SQL 練習題(SQL Server)

設有一數據庫,包括四個表:學生表(Student)、課程表(Course)、成績表(Score)以及教師信息表(Teacher)sql

建立數據庫:數據庫

create database 學生選課數據庫

建表語句:操作系統

create table Student(
Sno nvarchar(3) not null primary key,
Sname nvarchar(8) not null,
Ssex nvarchar(2) not null,
Sbirthday datetime,
Class nvarchar(5) 
);
create table Course(
Cno nvarchar(5) not null primary key,
Cname nvarchar(10) not null,
Tno nvarchar(3) not null
);
create table Score(
Sno nvarchar(3) not null references Student(Sno),
Cno nvarchar(5) not null references Course(Cno),
Degree Decimal(4,1)
);
create table Teacher(
Tno nvarchar(3) not null primary key,
Tname nvarchar(4) not null,
Tsex nvarchar(2) NOT NULL,
Tbirthday datetime,
Prof nvarchar(6),
Depart nvarchar(10) not null
);

插入數據:code

insert into Student (Sno,Sname,Ssex,Sbirthday,Class) values('108',N'曾華',N'男','1977-09-01','95033');
insert into Student (Sno,Sname,Ssex,Sbirthday,Class) values('105',N'匡明',N'男','1975-10-02','95031');
insert into Student (Sno,Sname,Ssex,Sbirthday,Class) values('107',N'王麗',N'女','1976-01-23','95033');
insert into Student (Sno,Sname,Ssex,Sbirthday,Class) values('101',N'李軍',N'男','1976-02-20','95033');
insert into Student (Sno,Sname,Ssex,Sbirthday,Class) values('109',N'王芳',N'女','1975-02-10','95031');
insert into Student (Sno,Sname,Ssex,Sbirthday,Class) values('103',N'陸君',N'男','1974-06-03','95031');


insert into Course values('3-105',N'計算機導論','825');
insert into Course values('3-245',N'操做系統','804');
insert into Course values('6-166',N'數字電路','856');
insert into Course values('9-888',N'高等數學','831');


insert into Score values('103','3-245','86');
insert into Score values('105','3-245','75');
insert into Score values('109','3-245','68');
insert into Score values('103','3-105','92');
insert into Score values('105','3-105','88');
insert into Score values('109','3-105','76');
insert into Score values('101','3-105','64');
insert into Score values('107','3-105','91');
insert into Score values('108','3-105','78');
insert into Score values('101','6-166','85');
insert into Score values('107','6-166','79');
insert into Score values('108','6-166','81');


insert into Teacher values('804',N'李誠',N'男','1958-12-02',N'副教授',N'計算機系');
insert into Teacher values('856',N'張旭',N'男','1969-03-12',N'講師',N'電子工程系');
insert into Teacher values('825',N'王萍',N'女','1972-05-05',N'助教',N'計算機系');
insert into Teacher values('831',N'劉冰',N'女','1977-08-14',N'助教',N'電子工程系');

四張表以下:排序

Courseci

Cno數學

Cnametable

Tnoclass

3-105date

計算機導論

825

3-245

操做系統

804

6-166

數字電路

856

9-888

高等數學

831

 

Score

Sno

Cno

Degree

103

3-245

86

105

3-245

75

109

3-245

68

103

3-105

92

105

3-105

88

109

3-105

76

101

3-105

64

107

3-105

91

108

3-105

78

101

6-166

85

107

6-166

79

108

6-166

81

 

Student

Sno

Sname

Ssex

Sbirthday

class

108

曾華

1977-09-01

95033

105

匡明

1975-10-02

95031

107

王麗

1976-01-23

95033

101

李軍

1976-02-20

95033

109

王芳

1975-02-10

95031

103

陸君

1974-06-03

95031

 

Teacher

Tno

Tname

Tsex

Tbirthday

Prof

Depart

804

李誠

1958-12-02

副教授

計算機系

856

張旭

1969-03-12

講師

電子工程系

825

王萍

1972-05-05

助教

計算機系

831

劉冰

1977-08-14

助教

電子工程系

 

萬事俱備,只等你來。。。。。。

題目:(由淺入深)

一、 查詢Student表中的全部記錄的Sname、Ssex和Class列。

二、 查詢教師全部的單位即不重複的Depart列。

三、 查詢Student表的全部記錄。

四、 查詢Score表中成績在60到80之間的全部記錄。

五、 查詢Score表中成績爲85,86或88的記錄。

六、 查詢Student表中「95031」班或性別爲「女」的同窗記錄。

七、 以Class降序查詢Student表的全部記錄。

八、 以Cno升序、Degree降序查詢Score表的全部記錄。

九、 查詢「95031」班的學生人數。

十、 查詢Score表中的最高分的學生學號和課程號。(子查詢或者排序)

十一、 查詢每門課的平均成績。

十二、查詢Score表中至少有5名學生選修的並以3開頭的課程的平均分數。

1三、查詢分數大於70,小於90的Sno列。

1四、查詢全部學生的Sname、Cno和Degree列。

1五、查詢全部學生的Sno、Cname和Degree列。

1六、查詢全部學生的Sname、Cname和Degree列。

1七、 查詢「95033」班學生的平均分。

1八、 假設使用以下命令創建了一個grade表:

create table grade(low  int(3),upp  int(3),rank  char(1))

insert into grade values(90,100,’A’)

insert into grade values(80,89,’B’)

insert into grade values(70,79,’C’)

insert into grade values(60,69,’D’)

insert into grade values(0,59,’E’)

現查詢全部同窗的Sno、Cno和rank列。

1九、  查詢選修「3-105」課程的成績高於「109」號同窗成績的全部同窗的記錄。

20、查詢score中選學多門課程的同窗中分數爲非最高分紅績的記錄。

2一、 查詢成績高於學號爲「109」、課程號爲「3-105」的成績的全部記錄。

2二、查詢和學號爲108的同窗同年出生的全部學生的Sno、Sname和Sbirthday列。

2三、查詢「張旭「教師任課的學生成績。

2四、查詢選修某課程的同窗人數多於5人的教師姓名。

2五、查詢95033班和95031班全體學生的記錄。

2六、  查詢存在有85分以上成績的課程Cno.

2七、查詢出「計算機系「教師所教課程的成績表。

2八、查詢「計算機系」與「電子工程系「不一樣職稱的教師的Tname和Prof。

2九、查詢選修編號爲「3-105「課程且成績至少高於選修編號爲「3-245」的同窗的Cno、Sno和Degree,並按Degree從高到低次序排序。

30、查詢選修編號爲「3-105」且成績高於選修編號爲「3-245」課程的同窗的Cno、Sno和Degree.

3一、 查詢全部教師和同窗的name、sex和birthday.

3二、查詢全部「女」教師和「女」同窗的name、sex和birthday.

3三、 查詢成績比該課程平均成績低的同窗的成績表。

3四、 查詢全部任課教師的Tname和Depart.

35 、 查詢全部未講課的教師的Tname和Depart. 

3六、查詢至少有2名男生的班號。

3七、查詢Student表中不姓「王」的同窗記錄。

3八、查詢Student表中每一個學生的姓名和年齡。

3九、查詢Student表中最大和最小的Sbirthday日期值。

40、以班號和年齡從大到小的順序查詢Student表中的所有記錄。

4一、查詢「男」教師及其所上的課程。

4二、查詢最高分同窗的Sno、Cno和Degree列。

4三、查詢和「李軍」同性別的全部同窗的Sname.

4四、查詢和「李軍」同性別並同班的同窗Sname.

4五、查詢全部選修「計算機導論」課程的「男」同窗的成績表。

相關文章
相關標籤/搜索