实验3 数据查询

合集下载

3数据库查询实验(1)

3数据库查询实验(1)

实验三数据库查询实验(1)数据库的简单查询和连接查询实验课时安排:2课时一、实验目的和要求使学生掌握SQL Server查询分析器的使用方法.加深对SQL和Transact-SQL语言的查询语句的理解。

熟练掌握简单表的数据查询、数据排序和数据联结查询的操作方法。

二、实验内容1 简单查询操作该实验包括投影、选择条件表达、数据排序、使用临时表等。

2 连接查询操作该实验包括等值连接、自然连接、求笛卡尔积、一般连接、外连接、内连接、左连接、右连接和自连接等。

三、实验方法1 将查询需求用Transact-SQL语言表示。

2 在SQL Server查询分析器的输入区中Transact-SQL查询语句。

3 设置查询分析器结果区为Standard Execute(标准执行)或Execute to Grid方式。

4 发布执行命令,查看查询结果.如果结果不正确,进行修改.直到正确为止。

5 查询分析器及使用方法。

查询分析器是在开发数据库应用系统时使用最多的工具。

查询分析器的主要作用是编辑Transact-SQL,将其发送到服务器,并将执行结果及分析显示出来(或进行存储).查询分析功能主要通过测试查询成本,判断该查询是否需要增加索引以提高查询速度,并可以实现自动建立索引的功能。

在查询生成器中的左边窗口是对象测览器,其中按树结构列出了数据库对象;右上方是SQL代码区域.用于输入SQL的查询语句;右下方为结果区,用于显示查询结果和分析结果、对于T-SQL语句的执行结果,在结果区中可以有4种不同的输出形式:标准执行将结果直接显示在结果区网格执行将结果以表格形式显示在结果区.计划执行显示执行计划;索引分析为在结果区中显示查询的索引情况。

上述输出形式,可以通过菜单或按钮选择。

四、实验步骤1 基本操作实验(1)简单查询实验l)用Transact-SQL语句表示下列操作.在学生选课库中实现其数据查询操作.①求数学系学生的学号和姓名。

数据库数据查询实验报告

数据库数据查询实验报告

数据库数据查询实验报告一、实验目的本次实验的目的是熟悉数据库查询的基本操作,包括基础查询、条件查询、排序查询、嵌套查询、分组统计查询等。

二、实验环境本次实验使用MySQL数据库,使用的工具是Navicat for MySQL。

三、实验步骤1、基础查询基础查询即查询表中的所有数据,操作方法如下。

(1)进入查询工具,在“表名”下拉菜单中选择要查询的表。

(2)点击“查询”按钮即可查询出表中的所有数据。

2、条件查询条件查询即根据某些条件筛选出符合条件的数据,操作方法如下。

(1)在“条件”栏中输入筛选条件,如“WHERE name = ‘张三’”,表示筛选出姓名为“张三”的数据。

3、排序查询排序查询即按照某个字段对数据进行排序,操作方法如下。

(1)在“排序条件”中输入排序条件,如“ORDER BY age DESC”,表示按照年龄降序排序。

4、嵌套查询嵌套查询是在查询语句中嵌套另一个查询语句,目的是为了解决多个表之间的关联查询问题。

操作方法如下。

(1)在查询语句中嵌套另一个查询语句,如“SELECT * FROM table1 WHERE id IN (SELECT id FROM table2)”,表示查询出table1表中id在table2表中也存在的数据。

5、分组统计查询分组统计查询即根据某个字段对数据进行分组,再对每组数据进行统计分析,操作方法如下。

(1)在查询语句中使用“GROUP BY”语句对数据进行分组,如“SELECT name, COUNT(*) FROM table GRO UP BY name”,表示按照姓名分组,并统计每组中数据的数量。

四、实验总结本次实验通过对MySQL数据库查询的基本操作进行了学习和实践,掌握了基础查询、条件查询、排序查询、嵌套查询、分组统计查询等知识点。

通过实验的完成,深入了解了数据库查询的方法和技巧,提高了对数据库的应用能力。

实验三 数据查询结果

实验三   数据查询结果

实验三数据查询一、实验目的掌握查询语句的使用方法,重点掌握连接查询和嵌套查询,理解查询的执行过程。

二、预备知识查询语句的基本格式如下:SELECT <目标列名序列> --需要哪些列FROM <数据源> --来自于哪些表[WHERE <检索条件>] --根据什么条件[GROUP BY<分组依据列>] --分组[HA VING <组提取条件>] --筛选[ORDER BY<排序依据列>] --排序三、实验内容1、还原实习二中创建的“gongcheng”数据库和实习一中创建的“学生选课管理”数据库。

2、在“gongcheng”数据库中完成以下查询:(1)查询所有供应商所在的城市。

查询语句:select cityfrom s查询结果:(2)查询零件重量在10-20之间(包括10和20)的零件名和颜色。

查询语句:select pname,colorfrom Pwhere Weight between 10 and 20查询结果;(3)查询工程项目的总个数。

select count(pno)from p查询结果:(4)查询所有零件的平均重量。

select AVG(weight)from p查询结果:(5)查询供应商S3供应的零件号。

select p.pnofrom s,P,spjwhere s.Sno=SPJ.Sno and P.Pno=SPJ.Pno and s.Sno='s3' 查询结果为:(6)查询各个供应商号及其供应了多少类零件。

select s.sno,COUNT(distinct p.pno)from s,P,spjwhere s.Sno=SPJ.Sno and P.Pno=SPJ.Pnogroup by s.sno(7)查询供应了2类以上零件的供应商号。

select s.sno,COUNT(distinct p.pno)from s,P,spjwhere s.Sno=SPJ.Sno and P.Pno=SPJ.Pnogroup by s.snohaving COUNT(distinct p.pno)>2查询结果为:(8)查询零件名以“螺”字开头的零件信息。

实验三数据查询(参考答案)

实验三数据查询(参考答案)

实验三数据查询(参考答案)实验目的□学会利用T_SQL语句中SELECT进行数据查询。

□掌握利用T_SQL 语句进行数据查询的基本方法。

实验内容有以下数据表表名:tudent属性列t_idt_nmt_e某t_birtht_coret_datet_fromt_dpidt_mnt使用T-SQL语句进行数据查询(注:学生班级为学号的前6位)1.显示所有学生的学号、姓名、性别、入学年份和班级(学号前6位)。

Selectt_id学号,t_nm姓名,t_e某性别,year(t_date)入学年份,left(t_id,6)班级Fromtudent2.显示前25%条学生记录信息。

Selecttop25percent某fromtudent3.查询tudent表中2022年及以后入学的学生信息。

Select某fromtudentwhereyear(t_date)>=20224.查询选修了1002号课程且成绩在60以下的学生学号。

Selecttudent.t_idfromtudentjoinlt_coueontudent.t_id=lt_coue. t_idWherec_id='1002'andcore<605.查询所有由三个字组成的“王”姓学生信息。

Select某fromtudentwheret_nmlike'王__'6.查询选修了1001号课程且成绩在60到80之间的学生选课信息。

Select某fromlt_couewherec_id='1001'andcorebetween60and807.查询所有张,王,李,赵姓的学生的学号、姓名、性别。

Selectt_id,t_nm,t_e某fromtudentwheret_nmlike'[张王李赵]%'8.查询陕西籍学生,将结果保存在新表t_han某i。

Select某intot_han某ifromtudentwheret_fromlike'%陕西%'9.查询选修了“数据结构”课程的学生学号、姓名及课程成绩。

实验三SQL(二)SQL语言进行简单查询实验报告范文

实验三SQL(二)SQL语言进行简单查询实验报告范文

实验三SQL(二)SQL语言进行简单查询实验报告范文实验目的:1.掌握SQL查询语句的一般格式2.掌握简单数据查询操作。

3.熟练掌握各种查询条件的表示。

4.掌握排序和分组操作在SQL语句中的实现。

5.掌握集函数的使用。

实验内容;1.创建学生表tudent、课程表coure和选课表SC,并输入数据(注意数据的完整性。

);(可以使用实验一中已经建立的表和数据)2.对各表中的数据进行不同条件的查询;1)查询全体学生的学号和姓名2)3)4)5)6)7)8)9)查询全体学生的详细记录查询所有选修过课程的学生学号查询考试有不及格的学生学号查询不是信息系(IS)、计算机系(CS)的学生性别、年龄、系别查询选修了4号课的学生学号和成绩,结果按成绩降序排列查询每个课程号和相应的选课人数查询计算机系(CS)的学生姓名、年龄、系别查询年龄18-20岁的学生学号、姓名、系别、年龄;10)查询姓刘的学生情况11)查询既选修1号课程,又选修2号课程的学生学号12)查询学生的姓名和出生年份(今年2003年)13)查询没有成绩的学生学号和课程号14)查询总成绩大于200分的学生学号15)查询每门课程不及格学生人数16)查询不及格课程超过3门的学生学号17)查询年龄在10到19岁之间的学生信息18)查询全体学生情况,按所在系升序排列,同一个系的学生按年龄降序排列19)查询选了1号课程的学生平均成绩20)查询选了3号课程的学生的最高分21)查询每个同学的总成绩实验步骤与过程:1.创建学生表tudent、课程表coure和选课表SC,使用实验一中已经建立的表和数据。

2.并输入数据,设置主键。

3.建立索引及三表之间关系。

4.按照SQL语句格式及题目要求输入语句进行以下查询:1、查询全体学生的学号和姓名;2、查询全体学生的详细记录;3、查询所有选修过课程的学生学号;4、查询考试有不及格的学生学号;5、查询不是信息系(IS)、计算机系(CS)的学生性别、年龄、系别;6、查询选修了4号课的学生学号和成绩,结果按成绩降序排列;7、查询每个课程号和相应的选课人数;8、查询计算机系(CS)的学生姓名、年龄、系别;9、查询年龄18-20岁的学生学号、姓名、系别、年龄;10、查询姓刘的学生情况;11、查询既选修1号课程,又选修2号课程的学生学号;12、查询学生的姓名和出生年份(今年2003年);13、查询没有成绩的学生学号和课程号;14、查询总成绩大于200分的学生学号;15、查询每门课程不及格学生人数;16、查询不及格课程超过3门的学生学号;17、查询年龄在10到19岁之间的学生信息;18、查询全体学生情况,按所在系升序排列,同一个系的学生按年龄降序排列;19、查询选了1号课程的学生平均成绩;20、查询选了3号课程的学生的最高分;21、查询每个同学的总成绩实验结果:利用实验一中所建立的表设置主键,建立索引及三表之间关系。

实验三 数据查询

实验三 数据查询

实验三数据查询【实验目的】1.学会使用企业管理器查询数据2.掌握使用SQL语句查询数据【实验内容】1.使用企业管理器进行数据查询2.在查询分析器内使用SQL语句进行数据查询【实验准备】1.复习与本次实验内容相关知识2.复习查询分析器的使用3.对本次实验中要求自己完成的部分做好准备(第二部分,请预先写出来) 【实验步骤】1.用企业管理器进行数据查询o启动企业管理器,注册连接。

o展开服务器-->展开数据库-->展开自己的数据库-->单击表。

o在需要查询的表上单击右键,在弹出的快捷菜单中选择"打开表(O)",其下级菜单即为查询命令:▪返回所有行(A) --该命令以网格方式显示指定表的所有记录▪返回首行(T)... --该命令以交互方式输入要返回的行数▪查询(Q) --打开查询窗口,以图形方式设计查询oo请从学生表(U_STUDENTS)上右击,使用"查询(Q)"命令建立一个查询,请选中学号(ID)、姓名(NAME)两个字段,再单击上面的执行按钮(!按钮)执行查询,查看结果。

oo再在关系图窗格内右击鼠标在弹出菜单中选择添加表,添加班级表(U_CLASSES),在班级表的ID字段上按下鼠标左键,拖至学生表的CLASS_ID上建立关联,在班级表上选中班级(CLASS)、系(DEPARTMENT)字段,再在网格窗格上选择姓名(NAME)行上选择排序类型为"升序"。

执行该查询,查看结果。

结果如下图所示。

(注意查看SQL窗格内的SQL查询语句)oo该操作实现了从班级表、学生表中查询出所有学生的学号(ID)、姓名(NAME)、班级(CLASS_ID)、所在系(DEPARTMENT)的记录数据。

o关闭企业管理器2.用SQL语句查询数据o启动查询分析器o在查询分析器中分别执行下列查询语句(有的语句请自己写出),体会或说明各语句的功能(请将下面的语句复制到查询分析器,逐条执行--要执行一条语句请选中该语句再按F5或单击执行铵钮,如下图所示)。

实验3 数据查询

实验3  数据查询

实验3 数据查询数据查询是数据库的核心操作。

在本实验中,我们学习如何使用SELELCT 查询语句实现单表查询、连接查询、嵌套查询、集合查询及相关操作。

实验3.1 单表查询【实验目的】●熟悉SELECT查询语句各个子句的功能。

●掌握使用SELECT查询语句实现单表查询。

【实验内容】●使用SELECT查询语句对学生管理数据库SCT中三张表(Student、Course、SC)进行单表查询。

●对照教材“3.4.1单表查询”中的例题进行练习。

●Into子句的使用。

【实验步骤】(1)编写SQL语句:SSMS→单击工具栏上的“新建查询”按钮→录入SQL语句。

(2)测试SQL语句:单击工具栏上的“分析”按钮或按<Crtl+F5>组合键对当前SQL语句进行测试,如果语句无误,代码区下方会显示“命令已成功完成”,否则显示错误提示信息。

(3)执行SQL语句:单击工具栏上的“执行”按钮或直接按<F5>键即可执行当前SQL语句,并看到执行结果。

(4)对照教材“3.4.1单表查询”中的例题进行练习,从而熟悉SELECT语句各子句的功能。

示例3.1:查询计算机科学系年龄在20岁以下的学生姓名,见图3.1。

示例3.2:查询平均成绩大于等于90分的学生学号和平均成绩,见图3.2。

图3.1 示例3.1执行结果图3.2 示例3.2执行结果(5)Into子句的使用:在SELECT查询语句中使用into子句,可以把查询结果存放到一个新建立的表中。

示例3.3:利用学生表的数据生成一张女生表gilestudent,见图3.3,之后可在“对象资源管理器”窗格中查看新建的gilestudent表。

图3.3 示例3.3执行结果实验3.2 连接查询连接查询可以使用两种语法形式,一种是在from子句中写出所要连接的表名,而连接条件写在where子句中,从而实现表的连接;另一种是ANSI连接形式,即在from子句中使用join…on关键字,连接条件写在on之后,从而实现表的连接。

实验3数据查询

实验3数据查询

实验3数据查询实验3 数据查询实验目的1、掌握查询语句的基本组成和使用方法;实验内容1、School数据库查询(1) 还原school数据库;RESTORE DATABASE SCHOOL FROM DISK’D:\BACK-UP’;(2) 查询全体学生的信息,将学生按年龄升序排序;SELECT * FROM STUDENTORDER BY SAGE ASC;(3) 查询“信息系”学生的学号,姓名和出生年份;SELECT SNO,SNAME,2016-SAGE AS BIRTH FROM STUDENT WHERE SDEPT=’信息系’;(4) 查询考试不及格的学生的学号;SELECT DISTINCT SNO FROM SCWHERE GRADE<’60’;(5) 查询选修了课程的学生的学号和姓名;SELECT SNO,SNAME FROM STUDENTWHERE SNO IN (SELECT SNO FROM SC )(6) 查询年龄在20-23岁之间的学生的姓名,系,年龄;SELECT SNAME,SDEPT,SAGE FROM STUDENTWHERE SAGE BETWEEN 20 AND 23;(7) 查询同时选修了“计算机导论”,“高等数学”课程的学生的学号,姓名;SELECT * FROM COURSEWHERE CNAME IN(‘高等数学’,’计算机导论’)AND NOT EXISTS(SELECT * FROM SCWHERE SNO=STUDENT.SNO ANDCNO=/doc/3210441014.html,O));(8) 查询姓“张”的学生的基本信息;SELECT * FROM STUDENT ]WHERE SNAME LINKE ‘张%’;(9) 查询选修了课程的学生的总人数;SELECT COUNT(DITINCT SNO) FROM SC;(10) 查询选修了“C05”课程的的学生成绩单,要求输出学号,姓名,成绩,结果按班级升序,成绩降序排列;SELECT SNO,SNAME, GRADE FROM STUDENT,SCWHER E(/doc/3210441014.html,O=’C05’ AND STUDENT.SNO=SC.SNO)ORDER BY LEFT(STUDENT.SNO,5) ASC,GRADE DESC;(11) 统计各门课程的成绩,要求输出课程代号,课程名,平均成绩,选修人数。

数据库原理及应用.实验3.数据查询与更新

数据库原理及应用.实验3.数据查询与更新

数据库原理及应⽤.实验3.数据查询与更新实验报告课程名称:数据库原理及应⽤实验项⽬名称:数据查询与更新实验时间:2021年4⽉12⽇实验⽬的: (1) 观察查询结果, 体会SELECT语句实际应⽤; (2) 要求能够在查询分析器中使⽤SELECT语句进⾏简单查询。

(3) 熟练掌握简单表的数据查询、数据排序和数据连接查询的操作⽅法。

(4) 熟悉使⽤UPDATE/INSERT/DELETE/ALTER语句进⾏表操作;实验环境: MySQL 5.7.33、SQLyog-11.2.4实验内容及过程:在实验2的基础上,完成以下题⽬1. 在查询分析器中⽤SQL语句完成以下题⽬单表查询找出所有供应商的姓名和所在城市。

复制SELECT SNAME,CITY FROM S找出所有零件的名称、颜⾊、重量。

复制SELECT PNAME,COLOR,WEIGHT FROM P找出使⽤供应商S1所供应零件的⼯程号码。

复制SELECT JNO FROM SPJ WHERE SNO='S1'列出所有地址在北京的供应商姓名。

复制SELECT SNAME FROM S WHERE CITY='北京'模糊查询,找出名字包含"螺丝"两个字且颜⾊为红⾊的零件名称。

复制SELECT PNAME FROM PWHERE PNAME LIKE '螺丝_' AND COLOR='红'统计不同城市⼯程项⽬的数量,结果显⽰"城市"、"⼯程项⽬数合计"。

复制SELECT CITY,COUNT(JNO) AS '⼯程项⽬书合计'FROM J GROUP BY CITY连接查询和嵌套查询找出⼯程项⽬J2使⽤的各种零件的名称及其数量。

复制SELECT PNAME,QTYFROM P,SPJWHERE P.PNO=SPJ.PNO AND JNO='J2'找出上海⼚商供应的所有零件号码(要求⽤⾃然连接和嵌套查询两种⽅法)。

数据库查询实验报告

数据库查询实验报告

数据库查询实验报告篇一:数据库数据查询实验报告数据库应用设计实验报告实验名称:_____ 实验3 数据查询______ 实验类型:_________验证型实验_________实验环境:指导教师:__ ____ ___专业班级:__________计科0802班________姓名:____________ ____________学号:_______ ______ ______联系电话:________ ______ _电子邮件:_ _ _实验地点:____________________________实验日期: XX 年 4 月13日实验报告日期: XX 年 4 月17日成绩:__________________________一、实验目的? 掌握查询语句的一般格式;? 熟练掌握单表查询、连接查询、集合查询、统计查询和嵌套查询。

二、实验平台PC机,操作系统为windowsXX,SQLseverXX三、实验步骤、出现的问题及解决方案(不能解决的将问题列出)本次实验同样是在前2次实验的基础上进行的,也就是对上两次做好的实验进行数据查询。

其中包括:单表查询,连接查询,嵌套查询和集合查询。

上两次的代码就不在这里展示了。

在数据库“zjs”中完成查询。

完整代码如下:/*查询全体学生的学号与姓名。

*/select 学号,姓名from 学生表;/*查询每个学生及其选修课程的情况。

*/ select *from 选课表;/*查询所有姓“张”的学生的基本情况。

*/select *from 学生表where 姓名 like '张%';/*查询每一门课的间接先修课(即先修课的先修课)。

*/ select first.课程编号,second.先修课from 课程表 first,课程表 secondwhere first.先修课=second.课程编号;/*查询选修了课程名为“数据库”的学生学号、姓名及所在班级的名称。

实验三SELECT查询

实验三SELECT查询

实验三SELECT查询实验三SELECT查询3.1简单SELECT语句⼀.实验⽬的1.观察查询结果, 体会SELECT语句实际应⽤;2.要求学⽣能够在查询分析器中使⽤SELECT语句进⾏简单查询。

3. 熟练掌握简单表的数据查询、数据排序和数据连接查询的操作⽅法。

⼆.实验内容及步骤所有的查询全部⽤Transact-SQL语句实现1.简单查询操作此部分查询包括投影、选择条件表达、数据排序、使⽤临时表等。

对EDUC数据库实现以下查询:①求计算机系应⽤的学⽣学号和姓名;②求选修了课程的学⽣学号;③求选修0001 课程的学⽣学号和成绩,并要求对查询结果按成绩的降序排列,如果成绩相同则按学号的升序排列;④求选修课程0001 且成绩在80-90 之间的学⽣学号和成绩,并将成绩乘以系数0.75 输出;select sno,score*0.75 from sc where cno='0001'and score between80 and 90⑤求计算机应⽤和数学专业的姓张的学⽣的信息;select*from student where sdept='计算机学院'or sdept='数学学院'⑥求缺少了成绩的学⽣的学号和课程号。

Select sno,cno from sc where score is null2.连接查询操作对EDUC数据库实现以下查询:①查询每个学⽣的情况以及他(她)所选修的课程;SELECT Student.*, cno,scoreFROM Student left JOINSC ON Student.Sno = SC.Sno;select t.Sname,/doc/8752b6067275a417866fb84ae45c3b3567ecddde.html ame from Student tleft join SC s on s.Sno=t.Snoleft join Course c on /doc/8752b6067275a417866fb84ae45c3b3567ecddde.htmlo=/doc/8752b6067275a417866fb84ae45c3b3567ecddde.html o②求学⽣的学号、姓名、选修的课程名及成绩;select t.sno,t.Sname,/doc/8752b6067275a417866fb84ae45c3b3567ecddde.html ame,s.score from Student tjoin SC s on s.Sno=t.Snojoin Course c on /doc/8752b6067275a417866fb84ae45c3b3567ecddde.htmlo=/doc/8752b6067275a417866fb84ae45c3b3567ecddde.html o③求选修0001 课程且成绩在90 分以上的学⽣学号、姓名及成绩;select t.sno,t.Sname,/doc/8752b6067275a417866fb84ae45c3b3567ecddde.html ame,s.score from Student tjoin SC s on s.Sno=t.Snojoin Course c on /doc/8752b6067275a417866fb84ae45c3b3567ecddde.htmlo=/doc/8752b6067275a417866fb84ae45c3b3567ecddde.html o and/doc/8752b6067275a417866fb84ae45c3b3567ecddde.html o='0001'and s.score>=90④查询每⼀门课的间接先⾏课。

SQL数据库实验三_简单查询(1)解答

SQL数据库实验三_简单查询(1)解答
查询结果:
16.在订单数据库中,根据员工的薪水进行分类显示。(薪水小于2000元的,显示“低收入者”,大于等于2000元小于4000元的,显示“中等收入者”,大于等于4000元的,显示“高收入者”。
SQL语句:
SELECTemployeeNo,employeeName,salary,薪水级别=
CASE
FROMEmployee
WHEREyear(hireDate)=1991
查询结果:
其他:
selectemployeeNo,employeeName,sex,telephone=isnull(telephone,'不详'),
birthday=convert(char(10),birthday,120),year(getdate())-year(birthday)asage
fromEmployee
wheredepartment<>'业务科'anddepartment<>'财务科'
12.查询1991年被雇佣的职工号、姓名、性别、电话号码、出生日期以及年龄,如果电话号码为空,显示“不详”,出生日期按yyyy-mm-dd显示。
SQL语句:
SELECTemployeeNo,employeeName,sex,isnull(telephone,'不详')telephone,CONVERT(CHAR(10),birthday,120)birthday,year(getdate())-year(birthday)age
FROMEmployee
WHEREdepartment='业务科'ordepartment='财务科'

实验3-数据查询

实验3-数据查询

《数据库原理》实验报告实验名称数据查询实验室实验日期查询学生的基本信息查询“CS”系学生的基本信息查询“CS”系学生年龄不在19到21之间的学生的学号、姓名找出所有学生中的最大年龄找出“CS”系年龄最大的学生,显示其学号、姓名找出各系年龄最大的学生,显示其学号、姓名统计“CS”系学生的人数统计各系学生的人数,结果按升序排列按系统计各系学生的平均年龄,结果按降序排列查询每门课程的课程名查询无先修课的课程的课程名和学时数统计无先修课的课程的学时总数统计每位学生选修课程的门数、学分及其平均成绩统计选修每门课程的学生人数及各门课程的平均成绩找出平均成绩在85分以上的学生,结果按系分组,并按平均成绩的升序排列查询选修了“1”或“2”号课程的学生学号和姓名查询选修了“1”和“2”号课程的学生学号和姓名查询选修了课程名为“数据库系统”且成绩在60分以下的学生的学号、姓名和成绩查询每位学生选修了课程的学生信息(显示:学号,姓名,课程号,课程名,成绩)查询没有选修课程的学生的基本信息查询选修了3门以上课程的学生学号查询选修课程成绩至少有一门在80分以上的学生学号查询选修课程成绩均在80分以上的学生学号查询选修课程平均成绩在80分以上的学生学号六、总结通过本次实验,我基本掌握了SQL语句中的各种查询方式,简单查询、连接查询、嵌套查询、使用聚合函数的查询、对数据的分组查询、对数据的排序查询等,但是对比较复杂的查询方式,还不能熟练运用,特别是其WHERE条件,有时,还不能够准确描述,这将在以后的练习中有所加强。

七、源程序清单建立S数据库CREATE DATABASE S;建立关系表StudentCREATE TABLE Student( Sno CHAR(9) PRIMARY KEY,Sname CHAR(20),Ssex CHAR(2),Sage SMALLINT,Sdept CHAR(20));建立关系表Coursecreate table Course( Cno char(4) primary key,Cname char(40),Cpno char(4),Ccredit smallint,foreign key (Cpno) references Course(Cno)。

实验三 SQL语言进行简单查询(学生)

实验三  SQL语言进行简单查询(学生)

实验三SQL语言进行简单查询一、实验目的掌握简单数据查询操作。

二、实验内容使用各种查询条件完成指定的查询操作三、实验步骤1、查询选修了课程的学生人数。

select count(*)from sc;2、查询学生200515004选修课程的总学分数。

select sum(credit)from student,course,scwhere student.sno=sc.sno ando=o andstudent.sno='200515004'3、查所有有成绩的学生学号和课程号。

select*from student,scwhere student.sno=sc.sno andgrade is not null;4、查询年龄在20~23岁(包括20岁和23岁)之间的学生的姓名、系别和年龄select sname,sdept,sagefrom studentwhere sage between 20 and 23;5、查询选修了3号课程的学生的学号及其成绩,查询结果按分数降序排列。

select sno,gradefrom scwhere cno='3'order by grade desc6、求哪些学生还没有被分配系?select sno,snamefrom studentwhere sdept is null;7、求CS系中所有男同学的学生姓名和年龄。

select sname,sagefrom studentwhere sdept='cs'andssex='男';8、我校开设的课程中哪些课程名以“数据”两个字开头?select cnofrom coursewhere sdept like'数据%';9、求哪些学生的姓名中第2个字是“立”?select *from studentwhere sname LIKE'_立%'10、求哪些学生的成绩为优秀,求出该学生的学号及相应的课程号。

2021年数据库实验3答案

2021年数据库实验3答案

实验三:交互式SQL语句的使用欧阳光明(2021.03.07)1、实验目的(1)掌握数据库对象的操作过程,包括创建、修改、删除(2)熟悉表的各种操作,包括插入、修改、删除、查询(3)熟练掌握常用SQL语句的基本语法2、实验平台使用SQL Server提供的Microsoft SQL Server Management Studio工具,交互式使用SQL语句。

3 实验内容及要求选择如下一个应用背景之一:●学生选课系统●习题3、4、和5中使用的数据库●其它你熟悉的应用(1)建立一个数据库和相关的表、索引、视图等数据库对象,练习对表、索引和视图的各种操作。

(2)要求认真进行实验,记录各实验用例及执行结果。

(3)深入了解各个操作的功能。

实验要求包括如下方面的内容:3.1 数据定义1.基本表的创建、修改及删除 2.索引的创建3.视图的创建3.2 数据操作完成各类更新操作包括:1.插入数据2.修改数据3. 删除数据3.3 数据查询操作完成各类查询操作1.单表查询2.分组统计3. 连接查询4. 嵌套查询5. 集合查询3.4 数据操作1.创建视图2.视图查询参考示例:建立一个学生选课数据库,练习对表、视图和索引等数据库对象的各种操作。

一、数据定义创建学生选课数据库ST,包括三个基本表,其中Student表保存学生基本信息,Course表保存课程信息,SC表保存学生选课信息,其结构如下表:表1. Student表结构表2. Course表结构表3. SC表结构1.创建、修改及删除基本表(1)创建Student表CREATETABLE Student(Sno CHAR(8)PRIMARYKEY,Sname CHAR(8),Ssex CHAR(2)NOTNULL,Sage INT,Sdept CHAR(20));(2)创建Course表CREATETABLE Course(Cno CHAR(4)PRIMARYKEY,Cname CHAR(40)NOTNULL,Cpno CHAR(4),Ccredit SMALLINT,);(3)创建SC表CREATETABLE SC(Sno CHAR(8)FOREIGNKEY (Sno)REFERENCES Student(Sno), Cno CHAR(4),Grade SMALLINT,);(4)创建员工表EmployeeCREATETABLE Employee(编号CHAR(8)PRIMARYKEY,姓名VARCHAR(8)notnull部门CHR(40),工资numeric(8,2),生日datetime,职称char(20),);指出该语句中的错误并改正后执行。

实验三 数据查询(1)

实验三 数据查询(1)

实验三“教学管理系统”数据查询(1)一、实验内容1、在“教学管理系统”中,所有学生的基本信息都保存在学生信息表TB_Student中,请用SQL查询语句实现以下的查询要求:①查看学生表中所有学生的所有字段的信息;②查看学生表中所有学生的部分字段【StuID,StuName,Sex, ClassID】信息;③按班级查看某个班学生的部分字段【StuID,StuName,Sex, ClassID】信息;④按班级查看某个班学生的部分字段【StuID,StuName,Sex, ClassID】信息,而且先按字段【Sex】降序,再按字段【StuName】进行降序排列。

参考知识及代码:●简单SELECT查询另,两个关键字的学习:2、用计算列显示学生和学生选课信息①用“列别名”显示的【学生姓名】和【性别】字段的数据合成为一个【学生姓名(性别)】字段显示,如下图;②查看“学生信息表”中自己班(如“04网络(1)班”)学生的部分字段【StuID, StuName, Sex】信息,同时显示一个计算列【年龄】;③查看“课程班信息表”中的部分字段【CourseClassID, ClassID, TeacherID, MaxNumber, SelectedNumber】信息参考知识及代码:●试验参考代码:①用“列别名”显示的【学生姓名】和【性别】字段的数据合成为一个【学生姓②查看“学生信息表”中自己班(如“04网络(1)班”)学生的部分字段【StuID, StuName, Sex】信息,同时显示一个计算列【年龄】;③查看“课程班信息表”中的部分字段【CourseClassID, ClassID, TeacherID,3、SUBSTRING函数和LEN函数1)、请写出查询语句,显示“课程班信息表”中上课教师的系部信息和【TeachingTime】字段的字符长度信息,如下图所示:2)、请写出查询语句,显示“课程班信息表”中上课教师的系部信息和【TeachingTime】字段的字符长度信息,如下图所示:4、运用运算符查询学生相关信息①查询自己班级(如04网络(2)班)性别为“男”(或为“女”)的所有学生信息,只显示“学号、姓名、性别和出生年份”字段;②查询自己班级(如04网络(2)班)在某个出生年份段(如19-21岁)的所有学生信息,只显示“学号、姓名、性别和年龄”字段;③要查询一个学生的所有信息。

数据库实验3

数据库实验3

宁波工程学院数据库理论与技术课程实验报告学院:电子与信息工程学院专业:计算机科学与技术年级:实验时间:组名:组长:组员姓名:指导教师签字:成绩:实验三、SQL-数据查询语言一、实验目的和要求1、实验目的:深入理解连接查询和嵌套查询的语句格式、执行过程,掌握它们的使用方法;理解数据更新语言INSERT、UPDATE、DELETE语句的格式和作用,掌握它们的使用方法和应用范围;理解视图的概念,掌握其定义方法和应用方法。

2、实验要求:在每次实验前,学生必须根据实验指导书设计出实验方案(程序和实验步骤);在实验过程中要求独立进行程序调试和排错,学会使用在线帮助来解决实验中遇到的问题,同时运用理论的知识来分析问题和解决问题,记录下实验过程和结果。

上机结束后写出实验报告,并对实验过程进行分析和总结。

二、实验内容与步骤1、在SQL SERVER 2005上附加数据库jxgl和ReadBook。

2、在jxgl中完成下列查询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,resume)该表是教师基本情况表:其中t no-教师编号;tname-教师姓名;ps-职称;wday-入校日期;dept-系别;pay-工资;marry-婚否;resume-简历(1)查询选修课程学生的学号、姓名、所选课程号、课程名称以及所取得的成绩(2)查询每一门课程及其先修课程,查询结果中显示课程号、课程名和先修课程名(3)查询和“刘涛”在一个班级的学生的信息思考:该查询可用几种方法实现?(4)查询选修了…计算机基础‟课的学生的学号、姓名(分别用连接查询和嵌套查询的方法实现)(5)查询没有选修课程的学生的信息(6)查询其他班中比“03计算应用1”所有学生入学成绩高的学生的姓名和入学成绩(用两种方法实现)(7)查询每个学生超过该门课程平均成绩的学号(8)查询至少选修了“0311102”学生所选全部课程的学生的学号(9)查询既选修了“计算机基础”又选修了“C语言基础”的学生的学号3、在jxgl中完成下列数据更新(1)向course表添加一个新的元组。

实验三数据查询(三)

实验三数据查询(三)

实验三(3)数据查询一.实验目的1.通过使用SQL查询分析器(Server Query Analyzer),熟练基本SELECT查询,掌握脚本的修改和执行。

2.通过使用SQL查询分析器(Server Query Analyzer),掌握使用SELECT语句的主要子句,实现数据表的复杂检索。

二.实验要求1. 熟练使用SQL语句实现单表查询。

2. 熟练使用SQL语句实现连接查询。

3. 熟练使用SQL语句实现嵌套查询。

三. 实验准备1. 掌握SQL语句的用法。

2. 已完成实验一、二,成功创建了数据库student和其中包含的表。

四.实验内容(二)SQL复合查询操作:启动“查询分析器”,用Transcat-SQL语句完成指定的操作,或分析并执行Transcat-SQL 语句,观察输出结果。

练习1:查询课程数。

写出查询语句:Select count (*) From course练习2:查询不同学分的个数(学分分为几种)。

写出查询语句:Select Distinct count (credit) From course练习3:查询信息系学生的平均年龄。

写出查询语句:Select AVG(sage) From student Where sdapt=’信息系’练习4:查询计算机系学生选修课程的最高成绩。

写出查询语句:Select MAX(grade) From student,sc Where sc.sno=student.sno and sdept=’计算机系’练习5:查询各个学分及相应的课程数。

写出查询语句:Select COUNT(cno),credit From course group by credit练习6:查询有2门以上课程成绩>=90的学生学号及成绩>=90的课程数。

写出查询语句:Select sno,COUNT(sno) Where sno in(Select sno From sc Where grade>=90 ) group by sno having COUNT(sno)>=2练习7:“数据库原理”课程成绩高于李勇的学生学号和姓名Select sno,sname From sc,course,student Where student.sno=sc.sno and o=course=cno and grade>(Select grade From sc,course,student Where student.sno=sc.sno and o=course=cno and sname=’李勇’ and cname=’数据库原理’)练习8:查询所有与李勇选修相同课程的学生的学号和姓名Select student .sno,sname From sc,student Where sc.sno=student.sno and sname=’李勇’练习9:查询年龄介于李勇的年龄与25岁之间的同学的学号、姓名、年龄Select sno,sname,sage From student Where sage<=25 AND sage>=(Select sage From student Where sname=’李勇’ )。

SQL数据库实验三_简单查询(1)解答

SQL数据库实验三_简单查询(1)解答
查询结果:
其他:
selectemployeeName,department,
case
whensex='M'then'男'
whensex='F'then'女&#
whereemployeeNamelike'张%'
10.查询姓张且全名为三个汉字的职工姓名。
SQL语句:
SELECTemployeeName
9.查询所有姓张的职工姓名、所属部门和性别,且性别显示为“男”或“女”。
SQL语句:
SELECTemployeeName,department,sex=
casesex
WHEN'M'THEN'男'
WHEN'F'THEN'女'
ELSE'不详'
END
FROMEmployee
WHEREemployeeNameLIKE'张%'
whensalary<2000then'低收入者'
whensalary>=2000andsalary<4000then'中等收入者'
whensalary>=4000then'高收入者'
end
fromEmployee
WHEREyear(birthday)=1973ANDheadShip='职员'
查询结果:
其他:
SELECT*
FROMEmployee
WHEREyear(birthday)='1973'ANDheadShip='职员'

数据库实验卡3-数据库多表连接查询

数据库实验卡3-数据库多表连接查询

天津师范大学软件学院数据库原理实践课程实验卡实验序号: 3 实验室名称:计信学院实验室实验名称数据库的连接查询实验类型验证计划学时 2 人组数 1 首开日期面向专业(逐个填写)主要配置仪器设备名称设备规格型号每组台件数1.计算机 12.投影仪 1消耗材料名称每组消耗量消耗材料名称每组消耗量实验项目简介实验目的:通过上机实验验证数据库的多表的连接查询。

实验内容:1、将students数据库还原。

2、在students数据库中,完成以下查询操作,将查询窗口中的命令保存为实验三.sql。

(1)查询计算机系学生的修课情况,要求列出学生的名字、所修课的课程号和成绩,查询结果存入新表t1。

(2)查询“信息管理系”修了“计算机文化学”的学生姓名和成绩,查询结果存入新表t2。

(3)查询所有选修了Java课程的学生情况,列出学生姓名和所在系,查询结果存入新表t3。

(4)统计每个系的学生的考试平均成绩,查询结果存入新表t4。

(5)统计计算机系学生每门课程的选课人数、平均成绩、最高成绩和最低成绩,查询结果存入新表t5。

(6)查询与刘晨在同一个系学习的学生的姓名和所在的系,查询结果存入新表t6。

(7)查询与“数据结构”在同一个学期开设的课程的课程名和开课学期,查询结果存入新表t7。

(8)查询至少被两个学生选的课程的课程号,查询结果存入新表t8。

(9)查询全体学生的选课情况,包括选修了课程的学生和没有选修课程的学生,查询结果存入新表t9。

(10)查询没人选的课程的课程名,查询结果存入新表t10。

(11)查询计算机系没有选课的学生,列出学生姓名和性别,查询结果存入新表t11。

(12)统计计算机系每个学生的选课门数,包括没有选课的学生,查询结果存入新表t12。

(13)查询信息管理系选课门数少于3门的学生的学号和选课门数,包括没有选课的学生。

查询结果按选课门数递增排序,查询结果存入新表t13。

(14)查询考试成绩最高的三个成绩,列出学号、课程号和成绩,查询结果存入新表t14。

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验三数据查询●实验指导——简单查询和连接查询一.实验目的1.观察查询结果, 体会SELECT语句实际应用;2.要求学生能够在查询分析器中使用SELECT语句进行简单查询。

3. 熟练掌握简单表的数据查询、数据排序和数据连接查询的操作方法。

二.实验准备1.完成实验四,成功建立了基本表。

2.了解简单SELECT语句的用法。

3.比较熟悉查询分析器中的SQL脚本运行环境。

三.实验要求1.完成简单查询和连接查询操作,并验收实验结果提交实验报告四.实验内容CREATE TABLE student1(sno char(8)PRIMARY KEY,--学号(主键)sname char(8)NOT NULL,--姓名ssex char(2),--性别sage char(2),--年龄sdept char(6),--所在院系)CREATE TABLE course1(cno char(10)PRIMARY KEY,--课程编号(主键)cname char(20)NOT NULL,--课程名称cpno char(2),--先行课credit tinyint--课程学分)CREATE TABLE sc(sno char(8),--学号(主键)cno char(10),--课程编号(主键)grade char(3),--成绩primary key(sno,cno))所有的查询全部用Transact-SQL语句实现1.简单查询操作此部分查询包括投影、选择条件表达、数据排序、使用临时表等。

对EDUC数据库实现以下查询:①求计算机系的学生学号和姓名;SELECT sno,snamefrom student1where sdept='CS';②求选修了课程的学生学号;SELECT distinct snofrom scwhere cno is not null;③求选修C1 (数学)课程的学生学号和成绩,并要求对查询结果按成绩的降序排列,如果成绩相同则按学号的升序排列;SELECT sno,gradefrom course1,scwhere o=o and cname='数学'order by grade desc,sno asc;④求选修课程C1 (数学)且成绩在80-90(85)之间的学生学号和成绩,并将成绩乘以系数0.75 输出;SELECT sno,gradefrom course1,scwhere o=o and cname='数学'and grade between80 and 85;⑤求计算机系(CS)和数学系(IS)的姓张的学生的信息;SELECT*from student1where sdept in('CS','IS')and sname like'张%';⑥求缺少了成绩的学生的学号和课程号。

SELECT sc.sno,cnofrom student1,scwhere student1.sno=sc.sno and grade is null;⑦将2000以后的成绩大于90分的学生成绩存入永久成绩表;将2000年以前的成绩存入临时成绩表中。

2.连接查询操作对EDUC数据库实现以下查询:①查询每个学生的情况以及他(她)所选修的课程;SELECT student1.*,ofrom student1,scwhere student1.sno=sc.sno;②求学生的学号、姓名、选修的课程名及成绩;SELECT student1.sno,student1.sname,ame,sc.gradefrom student1,sc,course1where student1.sno=sc.sno and o=o;③求选修C1(数学) 课程且成绩在90 分以上的学生学号、姓名及成绩;SELECT sc.sno,student1.sname,sc.gradefrom student1,scwhere student1.sno=sc.sno and grade>90;④查询每一门课的间接先行课。

SELECT o,c2.cpnofrom course1 c1,course1 c2where c1.cpno=o;●实验指导——子查询一.实验目的1.掌握子查询的表示。

2.进一步掌握SQL Server 查询分析器的使用方法,加深对SQL 语言的嵌套查询语句的理解二.实验准备1.掌握SQL语句的基本语法,并熟悉查询分析器的工作环境。

2.完成了实验二,创建了数据库EDUC及各个基本表。

3.了解子查询的表示方法,熟悉IN 比较符、ANY、EXISTS操作符的用法。

三.实验要求1.在实验开始之前做好准备工作。

2.完成实验,并验收实验结果提交实验报告。

四.实验内容1.在数据库EDUC中实现一下查询:1)求选修了高等数学(数学)的学生学号和姓名;select distinct sc.sno,student1.snamefrom student1,scwhere sc.sno=student1.sno;2)求C1 (数学)课程的成绩高于张三(李勇)的学生学号和成绩;select sc.sno,sc.gradefrom course1,scwhere grade>(select sc.gradefrom student1,sc,course1where student1.sno=sc.sno and o=o and sname='李勇'and cname='数学')and o=o and cname='数学';3)求其他系中比计算机系(CS)某一学生年龄小的学生信息(即求其它系中年龄小于计算机系年龄最大者的学生);select student1.*from student1where sage <any(select sagefrom student1where sdept='CS')and sdept not in('CS');4)求其他系中比计算机系学生年龄都小的学生信息;select student1.*from student1where sage <all(select sagefrom student1where sdept='CS')and sdept not in('CS');5)求选修了C2 (数据库)课程的学生姓名;select student1.snamefrom student1,sc,course1where student1.sno=sc.sno and o=o and cname='数据库';select snamefrom student1where exists(select sc.*from sc,course1where o=o and sno=student1.sno and cname ='数据库');6)求没有选修C2 (数据库)课程的学生姓名;select snamefrom student1where not exists(select sc.*from sc,course1where o=o and sno=student1.sno and cname ='数据库');7)查询选修了全部课程的学生的姓名;select snamefrom student1where not exists(select*from course1where not exists(select*from scwhere sno=student1.sno and cno=o));8)求至少选修了学号为“S2”()的学生所选修的全部课程的学生学号和姓名。

select sno,snamefrom student1where not exists(select*from sc xwhere x.sno='200215122'andnot exists(select*from sc ywhere sno=student1.sno and o=o));2.提高操作实验建立“工程-零件”数据库及如下4个表,并输入实验数据,用SQL语句实现如下三个查询:1)求供应项目j4红色零件的供应商号及名称select spj.供应商代码,s.姓名from s,p,spjwhere s.供应商代码=spj.供应商代码andp.零件代码=spj.零件代码andspj.工程代码='j4'andp.颜色='黑色';2)求没有使用上海供应商供应的零件的项目号select j.工程代码from jwhere j.工程代码not in(select spj.工程代码from s,spjwhere spj.供应商代码=s.供应商代码ands.姓名like'上海供应商_')3)至少使用了供应商S5所供应全部零件的项目号。

select j.工程代码from jwhere not exists(select*from spj xwhere x.供应商代码='s5'andnot exists(select*from spj ywhere工程代码=j.工程代码and x.零件代码=y.零件代码));表结构如下:供应商(S):①应商表:供应商代码为主码alter table p add foreign key(零件代码);②工程表:工程代码为主码③零件表:零件代码为主码④供应零件表:供应商代码、工程代码、零件代码为联合主码;供应商代码为外码,参照表、列是供应商表的供应商代码列;工程代码为外码,参照表、列是工程表的工程代码列;零件代码为外码,参照表、列是零件表的零件代码列alter table spj add constraint零件代码foreign key(零件代码)references p(零件代码);实验数据如下:供应商:●实验指导——使用子句的SELECE语句一.实验目的1. 熟练掌握数据查询中的分组、统计、计算和组合的操作方法。

2. 进一步掌握SQL Server 查询分析器的使用,加深对SQL 语言的嵌套查询语句的理解。

二.实验准备1.了解SELECT语句的GROUP BY和ORDER BY子句的作用。

2.了解统计函数和分组统计函数的使用方法。

3.熟悉查询分析器的运行环境。

三.实验要求1.在实验之前做好准备。

2.完成实验,并验收实验结果提交实验报告。

四.实验内容所有查询都全部用SQL语句实现1.在数据库EDUC中实现如下查询1)求学生的总人数。

相关文档
最新文档