前言

        "<数据库原理及应用>(MySQL版)".以下称为"本书"中2.1节和2.2节第一部分内容

引入

        本书P40:SQL(Structure Query Language结构化查询语言)是一种在关系数据库中定义和操纵数据的标准语言,是用户和数据库之间进行交流的接口.

        ---SQL是一种语言,是一种工具,值得欣慰的是如何实现它不用写应用的程序员去关心,会用即可

MySQL8.0安装的两个细节

        要操作SQL语言,先安装一个MySQL.某度搜索"MySQL8.0安装",根据其步骤实操有两个地方要注意:

      1.在最后finish阶段,"Starting the server 失败"

        解决方法:

        ---不要关闭错误页面:出现红色感叹号时,保持安装界面打开,不要点击取消或关闭按钮。
        ---打开服务管理界面:
                右键点击“计算机”(或“此电脑”),选择“管理”。
                在左侧导航栏中依次展开“服务和应用程序”→“服务”,找到名称为“MySQL80”(不同版本可能略有差异,通常以MySQL开头)的服务。

        ---配置MySQL服务属性: 

                右键点击“MySQL80”服务,选择“属性”。

                在弹出的窗口中切换到“登录”选项卡。

                勾选“允许服务与桌面交互”,点击“应用”保存设置

        重新执行安装:返回MySQL安装界面,点击“Execute”按钮重新尝试安装,此时“Starting the server”步骤大概率会成功

注:内容为转载,原帖MySQL安装时Starting the server 失败的问题_mysql8.0安装后starting the server不成功-CSDN博客

        2.首次登陆mysql的问题

        按照常规方法在控制台输入:mysql -u root -p,老是显示错误登陆不成功.原因是此时未设置密码---登陆密码和安装mysql输入的密码不一样.第一次登陆方法:mysql -u root,回车即可登陆.进入sql后可以修改登陆密码

2.1 SQL语言介绍

        SQL是一种国际标准

2.1.1SQL数据库的体系结构

图2-1 SQL数据库的体系结构图1-4的具体表达,在"模式"中添加了索引,内模式有了具体表示.

使用SQL的关系数据库的特点,主要有两点:

1.SQL用户可以是应用程序,也可以是终端用户.它可以独立使用,也可以被嵌入宿主语言如C++,Java等.

2.视图是一个虚表.

        ---前面提到过"视图"是一个搜索请求,它的结果是一张表.

其余内容了解即可

2.1.2 SQL的特点,是一些文字描述

2.1.3 SQL语言的组成

        数据定义语言DDL,数据操纵语言DML和数据控制语言DCL

2.2 数据定义

        对数据的概念回顾:前面提到过在数据库中,把"表"看作是数据库的基本数据.而在"表"定义时,"属性"是表的基本单位.综合来说,数据库的基本单位是"属性",利于后面的"数据类型"的理解.

2.2.1数据库的定义和删除

数据库的数据结构分析

        本书P42原话:数据库是存放数据的容器,在设计一个应用系统时必须先设计数据库.在MySQL中一个数据库服务器可以包含多个数据库,每个数据库存放在以数据库名字命名的文件夹中,用来存放该数据库中的各种表数据文件.

        ---这段话有一定信息量,数据库服务器→数据库→表数据文件,简单表示如下图:

        笔者写这个的目的是尝试站在高级语言描述:数据库的数据结构.以加深对数据库的理解

/*以下为伪代码*/
//数据库服务器类型定义
struct DataServer{vector<DataBase> dbs;
}//数据库类型定义
struct DataBase{vector<Table> tbs;Folder fdr;                //文件夹对象
}//表类型定义
struct Table{vector<Attribute> abs;     //属性的动态数组
}

        说明如下:

        1.根据"每个数据库都存放在以数据库名字命名的文件夹中(本书原话)",定义一个Folder类型表示数据库对象包含一个Folder对象(但没有去实现它).实现的效果可以类比Windows文件夹的效果---再深入一点,文件夹实际上是一个矩阵图形类对象(笔者之前分析过),从效果上来说,相当于未实现的前端.

        注意:每个表是单独的数据文件,在使用mysql的一些IDE中,常常能看见"名称.表名"格式的数据.例如"1.stu"---表示写了一个stu类型的表,并命名为1的数据文件.如果按照该格式建立若干表,则表示有若干个数据文件.表和数据文件是一一对应关系.这点很方便操作,数据物理独立性的表现.

        2.属性类型Attribute是一个"数据类型的类型",Java中有反射机制似乎能表达它,但C++没有(笔者也不知道底层是怎么实现,所以是伪代码).在<深入理解计算机系统>这本书中有提到,简单想一想:底层有专门的区域来表示数据类型,用指针指向该区域(表示第一个类型),并计算每个类型占用空间,然后指针偏移所占空间的大小,指向下一个类型(第二个类型)---底层都是二进制数,支持指针

        回到前面的问题:数据库的数据结构是什么?类似于高度为3的一棵树.为什么高度是3,设计成4可不可以?对应着图2-1把"表空间"单独列为1层.(这段属于笔者个人看法,有待商榷)

=============================内容分割线↓===================================

        目前为止,和树相关的几种数据结构:1文件树(Linux),2对象树(Qt),3身份证和4数据库的树.

        这些数据结构有一些区别:3和4并不算"树".只是他们的样子长得像树.其中身份证的数据结构归于散列表,要先设计散列算法,根据算法设定了层高.

        1,2是真正意义的"树",他们支持递归(递进).树还有二叉树,哈夫曼树等数据结构.

        3,4可称为"类树"(类似于树的数据结构).3,4的数据结构有细微差别,笔者以后做个专题分析.

=============================内容分割线↑===================================

数据库的三个指令

        本书P43:

        建立数据库        CREATE DATABASE 数据库名

        选择数据库         USE 数据库名

        删除数据库          DROP DATABASE 数据库名

小结

        数据库数据结构的分析,数据库定义和删除的指令.

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

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

实变函数中集合E的边界与其补集的边界是否相等

在实变函数&#xff08;或一般拓扑学&#xff09;中&#xff0c;给定一个集合 E \subseteq \mathbb{R}^n &#xff08;或更一般的拓扑空间&#xff09;&#xff0c;集合 E 的边界&#xff08;boundary&#xff09;与 E 的补集 E^c 的边界是否相等&#xff1f; 即&#x…

# C++ 中的 `string_view` 和 `span`:现代安全视图指南

C 中的 string_view 和 span&#xff1a;现代安全视图指南 文章目录C 中的 string_view 和 span&#xff1a;现代安全视图指南目录1. 原始指针的痛点1.1 安全问题1.2 所有权不明确1.3 接口笨拙1.4 生命周期问题2. string_view 深入解析2.1 基本特性2.2 高效解析示例2.3 防止常见…

Linux学习-多任务(线程)

定义轻量级进程&#xff0c;实现多任务并发&#xff0c;是操作系统任务调度最小单位&#xff08;进程是资源分配最小单位 &#xff09;。创建由进程创建&#xff0c;属于进程内执行单元。- 独立&#xff1a;线程有8M 独立栈区 。 - 共享&#xff1a;与所属进程及进程内其他线程…

高级堆结构

一、二项堆&#xff08;Binomial Heap&#xff09;&#xff1a;理解「合并操作」的优化二项堆的核心优势是高效合并&#xff0c;类似 “二进制加法”。我们通过「合并两个二项堆」的伪代码和步骤来理解&#xff1a;核心结构伪代码&#xff1a;class BinomialTreeNode:def __ini…

系统学习算法 专题十七 栈

题目一&#xff1a;算法思路&#xff1a;一开始还是暴力解法&#xff0c;即遍历字符串&#xff0c;如果出现当前位置的字符等于后面的字符&#xff0c;则删除这两个字符&#xff0c;然后再从头遍历&#xff0c;如此循环即可但是这样时间复杂度很高&#xff0c;每删除一次就从头…

深入解析函数指针及其数组、typedef关键字应用技巧

目录 一、函数指针变量的创建 1、什么是函数指针变量&#xff1f; 2、函数是否有地址&#xff1f; 3、创建函数指针变量 4、函数指针类型解析 二、函数指针变量的使用 三、两段有趣的代码 1、解释 (*(void (*)())0)(); 2、解释 void (*signal(int, void(*)(int)))(int…

k8s集群搭建一主多从的jenkins集群

方案 --------------------- | Jenkins Master | | - 持久化配置 |<---(hostpath 存储) | - 自动容灾 | --------------------|| Jenkins JNLP 通信| ----------v---------- ------------------- | Jenkins Agent | | Kubernetes Pl…

重温k8s基础概念知识系列三(工作负载)

文章目录1、工作负载简述2、Deployment1.1、创建 Deployment1.2、检查 Deployment上线状态3、StatefulSet4、DaemonSet3.1、创建 DaemonSet3.2、运行DaemonSet5、Job5.1、运行示例 Job5.2、检查 Job 的状态6、CronJob上一节&#xff0c;我们复习了Pod相关知识&#xff0c;大多情…

开源 Arkts 鸿蒙应用 开发(十八)通讯--Ble低功耗蓝牙服务器

文章的目的为了记录使用Arkts 进行Harmony app 开发学习的经历。本职为嵌入式软件开发&#xff0c;公司安排开发app&#xff0c;临时学习&#xff0c;完成app的开发。开发流程和要点有些记忆模糊&#xff0c;赶紧记录&#xff0c;防止忘记。 相关链接&#xff1a; 开源 Arkts …

Go语言并发编程 ------ 锁机制详解

Go语言提供了丰富的同步原语来处理并发编程中的共享资源访问问题。其中最基础也最常用的就是互斥锁&#xff08;Mutex&#xff09;和读写锁&#xff08;RWMutex&#xff09;。1. sync.Mutex&#xff08;互斥锁&#xff09;Mutex核心特性互斥性/排他性&#xff1a;同一时刻只有一…

8月17日星期天今日早报简报微语报早读

8月17日星期天&#xff0c;农历闰六月廿四&#xff0c;早报#微语早读。1、《南京照相馆》领跑&#xff0c;2025年暑期档电影总票房破95亿&#xff1b;2、神舟二十号圆满完成第三次出舱任务&#xff1b;3、宇树G1人形机器人100米障碍赛再夺金牌&#xff1b;4、广东佛山新增报告基…

在QML中使用Chart组件

目录前言1. 如何安装 Chart 组件2. 创建 QML 工程时的常见问题3. 解决方案&#xff1a;改用 QApplication QQuickView修改主函数&#xff08;main.cpp&#xff09;4. QApplication 与 QGuiApplication 的差异为什么 Qt Charts 需要 QApplication&#xff1f;总结示例下载前言 …

【P40 6-3】OpenCV Python——图像融合(两张相同属性的图片按比例叠加),addWeighted()

P40 6-3 文章目录import cv2 import numpy as npback cv2.imread(./back.jpeg) smallcat cv2.imread(./smallcat1.jpeg)#只有两张图的属性是一样的才可以进行溶合 print(back.shape) print(smallcat.shape)result cv2.addWeighted(smallcat, 0.7, back, 0.3, 0) cv2.imshow(…

传输层协议 TCP(1)

传输层协议 TCP&#xff08;1&#xff09; TCP 协议 TCP 全称为 “传输控制协议(Transmission Control Protocol”). 人如其名, 要对数据的传输进行一个详细的控制; TCP 协议段格式 • 源/目的端口号: 表示数据是从哪个进程来, 到哪个进程去; • 32 位序号/32 位确认号: 后面详…

黎阳之光:以动态感知与 AI 深度赋能,引领电力智慧化转型新革命

当全球能源结构加速向清洁低碳转型&#xff0c;新型电力系统建设成为国家战略核心&#xff0c;电力行业正经历从传统运维向智慧化管理的深刻变革。2024 年《加快构建新型电力系统行动方案》明确提出&#xff0c;到 2027 年需建成全国智慧调度体系&#xff0c;实现新能源消纳率突…

自动驾驶中的传感器技术34——Lidar(9)

补盲lidar设计&#xff1a;机械式和半固态这里不再讨论&#xff0c;这里主要针对全固态补盲Lidar进行讨论1、系统架构设计采用Flash方案&#xff0c; 设计目标10m10%&#xff0c;实现30m距离的点云覆盖&#xff0c;同时可以验证不同FOV镜头的设计下&#xff0c;组合为多款产品。…

Originality AI:原创度和AI内容检测工具

本文转载自&#xff1a;Originality AI&#xff1a;原创度和AI内容检测工具 - Hello123工具导航 ** 一、AI 内容诚信管理专家 Originality AI 是面向内容创作者的全栈式质量检测平台&#xff0c;整合 AI 内容识别、抄袭查验、事实核查与可读性分析四大核心功能&#xff0c;为…

OpenCV图像平滑处理方法详解

引言 在数字图像处理中&#xff0c;图像平滑是一项基础而重要的预处理技术。它主要用于消除图像中的噪声、减少细节层次&#xff0c;为后续的图像分析&#xff08;如边缘检测、目标识别等&#xff09;创造更好的条件。OpenCV作为最流行的计算机视觉库之一&#xff0c;提供了多种…

每天两道算法题:DAY1

题目一&#xff1a;金币 题目一&#xff1a;金币 1.题目来源&#xff1a; NOIP2015 普及组 T1&#xff0c;难度红色&#xff0c;入门签到题。 2.题目描述&#xff1a; 3.题目解析&#xff1a; 问题转化&#xff1a;求下面的一个数组的前 k 项和。 4.算法原理&#xff1a; …

C++核心语言元素与构建块全解析:从语法规范到高效设计

&#x1f4cc; 为什么需要双维度学习C&#xff1f;核心语言元素 → 掌握标准语法规则&#xff08;避免未定义行为Undefined behavior&#xff09;构建块&#xff08;Building Blocks&#xff09; → 像搭积木一样组合功能&#xff08;提升工程能力&#xff09; 例如&#xff1a…