文档库 最新最全的文档下载
当前位置:文档库 › 查询练习作业

查询练习作业

查询练习作业
查询练习作业

一、使用SQL语句创建数据库Neusoft,该数据库中包含以下三个表格:

列名说明数据类型约束

Cno 课程号字符串,长度为10 主码

Cname 课程名字符串,长度为20 非空

Ccredit 学分整数取值大于0

Semster 学期整数取值大于0

Period 学时整数取值大于0

列名说明数据类型约束

Sno 学号字符串,长度为7 主码

Sname 姓名字符串,长度为10 非空

Ssex 性别字符串,长度为2 取‘男’或‘女’

Sage 年龄整数取值15~45

province所属省份字符串,长度为20 默认为‘北京’

Sdept 所在系字符串,长度为20 默认为‘计算机系’

列名说明数据类型约束

Sno 学号字符串,长度为7 主码,引用Student的外码

Cno 课程名字符串,长度为10 主码,引用Course的外码

Grade 成绩整数取值0~100

二、使用Insert语句向数据库表格中添加数据,各个表中的样本数据:

Cno Cname Ccredit Semster Period

c01 数据结构 3 1 64

c02 VB程序设计 2 2 32

c03 计算机网络 4 3 64

c04 数据库原理与应用 4 4 64

c05 高等数学 6 1 64

c06 计算机文化基础 5 3 64

Student表数据样本:

Sno Sname Ssex Sage province Sdept 0750101 李南男19 北京计算机系0750122 王平男20 山东计算机系0750202 王敏女20 河南计算机系0750201 张伟男22 北京信管系0750323 吴会女21 河北信管系0750423 张海男20 山东信管系0750303 董伟女18 天津艺术系0750422 王英男19 北京艺术系

Sno Cno Grade

0750101 c01 90

0750101 c02 89

0750101 c03 76

0750122 c01 88

0750122 c02 89

0750122 c03 77

0750122 c04 67

0750122 c05 69

0750122 c06 79

0750422 c01 78

0750422 c04 68

0750303 c01 78

0750303 c04 87

0750323 c01 80

简单的查询:先建以上的三个表

(1)查询全体学生的学号、姓名,要求按学号进行升序排列。

select Sno,Sname

from Student ORDER BY Sno asc;

(2)查询所有课程信息,要求列的顺序与COURSE表

中的列序一致。

select*

from Course

(3)查询SC表中总成绩小于70分的学生学号,成绩,并给出临时标题。

select Grade as总成绩,Sno

from SC

where Grade<70

(4)查询SC表中所有学生的学号,消除结果集中的重复行。

select distinct Sno from SC;

(5)查询选修了‘c03’号课程且成绩在70分以上的学生学号与成绩。

select Sno,Grade

from SC

where='c03'and>='70';

(6)查询‘c03’号课成绩在70-80分之间的学生学号。select Sno

from SC

where between 70and 80and='c03';

(7)查询‘计算机系’,‘信管系’学生的全部信息。select*

from Student

where='计算机系'or

='信管系';

(8)查询‘c03’号课程成绩加上10分后的学生学号和

成绩,要求给出临时标题。

正确为:select Sno,Grade+10 as'成绩'from Course,SC where=and='C03'

(9)查询‘9512102’号学生所选修的课程和成绩信息。select Cno,Grade

from SC

where Sno='9512102';

(10)查询Student表中前3个记录。

select top 3 *

from Student ;

11)查询名字中含有‘王’字的学生信息。

select*

from Student

where Sname like'%王%';

(12)查询课程名中不含‘数据’字样的课程信息select*

from Course

where Cname not like'%数据%';

(13)查询全体学生的姓名及出生年份。select Sname,Sage

from Student

(14)查询包含‘DB_’的课程信息。select*

from Course

where Cname like'%DB_%'

(15)查询所有成绩为空的学生学号和课号

select Sno,Cno

from SC

where Grade is null

(16)按照学号的升序,课程号的降序查询学生的成绩信息。

select Grade,Sno,Cno

from SC

order by Sno asc,Cno desc;

(17)查询年龄不在20~23之间的学生姓名、所在系和年龄。

select Sname,Sage,Sdept

from Student

where Sage not between 20and 23;

(18)查询名字中第2个字为‘小’或‘大’字的学生的姓名和学号。

select Sname,Sno

from Student

where Sname like'_[大小]';

(19)查询全体学生的信息,查询结果按所在系的系名升序排列,同一系的学生按年龄降序排列。

select Sno,Sname,Sno

from Student

order by Sdept, Sage desc;

20查询学生选修信息表,查询全部填写了成绩的学生的选修信息,并按照“成绩”从高到低进行排序

首先要新建一个<学生选修信息表>,善后进行查询;

select * from 学生选修信息表 order by grade asc;

21、查询<学生信息表>,查询学生"吴会"的全部基本信息

Select * form 学生信息表where name = ‘吴会’

22、查询<学生信息表>,查询学生"张三"和”李四”的基本信息

select*from学生选课信息表where sname='张三'or sname='李四’

23、查询<学生信息表>,查询姓"张"学生的基本信息Select*from学生选课信息表where sname like'张%'

24、查询<学生信息表>,查询姓名中含有"四"字的学生的基本信息

select*from学生选课信息表

where sname like'%四%'

26、查询<学生信息表>,查询姓"张"或者姓”李”的学生的基本信息。

Select*from学生选课信息表

where sname like'%李%'or sname like'%张%'

27、查询<学生信息表>,查询姓"王"并且"所属省份"是"北京"的学生信息

select*from学生选课信息表where sname like'王%'and province='北京'

28、查询<学生选课信息表>,查询"所属省份"是"北京"、”

新疆”、”山东”或者"上海"的学生的信息

select*from学生选课信息表where province='北京'or province='上海'or province='新疆'

29、查询<学生信息表>,查询姓"张",但是"所属省份"不是"北京"的学生信息

select*from学生选课信息表where sname like'张%'and province<>'北京'

30、查询<学生信息表>,查询全部学生信息,并按照“性

别”排序,性别相同的情况下按照“所属省份”排序,所属省份相同的情况下再按照“班级”排序

Select*from学生选课信息表order by Ssex,province,sdept desc

31、查询<学生信息表>,查询现有学生都来自于哪些不同的省份

select province from学生选课信息表

32、查询学生选修信息表,查询没有填写成绩的学生的学号、课程号和成绩

Select*from学生选课信息表where学生选课信息表.grade is null

\四、高级查询

(1) 统计每个系的学生人数。

Select count(Sdept)from Student

(2)查询信管系的最大年龄和最小年龄。

select max(Sage)'最大年龄',min(Sage)'最小年龄'

from Student

where Sdept='信管系'

(3)查询信管系的最大年龄和最小年龄的学生姓名。select min(Sage)from Student where Sdept='信管系' union all

select max(Sage)from Student where Sdept='信管系' and Sdept='信管系'

(4) 统计选修‘C01’课程的学生的最高分,最低分、总成绩及平均分。

select MAX(Grade),min(Grade),sum(Grade),avg(Grade) from SC

相关文档