数据库笔记

news2025/2/21 21:59:04

文章目录

  • 01 数据库概述
    • 1.1 四个基本概念
    • 1.2 数据管理技术的三个阶段
      • 1.2.1 人工管理阶段
      • 1.2.2 文件系统阶段
      • 1.2.3 数据库阶段
    • 1.3 数据独立性
    • 1.4 数据库的三级模式结构
      • 1.4.1 三级模式结构
      • 1.4.2 数据库的二级映像与数据独立性
  • 02 关系数据库
    • 2.1 关系数据结构及形式化定义
      • 2.1.1 关系
    • 2.2 关系基本操作
      • 2.2.1
      • 2.2.2
      • 2.2.3
      • 2.2.4
    • 2.2 关系的完整性
    • 2.4 关系代数
  • 实验内容

01 数据库概述

1.1 四个基本概念

1.数据data : 描述事物的符号记录,可以为文字、图像、图形、音频、视频等。

2.数据库DB : 长期存储在计算机内、有组织、可共享的大量数据的集合。

3.数据库管理系统DBSM : 位于操作系统与用户之间的一层数据管理软件。

4.数据库系统DBS : 由数据库、数据库管理系统、应用程序、数据库管理员组成的存储、管理、处理、维护数据的系统。

1.2 数据管理技术的三个阶段

1.2.1 人工管理阶段

数据处理方式:批处理

该阶段特点:
1.数据不能长期保存
2.数据不共享
3.数据不独立
4.数据冗余

1.2.2 文件系统阶段

该阶段特点:
1.数据可以长期保存
2.数据共享性差,冗余度大
3.数据独立性差
4.数据不一致

1.2.3 数据库阶段

该阶段特点:
1.数据结构化
2.数据共享性高、冗余度低、易扩充
3.由数据库管理系统统一管理和控制

1.3 数据独立性

物理独立性 : 指用户的应用程序与数据库中数据的物理存储是相互独立的。

逻辑独立性 : 指用户的应用程序与数据库的逻辑结构是相互独立的。

1.4 数据库的三级模式结构

1.4.1 三级模式结构

在这里插入图片描述1.模式:模式也称为逻辑模式,是数据库中全体数据的逻辑结果和特征的描述。是所有用户的公共数据视图。一个数据库只有一个模式。

2.外模式:也称子模式或用户模式,它是数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。一个数据库可以有多个外模式,但一个应用程序只能使用一个外模式。

3.内模式:也称存储模式,它是数据物理存储结构和存储方式的描述,是数据在数据库内部的组织方式。一个数据库只有一个内模式。

1.4.2 数据库的二级映像与数据独立性

1.外模式/模式映像

模式描述的是数据的全局逻辑结构,外模式描述的是数据的局部逻辑结构。

当模式(逻辑模式)改变时,由数据库管理员对各个 外模式/模式 的映像作相应改变,可以使
外模式保持不变。应用程序是依靠数据的外模式编写的,从而应用程序不必修改,保证了数据与
程序的逻辑独立性,简称数据的独立性。

2.模式/内模式映像

数据库中只有一个模式,也只有一个内模式,所以该映像是唯一的。

当数据库的存储结构改变时,由数据库管理员对 模式/内模式 映像作相应改变,可以使模式
保持不变,从而应用程序也不必改变。保证了数据与程序的物理独立性,简称数据的物理独立性。

02 关系数据库

2.1 关系数据结构及形式化定义

2.1.1 关系

关系:关系模型的一张二维表

1.: 一组具有相同数据类型的值的集合
2.候选码 : 若关系中的某一属性的值能唯一地标识一个元组(一行),而其子集不能,则称为该属性的候选码。
3.主码 : 若一个关系有多个候选码,则选定其中一个为主码。
4.主属性 : 候选码的诸属性
5.全码 : 关系模式的所有属性是这个关系模式的候选码

基本关系具有以下6条性质:

1.列是同质的。即每一列中的分量是同一类型的数据。
2.不同的列可出自同一个域。
3.列的顺序无所谓,即列的次序可以任意交换。
4.任意两个元组的候选码不能取相同的值。
5.行的顺序无所谓,即行的次序可以任意交换。
6.分量必须取原子值,即每一个分量都必须是不可分的数据项。

2.2 关系基本操作

关系模型的常用操作:查询操作、插入操作、删除操作、修改操作

查询操作包含:选择、投影、连接(x)、除(x)、并、差、交(x)、笛卡尔积等。其中选择、投影、并、差、笛卡尔积为基本操作。

关系数据语言分类:

在这里插入图片描述SQL语言是一种高度非过程化的语言

2.2.1

2.2.2

2.2.3

2.2.4

2.2 关系的完整性

2.4 关系代数

实验内容

实验工具:Navicat


/********单表查询********/

SELECT*FROM`客户`/*查询客户表*/

/*查询所有客户的姓名、出生年份、电话,并且将输出结果中的列名显示为“客户姓名”、“出生年份”、“手机号码”*/
SELECT 姓名 客户姓名,出生日期 出生年份,电话 手机号码 FROM 客户

/*查询所有客户的姓名、电话、年龄、性别。*/
SELECT 姓名,电话,2022-出生日期 年龄,性别 FROM `客户`


/*查询所有男客户的信息,并按地址进行排序。*/
SELECT * FROM 客户 WHERE 性别='男' ORDER BY `地址`

/*查询年龄小于30岁的客户姓名、电话、地址*/
SELECT 姓名,电话,地址 FROM 客户 WHERE 2022-`出生日期`

/*查询“海南”的客户姓名、出生日期、电话、地址。    % 以海南开头的地址*/
SELECT 姓名,出生日期,电话,地址 FROM `客户` WHERE 地址 LIKE '海南%'

/*查询年龄大于 40 岁的客户姓名、年龄、电话、地址,并按年龄升序排列输出*/
SELECT 姓名,2022-`出生日期` 年龄,电话,地址 FROM `客户` WHERE (2022-`出生日期`)>40 ORDER BY 年龄

/*查询姓李的客户信息,并按性别降序排列输出,同性之间按年龄升序排列输出*/
SELECT * FROM `客户` WHERE 姓名 LIKE '李%' ORDER BY `性别` DESC /*加上运行不出来的内容:`出生日期` ASC*/

SELECT * FROM `商品`

/*查询价格在 5000 到 8000 之间的商品信息,并按单价降序排列输出*/
SELECT * FROM `商品` WHERE 单价 BETWEEN 5000 AND 8000 ORDER BY 单价 DESC

SELECT * FROM `订单`

/*查询成交记录表中下订单两天后才成交的订单编号、商品编号、订单时间、成交时间。*/
SELECT 订单编号,商品编号,订单时间,成交时间 FROM `订单` WHERE (`成交时间`-`订单时间`)>=2



/********连接查询(多表查询)******/
SELECT*FROM `商店`
SELECT*FROM `商品`
SELECT*FROM `订单`

/*查询商品名中包含有“计算机”的商店名称、商品名称、价格、负责人、客服电话*/
SELECT 商店名称,商品名称,单价,负责人,客服电话 FROM `商品`,`商店` 
WHERE 商店.商店编号=商品.商店编号 AND 商品名称 LIKE '%计算机%'

/*查询购买了各式“打印机”的客户姓名、商品名称、电话、地址。*/
SELECT 姓名,商品名称,电话,地址 FROM `客户`,`订单` ,`商品` WHERE 
客户.`客户编号`=订单.`客户编号` AND 商品.`商品编号`=订单.`商品编号` AND 商品名称 LIKE '%打印机%'

/*查询拥有两种以上商品的商店名称、负责人、商品数量   !!!这个运行不出来*/
SELECT 商店名称,负责人,COUNT(*) AS 商品数量 FROM `商品`,`商店` WHERE 商店.`商店编号`=商品.`商店编号` 
ORDER BY 商店名称,负责人
    HAVING COUNT(*)>=2

/*查询订单中不少于五条交易记录的客户编号、姓名、电话和记录数。*/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/30461.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

论文管理系统(增删查改功能的实现)

目录 一、后端 1.1实体类 1.2paperMapper类 1.3 PaperMapper类 1.4Service层 1.5 Controller层 二、前端 源代码 我们已经实现列表数据了,接下来我们将实现增删查改功能,新增和修改还能够回显 一、后端 1.1实体类 实体类还是我们上一版的列表功能的实现的paper实…

IFD-x 微型红外成像仪探测距离说明

红外热成像仪是用光学镜头来收集被测物体的热辐射能量的,故此探测距离会受镜头视场角 和热成像像素分辨率有关。 假如某成像仪的成像分辨率为 32*32 像素,视场角为 75 度,则可以理解为从镜头发射出 32*321024 条激光来探测 1024 个点的…

数据结构初阶:队列

目录 一、队列的概念和结构 二、队列的实现 定义队列结构 初始化队列 销毁队列 检测队列是否为空 入队列 出队列 获取队列头部元素 获取队列队尾元素 获取队列中有效元素个数 优化 三、测试 四、优化后的全部代码 一、队列的概念和结构 队列:只允许在一端进行插入数据操作…

【区块链】用Python实现一条区块链

用Python实现一条区块链 点击链接获取可执行文件 本文使用 python 实现了一条简单的区块链。主要分两个模块:实现每个区块的结构和相关的方法、实现整条区块链的结构和相关的方法。下面是对这两个模块的描述。 每个区块主要包括两个成员:区块头和区块…

GlobalWebsoket.js 的使用,实现获取实时数据

在称重小程序是使用 GlobalWebsoket 实现获取实时数据前言一、逻辑分析二、实现方式1.方法整体流转分析 -- 初始化并绑定1. onLoad1. init2. getDeviceInfo3. initWebSocket4. setProperties2.方法整体流转分析 -- 解除绑定1. onBackPress2. remoeSubscribe三、参数调用分析四、…

“大数据分析”相比“传统数据分析”优势明显,体现在哪些方面

一、大数据和数据分析的定义: 数据分析:指使用适当的统计分析方法来收集数据,以进行大量数据分析。 大数据分析:指在可承受的时间范围内无法使用常规软件工具捕获,管理和处理的数据集合; 数据分析的核心…

【web渗透思路】任意账号的注册、登录、重置、查看

目录 一、任意用户注册 1.未验证邮箱/手机号 2、不安全验证邮箱/手机号 3.批量注册 4.个人信息伪造 5.前端验证审核绕过 6.用户名覆盖 二、任意用户登录 1、万能密码 2、验证码、密码回显 3、登录检测不安全 三、任意账号重置 1、重置账号名 2、验证码 3、MVC数…

2022年第三季度泛出行行业洞察:泛出行行业正在经历数智化升级的关键时期,用户规模保持平稳增长,行业整体良性发展

易观分析:泛出行行业涵盖综合车主服务、车辆加油充电、网约车、旅游预定、酒店预定、户外出行等领域。当前泛出行领域正在经历传统模式向数智化新模式的转变,智能化升级和服务品质提升在该领域变革中正发挥着积极的作用。未来泛出行领域将在数智化、电动…

Web3:价值投资的范式转移

​潜力博主推荐,点上面关注博主 ↑↑↑ 进化是宇宙中最强大的力量,是唯一永恒的东西,是一切的驱动力。———桥水基金 雷.达利奥 时间拉长,进化才是人类的主旋律。过去,环境的变化是进化的主因。 现在,技…

Servlet | 深度剖析转发和重定向

一:深度剖析转发和重定向 (1)在一个web应用中通过两种方式可以完成资源的跳转 第一种方式:转发方式 第二种方式:重定向方式 (2)转发和重定向的区别 区别一:代码上的区别 ①转发 &a…

阿里资深专家撰写出的 Nginx 底层与源码分析手册,GitHub 已爆赞

NGINX 发展史: 过去最主流的服务器是 1995 年发布的 Apache 1.0。Apache 源于 NCSAHTTPd 服务器,是一个多进程模型的 Web 服务器。但运行到后期,Apache 渐渐出现很多问题,比如内存占用很大、扩展需挂接第三方库、并发能力受限等。…

高效的股票数据接口工具有哪些?

我们已经知道了量化投资是是通过数量化方式及计算机程序化发出买卖指令,以获取稳定收益为目的的交易方式,而其中最重要的载体是数据。在金融领域中量化的应用让金融分析师、外汇交易员、产品研发员等技术人员又有了新的用武之地,转型成为量化…

【微信小程序】saveFile:fail tempFilePath file not exist

开发微信小程序尝试保存文件时,会提示saveFile:fail tempFilePath file not exist错误,是什么问题呢,接下来带你如何分析和解决问题 文章目录1. 定位问题2. 解决问题1. 定位问题 首先,看一下代码怎么写得,如下所示 w…

数据结构之线性表中的顺序表【详解】

前言 现在是北京时间11月24号0点2分,天气有一些冷,我现在很困,但是博客还没写,我很想睡觉,假如我现在放弃的码字,往床上一趟,其实也不怎么样,但是我们不能有拖延症,所以…

关于元宇宙的六七八你知道多少?

🏠个人主页:黑洞晓威 🧑个人简介:大家好,我是晓威,一名普普通通的大二在校生,希望在CSDN中与大家一起成长。🎁如果你也在正在学习Java,欢迎各位大佬来到我的博客查漏补缺…

【MySQL篇】第三篇——表的操作

创建表 创建表案例 查看表结构 修改表 删除表 创建表 在创建数据库之后,接下来就要在数据库中创建数据表了。所谓创建数据表,指的是在已经创建数据库中建立新表。 创建数据表的过程是规定数据列的属性的过程,同时也是实施数据完整性&am…

JAVA实训第二天

目录 JDK8新特性 Java8介绍 JAVA 8主要新特性 Java 8接口增强-默认方法 接口 接口的应用 Lambda表达式介绍 Lambda表达式的写法 功能性接口Lambda表达式的应用 函数接口 JDK8新特性 Java8介绍 •Java8是Java发布以来改动最大的一个版本,其中主要添加了函数式…

自定义数据类型——结构体

我们今天来简单介绍一下结构体。 目录 1. 结构体的声明 2. 结构体成员的访问 3. 结构体传参 首先我们要知道为什么会有结构体的存在,我们的生活里有很多东西,比如一只猫,一本书,一个人,我们如果要用程序来描述他们…

C语言 指针

C语言 指针引言1. 什么是指针2. 简单认识指针3. 取地址符 & 和解引用 * 符一、指针与内存二、指针类型的存在意义1. 指针变量的大小2. 指针移动3. 不同指针类型的解引用三、指针运算1. 指针加减整数程序清单1程序清单22. 指针 - 指针3. 指针关系运算四、二级指针五、野指针…

这个双11,我薅了华为云会议的羊毛

文章目录前言华为云会议悄然助力各行各业和其他云会议产品相比,华为云会议优势是什么?云端一体线下会议室和云会议互通专业会管与会控能力更安全华为云会议有哪些 AI 能力?华为云会议入门有多简单?下载步骤如下安装加入会议预约会…