实验三 数据查询000
数据库实验三
数据库实验三《数据查询与操作》实验一、实验目的与要求1、掌握多表查询:嵌套查询的使用。
2、掌握INSERT、UPDATE和DELETE语句的一般格式与使用方法。
3、掌握视图的创建和删除、视图的NSERT、UPDATE和DELETE 的应用二、实验平台1、操作系统:Windows XP或Windows 20032、数据库管理系统:SQL Server 2005三、实验内容实验前,先附加“教务管理系统”,在“教务管理系统”的数据库中进行一下查询:嵌套查询1、在“教务管理系统”数据库中,根据相关表的内容,查询平均成绩大于70的课程信息select课程名称from课程信息where课程编号in(select课程编号from选课表group by课程编号having avg(成绩)>70)2、从“教务管理系统”数据库中,查询人数超过45人所在班级中的学生的学号、姓名和班级名称。
select学号,姓名,b.班级编号,班级名称from学生信息x,班级信息bwhere x.班级编号= b.班级编号and x.班级编号in(select班级编号from班级信息where人数>45)3、在“教务管理系统”数据库中,查询学生姓名为“朱文娟”所在班级的学生信息,要求返回学生的学号、姓名、性别、班级编号、班级名称和年级信息select学号,姓名,性别,x.年级,b.班级编号,班级名称from学生信息x,班级信息bwhere x.班级编号= b.班级编号and x.班级编号=(select班级编号from学生信息where姓名='朱文娟')4、在“教务管理系统”数据库中,查询出所有非计算机系的学生信息,并显示出这些学生的考试成绩,再按成绩进行降序排列显示,要求返回学生的学号、姓名、班级编号、课程编号和成绩信息。
select学生信息.学号,姓名,班级编号,课程编号,成绩from学生信息left join选课表on学生信息.学号=选课表.学号where学生信息.班级编号<>(select班级编号from班级信息where班级名称 LIKE '计算机%')数据更新(一)添加教务信息1、在2003年级中创建一个新班级,编号为20031340000200、班级名称为“环境与科学”、班级人数为60、班主任为“张浩”。
实验三 数据查询结果
实验三数据查询一、实验目的掌握查询语句的使用方法,重点掌握连接查询和嵌套查询,理解查询的执行过程。
二、预备知识查询语句的基本格式如下: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.查询选修了“数据结构”课程的学生学号、姓名及课程成绩。
数据库原理实验报告(数据查询)
数据库原理实验报告实验三数据查询班级:×××姓名:×××学号:×××数据查询一、[实验目的]1.掌握SQL的单表查询操作2.掌握SQL的连接查询操作3.掌握SQL的嵌套查询操作4.掌握SQL的集合查询操作二、[实验内容]本实验的主要内容是: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的查询语句;右下方为结果区,用于显示查询结果和分析结果。
实验三 数据查询(参考答案)
实验三数据查询实验目的□学会利用T_SQL语句中SELECT进行数据查询。
□掌握利用T_SQL语句进行数据查询的基本方法。
实验内容有以下数据表使用T-SQL语句进行数据查询(注:学生班级为学号的前6位)1.显示所有学生的学号、姓名、性别、入学年份和班级(学号前6位)。
Select st_id 学号,st_nm 姓名,st_sex 性别,year(st_date)入学年份,left(st_id,6)班级From student2. 显示前25%条学生记录信息。
Select top 25 percent*from student3. 查询student表中2008年及以后入学的学生信息。
Select*from student where year(st_date)>=2008 4. 查询选修了1002号课程且成绩在60以下的学生学号。
Select student.st_id from student join slt_couse on student.st_id= slt_couse.st_idWhere cs_id='1002'and score<605. 查询所有由三个字组成的“王”姓学生信息。
Select*from student where st_nm like'王__' 6.查询选修了1001号课程且成绩在60到80之间的学生选课信息。
Select*from slt_couse where cs_id='1001'and score between 60 and 807. 查询所有张,王,李,赵姓的学生的学号、姓名、性别。
Select st_id,st_nm,st_sex from studentwhere st_nm like'[张王李赵]%'8. 查询陕西籍学生,将结果保存在新表st_shanxi。
Select*into st_shanxifrom studentwhere st_from like'%陕西%'9. 查询选修了“数据结构”课程的学生学号、姓名及课程成绩。
实验3 查询表中的数据 实验报告
广西民族大学实 验 报 告学院:信息科学与工程学院班级 11电本 姓名 叶华林 学号 111263010308 分数 同组实验者 实验日期 2014.11.03. 指导老师 王永 实验名称 查询表中的数据一、实验目的:掌握SQL的多表查询(等值和非等值连接查询);掌握SQL的分组查询。
二、实验步骤:注意,首先在C盘根目录创建文件夹Teaching,执行下边的SQL脚本,创建数据库、表,并向表中导入实验数据:--创建数据库TeachingDBUSE masterGOIF EXISTS(SELECT*FROM sys.databases WHERE name='TeachingDB')DROP DATABASE TeachingDBGOCREATE DATABASE TeachingDBON PRIMARY(NAME=PFile1,FILENAME='C:\Teaching\PFile1Data.mdf',SIZE=4MB,MAXSIZE=50MB,FILEGROWTH=1MB),FILEGROUP UGroup1(NAME=G1File1,FILENAME='C:\Teaching\G1File1Data.ndf',SIZE=2MB,MAXSIZE=50MB,FILEGROWTH=1MB),(NAME=G1File2,FILENAME='C:\Teaching\G1File2Data.ndf',SIZE=2MB,MAXSIZE=50MB,FILEGROWTH=1MB),FILEGROUP UGroup2(NAME=G2File1,FILENAME='C:\Teaching\G2File1Data.ndf',SIZE=1MB,MAXSIZE=50MB,FILEGROWTH=1MB)LOG ON(NAME=LogFile1,FILENAME='C:\Teaching\LogFile1.ldf',SIZE=2MB,MAXSIZE=50MB,FILEGROWTH=1MB)GO--将UGroup1修改为默认文件组ALTER DATABASE TeachingDBMODIFY FILEGROUP UGroup1 DEFAULTGO--创建一个数据类型,用于存放姓名。
实验三 数据库中的数据查询及视图操作实验报告
实验三数据库中的数据查询及视图操作实验报告实验三数据库中的数据查询及视图操作实验报告一、实验目的本实验的主要目的是熟悉数据库中的数据查询和视图操作。
通过本实验,我们可以掌握使用SQL语句进行数据查询和创建视图的方法,进一步提高对数据库的操作能力。
二、实验环境本实验使用MySQL数据库管理系统,并在Windows操作系统下进行实验。
三、实验内容本实验主要包括以下内容:1. 数据查询:使用SELECT语句查询数据库中的数据,并进行排序、过滤和聚合操作。
2. 视图操作:创建和删除视图,以及对视图进行查询和更新操作。
四、实验步骤与结果1. 数据查询首先,我们需要连接到数据库,并选择要查询的表。
假设我们选择的表名为"students",包含以下字段:学号、姓名、性别、年龄、班级。
a. 查询所有学生的信息:```sqlSELECT * FROM students;```执行以上SQL语句后,我们可以得到所有学生的信息,包括学号、姓名、性别、年龄和班级。
b. 查询男生的信息:```sqlSELECT * FROM students WHERE 性别 = '男';```执行以上SQL语句后,我们可以得到所有性别为男的学生的信息。
c. 查询年龄小于20岁的学生的姓名和班级:```sqlSELECT 姓名, 班级 FROM students WHERE 年龄 < 20;```执行以上SQL语句后,我们可以得到年龄小于20岁的学生的姓名和班级。
d. 查询学生按照年龄降序排列的结果:```sqlSELECT * FROM students ORDER BY 年龄 DESC;```执行以上SQL语句后,我们可以得到按照年龄降序排列的学生信息。
e. 查询学生按照班级分组,并统计每个班级的人数:```sqlSELECT 班级, COUNT(*) AS 人数 FROM students GROUP BY 班级;```执行以上SQL语句后,我们可以得到每个班级的人数统计结果。
数据库基础——数据查询
实验三 数据查询(一)1. 实验目的(1) 掌握选择查询和参数查询的创建、修改与运行。
(2) 理解表间关系在多表查询中的作用。
(3) 熟悉查询设计视图的使用。
(4) 通过所设计查询理解SQL 查询语句的基本语法和语义。
2. 实验内容基于实验一,在“学生管理”数据库中,完成下列任务。
(每题10分)(1)创建选择查询。
根据“入学”表,查询所有男学生的入学成绩,查询结果按入学成绩降序排列,查询结果包含“学号”、“姓名”、“性别”、“班级”和“入学成绩”5列数据,所建查询命名为“选择:男生入学成绩”。
(关键点:在性别字段下方条件栏中输入’男’,在入学成绩字段的排序栏设置降序)。
(2)创建选择查询。
根据“学生”表,查询会计专业所有学生的年龄,查询结果包含“学号”、“姓名”、“性别”、“班级”和“年龄”5列数据,所建查询命名为“选择:会计专业学生年龄”。
(关键点:在班级字段的条件栏中设置“会计*”,在年龄列位置输入“年龄:Year(now())-Year([出生日期])”(3)创建选择查询。
根据“入学”表,查询各班学生的平均入学成绩,查询结果包含“班级”和“平均入学成绩”2列数据,并按平均入学成绩升序排列,所建查询命名为“选择:各班平均入学成绩”。
(关键点:在班级字段中单击右键,选择总计,在总计栏选择分组,修改入学成绩字段如下:平均入学成绩:round(A VG([入学成绩]),0)(4)创建选择查询。
根据“入学”表,查询入学成绩不低于600分的男女生人数,查询结果包含“性别”和“人数”2列数据,所建查询命名为“选择:过600分男女生人数”。
(关键点:设置两个性别字段,在第一个性别字段下总计选:分组,修改第二性别字段为:人数:性别,在其下的总计栏中选择:计数,入学成绩字段下的总计栏设置为条件,入学成绩字段下的条件栏中设置>=600)(5)创建选择查询。
根据“学生”表和“成绩”表查询每个学生已修课程的门数和平均分,查询结果包含“学号”、“姓名”、“班级”、“已修课程门数”和“平均分”,查询结果按班级升序排列,所建查询命名为“选择:修课数量与平均分”。
实验三 数据查询
实验三数据查询【实验目的】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 数据查询数据查询是数据库的核心操作。
在本实验中,我们学习如何使用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 数据查询实验目的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数据库 数据查询
实验三数据查询一、实验目的关系数据库的查询语句是SQL语言中最灵活的部分,必须仔细体会,多多上机练习,才能真正体会和理解其中的奥妙和细微差别。
本实验的目的就是让同学们通过练习掌握常用的查询语句和查询技巧。
请同学们反复练习,即使做对了也要抽时间再一次细细体会。
二、实验预习1、SQL中查询语句格式:select[all|distinct]<目标列表达式>[```]fromwheregroup by<列名>[having<条件表达式>]order by<列名>[asc|desc]2、连接查询有哪些不同的连接方式?有什么特点。
等值于非等值连接查询:连接运算符为=号时为等值连接,使用其他运算符称为非等值连接自身连接:连接操作不仅可以在两个表之间进行,也可以在一个表与其自己进行连接外连接:把舍弃的元组也保存在结果关系中,其他属性上填空值复合条件连接:where中使用多个连接谓词三、实验内容和要求在实验二建立的数据库和数据表(Student、SC、Course)的基础上,用SQL语句完成下列查询,并在SQL SERVER中得以验证:1、查询全体学生的基本信息。
(请写出两种方法)select *from student;或select Sno,Sname,Saex,Sage,Sdeptfrom student;2、现需要一个“计算机系”的点名册,点名册上只要学号、姓名、性别三个方面的信息(记得给出别名,好让查询出来的结果容易识别哦)。
Select Sno 学号,Sname 姓名,Ssex 性别From student;3、查询“信息系”学生的学号、姓名和出生年份(起个别名,不然查询出来的结果会很难看,不信你试试看,是不是结果表一点规律都没有?)。
select sno 学号,sname 姓名,2013-Sage 出生年份from studentwhere sdept=’计算机’;4、查询1号课程不及格的学生学号。
数据库实验3-SQL语言之数据查询(简单查询)
实验三SQL数据查询(简单查询)姓名:学号:专业:网络工程班级:20网络工程同组人:无实验日期:【实验目的与要求】1、熟练掌握SELECT 语句的基本语法格式;2、熟练掌握使用SQL语句进行单表查询,掌握GROUP BY子句、HA VING 子句和集函数;3、熟练掌握使用SQL标准语句和T-SQL扩展语句进行连接查询。
【实验内容】3.0. 实验准备与说明本实验将用到实验二中数据库SalesDB和相应的表及数据,若该数据库及表尚未创建,或数据尚未录入,则请先完成之。
请根据前面实验创建的表结构和数据,完成如下查询。
本实验及后面实验中所用测试数据库中表的字段及含义如下表:表-1 测试数据库表的字段及含义3.1.简单查询(1).查询各种产品的产品编号、产品名称和价格。
请给出相应语句:USE SalesDB;SELECT Pno,Pname,Price FROM Product;请给出运行结果:(2).查询所在城市为“厦门”的客户编号和客户名称,结果中各列的标题分别指定为:“客户编号”和“客户名称”显示。
请给出相应语句:SELECT Cno as客户编号,Cname as客户名称FROM Customer WHERE City='厦门';请给出运行结果:(3).查询各产品编号、名称、库存量和产品总值。
(总值:价格与库存数量的积)请给出相应语句:SELECT Pno,Pname,Price ,Stocks FROM Product;SELECT SUM(Price*Stocks)as产品总值FROM Product;请给出运行结果:(4).查询曾购买过产品的客户编号(不重复)。
请给出相应语句:SELECT Cno FROM Customer;请给出运行结果:(5).查询价格在1000-2000的产品信息,并依价格由低到高的顺序排序。
(请使用Between…and和算术比较运算符分别实现)a.使用Between…and比较实现:请给出相应语句:use SalesDB;select*from Productwhere Price between 1000 and 2000order by Price;请给出运行结果:b.使用算术比较实现:请给出相应语句:use SalesDB;select*from Productwhere Price >= 1000 and Price<=2000order by Price;请给出运行结果:(6).查询产品名称含有“热水器”的产品信息。
实验三 数据查询(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
宁波工程学院数据库理论与技术课程实验报告学院:电子与信息工程学院专业:计算机科学与技术年级:实验时间:组名:组长:组员姓名:指导教师签字:成绩:实验三、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=’李勇’ )。
实验三查询数据库原理实验
实验三查询数据库原理实验西安石油大学实验报告课程数据库原理与应用实验名称查询数据库院系___计算机___专业班级_ 姓名__学号0202实验日期 2013 年 11 月 5 日 10月29日 11月12日实验报告日期 2013 年 11月 12日1.实验目的1)熟悉SQL Server 查询分析器环境。
2)掌握基本的SELECT查询及其相关子句的使用。
3)掌握复杂的SELECT查询,如多表查询、子查询、连接和联合查询。
2.实验内容1) 启动SQL Server 查询分析器环境。
2) 简单查询操作。
该实验包括投影、选择条件表达,数据排序,使用临时表等。
具体完成以下题目,将它们转换为SQL语句表示,在XSCJ数据库中实现其数据查询操作。
a) 查询计算机系学生的学号和姓名b) 查询选修了课程的学生学号c) 查询选修课程号为‘101’的学号和成绩,并要求对查询结果按成绩的降序排列,如果成绩相同按学号的升序排列。
d) 查询选修课程号为‘101’且成绩在80~90之间的学生学号和成绩,并成绩乘以输出。
e) 查询水利系或计算机系姓陈的学生的信息。
f) 查询缺少了成绩的学生的学号和课程号g) 在KC表中查询学分低于3的课程信息,并按课程号升序排列。
h) 查询全体学生的姓名, 出生年份,和所在系i) 查询计算机, 经济系的所有学生的姓名和性别j) 查询没有先行课的课程的课程号和课程名3) 连接查询操作。
该实验包括等值连接、自然连接、求笛卡儿积、一般连接、外连接、内连接、左连接、右连接和自连接等。
a) 查询107号课程不及格的学生信息(学号,姓名,联系电话)。
b) 查询学生的学号、姓名、选修的课程号及成绩c) 查询选修课程号为‘101’且成绩在90以上的学生学号、姓名和成绩d) 查询每一门课程的间接先修课(即先修课的先修课)SELECT课程名 FROM xs_kc A JOIN xs_kc BWhere A. 先修课程=B.课程名 and先修课程 is not nulle) 用连接查询在XSQK表中查询住在同一寝室的学生,即其联系电话相同SELECT A.学号,A.姓名,A.联系电话 FROM XSQK A JOIN XSQK B ON A.联系电话=B.联系电话 WHERE A.学号!=B.学号4)嵌套查询a) 查询与’杨颖’在同一个系学习的学生的信息select * from XSQK where所在系in (select所在系from XSQK where 姓名='杨颖')比较: select * from XSQK where 所在系= (select所在系from XSQK where姓名='杨颖') 的异同b) 查询选修了课程名为’计算机原理’ 的学生的学号和姓名select 学号,姓名from xsqk where学号in(select学号from sc where 课程号in (select课程号from kc where课程名='计算机原理'))比较:select学号,姓名from xsqk where 学号in (select 学号from xs_kc, kc where xs_kc.课程号=kc.课程号and 课程名='计算机原理')c) 查询选修了课程’ 101’和课程’ 102’的学生的学号d) 查询所有选修了101号课程的学生姓名e) 查询没有选修了1号课程的学生姓名f) 查询选修了全部课程的学生姓名h) 查询没有人选修的课程号和课程名i) 查询每个学生的课程成绩最高的成绩信息(sno,cno,grade)5) 数据库的集合查询和统计查询a) 在XS_KC表中按学号分组汇总学生的平均分,并按平均分的降序排列。
答案实验三:查询数据(二)
答案实验三:查询数据(二)《数据库原理》实验报告(三)实验名称查询基本表中的数据姓名学号班级实验目的(1)熟悉使用单表查询命令;(2)熟悉使用连接查询命令;(3)熟悉使用嵌套查询命令;(4)熟悉在查询中使用聚集函数。
实验内容如果某个小题用连接查询和嵌套查询均能完成,要求写出两种查询命令。
一、完成下列基于S表、P表、J表和SPJ表的查询(1)求给工程J1供应红色零件的供应商号;命令:SELECT distinct SnoFROM Spj,PWHERE Spj.Pno=P.Pno AND Jno='J5' AND Color='红';(2)求没有使用天津供应商供应的红色零件的工程号;命令:SELECT DISTINCT JNO FROM SPJWHERE JNO NOT IN(SELECT DISTINCT JNOFROM S,P,SpjWHERE Spj.Sno=S.Sno AND Spj.Pno=P.Pno AND S.City='天津' AND P.Color='红');成绩(3)找出工程项目J2使用的各种零件的名称及其数量;命令:SELECT P.Pname,SUM(Qty) QtyFROM P,SpjWHERE Spj.Pno=P.Pno AND Jno='J2'GROUP BY P.Pname;(4)找出上海的供应商供应的所有零件号;命令:SELECT DISTINCT PnoFROM S,SpjWHERE Spj.Sno=S.Sno AND S.City='上海';(5)找出使用上海的供应商供应的零件的工程名;命令:SELECT DISTINCT J.JnameFROM S,J,SpjWHERE Spj.Sno=S.Sno AND Spj.Jno=J.Jno AND S.City='上海';SELECT JnameFROM JWHERE Jno in(SELECT JnoFROM SpjWHERE Sno in(SELECT SnoFROM SWHERE City='上海'));(6)找出没有使用天津的供应商供应的零件的工程号;命令:SELECT DISTINCT JnoFROM SpjWHERE Jno NOT IN(SELECT JnoFROM S,SpjWHERE Spj.Sno=S.Sno AND S.City='天津');SELECT DISTINCT JnoFROM SpjWHERE Jno NOT IN(SELECT JnoFROM SpjWHERE Sno IN(SELECT SnoFROM SWHERE CITY='天津'));(7)找出S1供应的数量最大的零件号;命令:SELECT TOP 1 PnoFROM SpjWHERE Sno='S1'GROUP BY PnoORDER BY SUM(Qty) DESC;(8)找出“三建”工程项目使用的各种零件的零件号及其数量;命令:SELECT Pno,SUM(Qty)FROM J,SpjWHERE Spj.Jno=J.Jno AND J.Jname='三建'GROUP BY PNO;SELECT Pno,SUM(Qty)FROM SpjWHERE Jno IN (SELECT Jno FROM J WHERE Jname='三建') GROUP BY PNO;二、完成下列基于emp表和dept表的查询(9)查询奖金(COMM)高于工资(SAL)的20%的员工信息;命令:SELECT *FROM EmpWHERE Comm>Sal*0.2;(10)查询10号部门中工种(JOB)为MANAGER和20号部门中工种为CLERK的员工信息;命令:SELECT *FROM EmpWHERE (Deptno=10 AND Job='MANAGER') OR(Deptno=20 AND Job='CLERK');SELECT *WHERE Deptno=10 AND Job='MANAGER'UNIONSELECT *FROM EmpWHERE Deptno=20 AND Job='CLERK';实验内容(11)查询所有工种不是MANAGER和CLERK,且工资大于或等于2000的员工信息;命令:SELECT *FROM EmpWHERE Job NOT IN ('MANAGER', 'CLERK') ANDSal>=2000;(12)查询有奖金的员工的不同工种;命令:SELECT DISTINCT JobFROM EmpWHERE Comm IS NOT NULL;(13)查询所有员工工资与奖金的和;(提示需将奖金为空值的转换为0计算)命令:SELECT Empno,Sal+ISNULL(Comm,0)FROM Emp;(14)查询没有奖金或奖金低于100的员工信息。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验三数据查询
一、实验目的
掌握查询语句的使用方法,重点掌握连接查询和嵌套查询,理解查询的执行过程。
二、预备知识
查询语句的基本格式如下:
SELECT <目标列名序列> --需要哪些列
FROM <数据源> --来自于哪些表
[WHERE <检索条件>] --根据什么条件
[GROUP BY <分组依据列>] --分组
[HA VING <组提取条件>] --筛选
[ORDER BY <排序依据列>] --排序
三、实验内容
1、还原实习二中创建的“gongcheng”数据库和实习一中创建的“学生选课管理”数据库。
2、在“gongcheng”数据库中完成以下查询
(1)查询所有供应商所在的城市。
select sname,city
from s
(2)查询零件重量在10-20之间(包括10和20)的零件名和颜色。
select pname,color
from P
where weight between 10 and 20
(3)查询工程项目的总个数。
select COUNT(jno)工程项目的总个数
from j
(4)查询所有零件的平均重量。
select AVG(weight)零件的平均质量
from p
(5)查询供应商S3供应的零件号。
select sno,pno
from spj
where Sno='s3'
(6)查询各个供应商号及其供应了多少类零件。
select sno,COUNT(pno)供应的零件数
from spj
group by sno
(7)查询供应了2类以上零件的供应商号。
select sno,COUNT(pno)供应的零件数
from spj
group by sno
having COUNT(pno)>2
(8)查询零件名以“螺”字开头的零件信息。
select*
from p
where pname like'螺%'
(9)查询工程项目名中最后一个字为“厂”字的工程项目所在的城市。
select jname,city
from j
where jname like'%厂'
(10)查询给每个工程供应零件的供应商的个数。
select jno,COUNT(distinct sno)供应商个数
from SPJ
group by jno
(11)查询供应数量在1000—2000之间(包括1000和2000)的零件名称。
select pname
from p
where Pno in
(
select Pno
from SPJ
group by Pno
having sum(QTY)between 1000 and 2000
)
(12)完成课本P127页第5题的前七个小题。
1.select sname,city
from s
2.select pname,color,weight
from p
3.select jno
from SPJ
where Sno='s1'
4.Select P.Pno,SPJ.QTY
From P,SPJ
Where SPJ.Jno='J2'and P.Pno=SPJ.Pno
5.select distinct pno
from s,spj
where city='上海'and s.Sno=SPJ.sno
6.select jname
from J
where Jno in
(select Jno
from SPJ
where Sno in
(select Sno
from s
where City='上海'
))
7.
3、在“学生选课管理”数据库中完成以下查询:
(1)查询是“选修课”的课程号、课程名。
select cno,cname
from C表
(2)查询学号为“09105103”学生所学课程的课程名与学分。
select cname,credit
from C表,SC表,S表
where S表.Sno='09105103'and S表.Sno=SC表.Sno
and C表.Cno=SC表.Cno
(3)查询选修课程号为“002”或“004”的学生的学号。
select Cno,sno
from SC表
where Cno='002'or Cno='004'
(4)查询选修了课程号为“002”和“004”的学生的学号。
select sno
from SC表
where Cno='002'and Cno='004'
无
(5)查询学习全部课程的学生姓名。
select sname
from S表
where not exists(select*
from C表
where not exists
(select*
from SC表
where Sno=SC表.Sno and Cno=C表.Cno))。