数据库系统原理实验报告_SQL查询语句
实验二 SQL语句查询

SQL语句查询练习实验报告一、实验项目名称SQL查询语句练习二、实验目的熟练掌握SQL查询语句,能够运用该语句完成各种查询。
三、实验环境1.硬件:网络实验室2.软件:Windows98/2000等操作系统,安装SQL Server 2000个人版或企业版四、实验内容book(总编号,分类号,书名,作者,出版社,单价,是否在库)图书数据表bookreader(借书证号,单位,姓名,性别,年龄,职称,地址)读者数据表readerborrow(借书证号,总编号,借书日期,还书日期)例题1:创建名为bookstore的数据库删除名为bookstore的数据库3.建立基本表reader(借书证号,单位,姓名,性别,年龄,职称,地址)4.删除基本表reader5.为book表在总编号上建立聚集索引6.删除book表在总编号上建立的索引7.在book表的基础,建立book_w视图,包含总编号,分类号,书名,作者8.删除视图book_wCREATE DATABASE bookstoreDROP DATABASE bookstoreCREATE TABLE reader(借书证号,单位,姓名,性别,年龄,职称,地址)DROP TABLE readerCREATE CLUSTER INDEX all_number ON book(总编号)DROP INDEX book.all_numberCREATE VIEW book_w as select 总编号,分类号,书名,作者 from book DROP VIEW book_w例题2:1.查询单位为“化工系”的读者的借书证号、姓名、职称。
2.查询单位为“化工系”或“数学系”,职称为“讲师”的读者的姓名及单位。
3.查询单价在10~20元之间的图书的书名、作者、出版单位、单价。
4.查询单位为“外语系”或“建工系”读者的姓名、单位、职称。
5.查询所有姓刘的读者的姓名、单位。
数据库原理查询语句格式实验报告

数据库原理实验报告题目:查询语句的格式院系:计算机科学与工程学院班级:姓名:学号:一、实验题目查询语句的格式二、实验目的掌握嵌套查询语句的运用;了解如何应用sql语句有选择地查看所需数据,并熟悉通过sql语句更改数据表中数据的方法。
三、实验要求1)从表中选择出工资在2500元以上的员工的姓名和所属部门。
2)统计平均工资。
3)“刘燕”要离职,请删除她的所有信息。
四、实验环境WindowXP、SQL Server2000五、实验内容1.书写语句查询每个部门的平均工资,结果按照平均工资的多少排序SELECT 所属部门,A VG(工资)FROM 员工数据表GROUP BY 所属部门ORDER BY A VG(工资);2.使用外向联接输出所有的员工姓名和负责人的项目名称SELECT员工数据表.姓名,项目数据表.名称FROM 员工数据表LEFT JOIN项目数据表ON员工数据表.编号=项目数据表.负责人;3.使用子查询输出所有负责CCH公司项目(以CCH开始)的员工姓名,以及没有负责REALIDEA公司(以REALIDEA开始)项目的员工姓名。
SELECT 姓名FROM 员工数据表WHERE 编号IN(SELECTDISTINCT 负责人FROM 项目数据表WHERE 名称LIKE'CCH%')SELECT 姓名FROM 员工数据表WHERE 编号NOT IN(SELECT DISTINCT 负责人FROM 项目数据表WHERE 名称LIKE'REALIDEA%');六、实验结果七、实验心得1、此次上机实践主要是在第一次的基础上实现对表的各种SQL语句的查询等操作;2、上机实践给了我们更多自由发挥和验证自己思路的机会,并由此帮助我们发现平时的问题和思维上的不足,促进我们更好地学习数据库这门课程。
数据库实验报告-SQL语句查询

《数据库原理》实验报告(实验名称:SQL查询语句)一、实验目的数据查询语句是SQL语句的重要组成部分,是编程人员与数据库管理人员必不可少的工具,通过实验达到以下目的:(1)掌握SELECT 语句的基本语法,加深学生对查询语句基本概念的理解。
(2)掌握简单的单表查询。
(3)掌握连接查询。
二、实验内容:实验数据:实验二所建的数据库及表,实验三录入表中的数据。
1、简单查询(1)若干列或行的选择(2)*、distinc、between…and… 、 in、 like等运算符的使用(3)计算列、常量或空值的查询(4)查询结果排序和分组2、连接查询(1)内连接和自身连接(2)外连接(3)复合条件连接(4)多表连接(5)对表和列使用别名三、实验环境SQL server 2000,pc机一台四、程序源码与运行结果1.查询所有学生的全部信息2. 查询全体学生的学号与姓名3 查询年龄在20岁以下的学生姓名及其出生年份,并为出生年份加上标题4 查询选修了课程的学生学号,并消除重复行5 查询年龄在20~23岁的学生信息(用between… and…表示查询条件)6 查询全体学生情况,查询结果按班级编号升序排列,同一班的学生按年龄降序排列7 查询所有姓赵学生的姓名、学号和性别8 查询名字中第2个字为“小”字的学生姓名9 查询电气信息工程学院(dx) 和计算机学院(jsj)的学生(要求:使用IN关键字表示查询条件10 查询没有考试成绩的学生学号和课程号11 查询有2门以上课程是90分以上的学生的学号及(90分以上的)课程数(先用group by 分组,再用Having限定分组条件)12 查询学生总人数13 查询学号为‘’学生的平均成绩和总成绩,并为总成绩和平均成绩取别名。
14 查询c01号课程的最高分数和最低分15 查询没有考试成绩的学生学号和课程号16 查询全体学生的姓名、选修的课程名及成绩17 查询每个学生及其选修课程情况的所有信息(用*表示字段18 查询某门课程考试成绩相同的学生学号和课程名,并为各个表取别名19 查询与“张三”在一个系学习的学生(IN)20 查询选修了“数据结构”的学生学号和姓名五、实验总结列名写错:修改列名:心得体会:通过实验,了解了一些基本的查询操作,会一些的基本操作。
实验报告 数据库的基本查询'

一、实验目的:通过该实验掌握应用SQL 查询数据库的基本方法,包括单表、多表查询。
二、实验原理数据库查询是数据库的核心操作。
SQL语言提供了SELECT语句进行数据库的查询。
SELECT[ALL|DISTINCT] <目标列表达式〉[,<目标列表达式〉]...FROM<表名或视图名〉[,<表名或视图名〉]...[WHERE<条件表达式>][GROUP BY<列名1〉[HA VING<条件表达式>]][ORDERBY<列名2〉[ASC|DESC]]三、实验内容和方法实验用的数据库:用实验二建立的数据库:School1. 投影查询(1) 查询SC表的sno的不重复记录。
使用SQL语句:“select distinct Sno from SC”,得出结果如下图所示:(2) 改变查询结果的标题名:sno为学号,sname为姓名,ssex 为性别,sdept 为系名。
使用SQL语句:“select Sno 学号,Sname 姓名,Ssex 性别,Sdept 系名from Student”,得出结果如下图所示:(3) 查询STUDENT表的前3条记录(top 3)。
使用SQL语句:“select top 3 * from Student”,得出结果如下图所示:3. 选择查询(1) 查询成绩在60-80之间的姓名、系名和成绩。
使用SQL语句:“select Sname,Sdept,Grade from Student,SC where Grade>60 and Grade<80 and Student.Sno=SC.Sno”,结果如下图所示:若使用SQL语句:“select Sname,Sdept,Grade from Student,SC where Grade between 60 and 80 and Student.Sno=SC.Sno”,则结果如下图所示:(2) 查询信息系和计算机系的姓名和成绩。
数据库系统原理实验报告-SQL查询语句

数据库系统原理实验报告:xxx学号:xxxxxxxx专业:xxxxx日期:xxxxxLab2 一、实验目的进一步熟悉关系数据库标准语言SQL。
二、实验环境1)Windows 102)SQL Server 2017三、实验容给定如学生表、课程表和学生作业表所示的信息。
表1 学生表表2 课程表表3 学生作业表K001 0433 60 75 75 K001 0529 70 70 60 K001 0531 70 80 80 K001 0591 80 90 90 K002 0496 80 80 90 K002 0529 70 70 85 K002 0531 80 80 80 K002 0538 65 75 85 K002 0592 75 85 85 K006 0531 80 80 90 K006 0591 80 80 80 M001 0496 70 70 80 M001 0591 65 75 75 S001 0531 80 80 80 S001 0538 60 80写出如下SQL语句:1.查询数据库中有哪些专业班级。
(5分)Sql语句:SELECT专业班级FROM学生表;查询结果截图:2.查询在1986年出生的学生的学号、和出生日期。
(5分)Sql语句:SELECT学号,,出生日期FROM学生表WHERE出生日期LIKE'1986%';查询结果截图:3.查询05级的男生信息。
(5分)Sql语句:SELECT*FROM学生表WHERE学号LIKE'05%'AND性别='男';查询结果截图:4.查询没有作业成绩的学号和课程号。
(5分)Sql语句:SELECT学号,课程号FROM学生作业表WHERE作业1成绩IS NULL OR作业2成绩IS NULL OR作业3成绩IS NULL;查询结果截图:5.查询选修了K001课程的学生人数。
(5分)Sql语句:SELECT COUNT(DISTINCT学号)FROM学生作业表WHERE课程号='K001';查询结果截图:6.查询数据库中共有多少个班级。
数据库系统原理实验报告-SQL查询语句

数据库系统原理实验报告姓名:xxx学号:xxxxxxxx专业:xxxxx日期:xxxxxLab2一、实验目的进一步熟悉关系数据库标准语言SQL。
二、实验环境1)Windows 102)SQL Server 2017三、实验内容给定如学生表、课程表和学生作业表所示的信息。
表2 课程表表3 学生作业表K0020529707085 K0020531808080 K0020538657585 K0020592758585 K0060531808090 K0060591808080 M0010496707080 M0010591657575 S0010531808080 S00105386080写出如下SQL语句:1.查询数据库中有哪些专业班级。
(5分)Sql语句:SELECT专业班级FROM学生表;查询结果截图:2.查询在1986年出生的学生的学号、姓名和出生日期。
(5分)Sql语句:SELECT学号,姓名,出生日期FROM学生表WHERE出生日期LIKE'1986%';查询结果截图:3.查询05级的男生信息。
(5分)Sql语句:SELECT*FROM学生表WHERE学号LIKE'05%'AND性别='男';查询结果截图:4.查询没有作业成绩的学号和课程号。
(5分)Sql语句:SELECT学号,课程号FROM学生作业表WHERE作业1成绩IS NULL OR作业2成绩IS NULL OR作业3成绩IS NULL;查询结果截图:5.查询选修了K001课程的学生人数。
(5分)Sql语句:SELECT COUNT(DISTINCT学号)FROM学生作业表WHERE课程号='K001';查询结果截图:6.查询数据库中共有多少个班级。
(5分)Sql语句:SELECT COUNT(DISTINCT专业班级)FROM学生表;查询结果截图:7.查询选修三门以上(含三门)课程的学生的学号和作业1平均分、作业2平均分和作业3平均分。
SQL数据的查询和更新实验报告报告

SQL数据的查询和更新实验报告报告实验三、SQL的数据查询1、实验目的熟悉SQL语句的数据查询语言,能够SQL语句对数据库进行单表查询、连接查询、嵌套查询、集合查询和统计查询。
2、实验内容实验内容主要是对数据库进行查询操作,包括如下四类查询方式:单表查询查询的目标表达式为所有列、指定的列或指定的列的运算三种不同。
使用DISTINCT保留字消除重复行。
对查询结果排序和分组。
集合分组使用集函数进行各项统计。
连接查询笛卡儿连接和等值连接。
自连接。
外连接复合条件连接。
多表连接。
嵌套查询通过实验验证对子查询的两个限制条件。
体会相关子查询和不相关子查询的不同。
考察四类谓词的用法,包括:第一类,IN、NOT IN;第二类,带有比较运算符的子查询;第三类,SOME、ANY或ALL谓词的子查询,查询最大值和最小值;第四类,带有EXISTS谓词的子查询,实现“所有”等情况集合运算使用保留字UNION进行集合或运算。
采用逻辑运算符AND或OR来实现集合交和减运算。
3、实验步骤以University_Mis数据库为例,该数据库中有四张如实验一,其中Score是每门课的考试成绩,Scredit是学生所有考试合格课程所获得的积分总数,Ccredit每门课程的学分数。
在数据库中,存在这样的联系:学生可以选择课程,一个课程对应一个教师。
在表Reports中保存学生的选课记录和考试成绩。
1请先输入如下元组,再对数据库进行有关的查询操作:图、Students表图、Teachers表图、Courses表图、Reports表2查询性别为“男”的所有学生的名称并按学号升序排列。
查询学生的选课成绩合格的课程成绩,并把成绩换算为积分。
积分的计算公式为:[1+(考试成绩-60)*]*Ccredit。
考试成绩>=60。
查询学分是3或4的课程的名称。
查询所有课程名称中含有“算法”的课程编号。
查询所有选课记录的课程号。
统计所有老师的平均工资。
数据库实验报告一SQL查询

(1) 查询员工的姓名、职务和薪水。
select employeename,employeeno,salaryfrom Employee(2) 查询名字中含有“有限”的客户名称和所在地。
select customerno,addressfrom customerwhere customername like'%有限%'(3) 查询出姓“张”并且姓名的最后一个字为“梅”的员工。
select*from employeewhere employeename like'张_梅'(4) 查询住址中含有“上海”或“南昌”的女员工,并显示其姓名、所属部门、职称、住址、出生日期和性别,其中如果出生日期为空,显示“不详”,否则按格式“yyyy-mm-dd”显示,性别用“男”和“女”显示。
select employeename,department,headship,address,birthday=case birthday when null then'不详'end,sex=case sex when'M'then'男'when'F'then'女'endfrom employeewhere address like'%上海%'or address like'%南昌%'(5) 查询出职务为“职员”或职务为“科长”的女员工的信息。
select*from employeewhere headship like'职员'or headship like'科长'(6) 选取编号不在C20050001~C20050004之间的客户编号、客户名称、客户地址。
select customerno,customername,addressfrom customerwhere customerno not between'C20050001'and'C20050004'(7) 在表OrderMaster中挑出销售金额大于等于5000元的订单。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据库系统原理
实验报告
:xxx
学号:xxxxxxxx
专业:xxxxx
日期:xxxxx
Lab2 一、实验目的
进一步熟悉关系数据库标准语言SQL。
二、实验环境
1)Windows 10
2)SQL Server 2017
三、实验容
给定如学生表、课程表和学生作业表所示的信息。
表1 学生表
表2 课程表
表3 学生作业表
K001 0433 60 75 75 K001 0529 70 70 60 K001 0531 70 80 80 K001 0591 80 90 90 K002 0496 80 80 90 K002 0529 70 70 85 K002 0531 80 80 80 K002 0538 65 75 85 K002 0592 75 85 85 K006 0531 80 80 90 K006 0591 80 80 80 M001 0496 70 70 80 M001 0591 65 75 75 S001 0531 80 80 80 S001 0538 60 80
写出如下SQL语句:
1.查询数据库中有哪些专业班级。
(5分)
Sql语句:
SELECT专业班级
FROM学生表;
查询结果截图:
2.查询在1986年出生的学生的学号、和出生日期。
(5分)
Sql语句:
SELECT学号,,出生日期
FROM学生表
WHERE出生日期LIKE'1986%';
查询结果截图:
3.查询05级的男生信息。
(5分)
Sql语句:
SELECT*
FROM学生表
WHERE学号LIKE'05%'AND性别='男';
查询结果截图:
4.查询没有作业成绩的学号和课程号。
(5分)
Sql语句:
SELECT学号,课程号
FROM学生作业表
WHERE作业1成绩IS NULL OR作业2成绩IS NULL OR作业3成绩IS NULL;
查询结果截图:
5.查询选修了K001课程的学生人数。
(5分)
Sql语句:
SELECT COUNT(DISTINCT学号)
FROM学生作业表
WHERE课程号='K001';
查询结果截图:
6.查询数据库中共有多少个班级。
(5分)
Sql语句:
SELECT COUNT(DISTINCT专业班级)
FROM学生表;
查询结果截图:
7.查询选修三门以上(含三门)课程的学生的学号和作业1平均分、作业2平均分和作业3平均分。
(5分)
Sql语句:
SELECT学生作业表.学号,AVG(作业1成绩),AVG(作业2成绩),AVG(作业3成绩)
FROM学生表,学生作业表
WHERE学生表.学号=学生作业表.学号
GROUP BY学生作业表.学号
HAVING COUNT(*)>2;
查询结果截图:
8.查询于兰兰的选课信息,列出学号、、课程名。
(5分)
Sql语句:
SELECT学生作业表.学号,,课程名
FROM学生表,学生作业表,课程表
WHERE= '于兰兰'AND学生表.学号=学生作业表.学号AND课程表.课程号=学生作业
表.课程号;
查询结果截图:
9. 查询与“志国”同一班级的学生信息(使用连接查询和子查询方式两种方式)。
(10 )
1)连接查询:
Sql语句:
SELECT学生表1.*
FROM学生表AS学生表1,学生表AS学生表2
WHERE学生表2.='志国'AND学生表1.专业班级=学生表2.专业班级;
查询结果截图:
2)子查询:
Sql语句:
SELECT*
FROM学生表
WHERE专业班级=(SELECT专业班级
FROM学生表
WHERE='志国');
查询结果截图:
10. 查询比“计算机应用基础”学时多的课程信息(使用连接查询和子查询方式两种方式)。
(10分)
1)连接查询:
Sql语句:
SELECT课程表1.*
FROM课程表AS课程表1,课程表AS课程表2
WHERE课程表2.课程名='计算机应用基础'AND课程表1.学时数>课程表2.学时数;
查询结果截图:
2)子查询:
Sql语句:
SELECT*
FROM课程表
WHERE学时数>(SELECT学时数
FROM课程表
WHERE课程名='计算机应用基础');
查询结果截图:
11. 查询选修课程号为K002的学生的学号、(使用连接查询、普通子查询、相关子查询、使用exists关键字的相关子查询四种方式)。
(20分)
1)连接查询:
Sql语句:
SELECT学生表.学号,学生表.
FROM学生作业表,学生表
WHERE学生作业表.课程号='K002'AND学生作业表.学号=学生表.学号;
查询结果截图:
2)普通子查询:
Sql语句:
SELECT DISTINCT学生表.学号,学生表.
FROM学生作业表,学生表
WHERE学生表.学号IN(
SELECT学生表.学号
FROM学生作业表
WHERE学生作业表.课程号='K002'AND学生作业表.学号=
学生表.学号)
查询结果截图:
3)相关子查询:
Sql语句:
SELECT DISTINCT学生表.学号,学生表.
FROM学生表,学生作业表
WHERE学生表.学号IN(
SELECT学生作业表.学号
FROM学生作业表
WHERE学生作业表.课程号='K002')
查询结果截图:
4)使用exists关键字的相关子查询:
Sql语句:
SELECT DISTINCT学生表.学号,学生表.
FROM学生作业表,学生表
WHERE EXISTS(
SELECT*
FROM学生作业表
WHERE学生作业表.课程号='K002'AND学生作业表.学号=学生表.
学号)
查询结果截图:
12. 查询没有选修K001和M001课程的学号、课程号和三次成绩(使用子查询)。
(20分)
Sql语句:
SELECT DISTINCT学号,课程号,作业1成绩,作业2成绩,作业3成绩
FROM学生作业表
WHERE学号NOT IN(
SELECT学号
FROM学生作业表
WHERE课程号='K001'OR课程号='M001')
查询结果截图:
四、实验总结
通过本次实验,我更加熟悉了SQL语言查询相关的语句用法。
在实验中遇到了很多问题,例如建表时提示主键列不能输入重复值,后来才知道原来要设置两个主键。
希望在以后的实验中可以收获更多的实践知识。