数据库实验(实验七数据查询)实验报告答案

合集下载

数据库查询语句实验报告及答案

数据库查询语句实验报告及答案

1.找出所有供应商的姓名和所在城市。

select sname,city from S表2.找出所有零件的名称,颜色,重量;select pname,color,weight from P表3.找出使用供应商S1所供应零件的工程号码。

select jno from SPJ表where sno='S1'4.找出工程项目J2使用的各种零件的名称及其数量。

select pname,qty from 表7,表5 where 表5.pno=表7.pno and 表7.jno='J2'5.找出上海厂商供应的所有零件的号码。

select distinct pno from 表7 where sno in (select sno from 表4 where city='上海')6.找出使用上海产的零件的工程名称。

select jname from 表6,表7,表4 where 表6.jno=表7.jno And 表7.sno=表4.sno And 表4.city='上海'8.全部红色零件的颜色改成蓝色。

update 表5 set color='蓝' where color='红'9. 由S5供给J4的零件P6改为由S3供应.update 表7 set sno='S3'where sno='S5'and jno='J4'and pno='P6'10.从供应商关系中删除S2的记录,并从供应商情况关系中删除相应的记录。

delete from 表4 where sno='S2'delete from 表7 where sno='S2'11.请将(S2,J6,P4,200)插入相应的情况关系。

insert into 表7(sno,jno,pno,qty) values ('S2','J6','P4',200)。

数据库查询实验报告

数据库查询实验报告

数据库查询实验报告数据库查询实验报告一、引言数据库查询是数据库管理系统中的重要功能之一,通过查询可以从数据库中获取所需的信息。

本实验旨在通过实际操作,掌握数据库查询的基本方法和技巧,并对查询结果进行分析和解读。

二、实验环境本次实验使用的是MySQL数据库管理系统,该系统具有广泛的应用和较好的稳定性。

实验所需的数据表包括学生表(student)、课程表(course)和成绩表(score)。

三、实验步骤1. 创建数据库和数据表首先,在MySQL中创建一个名为"学生成绩管理系统"的数据库,并创建三个数据表:student、course和score。

其中,student表包含学生的学号、姓名、性别等信息;course表包含课程的编号、名称、学分等信息;score表包含学生的学号、课程编号和成绩等信息。

2. 插入测试数据为了进行查询实验,需要向数据表中插入一些测试数据。

通过INSERT语句,向student表中插入若干学生信息;向course表中插入若干课程信息;向score表中插入若干学生成绩信息。

3. 执行查询语句根据实验要求,设计不同的查询语句,包括简单查询、条件查询、多表连接查询等。

通过执行这些查询语句,可以从数据库中获取所需的信息。

4. 分析查询结果根据查询结果,对数据进行分析和解读。

可以通过统计、排序、分组等方式,对数据进行进一步处理和展示。

例如,可以统计每个学生的平均成绩,对学生成绩进行排名等。

四、实验结果与分析通过实验,我们得到了一些有关学生成绩的查询结果。

根据这些结果,我们可以得出以下结论:1. 学生A的平均成绩为80分,居于全班第一名;2. 课程B的平均成绩最高,为85分;3. 学生C在课程A和课程B中都取得了优异的成绩。

五、实验总结本次实验通过数据库查询的实际操作,使我们对数据库查询的基本方法和技巧有了更深入的了解。

同时,通过对查询结果的分析和解读,我们也对数据有了更全面的认识。

数据库实验内容-答案

数据库实验内容-答案

实验内容:实验一:数据库的操作使用Management Studio和sql语句分别完成以下操作:1.创建一个名为“SM”的数据库,数据文件初始大小为3MB,最大为50MB,数据库自动增长,增长方式按10%;日志文件初始大小为2MB,数据大小不受限制,按1MB增长。

create database smon(name='smdata',filename='e:\smdata.mdf',size=3,maxsize=50,filegrowth=10%)log on(name='smlog',filename='e:\smlog.ldf',size=2,maxsize=unlimited,filegrowth=1)2.修改数据库“SM”,将数据文件名改成“sm_data”,初始大小改成5MBalter database smmodify file( name='smdata',newname='sm_data',size=5)3.分别查看数据库“SM”,该数据库中的文件和文件组。

exec sp_helpfile smexec sp_helpfilegroup sm4.删除数据库“SM”。

drop database sm实验二:创建表1. 在数据库SM中创建学生表student,课程表course,选课表scstudent(sid,sno,clno,sname,ssex,sage,sbir)说明:sid int identity(1,1) 序号sno 为主关系键,为字符类型学号clno 字符类型,班级号sname 字符类型,并不为空ssex 字符类型,check的值的范围为男女sbir 日期类型出生日期sage int;use smcreate table student( sid int identity(1,1),sno char(10) constraint pk_st primary key,clno char(10),sname varchar(20) not null,ssex char(2) constraint ck_ssex check(ssex in('男','女')),sbir datetime,sage int)course(cno,cname,ccredits,ctno,cpno,ctime)说明:cno 字符类型,主关系键cname 字符类型,唯一键ccredits 学分,精确数值型,精确长度为2,小数位为1ctno ,cpno 字符类型ctime 整型create table course(cno char(4) constraint pk_c primary key,cname varchar(20) constaint uk_cname unique,ccredit decimal(2,1),ctno char(2),cpno char(4),ctime tinyint)sc(sno,cno,score)说明:sno+cno为主键,并且sno是student的外部键,cno是course的外部键。

数据库查询的实验报告

数据库查询的实验报告

数据库查询的实验报告数据库查询的实验报告引言:数据库查询是一项重要的技术,它可以帮助我们从庞大的数据集中提取所需的信息。

本实验旨在探索数据库查询的原理和实践,通过实际操作和分析,深入了解数据库查询的过程和技巧。

实验目的:1. 理解数据库查询的基本概念和原理;2. 掌握使用SQL语句进行数据库查询的方法;3. 分析不同查询语句的执行效率和优化策略。

实验步骤:1. 数据库准备:选择一个合适的数据库系统,并创建一个包含适当表结构和数据的数据库。

2. 查询语句编写:根据实际需求,编写不同类型的查询语句,包括基本查询、条件查询、排序查询、聚合查询等。

3. 查询语句执行:使用数据库管理系统提供的查询工具,执行编写好的查询语句,并观察查询结果。

4. 查询结果分析:根据查询结果,分析查询语句的执行效率和查询结果的准确性。

5. 优化策略实施:对于执行效率较低的查询语句,尝试优化策略,如索引的使用、查询语句的重写等。

6. 优化效果评估:比较优化前后查询语句的执行效率,并分析优化策略的有效性。

实验结果与讨论:通过实验,我们发现数据库查询的过程中,查询语句的编写和优化对查询效率有重要影响。

以下是我们的实验结果和讨论。

1. 基本查询:基本查询是最简单的查询方式,通过SELECT语句从数据库中选择所需的字段。

我们发现,基本查询的执行效率较高,查询结果准确。

然而,在处理大量数据时,查询时间可能会增加。

为了提高效率,我们可以使用LIMIT子句限制返回的记录数。

2. 条件查询:条件查询是根据特定条件筛选数据的查询方式。

我们使用WHERE子句来指定查询条件,并发现查询结果的准确性和效率与查询条件的选择有关。

使用索引字段作为查询条件可以大大提高查询效率。

3. 排序查询:排序查询是根据指定字段的顺序对查询结果进行排序的方式。

我们使用ORDER BY子句来指定排序字段,并观察到排序查询的执行效率较高。

然而,对于大规模数据集,排序操作可能会导致性能下降。

数据库查询实验报告doc

数据库查询实验报告doc
3. 发布执行命令,查看查询结果;若是结果不正确,进行修改,直到正确为止。
4. 查询分析器及利用方式。
查询分析器是在开发数据库应用
系统时利用最多的工具。查询分析器的
要紧作用是编辑Transact-SQL,将其发
送到效劳器,并将执行结果及分析显示
出来(或进行存储)。查询分析功能主
要通过测试查询本钱,判定该查询是不是
from 学生表,班级表
where 学生表.班级编号=班级表.班级编号
and 学号 in(
select 学号
from 选课表
where 课程编号 in (
select 课程编号
from 课程表
where 课程名='数据库'
)
);
/*查询学生XX15121选修课程的总学分。*/
SELECT SUM(学分) 总学分
)=(select count(*) from course)
--法三
select Sname
from student
where Sno in
(
selhaving count(*) = (select count(*) from course)
)
--(11)求选修了学生“”所选修的全数课程的学生学号和姓名。
where cno not in
(
select cno from student s,sc
where s.sno=sc.sno and sname like '王%' and co=sco
)
--(10)查询选修了全数课程的学生的姓名。(请至少写出两种查询语句)
--法一
select Sname
from student s

数据库数据查询实验报告和答案.doc

数据库数据查询实验报告和答案.doc

数据库数据查询实验报告和答案韶关学院学生实验报告册实验课程名称:数据库技术与应用实验项目名称:数据库的数据查询实验类型(打√):(基础☑、综合、设计)院系:专业班级:姓名学号:指导老师:韶关学院教务处编制一、实验预习报告内容预习日期:10月10月22日(星期二第七八节)实验同组人:如有实验数据表格,学生在实验预习时应画好实验数据表格,供实验时填写数据(本页如不够,可另附相同规格的纸张)。

指导教师批阅及签名签名:年月日三、实验报告内容9月24日实验报告内容原则上应包含主要实验步骤、实验数据计算(实验操作)结果、实验结果(疑问)分析等项目。

实施内容:一、根据实验要求完成实验:(写明步骤和截图)1、在数据库studentsdb中,新建表studentdb_info,curriculum,grade。

并输入相应的数据,如图1、2和3所示。

图1图2图32、在studentsdb数据库中,使用下列SQL语句将输出什么?(1)selectcount(*)fromgrade结果如图4所示:图4(2)selectsubstring(学生姓名,1,2)fromstudent_info结果如图5所示:图5(3)selectupper(kelly)结果如图6所示:图6(4)selectreplicate(kelly,3)结果如图7所示:图7(5)selectsqrt(分数)fromgradewhere分数>=85结果如图8所示:图8(6)select2,3,power(2,3)结果如图9所示:图9(7)selectyear(getdate()),month(getdate()),day(getdate())结果如图10所示:图102、在studentsdb数据库中使用select语句近基本查询。

(1)在student_info表中,查询每个学生的学号、姓名、出生日期信息。

执行如下语句:select学号,学生姓名,出生日期fromstudent_info结果如图11所示图11(2)查询学号为0002的学生的姓名和家庭住址执行如下语句:select学生姓名,家庭地址fromstudent_infowhere学号=0002结果如图12所示图12(3)找出所有男同学的学号和姓名。

数据库实验答案(樊辰自制,仅供参考)

数据库实验答案(樊辰自制,仅供参考)

create database StudentCoursegouse studentcoursego--在student数据库中,创建三张表create table students(Sno char(7) Primary Key,Sname varchar(8) NOT NULL,Ssex char(2),Sbirthday datetime,Sdept char(10),Smemo char(30))gocreate table courses(Cno char(4),Cname varchar(12),CpreCno char(4),Ccredit tinyint,constraint PK_course primary key(cno))gocreate table sc(Sno char(7) Foreign key references students(sno),Cno char(4) Foreign key references courses(cno),grade tinyint,primary key(sno,cno))go--分别向三张表中添加数据库insert into students values('0602001','钟振华','男','1987-05-01','计算机','优秀毕业生') insert into students values('0602002','吴家硕','女','1987-03-24','计算机','爱好:音乐') insert into students values('0602003','吴春斌','男','1988-07-01','计算机',NULL) insert into students values('0701001','王腾飞','男','1988-05-04','机电','爱好:音乐') insert into students values('0701002','林世伟','女','1987-04-03','机电','爱好:体育') insert into students values('0701003','李乐仪','女','1986-03-03','机电',null)insert into students values('0703001','李奇','男','1988-09-17','工商管理',null)goinsert courses values('c1','数据结构',null,4)insert courses values('c2','数据库原理','c1',4)insert courses values('c3','大型数据库','c2',3)insert courses values('c4','高尔夫',null,1)goinsert sc values('0602001','c1',61)insert sc values('0602001','c2',72)insert sc values('0602001','c3',88)insert sc values('0602002','c1',null)insert sc values('0602002','c2',61)insert sc values('0701001','c1',50)insert sc values('0701001','c2',null)insert sc values('0701002','c3',78)insert sc values('0701003','c1',52)insert sc values('0701003','c3',87)go--查询表中数据select * from studentsgo--删除表中数据delete scgo--删除表drop table studentsgo--3①查询计算机系全体学生的信息select *from Students--3②查询姓“李”的学生的学号和姓名。

数据库数据查询实验报告

数据库数据查询实验报告

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

二、实验环境本次实验使用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数据库查询的基本操作进行了学习和实践,掌握了基础查询、条件查询、排序查询、嵌套查询、分组统计查询等知识点。

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

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

实验7数据查询【实验内容】7.1单表查询1、指定列或全部列查询1) 查询S表中全体学生的详细记录use jxsk select * from S出言岂select - f Tdtt s|.1结杲SEX AGE DEPT NATEVEJ_a,i soi王青山19计算机NULL2SI—赵亦17软件MULL 35218计算机NULL4S3弓綽明胃IS信息NULL554李四21包动ft NULL&S519软件NULL756昊丽20计算机NULL8S7范思明女ie NULL9S820自动化NULL10S919枫牛NULL2) 查询所有学生的姓名及其岀生年份。

use jxsk select SN, 2012 - AGEfrom S1「王諭】1&932赵亦1995J钱尔15944號慣明隔&李四1S516周展憫15537昊丽13828范思明1994S?«1S9210张海涛2、按条件查询及模糊查询1)查询考试成绩有不及格的学生的学号。

use jxsk selectdistinct SNOfrom SCwhere SCORE<602)查询年龄在20 —23岁之间的学生的姓名、系名和年龄use jxsk select SN,DEPT, AGEfrom Swhere AGE>=20 and AGE<= 30□ us* select 5N, DEET, troni 5L AGE>=20 ard AGE<-30V结果J消息| SH DEPT ,<SE1[ SS'J自动化212昊丽计算机203补珊自动化203)查询姓李的学生的姓名、学号和性别。

use jxsk select SN, SNO, SEXfrom S where SNlike '李%'□ use jxsk select ^NO f SEX from 5 wriere EE 丄是'李虽「Array4) 查询名字中第二个字为明”字的男学生的姓名和系名use jxsk select SN, DEPTfrom Swhere SNlike '_% 明’and SEX='男’SN DEPTi !信息h^iiiiauaB in KI ■■■■■&■■■■#3、对查询结果排序1) 查询信息系、计算机系学生的姓名、系名,结果按系名升序,按姓名降序排序。

use jxsk select SN, DEPTfrom Swhere DEPT='信息’ORDEPT='计算机'orderby DEPT, SNDESC□ -Lii* _ XB JC S*l*Ct 52l.rfrom Ewhere DEPT ='信息・OR DEPT =・计算机・ ariex byDEPT,SN D 兀右匚 * H口结果[Z5~谓息1吴丽 2王青山 3战尔 4弓耐 5 范思明2) 查询所有有课程号 C2成绩的学生的学号、课程号和成绩,并按成绩降序排序。

use jxsk select SNO, CNO, SCOREfrom SC where CNO='C2' and SCOREis not null orderby SCOREDESC7.15,Lsql -THlNIG^THINICXTliinktSl))Q use ixsk select 5NO f CTIQ, SCOREfreir. SC :■wKere CNG = 11 and SCC^E is net rr 一丄 1 order tsy 5GGREDESc]< ■口结果J 港島4、 使用聚集函数的查询1) 查询计算机系学生总人数。

use jxsk select COUNT(*) from S where DEPT='计算机□ select ecu :ITfrom Swhere DEP 二二'计巨机'二]菇■果:消息氐列名}1 j 31L E — L ," .FL ,』 2)机机机" K 算直惠巨 计计计“信禧r-Luse jxsk select COUNT(*), AVG( SCORE), MAX( SCORE)from C, SCwhere CN='微机原理’and C. CNO=SC. CNO□ nae jitglc select COUNT ■ ' , AVG (S亡ORE , MAX [SCOREfrcm C r SCwtieie 匚'微机原寸里'二;w*CNQ=SG.GNQ二1结果區5鴨氏列宕)「£?&列名1优列自1「0 \ NULL NULL*f”■ rrminr^^45、分组统计查询1) 查询各个课程号及相应的选择人数。

use jxsk select CNO, COUNT( SNO) as 人数from SC二结貝J消息CNO人埶2)查询选修了两门以上课程的学生姓名和平均成绩use jxsk select SN, AVG( SCORE)from S, SCwhere S. SNO=SC. SNOgroupby (S. SN)hav ing COUNT(*)> 27.2连接查询1、连接查询1) 查询所有选课学生的学号、姓名、选课名称及成绩use jxsk select SN, S. SNO, CN, SCORE from S, SC, Cwhere S. SNO=SC. SNOand C. CNO=SC. CNO2) 查询每门课程的课程号、任课教师姓名及其选课人数。

use jxsk select C. CNO, TN, COUNT( SC. SNO)from SC, C, T, TCwhere C. CNO=SC. CNOANDT. TNO=TC. TNOANDC. CNO=TC. CNOgroupby C. CNO, T. TN□ pse jxsk selecr 匚.匚NO K TN r CCUtTT i5C,5NO)from 5匚,C,T,TCwhere O=O ANET . INQ=TC . INC 初DC ・ CNO=TC ・ CNQ -group toy C .CNO,I.TNCNO TM 怒闾2、 自身连接1) 查询所有比刘伟”工资高的教师的姓名、工资以及刘伟的工资use jxsk select X. TN, X. SAL, Y. SALfrom TASX, TASYwhere X. SAL>Y. SAL ANDY. TN='文刘伟'TN SAL SAL1i 张兰 i 13W 900 —■ IILU ■■ I r 2张雪 1 TO 9M 3 李力 i™ SM2)查询同时选修了程序设计”和微机原理”的学生的姓名、课程名use jxsk selectdistinet SN, C1. CN, C2. Cfrom CASC1, CASC2, SCASSC1, SCASSC2, Swhere C1. CNO=SC1. CNOANDC2. CNO=SC2. CNOANDC1 . CN='程序设计'ANDC2. CN='微机原理'ANDSC1 . SNO=SC2. SNOANDSC1 . SNO=S. SNO□ use ->csk select C I JLS七丄net SN r C1 . CN r C2 . CM盍 H 口皿G 恥AS G2f 5C 疋5 5C1,5C A5 33 吕where 匚O=SC1,CUO ANDO^£O ANDCl.. CN=,程序设计'AND5C1,3WO=3C2,3NO AND一SCI,SNO=S.SMO< | nr S结果 __________________________________________________________ SN CN CN3、外连接查询所有学生的学号、姓名、选课名称及成绩(没有选课的学生的选课信息显示为空)use jxskselect S. SNO, SN, CN, SCOREfrom SLEFTOUTERJOIN SCONS. SNO=SC. SNOLEFTOUTERJOIN CONC. CNO=SC. CNOE] Tioe J K5 K se lec-t;3 , SNQ^ SN, CN, SCORE rrom s:LEFT Om/ER JOTN SCON S . SNO-5C. SNC]E«E PT OUTER cON C E CNO—S 匚・CNO打「i —23a5£7B3NO1?3J 5S789 _^SSSSSSSS5S CN SCORENULL NULL! NULL j NULLNULL NULLNULL NULLNULL NULLNULL NULLNULL NULLNULL NULLNULL NULLNULL NULL山明冲旳馬古亦尔晦西展丽胆珊海土越钱弛竽间呆范抄诜7.3嵌套查询1、返回一个值的子查询查询与刘伟”教师职称相同的教师号、姓名和职称。

use jxsk select TNO, TN, PROFfrom Twhere ( PROF=( select PROFfrom T where TN='文刘伟') )/ EQLQu色呼74^ql - ...TH!NK\Thirtk (53))"□ use jxsk select TUO,TW f PROF fTom Twhere [ PROS' = select- FROF frcit TL where TN =,刘伟1□结果]冷I消息I • -- - -------- 「——I JNO TN PROF1 「〒亍一〕如伟井师RBHiii imuiHmr2、返回一组值的子查询1) 使用ANY谓词查询讲授课程号为C5的教师姓名。

use jxsk select TNfrom Twhere (TNO=ANY(select TNOfrom TCwhere CNO='C5'))2) 使用IN谓词查询讲授课程号为C5的教师姓名use jxsk select TNfrom Twhere (TNOIN(select TNOfrom TCwhere CNO='c5'))□ ns* jxsk: select TNwii&re (TNO I?T select TMO frcnr. TC13)使用ALL谓词查询其他系中比计算机系所有教师工资都高的教师的姓名、工资和所在系use jxsk select TN, SAL, DEPTfrom T where ( SAL >ALL(select SAL from Twhere DEPT='计算机')AND(DEPT<>'计算机')£QLQueky78LH;l _TMINK\Think CS1))* 卫Q use jxak aelect TN,SAL( DEPT£xcn, Iwhcie (5AL>A1L(.select 5j^L fro in TDEFT^1计算机, J AND L 计算和)) 1Pll4)使E X I S T S C5在系use jxsk select TN, DEPTfrom Twhere (NOTEXISTS(select * from TCwhere TNO=T. TNOANDCNO='C5'))口吉电丄■&亡七"N, DEFTfrom T^elecc -from TC;L wriere I2Ic|=T . 7::? JLWD CWO= * C5 1))二I结果_ J消息DEPT1I W^-l信息23刘悟计罩机< 李办计筲机5) 使用NOT EXIST谓词查询至少选修了学生S2选修的全部课程的学生的学号。

相关文档
最新文档