实验3数据库 数据查询
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、掌握多表查询:嵌套查询的使用。
2、掌握INSERT、UPDATE和DELETE语句的一般格式与使用方法。
3、掌握视图的创建和删除、视图的NSERT、UPDATE和DELETE 的应用
二、实验平台
1、操作系统:Windows XP或Windows 2003
2、数据库管理系统:SQL Server 2005
三、实验内容
实验前,先附加“教务管理系统”,在“教务管理系统”的数据库中进行一下查询:
嵌套查询
1、在“教务管理系统”数据库中,根据相关表的内容,查询平均成绩大于70
的课程信息
select课程名称
from课程信息
where课程编号in
(
select课程编号
from选课表
group by课程编号
having avg(成绩)>70
)
2、从“教务管理系统”数据库中,查询人数超过45人所在班级中的学生的学
号、姓名和班级名称。
select学号,姓名,b.班级编号,班级名称
from学生信息x,班级信息b
where x.班级编号= b.班级编号
and x.班级编号in
(
select班级编号
from班级信息
where人数>45
)
3、在“教务管理系统”数据库中,查询学生姓名为“朱文娟”所在班级的学生
信息,要求返回学生的学号、姓名、性别、班级编号、班级名称和年级信息select学号,姓名,性别,x.年级,b.班级编号,班级名称from学生信息x,班级信息b
where x.班级编号= b.班级编号
and x.班级编号=
(
select班级编号
from学生信息
实验三数据查询
实验三数据查询
《实验三数据查询》实验说明
一、适用专业和课程:计算机专业《数据库》实验学时:2
二、实验目的:
(1) 熟悉SQL Server 2005的交互式SQL工具;
(2) 掌握SELECT语句,能够运用SELECT语句进行数据查询。
三、实验内容:
完成各类查询操作,包括单表查询,连接查询,嵌套查询,集合查询等。
四、实验要求:
(1) 熟练掌握单表的各种查询操作,包括比较、确定范围、确定集合、字符匹配、
多重条件(逻辑运算)等谓词的用法;
(2) 掌握别名的概念、掌握DISTINCT、ALL的使用;
(3) 掌握空值的概念及查询判断条件的表达,了解查询时系统对NULL值的处理;
(4) 掌握使用GROUP BY子句、HAVING子句、ORDER BY子句对查询结果进行排
序和分组;
(5) 掌握SUM、A VG、COUNT、MAX、MIN等集合函数的用法;
(6) 熟练掌握连接查询(自然连接、表内自连接、复合条件连接、多表连接);
(7) 熟练掌握嵌套查询
通过实验验证在子查询的SELECT语句中不能使用ORDER BY子句;
体会相关与不相关子查询的不同;
掌握几类谓词的用法:IN,NOT IN 、带有比较运算符的子查询、带有ANY (SOME)或ALL谓词的查询、带有EXISTS 谓词的查询;
(8) 熟练掌握集合查询;
(9) 保存上机过程中的所有SQL操作,SQL文件命名:姓名学号后四位-3.sql,如
xukai3112-3.sql;
(10) 使用实验二建立的数据库完成上机练习题。
五、实验环境和仪器(软件、硬件):
数据库实验3-SQL语言之数据查询(连接与嵌套查询)
实验三SQL数据查询(连接与嵌套查询)
姓名:学号:
专业:网络工程班级:20网络工程
同组人:无实验日期:
一、【实验目的与要求】
1、熟练掌握SELECT 语句的基本语法格式;
2、熟练掌握使用SQL语句进行嵌套查询和连接查询的使用;
3、熟练掌握使用SQL标准语句和T-SQL扩展语句进行连接查询。
二、【实验内容】
1.实验准备与说明
本实验所涉查询为连接和嵌套,针对具体的问题,需要根据查询条件和目标列,确定数据来源为单表或多表。
在有些查询中,可能会用到另外一个查询的结果作为查询数据来源,这时,只要将子查询当成一个表来看待,也可以将该子查询取一别名,使用别名作为查询操作对象。
本实验及后面实验中所用测试数据库中表的字段及含义如下表:
表-1 测试数据库表的字段及含义
2.连接查询
2.1内连接
(1).查询编号为C2002的客户购买的产品名称、购买数量和产品价格。
请给出相应语句:
Use SalesDB;
select Pname,Scount,Price
from Product,Sales
where o='C2002'and Sales.Pno=Product.Pno;
请给出运行结果:
(2).查询所在城市为“厦门”的客户名称、所购产品名和对应的价格。
请给出相应语句:
select Cname,Pname,Price,City
from Product,Customer,Sales
where Customer.City='厦门'and o=o and Sales.Pno=Product.Pno;
请给出运行结果:
(3).查询名称为“厦门人人乐”的客户编号、客户名称、购买的产品名称和数量。
实验三 数据库查询
实验内容三
实验序号:三实验项目名称:数据库查询2、编写select语句,显示“课程信息表”中的所有字段;
3、在学生档案表中,显示“XXXX.XX.XX”的格式显示出生日期。
5、在教学任务表中列出所有任课教师ID,将重复的记录去掉;
6、在学生档案表中列出所有学生籍贯,将重复的记录去掉;
8、在学生成绩表中,求平时成绩的最大值、最小值、平均值;
11、查询北京学生的学号、课程ID和选课类别;
数据库实验3 数据查询
实验三数据查询
[实验目的]
1.掌握SQL的单表查询操作
2.掌握SQL的连接查询操作
3.掌握SQL的嵌套查询操作
4.掌握SQL的集合查询操作
[实验时数] 2 学时
[实验内容]
本实验的主要内容是:
1.简单查询操作。包括投影、选择条件表达,数据排序,使用临时表等。
2.连接查询操作。包括等值连接、自然连接、求笛卡儿积、一般连接、外连接、内连接、左连接、右连接和自连接等。
3.在SQL Server查询分析器中,使用IN、比较符、ANY或ALL和EXISTS操作符进行嵌套查询操作。
4.组合查询与统计查询。
(1)分组查询实验。该实验包括分组条件表达、选择组条件的表达方法。
(2)使用函数查询的实验。该实验包括统计函数和分组统计函数的使用方法。
(3)组合查询实验。
(4)计算和分组计算查询的实验。
[实验方法]
1.将查询需求用Transact-SQL语言表示。
2.在SQL Server查询分析器的输入区中输入Transact-SQL查询语句。
3.设置查询分析器结果区为Standard Execute(标准执行)或Execute to Grid方式。
4.发布执行命令,查看查询结果;如果结果不正确,进行修改,直到正确为止。
5
查询分析器的主要作用是编辑Transact-SQL,将其发送到服务器,并将执行结果及分析显示出来(或进行存储)。查询分析功能主要是通过测试查询成本,判断该查询是否需要增加索引以提高查询速度,并可以实现自动建立索引的功能。
图5- 错误!未定义书签。SQL Server 2000查询分析器
查询分析器的界面如图5- 错误!未定义书签。所示。在查询生成器中的左边窗口是对象浏览器,其中按树结构列出了数据库对象;右上方是SQL代码区域,用于输入SQL的查询语句;右下方为结果区,用于显示查询结果和分析结果。对于TSQL语句的其执行结果,在结果区中可以有4种不同的输出形式:标准执行将结果直接显示的结果区;网格执行将结果以表格形式显示的结果区;计划执行显示执行计划;索引分析为在结果区中显示查询的索引情况。上述输出形式,可以通过菜单或按钮选择。
数据库-数据查询实验报告
实验报告
课程名称数据库原理与应用实验名称数据查询系别专业班级指导教师
学号姓名实验日期_
实验名称:数据查询
一、实验目的
1.熟悉各种基本的数据查询的含义。
2.掌握数据查询的SQL语句编写方法。
3.能根据要求写出正确的查询语句。
4.掌握基本的调试方法。
二、实验环境
1.硬件环境:微机
2.软件环境:Windows,Sql server2000或更高版本
三、实验内容及步骤
题目根据要求编写以下SQL查询语句
第一题简单查询
1.查询病人表,显示所有病人的病人编号、保险公司名称、电话号码(别名:病人电
话)。
2.查询病人表,显示病人编号、病人姓名(病人姓+病人名)、保险公司名称,并在每
个“电话号码”前面显示字符串“病人电话:”。
3.查询病人表,要求显示保险公司名称,并消除重复的值。
4.查询病人表,要求只显示前五条的全部病人信息。
5.查询病人表,要求显示最年轻的前6位病人的病人编号,病人姓名,病人年龄
6.给医生表取别名:doctors,并显示医生表的所有信息
7.要求查询在“人民保险公司”投保的所有病人的信息
8.要求查询病人年龄在20~60岁之间的所有病人信息
9.要求查询姓“王”、姓“李”或姓“关”的所有病人的信息。(提示:用“in”或者
用“or”两种方法查询。)
10.查询电话号码为空的病人信息
11.要求按年龄从大到小显示病人信息
12.要求先按病人姓的升序;如果姓一样,再按年龄的降序,来显示病人信息
13.要求查询电话号码的最后一个数字为6的病人编号,病人姓名,电话号码
14.要求查询倒数第二个数字为7的病人编号,病人姓名,电话号码。
实验训练3 数据增删改操作作业
实验训练3 数据增删改操作作业
本次实验的目的是通过使用SQL语言完成数据定义、数据查询、更新和删除,以及利用SQL语言提供的INSERT语句、UPDATE语句和DELETE语句对所创建的表进行操作。同时,还将掌握SQL语句进行嵌套查询和多表查询的技能。
在实验过程中,我们需要建立新的数据表,并进行更新操作,包括插入数据、修改数据和删除数据。同时,我们还需要进行单表查询、连接查询和嵌套查询等操作。
为了完成实验,我们需要一台配备好的电脑,并安装好数据库管理系统XXX SQL Server 2008.
具体操作步骤如下:
1.运行数据库SQL sever 2008并新建数据库,并且创建新的表。
2.利用相关语句进行数据查询、更新、删除和修改。
下面是创建供应商表S、零件表P、工程项目表J和供应情况表SPJ的相关代码:
CREATE TABLE S(
SNO CHAR(3)。
SNAME CHAR(10)。
STATUS CHAR(2)。
CITY CHAR(10)
CREATE TABLE P(
PNO CHAR(3)。
PNAME CHAR(10)。
COLOR CHAR(4)。
WEIGHT INT
CREATE TABLE J(
JNO CHAR(3)。
JNAME CHAR(10)。
CITY CHAR(10)
CREATE TABLE SPJ(
SNO CHAR(3)。
PNO CHAR(3)。
JNO CHAR(3)。
QTY INT
接下来是插入数据的代码:
INSERT INTO S VALUES('S001'。'供应商1'。'正常'。'北京');
实验三 数据查询
实验三数据查询
【实验目的】
1.学会使用企业管理器查询数据
2.掌握使用SQL语句查询数据
【实验内容】
1.使用企业管理器进行数据查询
2.在查询分析器内使用SQL语句进行数据查询
【实验准备】
1.复习与本次实验内容相关知识
2.复习查询分析器的使用
3.对本次实验中要求自己完成的部分做好准备(第二部分,请预先写出来) 【实验步骤】
1.用企业管理器进行数据查询
o启动企业管理器,注册连接。
o展开服务器-->展开数据库-->展开自己的数据库-->单击表。
o在需要查询的表上单击右键,在弹出的快捷菜单中选择"打开表(O)",其下级菜单即为查询命令:
▪返回所有行(A) --该命令以网格方式显示指定表的所有
记录
▪返回首行(T)... --该命令以交互方式输入要返回的行数
▪查询(Q) --打开查询窗口,以图形方式设计查询
o
o请从学生表(U_STUDENTS)上右击,使用"查询(Q)"命令建立一个查询,请选中学号(ID)、姓名(NAME)两个字段,再单击上面的执行按钮(!按钮)执行查询,查看结果。
o
o再在关系图窗格内右击鼠标在弹出菜单中选择添加表,添加班级表(U_CLASSES),在班级表的ID字段上按下鼠标左键,拖至学生表的CLASS_ID上建立关联,在班级表上选中班级(CLASS)、系
(DEPARTMENT)字段,再在网格窗格上选择姓名(NAME)行上选择
排序类型为"升序"。执行该查询,查看结果。结果如下图所示。
(注意查看SQL窗格内的SQL查询语句)
o
o该操作实现了从班级表、学生表中查询出所有学生的学号(ID)、姓名(NAME)、班级(CLASS_ID)、所在系(DEPARTMENT)的记录
实验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表。
ACCESS数据库应用实验操作三
实验三 查询1.使用向导,对“商品信息”表创建查询,要求查询中包含“商品号”、“商品名”、“产地”和“供应商”字段。2.使用向导,以“商品信息”表、“销售记录”表和“员工信息”表为数据源表创建查询,要求查询中包含“商品号”、“商品名”、“供应商”、“售价”、“数量”、“销售人”和“姓名”字段,查询名称为“商品信息表 多表查询”。3.使用向导,对“商品信息”表和“销售记录”表创建查询,要求按“商品名”汇总不同商品的销售数量,并要求查询中包含“商品名”、“数量”汇总字段,查询名称为“商品销售数量汇总”。4.对“员工信息”表创建查询,要求包含“工号”、“姓名”和“基本工资”字段,并按照“基本工资”字段降序排序,查询名称为“员工工资降序”。5.修改“员工工资降序”查询,使其添加“岗位”字段。6.创建“商品信息 水果”查询,要求查询结果为“水果”类别的全部商品信息记录,并要求包含“商品信息”表中所有字段。7.创建“员工信息09”查询,要求查询结果为“工号”字段前两位为“09”的全部员工信息记录,并要求包含“员工信息”表中“工号”、“姓名”、“性别”、“岗位”和“基本工资”字段。8.创建“宁夏所产蔬菜”查询,要求查询结果为“产地”是“宁夏”且“类别”是“蔬菜”的全部商品信息记录,并要求包含“商品信息”表中“商品号”、“产地”和“类别”字段。9.创建“采购及销售人员信息”查询,要求查询结果为“岗位”是“采购”或“销售”的全部员工信息记录,并要求包含“员工信息”表中“工号”、“姓名”、“性别”和“岗位”字段。10.创建“进价高于30元商品信息”查询,要求查询结果为“进价”大于30元的全部商品信息记录,并要求包含“商品信息”表中“商品号”、“商品名”、“采购记录”表中“进货单号”、“进价”字段。11.创建“80年代后出生员工”查询,要求查询结果为“出生日期”在1980年1月1日及以后的员工信息记录,并要求包含“员工信息”表中全部字段。
数据库实验三 分组查询
实验三:分组查询和嵌套查询
一、实验目的:
熟练掌握用SQL语句实现多个数据表的分组查询和嵌套查询。
二、实验内容:
(1)分组查询:
1.求各种颜色零件的平均重量。
2.求北京供应商和天津供应商的总个数。
3.求各供应商供应的零件总数。
4.求各供应商供应给各工程的零件总数。
5.求使用了100个以上P1零件的工程名称。
6.求各工程使用的各城市供应的零件总数。
(2)嵌套查询:
1.in连接谓词查询:
①查询没有使用天津供应商供应的红色零件的工程名称。
②查询供应了1000个以上零件的供应商名称。(having)
2.比较运算符:求重量大于所有零件平均重量的零件名称。
3.Exists连接谓词:
①查询供应J1的所有的零件都是红色的供应商名称。
②至少用了供应商S1所供应的全部零件的工程号JNO。
三、完成情况及实验结果
(1)分组查询:
1、select COLOR,avg(WEIGHT) 平均重量
FROM P
GROUP BY COLOR;
2、select CITY,COUNT(CITY) 个数
FROM S
WHERE CITY='北京' or CITY='天津'
GROUP BY CITY
3、select SPJ.SNO,SUM(QTY) 零件总数
FROM S,SPJ
WHERE S.SNO=SPJ.SNO
GROUP BY SPJ.SNO
4、select SPJ.SNO,SPJ.JNO,COUNT(distinct QTY) 零件总数FROM S,SPJ
GROUP BY SPJ.SNO,SPJ.JNO
5、select distinct JNAME
实验3-数据查询
《数据库原理》实验报告
实验名称数据查询实验室实验日期
查询学生的基本信息
查询“CS”系学生的基本信息
查询“CS”系学生年龄不在19到21之间的学生的学号、姓名
找出所有学生中的最大年龄
找出“CS”系年龄最大的学生,显示其学号、姓名找出各系年龄最大的学生,显示其学号、姓名
统计“CS”系学生的人数
统计各系学生的人数,结果按升序排列
按系统计各系学生的平均年龄,结果按降序排列
查询每门课程的课程名
查询无先修课的课程的课程名和学时数
统计无先修课的课程的学时总数
统计每位学生选修课程的门数、学分及其平均成绩
统计选修每门课程的学生人数及各门课程的平均成绩
找出平均成绩在85分以上的学生,结果按系分组,并按平均成绩的升序排列查询选修了“1”或“2”号课程的学生学号和姓名
查询选修了“1”和“2”号课程的学生学号和姓名
查询选修了课程名为“数据库系统”且成绩在60分以下的学生的学号、姓名和成绩查询每位学生选修了课程的学生信息(显示:学号,姓名,课程号,课程名,成绩)
查询没有选修课程的学生的基本信息
查询选修了3门以上课程的学生学号
查询选修课程成绩至少有一门在80分以上的学生学号
查询选修课程成绩均在80分以上的学生学号查询选修课程平均成绩在80分以上的学生学号
六、总结
通过本次实验,我基本掌握了SQL语句中的各种查询方式,简单查询、连接查询、嵌套查询、使用聚合函数的查询、对数据的分组查询、对数据的排序查询等,但是对比较复杂的查询方式,还不能熟练运用,特别是其WHERE条件,有时,还不能够准确描述,这将在以后的练习中有所加强。
数据库实验3_数据库与查询
数据库实验3_数据库与查询
完善学⽣选课数据库,完成规定查询。
1. 将实际数据导⼊到SQL Server中,根据情况修改原来的表结构。包括学⽣名单和课表,见FTP中的Excel⽂件:学⽣选课数据库.xlsx;
导⼊数据后结果如下
根据情况修改原来Student表结构
根据情况修改原来Course表结构
2. 随机插⼊学⽣选课信息和考试分数;
新建⼀个学⽣选课信息和考试分数的excel表,并将其导⼊到数据库中。
运⽤SQL Server语句将上表导⼊到学⽣选课信息和成绩$表中
Insertinto SC Select*from学⽣选课信息和成绩$;
导⼊成功如图所⽰
3. 查询所有男同学的姓名和学号;SQL语句为SELECT姓名,学号FROM名单$ WHERE性别='男';
结果如下图所⽰
4. 查询计算机系⼀班所有同学所有基本信息;SQL语句为SELECT* FROM名单$
WHERE系别='计算机'AND班级='1';
结果如图所⽰
5. 查询20岁以下的同学的学号、姓名和年龄;
SQL语句为SELECT学号,姓名,2012-⽣⽇年龄
FROM名单$
WHERE 2012-⽣⽇<20
执⾏后结果如下:
6. 查询出⽣⽇期在1988年到1995年之间同学的所有基本信息;SQL语句为:SELECT* FROM名单$
WHERE⽣⽇>1988 or⽣⽇<1995
执⾏后结果如下图所⽰:
7. 查询姓张的同学的所有基本信息,按照班级降序排列;SQL语句为:SELECT* FROM名单$
WHERE姓名LIKE'张%'
数据库实验3答案
实验三:交互式SQL语句的使用
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表
CREATE TABLE Student
数据库实验卡3-数据库多表连接查询
天津师范大学软件学院数据库原理实践课程实验卡
实验序号: 3 实验室名称:计信学院实验室
实验名称数据库的连接查询
实验类型验证计划学时 2 人组数 1 首开日期
面向专业(逐个填写)
主要配置仪器设备名称设备规格型号每组台件数
1.计算机 1
2.投影仪 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。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验三数据查询
一、实验目的
关系数据库的查询语句是SQL语言中最灵活的部分,必须仔细体会,多多上机练习,才能真正体会和理解其中的奥妙和细微差别。本实验的目的就是让同学们通过练习掌握常用的查询语句和查询技巧。
请同学们反复练习,即使做对了也要抽时间再一次细细体会。
二、实验预习
1、SQL中查询语句格式:
select[all|distinct]<目标列表达式>[```]
from
where
group by<列名>[having<条件表达式>]
order by<列名>[asc|desc]
2、连接查询有哪些不同的连接方式?有什么特点。
等值于非等值连接查询:连接运算符为=号时为等值连接,使用其他运算符称为非等值连接
自身连接:连接操作不仅可以在两个表之间进行,也可以在一个表与其自己进行连接
外连接:把舍弃的元组也保存在结果关系中,其他属性上填空值
复合条件连接:where中使用多个连接谓词
三、实验内容和要求
在实验二建立的数据库和数据表(Student、SC、Course)的基础上,用SQL语句完成下列查询,并在SQL SERVER中得以验证:
1、查询全体学生的基本信息。(请写出两种方法)
select *
from student;
或
select Sno,Sname,Saex,Sage,Sdept
from student;
2、现需要一个“计算机系”的点名册,点名册上只要学号、姓名、性别三个方面的信息(记得给出别名,好让查询出来的结果容易识别哦)。
Select Sno 学号,Sname 姓名,Ssex 性别
From student;
3、查询“信息系”学生的学号、姓名和出生年份(起个别名,不然查询出来的结果会很难看,不信你试试
看,是不是结果表一点规律都没有?)。
select sno 学号,sname 姓名,2013-Sage 出生年份
from student
where sdept=’计算机’;
4、查询1号课程不及格的学生学号。查询结果按照考试成绩降序排列。Select sno
From sc
Where cno=1 and grade<60
Order by grade desc;
5、查询考试有不及格现象的学生的学号。
Select sno
From sc
Where grade<60;
6、查询一下尚有无考试成绩的学生的学号和相应的课程号。
Select sno,cno
From sc
Where grade=null;
7、查询一下哪些学号的学生,选修了课,但还没有参加考试。
Select sno
From sc
Where cno!=null and grade=null;
8、将全体学生按年龄升序排序(两种写法)。
Select *
From student
Order by sage desc;
或
select Sno,Sname,Saex,Sage,Sdept
from student
order by sage;
9、将全体学生按照系别升序排序,在系名相同的情况下再按照年龄降序排列。Select *
From student
Order by sdept,sage desc;
10、查询年龄在20-23岁之间的学生的学号、姓名、性别、系别。查询结果按照系别升序、年龄升序排列。Select sno,sname,ssex,sdept
From student
Where sage between 20 and 23
Order by sdept,sage;
11、查询“计算机系”姓“张”的学生的基本信息。
Select *
From student
Where sname like ‘张%’and sdept=’计算机’;
12、给0905111班出一个学生点名册。要求给出学号、姓名、性别几个方面的信息。(查询结果照学号升序了吗?不然这点名册会有多么那看啊,你自己试试)。
select sno 学号,sname 姓名,ssex 性别
from student
order by sno;
13、查询课程名中有“数据库“字样的课程的基本信息。
Select *
From course
Where cname like ‘数据库%’;
14、查询选修过课程的学生总人数。
Select count(distinct sno)
From sc;
15、查询已经选修过课程的学生学号和姓名。
Select sname,sc.sno
From student,sc
Where student.sno=sc.sno;
16、查询选修了“数据库原理“这门课程的学生学号、姓名、性别、考试成绩。将结果按照成绩降序排列。Select student.sno,sname,ssex,grade
From student,sc,course
Where student.sno=sc.sno and cname='数据库原理' and o=o
Order by grade desc;
17、查询0905111班学生的选课情况,要求输出选课人的学号、姓名、课程号、课程名、成绩。将查询结果按照学号升序排序。
Select student.sno,sname,o,cname,grade
From student,course,sc
Where student.sno=sc.sno and o=o and left(student.sno,7)=0905111;
18、输出选修了“C5“号课程的的学生成绩单,要求输出学号,姓名,成绩。查询结果按照班级升序、成绩降序排列。
Select student.sno,sname,grade
From student,sc
Where student.sno=sc.sno and o=’C5’
Order by left(student.sno,7),grade desc;
19、查询每个学生的学号、对应的平均成绩。
Select student.sno,avg(grade)
From student,sc
Where student.sno=sc.sno
Group by student.sno;
20、查询每个课程号及其对应的选课人数、考试最高分、最低分、平均分。
Select cno 学号,count(distinct sno) 选课人数,max(grade) 最高分,min(grade) 最低分,avg(grade) 平均分
From sc
Group by cno;
21、查询每个学期及其对应的开课门数、总学分。
Select semester 学期,count(cno),sum(ccredit)
From course;