数据库实验报告:详解数据库的定义和实验过程 (数据库的定义实验报告)

一、引言

数据库是当今信息管理和处理的核心技术之一,广泛应用于各行各业。在本次数据库实验中,我们对数据库的基本概念、设计、建立及查询进行了实际操作,了解了数据库的定义、种类、结构和操作方法。本文将详细介绍我们的实验过程和结果。

二、数据库的定义

数据库(Database)是一个有组织、有关联、可共享的数据,是长期存储在计算机系统中的数据,具有存储、处理、共享、保护等多种功能。数据库管理系统(Database Management System,DBMS)是用来管理数据库的软件,包括数据定义、数据组织、查询等多方面内容。

三、实验环境

我们的实验环境是MySql 5.7数据库管理系统。MySql是一种开源的关系型数据库管理系统。与其他关系型数据库系统比较而言,MySql具有性能更高、存储成本更低、易用性更好等优点,被广泛地应用在Web应用程序开发和脚本语言编程中。

四、实验过程

1. 数据库设计与建立

数据库的设计和建立是数据库应用的之一步。在本次实验中,我们一共建立了4个数据表:球员表、球队表、比赛表、比赛记录表,分别用来存储球员、球队、比赛和比赛记录的信息。每个表都有自己的字段和属性。

球员表字段:

| Field | Type | Null | Key | Default | Extra |

| —– | —- | —- | — | ——- | —– |

| id | int(11) | NO | PRI | NULL | auto_increment |

| name | varchar(20) | NO | | NULL | |

| age | int(11) | NO | | NULL | |

| num | int(11) | NO | | NULL | |

| sex | varchar(10) | NO | | NULL | |

球队表字段:

| Field | Type | Null | Key | Default | Extra |

| —– | —- | —- | — | ——- | —– |

| id | int(11) | NO | PRI | NULL | auto_increment |

| name | varchar(20) | NO | | NULL | |

| country | varchar(20) | YES | | NULL | |

| coach | varchar(20) | YES | | NULL | |

比赛表字段:

| Field | Type | Null | Key | Default | Extra |

| —– | —- | —- | — | ——- | —– |

| id | int(11) | NO | PRI | NULL | auto_increment |

| name | varchar(20) | NO | | NULL | |

| address | varchar(30) | NO | | NULL | |

| date | date | NO | | NULL | |

比赛记录表字段:

| Field | Type | Null | Key | Default | Extra |

| —– | —- | —- | — | ——- | —– |

| id | int(11) | NO | PRI | NULL | auto_increment |

| player_id | int(11) | NO | MUL | NULL | |

| team_id | int(11) | NO | MUL | NULL | |

| match_id | int(11) | NO | MUL | NULL | |

| score | int(11) | NO | | NULL | |

| assist | int(11) | NO | | NULL | |

| steal | int(11) | NO | | NULL | |

| foul | int(11) | NO | | NULL | |

2. 数据库实现

在数据库设计与建立完成后,我们需要将这些表上传到数据库中。可以使用mysql命令行或者通过phpMyAdmin进行上传。在本次实验中,我们选择了使用phpMyAdmin进行上传。上传后,我们还为每个表添加了一些数据。

3. 数据查询

数据库的查询是数据库应用的关键部分。在本次实验中,我们对数据库进行了诸如查询球员信息、查询比赛信息、查询球员赛季总数据等多种查询操作。我们使用了如下几种查询语句:

a. SELECT查询语句

SELECT语句用来从数据表中提取数据,提取出的数据被称为结果集。SELECT语句的语法如下:

SELECT [DISTINCT] FROM

WHERE GROUP BY HAVING ORDER BY

其中,DISTINCT关键字用来指定唯一的行值,FROM关键字用来指定查询的表名,WHERE用来指定搜索条件,GROUP BY用来分组,HAVING用来过滤分组后的结果,ORDER BY用来指定排序,默认是升序排列。

b. JOIN查询语句

JOIN语句用来从多张数据表中提取相关联的数据记录,通过JOIN语句可以将不同的数据表连接起来。JOIN语句的语法如下:

SELECT FROM

[JOIN

ON ]

其中,table a和table b代表需要连接的数据表,condition用来指定连接条件,field list用来指定查询的字段。

c. 子查询

子查询是指将一个查询语句的结果作为另一个查询语句的条件进行查询。SELECT语句中可以嵌套其他的SELECT语句。子查询可以嵌套多个,采用括号嵌套的方式。子查询的语法如下:

SELECT FROM

WHERE IN (SELECT FROM

WHERE )

其中IN关键字表示结果集中要在哪些字段中查找数据,子查询的结果由SELECT语句生成。

五、实验结果

通过本次实验,我们掌握了数据库的基本概念、设计、建立及查询等操作。我们通过MySql数据库管理系统,完成了4个数据表的设计和建立,并对数据库进行了查询操作。在实践中,我们运用了SELECT、JOIN和子查询等查询语句,在数据表中查询各种信息,例如球员信息、球队信息、比赛信息等。我们实现了自己所想要的功能,并且成功地从数据库中提取出了所需的信息。

六、

相关问题拓展阅读:

求SQL数据库实验报告

*****系实验(上机)报告

课程名称 数据库系统基础

实验名称 数据查询与存储过程

学号 33

学生姓名 嘻习喜戏

成绩

年 月 日

序号 5 实验名称 SQL数据查询

实验目的:

熟练掌握SQL SELECT 语句败友,能够运用该语句完成各种查询。

实验内容:

用SQL SELECT 语句完成下列查询:

1. 查询客户表中的所有记录。

2. 从订购单表中查询客户号信息(哪些客户有订购单)。

3. 查询单价在20元以上(含)的产品信息。

4. 查询单价在20元以上(不含)的产品名称为牛奶的产品信息。

5. 查询单价在20元以上(不含)的产品名称为牛奶或德国奶酪的产品信息。

6. 查询有2023年7月订购单的客户名称、联系人、号码和订单号信息。

7. 查询有德国奶酪订货的客户的名称、联系人和号码信息。

8. 查询有德国奶酪订购需求的订单名细记录。

9. 查询所有订购数量(即订单名细中每个订购项目的数量)都在10个以上的订购单的信息。

10. 找出和德国奶酪同等价位的所有产品信息。

11. 查询单价范围在10元到30元范围内的产品信息(使用BETWEEN…AND)。

12. 从客户表中查询出客户名称中有“公司”二字的客户信息(使用LIKE运算符)。

13. 从客户表中查询出客户名称中没有“公司”二字的客户信息(使用NOT LIKE运算符)。

14. 按产品的单价升序列出全部产品信息。

15. 先按产品名称排序,再按单价排序列出全部产品信息。

16. 从产品表中查询共有几种产品。

17. 从订购名细表中查询德国奶酪的订购总数。

18. 计算德国奶酪所有订购的总金额。

19. 求所有订购单的平均金额,在查询结果中列出订购单的个数和平均金额。

20. 求每个订购单订购的项目数和总金额。

21. 求每个客户包含了德国奶酪订购的订单号及其更高金额和更低金额。

22. 求至少有两个订购项目的订购单的平均金额。

23. 找出尚未最后确定订购单(即订购日期为空值的记录)的有关客户信息(客户的名称、联系人和号码)和订单号。

24. 找出在2023年1月1日之后签订的订购单的客户信息(客户的名称、联系人和号码)、订单号和订购日期。

25. 列出每类产品(相同名称)具有更高单价的产品信息(产品号、名称、规格说明和单价,提示:使用内外层互相关嵌套查询)。

26. 确定哪些客户目前没有订购单(使用谓词NOT EXISTS)。

27. 查询目前有订购单的客户的信息(使用谓词EXISTS)。

28. 查询符合条件的产品信息,要求该产品的单价达到了任意一款产品名称为牛奶的单价的一半(使用ANY或SOME量词)。

29. 查询符合条件的产品信息,要求该产品的单价大于任何一款产品名称为牛奶的单价(使用ALL量词)。

30. 设计如下的连接操作,并分析各自的特点:

•广义笛卡儿积

•内连接

•外连接

•盯枯源左连接

•右连接

•全连接

掌握存储过程的创建命令,按照题目要求创建存储过程,理解存储过程的作用。

(1) 建立存储过程。查询单价范围在x元到y元范围内的产品信息。

(2) 建立存储过程。查询在某年某月某日之后签订的订购单的客户信息(客户的名称、联系人和号码)、订单号和订购日期。

(3) 建立存储过程。将某产品的订购日期统一修改为一个指定日期。

(4) 建立存储过程。删除没有签订单的客户信息。

实验要求:

用SELECT语句完成本次实验,并提交上机报告。

(1) 掌握存储过程的创建命令,按照实验内容的要求创建存储过程,理解存储过程的作用。

(2) 用CREATE PROCEDURE和EXECUTE 语句完成本次实验,并提交上机报告。

实验准备(本实验预备知识和为完成本实验所做的准备):

仔凯态细阅读课本第五章关于SQL的数据查询功能的内容

实验过程(实验的操作过程、遇到的问题及其解决办法或未能解决的问题):

用SQL SELECT 语句完成以上30题查询

实验总结(总结本次实验的收获、未解决的问题以及体会和建议等):

熟练掌握SQL SELECT 语句,能够运用该语句完成各种查询

附录(SQL语句):

–1. 查询客户表中的所有记录。

select * from 客户

–2. 从订购单表中查询客户号信息(哪些客户有订购单)

select 客户号from 订单where 订单号!=null

–3. 查询单价在元以上(含)的产品信息。

select *from 产品where 单价> 20 or 单价=20

–4. 查询单价在元以上(不含)的产品名称为牛奶的产品信息。

select *from 产品where 单价>20 and 产品名称=’牛奶’

--. 查询单价在元以上(不含)的产品名称为牛奶或德国奶酪的产品信息

select *from 产品where 单价>20 and (产品名称=’牛奶’or 产品名称=’德国奶酪’)

–6. 查询有年月订购单的客户名称、联系人、号码和订单号信息

select 客户名称,联系人, ,订单号from 客户,订单where (year(订购日期)=2023 and month (订购日期)=7)and (订单.客户号=客户.客户号)

–7. 查询有德国奶酪订货的客户的名称、联系人和号码信息。

select 客户名称,联系人, from 客户

where

(客户号= (select 客户号from 订单where(订单号 =(select 订单号from 订单明细

where 产品号= ( select 产品号from 产品where 产品名称= ‘ 德国奶酪’ )))))

–8. 查询有德国奶酪订购需求的订单名细记录。

select * from 订单明细where (数量!=null and 产品号=(select 产品号from 产品where 产品名称= ‘德国奶酪’))

–9. 查询所有订购数量(即订单名细中每个订购项目的数量)都在个以上的订购单的信息。

select * from 订单where (订单号in (select 订单号from 订单明细where (数量>10)))

–10. 找出和德国奶酪同等价位的所有产品信息。

select * from 产品where (

–11. 查询单价范围在元到元范围内的产品信息(使用BETWEEN…AND)。

select * from 产品where (单价between 10 and 30)

–12. 从客户表中查询出客户名称中有“公司”二字的客户信息(使用LIKE运算符)

select * from 客户where 客户名称like ‘%公司%’

–13. 从客户表中查询出客户名称中没有“公司”二字的客户信息(使用NOT LIKE运算符)。

select * from 客户where 客户名称not like ‘%公司%’

–14. 按产品的单价升序列出全部产品信息。

select *from 产品order by 单价

–15. 先按产品名称排序,再按单价排序列出全部产品信息。

select * from 产品order by 产品名称,单价

–16. 从产品表中查询共有几种产品。

select count ( distinct 产品名称) as 产品总数from 产品

–17. 从订购名细表中查询德国奶酪的订购总数

select sum (数量) as ‘订购奶酪数量’

from 订单明细

where 产品号in(select 产品号from 产品where 产品名称=’德国奶酪’)

–18. 计算德国奶酪所有订购的总金额

declare @a money

select @a=(select 单价from 产品where 产品名称=’德国奶酪’)

declare @b int

select @b=(select sum (数量) as ‘订购奶酪数量’

from 订单明细

where 产品号in(select 产品号from 产品where 产品名称=’德国奶酪’))

declare @c int

select @c=@a*@b

select @c as 总金额

–19. 求所有订购单的平均金额,在查询结果中列出订购单的个数和平均金额。

select 订单均值= avg(单价*数量) ,订单个数=count ( 订单号)

from 订单明细,产品

where 产品.产品号=订单明细.产品号

–20. 求每个订购单订购的项目数和总金额。

select 订单号, count (产品.产品号) as 项目数,sum(数量*单价) as 总金额

from 产品,订单明细

where (产品.产品号=订单明细.产品号)

group by 订单号

–21.求每个客户包含了德国奶酪订购的订单号及其更高金额和更低金额

select 客户.客户号,产品.产品号,数量*单价as 总金额

from 客户,订单,订单明细,产品

where 客户.客户号=订单.客户号and 订单.订单号=订单明细.订单号and 订单明细.产品号=产品.产品号and

产品名称=’德国奶酪’

order by 客户号

compute max(数量*单价),min (数量*单价) by 客户号

–22.求至少有两个订购项目的订购单的平均金额

select 订单号,avg(数量*单价),count(产品.产品号)

from 订单明细,产品

where 订单明细.产品号=产品.产品号

group by 订单号

having count(产品.产品号)>=2

–23.找出尚未最后确定订购单(即订购日期为空值的记录)的有关客户信息

— (客户的名称、联系人和号码)和订单号

select 客户名称,联系人,,订单明细.订单号

from 客户, 订单明细,订单

where(客户.客户号= 订单.客户号) and 订购日期=null

–24.找出在年月日之后签订的订购单的客户信息

–(客户的名称、联系人和号码)、订单号和订购日期

select 客户名称,联系人,,订单号,订购日期

from 客户,订单

where 客户.客户号=订单.客户号

and year(订购日期)>1996 and month(订购日期)>4 and day(订购日期)>2

–25.列出每类产品(相同名称)具有更高单价的产品信息

–(产品号、名称、规格说明和单价,提示:使用内外层互相关嵌套查询)

select A.产品号, A.产品名称, A.规格说明, A.单价

from 产品A

where 单价= (SELECT MAX(单价)

FROM 产品B

WHERE A.规格说明= B.规格说明)

–26.确定哪些客户目前没有订购单(使用谓词NOT EXISTS)

select *

from 客户

where not exists (select* from 订单where 客户号=订单.客户号)

–27.查询目前有订购单的客户的信息(使用谓词EXISTS)

select *

from 客户

where exists (select* from 订单where 客户号=订单.客户号)

–28.查询符合条件的产品信息,要求该产品的单价达到了任

–意一款产品名称为牛奶的单价的一半(使用ANY或SOME量词)

select *

from 产品a

where(单价>any(select 单价/2 from 产品b where b.产品名称=’牛奶’))

–29.查询符合条件的产品信息,要求该产品的单价大于任何

— 一款产品名称为牛奶的单价(使用ALL量词)

select *

from 产品a

where(单价>all(select 单价from 产品b where b.产品名称=’牛奶’))

–30.设计如下的连接操作,并分析各自的特点:

— •广义笛卡儿积

SELECT *

FROM 客户CROSS JOIN 订购单

WHERE 客户.客户号= 订购单.客户号

— •内连接

SELECT *

FROM 客户INNER JOIN 订购单

ON 客户.客户号= 订购单.客户号

— •外连接

— •左连接

SELECT *

FROM 客户LEFT JOIN 订购单

ON 客户.客户号= 订购单.客户号

— •右连接

SELECT *

FROM 客户RIGHT JOIN 订购单

ON 客户.客户号= 订购单.客户号

— •全连接

SELECT *

FROM 客户FULL JOIN 订购单

ON 客户.客户号= 订购单.客户号

说明:

1. 上机报告上传到211.68.36.251的数据库文件夹中的上传目录

2. 文件名的命名规则为:学号+姓名+实验+序号。如:汪伟的第二次上机报告名为:汪伟实验2

3. 封面由学生填写;

4. 正文的实验名称、实验目的、实验内容、实验要求已经由教师指定;

5. 实验准备由学生在实验或上机之前填写;

6. 实验过程由学生记录实验的过程,包括操作过程、遇到哪些问题以及如何解决等;

7. 实验总结由学生在实验后填写,总结本次实验的收获、未解决的问题以及体会和建议等;

8. 将相关的语句粘贴到附录中。

你自己改改吧。想要word原版的话再说一声。

你腊尘是要抄到报告册的吧念局租

上面的好像太仔兆多了,加我 我们也要写的,我这有11个你选

关于数据库的定义实验报告的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。


数据运维技术 » 数据库实验报告:详解数据库的定义和实验过程 (数据库的定义实验报告)