实验一 sql语言及相关操作及答案1.docx

上传人:b****5 文档编号:6916900 上传时间:2023-01-12 格式:DOCX 页数:14 大小:865.11KB
下载 相关 举报
实验一 sql语言及相关操作及答案1.docx_第1页
第1页 / 共14页
实验一 sql语言及相关操作及答案1.docx_第2页
第2页 / 共14页
实验一 sql语言及相关操作及答案1.docx_第3页
第3页 / 共14页
实验一 sql语言及相关操作及答案1.docx_第4页
第4页 / 共14页
实验一 sql语言及相关操作及答案1.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

实验一 sql语言及相关操作及答案1.docx

《实验一 sql语言及相关操作及答案1.docx》由会员分享,可在线阅读,更多相关《实验一 sql语言及相关操作及答案1.docx(14页珍藏版)》请在冰豆网上搜索。

实验一 sql语言及相关操作及答案1.docx

实验一sql语言及相关操作及答案1

实验一SQL语言及相关操作

一、实验目的

本实验的目的是使学生掌握如何在SQLServerManagementstudio中进行查询分析以及对数据库中的表和数据进行操作,加深对SQL和SQL语言相关操作理解。

熟练掌握数据查询、表的更新等操作方法。

二、实验时数4学时

三、实验内容:

(1)利用SQL语句进行简单查询和连接查询操作。

1.列出所有course的课程号、课程名和学分。

 

2.查询所有蒙古族学生的学号、姓名和所在学院。

3.在score表中显示平均成绩都高于85分的学生学号、课程号和成绩。

4.查询选修课称号为001或005且平均成绩大于等于75分学生的学号、课程号和成绩。

5.查询信息管理学院1991年出生的所有男生的信息。

6.查询所有学生的年龄。

7.查询所有姓王或姓黄的学生的姓名、生日和所在班级名称。

 

8.查询先修课程为”数据结构”的所有课程。

9.查询信息管理学院非汉族同学的学号、姓名、性别及民族。

10.查找选修了“操作系统”的学生学号、成绩和姓名。

11.查找至少选修了一门其直接先修课编号为004的课程的学生学号和姓名。

12.查找至少选修了学号为0800001的学生所选课程的学生学号和姓名。

104

13.查询出生日期在1991年以后的学生的学号、姓名、籍贯和年龄。

14.在student表中查询学生的学号、姓名和平均成绩,并按照平均成绩的降序排列。

15.查找了选修了以“C语言程序设计”为其直接先修课的课程的学生学号、课程号和成绩。

16.在score表中查询平均成绩大于80的学生的学号、课程号和成绩,并先按照课程号的升序、再按照成绩的降序排列。

17.查找信息管理学院学生选课情况,显示学生姓名、课程名和成绩。

18.统计student表中的男女学生的人数。

 

19.查询成绩最高分的学生的学号、课程号和相应成绩。

20.查询选课少于3门的学生的学号及其选课的门数。

(2)利用SQL语句进行表的管理等操作。

1.给class表中的classname字段添加唯一约束。

 

2.给Student表中的sex字段添加检查约束。

3.建立学生会名单表StudentUnion,包含三个字段:

编号SID(char

(2)),姓名studnetName(varchar(20),职务post(char(15))。

4.为StudentUnion表插入两条数据(1,’李小勇’,’学生会主席’),(2,’吴敏’,’文艺部长’)

5.在上题中建立的表StudentUnion中增加一个字段“电话(char(8))”,为电话列添加检查约束,要求每个新加入或修改的电话号码为8位数字。

6.为StudentUnion表增加一个字段“地址(varchar(50))”。

7.在表StudentUnion中的地址字段添加一个默认约束,默认值为“独墅湖高教区仁爱路1号”。

8.把字段职务post的数据类型改为varchar(15)。

9.将计算机科学与技术07-01班的男同学的成绩减去5分。

10.将学号为0800008同学的籍贯修改为厦门。

四、实验目的

请各位同学结合实验内容,写实验的总结,可以写在实验中、学习中遇到的问题,如何解决的,最后学到了哪些知识。

每个同学的总结应该都是不同的,如果发现有雷同的实验报告,都将本次实验成绩作为不及格记录。

完成本次实验后,请根据要求完成实验报告,实验报告要求每一题都配合都准确的截图,截图的大小不能超过实验报告纸的范围且不能把实验报告的头部内容给遮挡住。

--

(1)利用SQL语句进行简单查询和连接查询操作。

--1.列出所有course的课程号、课程名和学分。

selectcourseno,coursename,credithour

fromcourse;

--2.查询所有蒙古族学生的学号、姓名和所在学院。

selectstudentNo,studentName,institute

fromStudent,Class

wherestudent.classNo=Class.classNo;

--3.在score表中显示平均成绩都高于85分的学生学号、课程号和成绩。

select*

fromScore

wherestudentNoin(

selectstudentno

fromScore

groupbystudentNo

havingAVG(score)>85);

--4.查询选修课称号为001或005且平均成绩大于等于75分学生的学号、课程号和成绩。

select*

fromScore

wherecourseNoin('001','005')

andstudentNoin(

selectstudentNo

fromScore

groupbystudentNo

havingAVG(score)>=75);

--5.查询信息管理学院年出生的所有男生的信息。

select*

fromStudent,Class

whereinstitute='信息管理学院'

andsex='男'andYEAR(birthday)=1991;

--6.查询所有学生的年龄。

selectstudentno,YEAR(GETDATE())-YEAR(birthday)asage

fromStudent

--7.查询所有姓王或姓黄的学生的姓名、生日和所在班级名称。

selectstudentName,birthday,classname

fromStudent,Class

whereStudent.classNo=Class.classNo

and(studentNamelike'王%'orstudentNamelike'黄%');

--8.查询先修课程为”数据结构”的所有课程。

selecta.courseno,a.coursename

fromCoursea,Courseb

wherea.priorCourse=b.courseNo

andb.courseName='数据结构';

--9.查询信息管理学院非汉族同学的学号、姓名、性别及民族。

selectstudentNo,studentName,sex,nation

fromStudent,Class

whereStudent.classNo=Class.classNo

andinstitute='信息管理学院'

andnation!

='汉族';

--10.查找选修了“操作系统”的学生学号、成绩和姓名。

selectstudent.studentNo,studentname,Score

fromStudent,course,Score

whereStudent.studentNo=score.studentNo

andCourse.courseNo=score.courseNo

andcourseName='操作系统';

--11.查找至少选修了一门其直接先修课编号为004的课程的学生学号和姓名。

selectscore.studentno,studentname

fromStudent,Course,Score

whereStudent.studentNo=score.studentNo

andscore.courseNo=Course.courseNo

andpriorCourse='004';

--12.查找至少选修了学号为0800001的学生所选课程的学生学号和姓名。

selectscore.studentno,studentname

fromScore,student

wherescore.studentNo=Student.studentNo

andcourseNo>=all(

selectcourseno

fromScore

wherestudentNo='0800001')

--13.查询出生日期在年以后的学生的学号、姓名、籍贯和年龄。

selectstudentno,studentName,native,YEAR(GETDATE())-YEAR(birthday)asage

fromStudent

whereYEAR(birthday)>1991;

--14.在student表中查询学生的学号、姓名和平均成绩,并按照平均成绩的降序排列。

selectscore.studentno,studentName,AVG(score)asavgscore

fromStudent,Score

whereStudent.studentNo=score.studentNo

groupbyscore.studentNo,studentName

orderbyavgscoredesc;

--15.查找了选修了以“C语言程序设计”为其直接先修课的课程的学生学号、课程号和成绩。

selectstudent.studentNo,score.courseNo,score

fromstudent,score,Course

wherestudent.studentNo=score.studentNo

andscore.courseNo=Course.courseNo

andCourse.courseNo=(

selecta.courseNo

fromCoursea,Courseb

wherea.priorCourse=b.courseNo

andb.courseName='C语言程序设计');

--16.在score表中查询平均成绩大于80的学生的学号、课程号和成绩,并先按照课程号的升序、再按照成绩的降序排列。

select*

fromScore

wherestudentNoin(

selectstudentNo

fromScore

groupbystudentNo

havingAVG(score)>80

orderbycourseNo,scoredesc;

--17.查找信息管理学院学生选课情况,显示学生姓名、课程名和成绩。

selectstudentName,courseName,score

fromStudent,Course,Score,class

whereStudent.studentNo=score.studentNo

andCourse.courseNo=score.courseNo

andStudent.classNo=Class.classNo

andinstitute='信息管理学院';

--18.统计student表中的男女学生的人数。

selectsex,count(*)as人数

fromStudent

groupbysex

--19.查询成绩最高分的学生的学号、课程号和相应成绩。

selectstudentNo,courseno,score

fromScore

wherescore=(

selectMAX(score)

fromScore);

--20.查询选课少于门的学生的学号及其选课的门数。

selectstudentno,COUNT(*)as门数

fromScore

groupbystudentno

havingcount(*)<3

--

(2)利用SQL语句进行表的管理等操作。

--1.给class表中的classname字段添加唯一约束。

altertableclassaddconstraintuniqueClassnameunique(classname);

--2.给Student表中的sex字段添加检查约束。

altertablestudentaddconstraintchkSexcheck(sexin('男','女'));

--3.建立学生会名单表StudentUnion,包含三个字段:

编号SID(char

(2)),姓名studnetName(varchar(20),职务post(char(15))。

createtablestudentUnion(

sidchar

(2)primarykey,

studentnamevarchar(20),

postchar(15));

--4.为StudentUnion表插入两条数据(,’李小勇’,’学生会主席’),(,’吴敏’,’文艺部长’)

insertintostudentUnion

values(1,'李小勇','学生会主席');

insertintostudentUnion

values(2,'吴敏','文艺部长');

--5.在上题中建立的表StudentUnion中增加一个字段“电话(char(8))”,为电话列添加检查约束,要求每个新加入或修改的电话号码为位数字。

altertablestudentUnionaddtelephonechar(8);

--6.为StudentUnion表增加一个字段“地址(varchar(50))”。

altertablestudentUnionaddaddressvarchar(50);

--7.在表StudentUnion中给地址字段添加一个默认约束,默认值为“独墅湖高教区仁爱路号”。

altertablestudentUnionaddconstraintdefaultAdddefault'独墅湖高教区仁爱路号'foraddress;

--8.把字段职务post的数据类型改为varchar(15)。

altertablestudentUnionaltercolumnpostvarchar(15);

--9.将计算机科学与技术-01班的男同学的成绩减去分。

updateScore

setscore=score-5

fromscore

wherestudentNoin(

selectstudentNo

fromClass,Student

whereclass.classNo=Student.classNo

andclassName='计算机科学与技术-01班'

andsex='男');

--10.将学号为同学的籍贯修改为厦门。

updatestudent

setnative='厦门'

wherestudentNo='0800008';

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 视频讲堂

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1