数据库实验(实验七数据查询)实验报告答案
数据库查询语句实验报告及答案
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
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
数据库数据查询实验报告和答案韶关学院学生实验报告册实验课程名称:数据库技术与应用实验项目名称:数据库的数据查询实验类型(打√):(基础☑、综合、设计)院系:专业班级:姓名学号:指导老师:韶关学院教务处编制一、实验预习报告内容预习日期: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数据库查询的基本操作进行了学习和实践,掌握了基础查询、条件查询、排序查询、嵌套查询、分组统计查询等知识点。
通过实验的完成,深入了解了数据库查询的方法和技巧,提高了对数据库的应用能力。
数据库实验多表查询参考答案
from OrderMasterwhere orderSum=(select max(orderSum)from OrderMaster)(8)在订单主表中查询订单金额大于“E2005002业务员在2008-1-9这天所接的任一张订单的金额”的所有订单信息。
SELECT*FROM OrderMasterWHERE orderSum>any(SELECT orderSumFROM OrderMasterWHERE salerNo='E2005002'AND orderDate='20080109')(9)查询单价高于400元的商品编号、商品名称、订货数量和订货单价。
SELECT a.productNo,productName,quantity,priceFROM Product a, OrderDetail bWHERE a.productNo=b.productNo AND price>400ORDER BY productName(10)分别使用左外连接、右外连接、完整外部连接查询单价高于400元的商品编号、商品名称、订货数量和订货单价,并分析比较检索的结果。
左外连接命令:SELECT a.productNo,productName,quantity,priceFROM Product a LEFT OUTER JOIN OrderDetail bON a.productNo=b.productNoWHERE price>400Select a.productNo , a.productName , b.quantity,b.priceFrom OrderDetail As b left JOIN Product As aON(a.productNo=b.productNo)and price>400•这两个左外连接,第一个是先去掉单价小于等于400的商品,然后执行左外连接,该查询的结果表明商品表中所有单价高于400的商品全部被订购了第二个左外连接是将那些单价小于等于400的商品用空值替代右外连接命令:SELECT a.productNo,productName,quantity,priceFROM Product a RIGHT OUTER JOIN OrderDetail bON a.productNo=b.productNoWHERE price>400Select a.productNo , a.productName , b.quantity,b.priceFrom OrderDetail As b RIGHT JOIN Product As aON(a.productNo=b.productNo)and price>400全连接命令:SELECT a.productNo,productName,quantity,priceFROM Product a FULL OUTER JOIN OrderDetail bON a.productNo=b.productNoWHERE price>400Select a.productNo , a.productName , b.quantity,b.price From OrderDetail As b full JOIN Product As a ON(a.productNo=b.productNo)and price>400右外连接和全外连接的分析同左外连接从上述结果可知:若表a和表b做外连接,且b表是外码表,则a和b表左外连接可能会出现空值,但是右连接一定不会出现空值,全外连接与左外连接一样的结果。
《数据查询与操作》实验答案
《数据查询与操作》实验答案《数据查询与操作》实验一、实验目的与要求1、理解简单查询和复合查询的意义。
2、掌握语句和各子句的使用。
3、掌握多表查询和子查询的使用。
4、掌握、和语句的使用。
二、实验平台1、操作系统:或 20032、数据库管理系统: 2005三、实验内容1.在“人事管理系统”中,新增一个员工信息(员工编号‘100508’、员工姓名‘小龙女’、所在部门编号‘10001’、籍贯‘河南’)。
人事管理系统员工信息(籍贯,所在部门编号,员工姓名,员工编号)('河北', '10001', '小龙女','100508 ')2.将“人事管理系统”数据库的“员工信息”表中籍贯为“河南”并且所在部门编号为”10001”数据插入到“新员工信息”表中。
人事管理系统新员工信息(员工编号,员工姓名,所在部门编号)员工编号,员工姓名,所在部门编号员工信息所在部门编号='10001' 籍贯='河南'3.在“人事管理系统”数据库“部门信息”表中,将部门的员工人数设置为10。
人事管理系统部门信息员工人数=104.在“人事管理系统”数据库“员工信息”表中,将文化程度为“大专”,并且在“2005-05-01”到“2007-05-01”之间入职的所有员工调动到编号为“10006”的部门去。
人事管理系统员工信息所在部门编号=10006入职时间 '2005-05-01' '2007-05-01'文化程度='大专'5.在“人事管理系统”数据库中对部门进行了重组和调整,原来编号为10006的部门名称变为“市场开发部”,人数也调整为20人。
人事管理系统部门信息部门名称='市场开发部',员工人数=20部门编号=100066.在“人事管理系统”数据库中,编号为“100503”的新员工升级为正式员工,需要在“新员工信息”表中删除他的记录。
数据库实验及其答案
《数据库系统概论》实验报告书专业班级学号姓名指导教师安徽工业大学计算机学院实验一:数据定义/数据操纵语言[ 实验日期 ] 2011 年 4 月 10 日[ 实验目的 ]熟悉SQL SERVER上机环境;熟练掌握和使用DDL语言,建立、修改和删除数据库表;熟练掌握和使用DML语言,对数据进行增加、修改和删除操作。
[ 实验内容 ]1.先建立数据库:STUDENT用两种方式建立:在查询分析器中以DDL语言方式建立.步骤为:先在指定的地方建立放置数据库文件的文件夹(如学生数据库),然后将建立的数据库文件放到指定的文件夹中.2.SQL数据定义语句:例1-1: (建立数据库表) 建立教学数据库的四个数据库表,其中Student表中不包含SSEX(C,2) 字段,Sname 字段为Sname(C,8)且可为空。
create table Student(SNO char(5) primary key,SNAME char(8) NULL,SDEPT char(2),SCLASS char(2),SAGE smallint)create table Course(CNO char(3) primary key,CNAME char(16),CTIME smallint)create table Teach(TNAME CHAR(8),TSEX CHAR(2),CNO CHAR(3),TDATE smalldatetime,TDEPT CHAR(2)) create table Score (sno char(5),cno char(3),Score float);例1-2: (修改数据库表) 在Student表中增加SSEX(C,2) 字段。
alter table student add SSEX char(2)例1-3: (修改数据库表) 将Student表中把Sname 字段修改为Sname(C,10)且为非空。
数据库实验报告及答案
实验任务书(实验一、实验二)课程名称:数据库原理与技术实验报告要求:1.列出所有的SQL语句和源代码;2.程序要求有适当的注释;3.对数据完整性约束实施要求给出相应的测试用例。
4.实验报告提交电子档。
实验内容:一:创建表、更新表和实施数据完整性1.运行给定的SQL Script,建立数据库GlobalToyz。
2.了解表的结构,建立所有表的关系图。
3.利用系统定义的存储过程sp_helpdb查看数据库的相关信息,例如所有者、大小、创建日期等。
4.查看所有表中出现的约束(包括Primary key, Foreign key, check constraint, default, unique)5.把价格在$20以上的所有玩具的信息拷贝到称为PremiumToys的新表中。
SELECT*INTO PremiumToysFROM ToysWHERE Toys.mToyRate>20;6.对表Toys实施下面数据完整性规则:(1)玩具的现有数量应在0到200之间;(2)玩具适宜的最低年龄缺省为1。
ALTER TABLE ToysADD CONSTRAINT C1CHECK (siToyQoh BETWEEN 0 AND 200);ALTER TABLE ToysADD CONSTRAINT C2default(1)for siLowerAge;7.给id为‘000001’玩具的价格增加$1。
update Toys set mToyRate=mToyRate+1 where cToyId='000001';8. 列出表PickofMonth中的所有记录,并显示中文列标题。
SELECT cToyId[玩具编号],siMonth[生产月份],iYear[生产年份],iTotalSold [销售总量]FROM PickofMonth;二:查询数据库1.显示属于California和Illinoi州的顾客的名、姓和emailID。
数据库实验报告 数据查询
FROM学生
(20)查询学生的总人数。
SELECT COUNT(*)AS人数
FROM学生
2、复杂查询
(21)如果要统计成绩表中所有选课的学生人数,即不管一名学生选了几门课程,都只计算一次
SELECT COUNT (DISTINCT (学号)) AS人数
(12)列出教工中比姜立伟工资低的姓名和工资。
SELECT R.姓名,R.工资
FROM教工R,教工S
WHERE R.工资<S.工资AND S.姓名='姜立伟'
(13)查出所有不是教授的教工姓名。
SELECT姓名
FROM教工
WHERE职称NOT LIKE '教授'
(14)检索工资在1000元到2000元范围内的职工信息。
SELECT *
FROM教工
WHERE职称='教授'
(3)列出教工表中的系编号并消除重复的元组。
SELECT DILeabharlann TINCT系编号FROM教工
(4)已知学分=学时/17,计算每一门课程的学分数。
SELECT课程名称,学时/17 AS学分
FROM课程
(5)显示教授的工资和提高10%的工资额。
SELECT姓名,工资,工资*1.1 AS '工资*1.1'
(32)统计无先修课的课程的学时总数;
(33)统计每位学生选修课程的门数、学分及其平均成绩;
(34)统计选修每门课程的学生人数及各门课程的平均成绩;
(35)找出平均成绩在85分以上的学生,结果按系分组,并按平均成绩的升序排
列;
(36)查询选修了“1”或“2”号课程的学生学号和姓名;
数据库实验(实验七数据查询)实验报告答案
实验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) 查询信息系、计算机系学生的姓名、系名,结果按系名升序,按姓名降序排序。
数据查询技术实验报告(3篇)
第1篇一、实验背景随着信息技术的飞速发展,数据库技术在各个领域得到了广泛应用。
数据查询是数据库技术中的一项基本操作,它能够帮助用户从数据库中检索所需的数据。
为了提高数据查询的效率,各种查询技术应运而生。
本次实验旨在通过实际操作,使学生掌握数据查询的基本方法和技术,提高数据检索能力。
二、实验目的1. 熟悉SQL语言的基本语法和查询条件表示方法;2. 掌握单表查询、连接查询、嵌套查询和集合查询等常用查询方法;3. 学会使用聚集函数、分组统计等高级查询技巧;4. 培养实际操作能力和问题解决能力。
三、实验环境1. 操作系统:Windows 102. 数据库管理系统:MySQL 5.73. 开发工具:MySQL Workbench四、实验内容1. 单表查询(1)指定列或全部列查询以学生信息表(student)为例,查询所有学生的姓名和年龄:SELECT name, age FROM student;(2)按条件列查询及模糊查询查询年龄大于20岁的学生:SELECT FROM student WHERE age > 20;查询姓名中包含“张”的学生:SELECT FROM student WHERE name LIKE '%张%';(3)对查询结果排序查询所有学生的姓名,按年龄降序排列:SELECT name, age FROM student ORDER BY age DESC;(4)使用聚集函数的查询查询学生的平均年龄:SELECT AVG(age) AS avg_age FROM student;(5)分组统计查询查询每个专业的学生人数:SELECT major, COUNT() AS student_count FROM student GROUP BY major;2. 连接查询(1)连接查询查询学生姓名和对应的专业名称:SELECT , AS major_name FROM student JOIN major ON student.major_id = major.id;(2)自身连接查询具有相同专业的前三名学生:SELECT AS student1, AS student2 FROM student a, student b WHERE a.major_id = b.major_id AND a.id < b.id ORDER BY a.age LIMIT 3;(3)外连接查询所有学生的姓名和对应的专业名称,即使某些学生没有专业信息:SELECT , AS major_name FROM student LEFT JOIN major ON student.major_id = major.id;3. 嵌套查询(1)返回一个值的子查询查询年龄最大的学生姓名:SELECT name FROM student WHERE age = (SELECT MAX(age) FROM student);(2)返回一组值的子查询查询年龄在20到25岁之间的学生姓名:SELECT name FROM student WHERE age BETWEEN (SELECT MIN(age) FROM student WHERE age > 20) AND (SELECT MAX(age) FROM student WHERE age < 25);4. 集合查询查询年龄不大于19岁或者属于地信专业的学生:SELECT FROM student WHERE age <= 19 OR major = '地信';五、实验总结通过本次实验,我们掌握了数据查询的基本方法和技术,包括单表查询、连接查询、嵌套查询和集合查询等。
工作报告之数据库实验报告答案
数据库实验报告答案篇一:2013 《数据库原理及应用》实验报告答案】实验二数据定义一、实验目的1 、掌握数据库引擎的使用方法,加深对sql 的语句的理解;2 、使用sql 语句创建数据库、删除数据库3、熟练掌握ddl 语言的数据定义操作,包括create 、alter 、drop二、实验内容在sql 查询分析器中用create 、drop 、alter 语句创建、删除、修改基本表。
三、实验步骤1、根据课本中的说明,分析s表,p表,j表和spj表的主码和外码:(1) s表,p表,j表的主码分别是哪个属性,s表,p表,j表这三个表有没有外码?如果有,请写出。
s 表的主码sno p 表的主码pno j 表的主码jno 没有外码(2) spj 表的主码是由哪几个属性组成的属性组?spj 表的外码有几个,分别是哪些属性?分别参照哪些表的哪个属性?spj 主码( sno,pno,jno ) 外码sno 参照s 表的sno ,外码pno 参照p 表的pno ,外码jno 参照j 表的jno 。
2. 新建数据库spj ,并在数据库spj 中创建s 表,p 表,j 表和spj 表。
( 1 )创建供应商表s 的sql 语句,要求设置主码:create table s (sno char(4) primary key, sname varchar(40), status smallint, city varchar(20) );( 2)创建零件表p 的sql 语句,要求设置主码并将该约束命名为p_pk :create table p(pno char(4) constraint p_pk primary key,pname varchar(40),color char(2),weight smallint);( 3)创建工程项目表j 的sql 语句,要求设置主码并命名为j_pk :create table j (jno char(4) constraint j_pk primary key,jname varchar(40),city varchar(20));( 4)创建基本表供应情况表spj 的sql 语句,要求设置主码和外码:create table spj (sno char(4) references s(sno),pno char(4) references p(pno),jno char(4) references j(jno),qty smallint,primary key(sno,pno,jno));3. 在窗口下键入drop table s 命令,运行后观察结果。
数据库-数据查询实验报告.doc
实验报告课程名称数据库原理与应用实验名称数据查询系别专业班级指导教师学号姓名实验日期_实验名称:数据查询一、实验目的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的病人编号,病人姓名,电话号码。
15.要求查询除区号外的第二个数字为2的病人编号,病人姓名,电话号码。
(注:手机号不算。
)16.要求查询电话号码的最后一个数字为6、为3、为1的病人编号,病人姓名,电话号码。
(注:至少两种方法可以实现)17.要求查询电话号码的最后一个数字除1、3、6外的病人编号,病人姓名,电话号码。
步骤(写出以上SQL语句)--1.查询病人表,显示所有病人的病人编号、保险公司名称、电话号码(别名:病人电话)。
数据库的查询实验实验报告
因为班级号g99404在class表中不存在,由于class_id的外键约束,插入不成功,结果截屏如下:
图六
4、删除教师表中的所有数据,验证参照完整性约束;
使用Transact-SQL代码删除如下:
delete
from[dbo].[teacher]
使用sa用户访问操作,在student表中新增一条条目的实验截图如下:
图十五
如上图,新增条目的操作成功。
然后使用Transcat-SQL语句更改数据代码如下:
update[dbo].[student]
setstudent_name='彦巧'
wherestudent_name='孙彦巧'
实验截图如下:
执行结果如下:
图二
原因是student_course表中有如下的数据,表中的course_id在course表中不存在。
图三
从表中删除这两组数据之后,设置外键则可以成功。
2、向学生表插入具有相同学号的数据,验证其实体完整性约束;
Student表中原有数据如下:
图四
使用Transact-SQL语句插入如下:
grantselectonstudenttoshihexp
grantselectonstudent_coursetoshihexp
grantselectonteachertoshihexp
grantselectonteacher_course_classtoshihexp
使用企业管理器操作的实验截图如下:
数据库的查询实验
——实验报告
数据库数据查询实验报告
selecttop(1)*from学生where学号in
(select学号from选课join课程
on选课.课程编号=课程.课程编号
where成绩>70and课程名称='数据库')
(40)查询每个学生的平均成绩。
select学号,avg(成绩)as平均成绩
(15)使用TOP显示前若干记录的查询
select top 3 * from学生
(16)使用TOP显示前若干记录的查询,如果有满足条件的并列记录一并显示
select top 3 * from学生
where生源='淮南'
(17)两个关系的连接查询。
select * from学生cross join选课
(25)查询教师-课程信息,查询结果中包括教师姓名、职称、课程名称和课程性质等4个字段,要求结果中既能够反映目前不是责任教师的教师信息,又能反映目前没有确定责任教师的课程信息
select姓名,职称,课程名称,课程性质
from教师fulljoin课程
on课程.责任教师=教师.教师编号
(26)使用IN运算的简单嵌套查询。
(37)一次完成求和、计数、计算平均值的查询。
select * from教师
compute sum(工资),avg(工资)
(38)查询所有课程的成绩都大于60分的学生的平均分最高的学生信息。
select学号,avg(成绩)平均成绩
from选课
where成绩>60
groupby成绩,学号
orderby成绩desc
(select max(工资)
from教师innera
数据库数据查询实验报告和答案
韶关学院
学生实验报告册
实验课程名称:数据库技术与应用
实验项目名称:数据库的数据查询
实验类型(打√):(基础☑
设计
院系:专业班级:姓名学号:
指导老师:
韶关学院教务处编制
一、实验预习报告内容
二、实验原始(数据)记录
实验时间:2013年10月22日(星期二第七八节)
三、实验报告内容
图图
图7
图16
图18
图20
图22
图37
注:1、如个别实验的实验报告内容多,实验报告册页面不够写,或有识图、画图要求的,学生应根据实验指导老师要求另附相同规格的纸张并粘贴在相应的“实验报告册”中。
2、实验报告册属教学运行材料,院系(中心)应按有关规定归档保管。
21。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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选修的全部课程的学生的学号。