实验2-数据查询与更新
- 格式:doc
- 大小:432.00 KB
- 文档页数:18
实验二数据查询(4学时)实验目的:(1)掌握SQL语言的数据查询语句实验内容:(1)将学生成绩数据库(XSCJ)导入SQL SERVER 2008,并做如下查询。
(注:数据文件和日志文件从服务器上下载直接导入))1)查询选修了课程的学生的学号;2)查询全体学生的姓名和出生年份,并将列别名改为XM和CSNF;3)查询年龄在18到20(包括18岁和20岁)之间学生的学号、姓名和系。
4)查询信息系(IS)、数学系(MA)和计算机科学系(CS)学生的姓名和性别。
5)用LIKE查询课程名为DB_S程的课程号和学分。
6)查所有有成绩的学生学号和课程号。
7)查询全体学生情况,查询结果按所在系的系号升序排列,同一系中的学生按年龄升序排列8)查询选修了课程的学生人数。
9)计算1号课程的学生平均成绩。
10)查询有3人以上(含3人)同学选修课程的课程号。
11)查询1号课程的间接先修课。
12)查询每个学生的学号、姓名、选修的课程名及成绩。
13)找出每个学生等于他选修课程平均成绩的课程号。
(2)将以下数据录入上次实验建立的BSXT数据库,并完成以下查询。
Teacher(教师表)Topic(选题情况表)1)查询全体学生的学号和姓名和电话。
2)查询全体学生的基本情况。
3)查询带了毕业生的老师的教师号。
4)查询教师“朱龙”基本情况。
5)查询所有姓“王”同学的基本情况。
6)统计每种学历老师的人数。
7)查询1组老师所带毕业生的基本情况(包括学号,姓名,教师号,教师姓名,毕业设计题目)(注:1组老师只能带1组的学生)8)查询所有学生的选题情况(包括没有选题的学生),包括学号,姓名,题目名称,教师名称。
(注:要求老师的组号和学生的组号相一致.)--1) 查询选修了课程的学生的学号;SELECT DISTINCT Sno FROM SC*//*--2) 查询全体学生的姓名和出生年份,并将列别名改为XM和CSNF;SELECT Sname XM,2017-Sage CSNF FROM Student*//*--3) 查询年龄在18到20(包括18岁和20岁)之间学生的学号、姓名和系。
SQL实验⼆:数据库查询实验报告实验⼆数据库的查询实验⼀、实验⽬的和要求(1)掌握SQL Server查询分析器的使⽤⽅法,加深对SQL和Transact-SQL语⾔的查询语句的理解。
(2)熟练掌握简单表的数据查询、数据排序和数据连接查询的操作⽅法。
(3)熟练掌握数据查询中的分组、统计、计算和组合的操作⽅法。
⼆、实验内容和原理在实验⼀定义的“学⽣成绩数据库”中,使⽤T-SQL语句完成以下查询:(1)求计算机系学⽣的学号和姓名。
(2)求选修了数学的学⽣学号、姓名和成绩。
(3)求选修01课程的学⽣学号和成绩,并要求对查询结果按成绩降序排列,如果成绩相同则按学号升序排列。
(4)查找选修课程的平均成绩位于前三名的学⽣的学号。
(5)查询计算机系的姓刘且单名的学⽣的信息。
(6)查询⾄少选修两门课程的学⽣学号。
(7)查询学⽣的学号、课程号以及对应成绩与所有学⽣所有课程的最⾼成绩的百分⽐。
(8)查询选修“数据库”课程,且成绩在80分以上的学⽣的学号和成绩。
(9)查询所有姓“王”的同学没有选修的课程名。
(请分别⽤exists和in完成该查询)(10)查询选修了全部课程的学⽣的姓名。
(请⾄少写出两种查询语句)(11)求选修了学⽣“95001”所选修的全部课程的学⽣学号和姓名。
(12)查询每⼀门课的间接先修课。
(13)列出所有学⽣所有可能的选课情况。
(14)列出每个学⽣的学号及选修课程号,没有选修的学⽣的学号也⼀并列出。
(15)输出与“张三”同性别并位于同⼀个系的所有同学的姓名。
(请⾄少写出两种查询语句)(16)查询⾄少被两名男⽣选修的课程名。
(17)对被两名以上学⽣所选修的课程统计每门课的选课⼈数。
要求输出课程号和选修⼈数,查询结果按⼈数降序排列;若⼈数相同,按课程号升序排列。
(18)列出选修课程超过3门的学⽣姓名及选修门数。
(19)检索⾄少选修课程号为01和03的学⽣姓名。
(20)检索⾄少选修课程“数学”和“操作系统”的学⽣学号。
《数据库系统原理》实验指导书索剑2007-11实验1:数据库模式设计及建立(2学时)实验目的:1.掌握数据库模式设计及建立的方法,建立数据库及关系2.比较SQL命令方式和可视化环境管理器方式设计的异同点3.熟悉 SQL SERVER 的企业管理器和查询分析器实验类型:验证实验内容:1.在SQL Server环境中建立“学生-课程”数据库2.使用SQL语言及可视化环境建立“学生-课程”数据库中的表3.观察“学生-课程”数据库的E-R图、逻辑模式以及文件存储之间的联系操作步骤:1.描述教材P59中所叙述的“学生-课程”数据库概念模式2.仔细分析“学生-课程”数据库关系逻辑模式(尤其是实体完整性、参照完整性规则)Student(学生表):Sno Sname Ssex Sage Sdept95001 李勇男20 CS95002 刘晨女19 IS95003 王敏女18 MA95004 张立男18 IS95005 王强男17 IS95015 张三男20 CS95019 李四男20 CS95020 陈冬男18 ISCourse(课程表):Cno Cname Cpno Ccredit1 数据库 5 42 数学 23 信息系统 1 44 操作系统 6 35 数据结构7 46 数据处理 27 Pascal语言6 4SC(选修表):Sno Cno Grade95001 1 6595001 2 8895001 3 5795001 4 7995001 5 4595001 6 9095001 7 8195002 2 9095002 3 8095002 4 5595003 2 095019 2 6695020 13.熟悉SQL SERVER的企业管理器和查询分析器4.在企业管理器可视化环境下创建“学生-课程”数据库,仔细观察物理模式的形成过程5.在可视化环境下建立如上所述关系模式,建立相应的实体、参照完整性,添加关系数据,仔细观察逻辑模式的形成过程6.启动“查询分析器”,编制SQL语言再次实现上述过程。
实验4 数据查询一、实验目的1.掌握SELECT语句的基本语法和查询条件的表示方法;2.掌握连接查询的表示方法;3.掌握嵌套查询的表示方法;4.掌握数据汇总的方法;5.掌握ORDER BY子句的作用和使用方法;6.掌握HAVING子句的作用和使用方法;二、实验内容使用SELECT查询语句,在数据库StudentCourse的Student表、Course 表和StuCourse 表上进行各种查询,包括单表查询、连接查询、嵌套查询,并进行数据汇总,以及使用GROUP BY子句、ORDER BY子句和HAVING子句对结果进行分组、排序和筛选处理。
1.SELECT语句的基本使用;2.连接查询;3.嵌套查询;4.数据汇总;5.使用GROUP BY 子句对结果分组;6.使用ORDER BY子句对结果排序;7.使用HAVING子句对分组结果进行筛选;思考与练习:1.用SELECT语句查询Course表和StuCourse表中的所有记录。
SQL语句:select * from Course;select * from StuCourse;实验结果:2.用SELECT语句查询Course表和StuCourse表中满足指定条件的一列或若干列。
SQL语句:select 课程号,课程名 from Course where 学分=5;select 学号,课程号 from StuCourse where 成绩>80;实验结果:3.查询所有姓名中包含有“红”的学生的学号及姓名。
SQL语句:select 学号,姓名 from Student where 姓名 like '%红%';实验结果:4.用连接查询的方法查找所有选修了“2001” 或“1002”号课程的学生学号和姓名。
SQL语句:selectdistinct Student.学号,姓名from StuCourse,Studentwhere(课程号='1002'or 课程号='2001')and StuCourse.学号=Student.学号;实验结果:5.用子查询的方法查找所有选修了“2001”或“1002”号课程的学生学号和姓名。
课下实验2-数据查询课后实验2、查询数据库-学生选课系统一、导入学生选课系统数据库JXGL(jxgl.sql)二、JXGL数据库介绍●Students(sno, sname,class,ssex,bday,bplace,mgrade,photo,sfzh,zxf)该表是学生基本信息表其中:sno-学号,sname-姓名,class-班级,ssex-性别,bday-出生日期,bplace-籍贯,mgrade-入学成绩,photo-照片,sfzh-身份证号码,zxf-总学分●Course(cno,cname,cpno,credit)该表是课程情况表其中:cno-课程号,cname-课程名称,cpno-先修课程号,credit—学分●SC(term,sno,cno,grade,point)该表是学生选课成绩表其中:term-学期,sno-学号,cno-课程号,grade-成绩,point-绩点●TC(term,class,cno,tno,period)该表是教师上课情况表其中:list—序号,term-学期;class-班级;cno-课程号;tno-教师编号;period-学时●Teachers (tno,tname,ps,wday,dept,pay,marry,tel,resume)该表是教师基本情况表:其中t no-教师编号;tname-教师姓名;ps-职称;wday-入校日期;dept-系别;pay-工资;marry-婚否;tel—联系电话;resume-简历三、在JXGL数据库中完成以下查询。
(1)查询03物流1学生的详细信息(2)查询“入学成绩”在350到400分之间的学生的姓名和班级(3)查询students表中现有的班级(要求查询结果中班级名称不要重复)(4)查询具有“教授”或“副教授”职称的教师的教师编号和姓名(5)查询姓“陈”,且籍贯是“宁波”的学生的姓名,出生日期,入学成绩(6)查询students表中“09级”的学生信息(7)查询姓名中包含“菲”字的学生的学号、姓名、性别、班级(8)查询教师上课情况表中还没有安排好上课教师的班级和对应的课程号(9)查询全体学生情况,查询结果按所在班级名升序排列,同一班级中的学生按出生日期降序排列(10)统计03物流1班学生“入学成绩”的平均分、最高分、最低分(11)统计students表中的学生人数(12)统计各个班级的学生人数,按统计结果做降序排列(13)统计各门课程的平均成绩,结果显示课程号和平均成绩(14)查询平均成绩80以上的课程编号(15)查询平均成绩75分以上的学生的学号(16)查询教师人数在5人以上的学院,查询结果显示学院名称和教师人数,查询结果按教师人数作降序排列(17)查询选修了课程学生的学号、姓名、所选课程号、课程名称以及取得的成绩(18)查询选修了‘计算机基础’这门课程的学生的学号、姓名、班级、成绩(19)查询和“刘涛”在一个班级的学生的信息思考:可以用什么方法完成本次查询?(20)查询没有选修过任何课程的学生的信息(学号、姓名、班级)思考:还可以用什么方法完成本次查询?(21)查询教师“姚明”给哪些班级上课?(22)查询教师“姚明”上哪些课程,要求查询结果包含课程编号和课程名称?(23)查询学号为“0311102”学生选修所有课程的平均分和总学分(24)查询其他班中比“03计算应用1”所有学生入学成绩高的学生的姓名和入学成绩(25)查询选课门数等于或大于2门的学生的平均成绩和选课门数(26)查询“计算机基础”这门课程的平均成绩(27)查询选修了“0000027”课程,且成绩高于此课程平均成绩的学生的学号和获得的成绩(28)查询既选修了“计算机基础”或者选修了“C语言基础”的学生的学号(29)查询既选修了“计算机基础”又选修了“C语言基础”的学生的学号(30)查询“计算机基础”课程成绩最高的学生的信息。
课程名称数据库原理实验序号 2实验项目数据查询实验地点实验学时实验类型验证性指导教师实验员专业班级学号姓名年月日成绩:A教师该学生本次实验的内容丰富,完成的操作步骤详细具体,实验结果正确,在实验报告的填写中态度十分严谨,对数据分析有自己的见解。
四、实验过程(实验步骤、记录、数据、分析)实验准备:在实验一的基础上(包括数据库的建立、定义表和添加表内容)进行实验,下面分别为depts表、students表、courses表、reports表。
一、简单的选择与投影查询1、无条件查询1.1查询全体学生的详细记录。
这是一个无条件的选择查询,其命令为:其命令为:select * from students运行结果如右图,显示整张表的内容。
1.2查询全体学生的姓名(Sname)、学号(Sno)、所在系(dno)。
这是一个无条件的投影查询,其命令为:select sname,ssexfrom students运行结果如右图,显示了表中的三列。
1.3查询全体学生的姓名(Sname)、出生年份及学号(Sno)。
其命令为:select sno,sname,2017-sage as birth from students运行结果如右图,显示了三列内容。
1.4查询全体学生的姓名、出生年份和学号,要求用小写字母表示学号中的字母。
其命令为:select sname,'birth:' title,YEAR(GETDATE())-sagebirthyear,LOWER(sno) lsnofrom students运行结果如右图,显示了四列内容。
1.5查询选修了课程的学生学号。
其命令为:select distinct snofrom reports运行结果如右图,distinct短语是为了消去查询结果中的重复值。
2、条件查询(1)比较条件1.1查询d03系全体学生的学号(Sno)和姓名(Sname)。
其命令为:select sno,snamefrom studentswhere dno='d03'运行结果如右图,显示了d03系的全体学生姓名与学号。
实验一:建立数据库及基本表实验报告一、实验目的1、了解SQL Server数据库的逻辑结构和物理结构;2、了解SQL Server的基本数据类型;3、学会在企业管理器中创建数据库和表;4、使用SQL查询分析器用CREATE、DROP、ALTER语句创建和删除数据库,创建、删除、更新基本表。
二、实验内容1、创建数据库和查看数据库属性。
2、创建表。
3、查看和修改表结构。
4、熟悉企业管理器和查询分析器工具的使用方法三、实验步骤1、在企业管理器中创建数据库和数据表。
(1)使用企业管理器建立销售数据库,数据库名为sales,初始大小为10MB,最大为50MB,数据库自动增长,增长方式是按5%比例增长;日志文件初始为2MB,最大可增长到5MB,按1MB增长。
数据库的逻辑文件名和物理文件名均采用默认值。
详细步骤:1启动sql server企业管理器,展开服务器,单击“数据库”,选择“操作”菜单中的“新建数据库”。
2单击数据库属性窗口的“常规”选项卡,在“名称”文本框中输入数据库的名称“sales”。
3单击“数据文件”选项卡,此处可以修改数据文件存储的路径。
(将路径修改为:“E:\”)。
4将文件初始大小改为10MB,最大改为50MB,选中“文件自动增长”,增长方式是按5%比例增长。
5单击“事务日志”,修改路径,修改初始大小为2MB,最大改为5MB,选中“文件自动增长”,按1MB增长。
6单击“确定”,完成数据库的创建。
(2)在企业管理器中查看图书管理数据库的属性,并进行修改,使之符合要求。
(3)通过企业管理器,在建好了销售数据库sales中建立职工(employee)、物资(goods)和销售(sell)3个表,其结构为:职工(编号,姓名,性别,部门,电话,地址);物资(商品编号,商品名称,生产厂家,进货价,零售价,数量,进货时间);销售(销售编号,商品编号,数量,售出时间,售货员工编号);创建上述三个表的步骤:1展开服务器,数据库,展开建立数据库所在的数据库。
数据库基础与实践实验报告实验二数据查询班级:惠普测试142学号:**********姓名:***日期:2016-11-061 实验目的:1)掌握针对单张基本表的数据查询方法;2)掌握SQL常用库函数及统计汇总查询方法;3)掌握分组查询方法和结果排序的方法;4)掌握连接查询和嵌套查询的方法。
2 实验平台:操作系统:Windows xp。
实验环境:SQL Server 2000以上版本。
3 实验内容与步骤利用实验一创建的sch_id数据库完成下列查询,并对查询语句的功能进行测试。
1.查询学号s5的同学的姓名和所在系,将查询结果的列名显示为中文。
代码:SELECT sn AS姓名,dn AS所在系FROM S,D WHERE S.sno='S5'AND S.dno=D.dno测试记录:S:D:运行结果截图:2.查询教过课程号为C2或C5的课程的教师的编号(写两个查询语句完成同样的功能)代码::SELECT tno FROM TC WHERE cno='C2'OR cno='C5'SELECT tno FROM TC WHERE cno IN('C2','C5')测试记录:运行结果截图:3.查询学号为S5的同学所学课程的平均成绩。
代码:SELECT A VG(score)AS'平均分'FROM SC WHERE sno='S5'测试记录:运行结果截图:4.查询选过课程号为C1的课程的人数。
代码:SELECT COUNT(*)FROM SC WHERE cno='C1'测试记录:运行结果截图:5.查询计算机系学生的最大年龄,显示系名和最大年龄(查询结果的每列都要有列名且为中文)。
代码:SELECT dn AS系名,MAX(age)AS'最大年龄'FROM S,D WHERE S.dno=D.dno AND D.dn='计算机'GROUP BY dn测试记录:运行结果截图:6.查询所有教过课的老师的人数(教过多门课的同一位老师只计数1次)。