数据库基础篇 -- 1

news2025/1/26 15:37:21

目录

数据库基础

1.1:什么是数据库

1.2:常见数据库

1.3:数据库的基本使用

1.4:mysql的架构

1.5:sql分类

1.6:存储引擎


数据库基础

1.1:什么是数据库

数据库是指存储和管理结构化数据的系统。它是一个组织数据的集合,这些数据可以被访问、管理和更新。数据库通常用于在计算机系统中存储大量数据,并提供对数据的高效访问和操作。

数据库可以存储各种类型的数据,例如文本、数字、图像、音频和视频等。它们被组织成表的形式,每个表包含多个列和行,其中每一列代表一个属性,每一行代表一个记录或数据项。

数据库管理系统(Database Management System,简称DBMS)是用于管理数据库的软件。它提供了一组功能和工具,用于创建、访问、更新和管理数据库。DBMS允许用户执行各种操作,例如插入、查询、修改和删除数据,同时还提供了数据完整性、安全性和并发控制等功能。

常见的关系型数据库管理系统(Relational Database Management System,简称RDBMS)包括MySQL、Oracle、Microsoft SQL Server和PostgreSQL等。除了关系型数据库,还有其他类型的数据库,如面向对象数据库、NoSQL数据库和图形数据库等,它们根据不同的数据模型和访问方式提供了不同的功能和特性。

数据库的存储介质:内存和硬盘

1.2:常见数据库

以下是一些主流的数据库管理系统(DBMS):

  1. MySQL:MySQL是一种开源的关系型数据库管理系统,广泛用于Web应用程序和小型到中型企业的数据存储和管理。

  2. Oracle Database:Oracle是一种功能强大的商业关系型数据库管理系统,被广泛用于大型企业和复杂的数据处理环境。

  3. Microsoft SQL Server:Microsoft SQL Server是微软开发的关系型数据库管理系统,适用于Windows平台,并提供广泛的企业级数据管理功能。

  4. PostgreSQL:PostgreSQL是一种功能强大的开源关系型数据库管理系统,具有可扩展性和高级特性,适用于各种规模的应用。

  5. MongoDB:MongoDB是一种开源的NoSQL数据库,采用文档存储模型,适用于大规模数据的存储和处理。

  6. Redis:Redis是一种开源的内存数据库,用于高速读写操作和缓存数据,常用于缓存和会话管理等场景。

  7. SQLite:SQLite是一种嵌入式关系型数据库引擎,以其轻量级和零配置的特性而闻名,适用于移动应用和小型项目。

1.3:数据库的基本使用

1.3.1:连接数据库

-h 指的是连接数据库的ip地址,不写默认是本地数据库

-P 指的是连接的数据库的端口号,不写默认是3306,注意是大写P

-u 值得是连接的数据库用户名

-p 是连接的密码

1.3.2:服务器,数据库,表关系

在一个典型的应用程序中,服务器、数据库和表之间存在以下关系:

1. 服务器(Server):服务器是一台计算机或计算机系统,用于运行数据库管理系统(DBMS)和提供数据库服务。服务器负责管理数据库的存储、访问和处理请求。

2. 数据库(Database):数据库是在服务器上创建和管理的数据存储系统。一个服务器可以承载多个数据库,每个数据库都是一个独立的数据集合,包含多个表和其他数据库对象。

3. 表(Table):表是数据库中的基本组织单位,用于存储数据。每个表由一组命名的列和多行数据记录组成。表的结构定义了每列的数据类型和其他约束条件。

在关系型数据库中,表可以通过主键和外键来建立关系:

- 主键(Primary Key):主键是表中的一个列或一组列,用于唯一标识表中的每个记录。主键值必须是唯一且不为空的。常用的主键类型是自增长整数(例如,自动递增的ID值)。

- 外键(Foreign Key):外键是一个或多个列,用于建立与其他表的关联。外键在一个表中引用另一个表的主键,以建立表之间的关系。外键用于实现表之间的数据一致性和关联性。

通过在表之间建立主键和外键关系,可以实现数据的关联、查询和数据完整性的维护。这种关系能够帮助有效地组织和管理复杂的数据结构,并支持数据的查询、过滤和连接操作。

除了关系型数据库,其他类型的数据库(如文档型数据库、图形数据库等)可能采用不同的数据组织和关系模型,但仍然具有类似的概念和关系概念来管理数据。

1.4:mysql的架构

 

1.5:sql分类

SQL(Structured Query Language)是用于管理和操作关系型数据库的标准语言。根据功能和用途的不同,SQL 可以被分类为以下几种类型:

1. 数据定义语言(Data Definition Language,DDL):DDL 用于定义数据库结构和模式的语言元素。它包括创建、修改和删除数据库、表、视图、索引等数据库对象的语句。常见的 DDL 命令有 CREATE、ALTER 和 DROP 等。

2. 数据操纵语言(Data Manipulation Language,DML):DML 用于操作数据库中的数据的语言元素。它包括插入、更新、删除和查询数据的语句。常见的 DML 命令有 INSERT、UPDATE、DELETE 和 SELECT 等。

3. 数据控制语言(Data Control Language,DCL):DCL 用于控制数据库的安全性、权限和事务的语言元素。它包括授予或撤销用户对数据库对象的访问权限的语句。常见的 DCL 命令有 GRANT 和 REVOKE 等。

4. 事务控制语言(Transaction Control Language,TCL):TCL 用于控制数据库事务的语言元素。它包括开始、提交或回滚事务的语句。常见的 TCL 命令有 BEGIN、COMMIT 和 ROLLBACK 等。

除了上述分类,还有其他类型的 SQL 扩展和变体,如存储过程语言(如PL/SQL和T-SQL)、动态 SQL、嵌入式 SQL 等,它们提供了更高级的功能和特性,用于编写复杂的数据库逻辑和业务规则。

需要注意的是,虽然 SQL 是一个标准的数据库查询语言,但不同的数据库管理系统(如MySQL、Oracle、SQL Server等)可能会在语法和功能上有所差异,因此需要根据具体的数据库系统来使用相应的 SQL 特性和语法。

1.6:存储引擎

1.6.1:存储引擎的作用

存储引擎是数据库管理系统中的组件,负责管理数据的存储和检索。它决定了数据在磁盘上的组织方式、访问方法和支持的功能。存储引擎的作用包括:

1. 数据存储和检索:存储引擎负责将数据持久化到磁盘,并提供数据的读取和写入操作。它定义了数据在磁盘上的存储格式和索引结构,以便有效地访问和检索数据。

2. 数据完整性和约束:存储引擎可以定义和强制执行数据的完整性和约束条件。例如,它可以定义主键、唯一性约束、外键关系等,确保数据的有效性和一致性。

3. 并发控制:存储引擎负责处理并发访问数据库的请求,并提供合适的锁定机制来保护数据的一致性。不同的存储引擎可能具有不同的锁定级别和并发控制机制。

4. 事务支持:一些存储引擎提供了事务的支持,可以确保数据库操作的原子性、一致性、隔离性和持久性(ACID属性)。这使得应用程序可以在复杂的操作中保持数据的完整性。

5. 查询性能和优化:存储引擎的选择可以对数据库的查询性能产生影响。不同的存储引擎具有不同的查询优化策略、索引实现和数据缓存机制,可以根据具体的应用需求进行调整和优化。

6. 可扩展性和可靠性:一些存储引擎具有分布式存储和复制机制,可以实现数据的分片和复制,以提供高可用性和可伸缩性。

通过选择合适的存储引擎,可以根据应用程序的需求优化数据库的性能、数据完整性和可靠性。不同的存储引擎具有不同的特性和适用场景,因此在选择存储引擎时需要考虑应用程序的读写比例、并发访问要求、数据一致性要求等因素。

1.6.2:查看存储引擎

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

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

相关文章

解决频繁操作svn导致提交文件失败svn: E155015,亲测成功

我是因为频繁在本地删除创建重复的包和.java文件,以至于在提交至svn的时候会出现我之前删除的包和.java文件,所以我致力于将其删除干净,频繁的在本地删除、去svn删除…以至于再后来本地项目中和svn中都没有但是还是svn: E155015,查…

Cesium入门之五:认识Cesium中的Viewer

Viewer是Cesium中用于显示3D场景的组件。它提供了创建和控制3D场景所需的所有基本功能,包括加载3D模型、添加图像覆盖物、设置相机位置和方向、处理用户输入等。 在创建Viewer时,可以指定要使用的HTML元素(例如canvas)&#xff0…

06-redis集群模式(中) 项目测试的云服务ip变内网等(解决大多数问题)

目录 0-0 前言 : 1. 搭建redis集群成功后 项目测试 ip变成内网 2. 设置 redis.conf的配置 3. 这时候如果运行后面操作, 会出以下问题 问题一: 不开放节点端口号 ​编辑问题二: 不开放通讯端口号 4. 最最核心的正确操作: 5. 删除全部容器 删除全部目录挂载 6. 重新运…

SSM(Vue3+ElementPlus+Axios+SSM前后端分离)-架子搭建

目录 SSM(Vue3ElementPlusAxiosSSM前后端分离)--架子搭建 技术栈 项目搭建 配置pom.xml 项目全局配置web.xml SpringMVC 配置 创建springDispatcherServlet-servlet.xml 创建项目相关的包 完成测试TestController.java 整合hi.html 启动Tomcat , 浏览器输入http://local…

mybatis是如何集成到spring的

前言 集成前的使用方式 mybatis单独使用时,一般的写法如下所示: // mybatis初始化 String resource "mybatis-config.xml"; InputStream inputStream Resources.getResourceAsStream(resource); // 读取配置文件,创建SqlS…

这五个问题一下就看出阿里通义千问和ChatGPT的差距了

前言 阿里通义千问申请过了,为了看看达到了什么水平,于是我问题了5个ChatGPT回答过的问题1,这五个问题网上都是没有的,是我自己想出来的。 问题一:小明说今天他吃了一只公鸡蛋,请问小明诚实吗? ChatGPT 这…

黑马Redis笔记高级篇 | 多级缓存

黑马Redis笔记高级篇 | 多级缓存(黑马教程云服务器踩坑记录) 1、JVM进程缓存(tomcat服务内部)1.1 导入商品案例1.2 初识Caffeine1.3 实现进程缓存 2、Lua语法入门2.1 初识Lua2.2 变量和循环2.3 条件控制、函数 3、多级缓存3.1 安装…

快速了解LVQ神经网络是什么

本站原创文章,转载请说明来自《老饼讲解-BP神经网络》bp.bbbdata.com 目录 一. 快速了解LVQ神经网络 1.1 LVQ神经网络是什么 1.2 LVQ神经网络的表示 二. 关于LVQ神经网络的判别计算过程 2.1 LVQ神经网络模型与它的判别方法 2.2 LVQ模型的…

【论文阅读】MINOTAUR: Multi-task Video Grounding From Multimodal Queries

背景动机 细粒度的视频理解已经成为增强现实(AR)和机器人应用开发的关键能力。为了达到这种级别的视频理解,智能体(例如虚拟助手)必须具备识别和推理视频中捕获的事件和对象的能力,处理一系列视觉任务,如活动检测、对象检索和(空间)时间基础…

教你设置dsn,brd文件关联到cadence

用过cadence的人应该都知道,很多人存在dsn,brd文件无法关联到cadence,从而导致无法直接双击对应的文件打开软件编辑,不得不先打开软件,再通过文件夹浏览来打开对应的文件,这其实是浪费了一些时间的。 下面通过简单的介…

Linux应用开发:socket

目录 1、TCP 1.1 TCP建立连接的流程图 1.2 TCP函数 1.2.1 socket 1.2.2 bind 1.2.3 listen 1.2.4 accept 1.2.5 recv 1.2.6 send 1.2.7 connnect 1.2.8 setsockopt、getsockopt 1.3 应用程序:服务器 1.4 应用程序:客户端 2、UDP 2.1 UDP建…

Github上传大于25M文件最简单方法!!!

Github上传大于25M文件最简单方法 方法:使用 GitHub 桌面应用程序1.下载 [Github](https://desktop.github.com/)应用程序到您的 Windows 或 Mac PC 上。2.单击“从互联网克隆存储库...”选项。3. 使用您的 Git 帐户登录。4. GitHub 应用程序将提示您使用电脑浏览器…

Docker安装Kong konga

一、安装Kong 1. 创建一个docker网络 docker network create kong-net2.拉取镜像 docker pull postgres:9.6 docker pull kong:2.6.03. 搭建pgsql数据库环境 docker run -d --name kong-database \--networkkong-net \-p 5432:5432 \-e "POSTGRES_USERkong" \-e …

Cisco Nexus 9000v Switch, NX-OS Release 10.3(3)F - 虚拟化的数据中心交换机

Cisco Nexus 9000v Switch, NX-OS Release 10.3(3)F - 虚拟化的数据中心交换机 请访问原文链接:https://sysin.org/blog/cisco-nexus-9000v/,查看最新版。原创作品,转载请保留出处。 作者主页:sysin.org NX-OS System SoftwareR…

Java接口介绍

Java接口介绍 接口(Interface),在Java编程语言中是一个抽象类型,是抽象方法的集合,接口通常以interface关键字来声明。Java接口是用于描述类所具有的方法集合,但并不提供实现这些方法的代码。它们被用来定义…

Leetcode刷题日志5.0

目录 前言: 1.两数相加 2.无重复字符的最长子串 3.整数反转 4.删除链表的倒数第 N 个结点 前言: 今天我又来继续分享最近做的题了,现在开始进入我们快乐的刷题时间吧!(编程语言Python3.0,难度&#xf…

C++模板详解(函数模板、类模板)

hello,这里是bangbang,今天来讲下模板 目录 1. 泛型编程 2. 函数模板 2.1 函数模板概念 2.2 函数模板格式 2.3 函数模板的实例化 2.4 模板参数的匹配原则 3. 类模板 3.1 类模板定义格式 3.2 类模板实例化 4. 非类型模板参数 5. 模板特化 5.1 模板特化概念 5.2…

计算机视觉——day 90 基于级联卷积神经网络和对抗学习的显著目标检测

基于级联卷积神经网络和对抗学习的显著目标检测 I. INTRODUCTIONII. 网路架构A. 基于级联卷积神经网络的生成器G全局显著性估计器 E局部显著性精炼器 R B.鉴别器 DIv. 实验A. 数据集和评价标准B. 实验结果 V. 结论 I. INTRODUCTION 显著目标检测在过去的几年中受到了广泛的关注…

AcWing算法提高课-1.3.7货币系统

宣传一下算法提高课整理 <— CSDN个人主页&#xff1a;更好的阅读体验 <— 本题链接&#xff08;AcWing&#xff09; 点这里 题目描述 在网友的国度中共有  n n n 种不同面额的货币&#xff0c;第  i i i 种货币的面额为  a [ i ] a[i] a[i]&#xff0c;你可以假…

Linux知识点 -- Linux环境基础开发工具使用

Linux知识点 – Linux环境基础开发工具使用 文章目录 Linux知识点 -- Linux环境基础开发工具使用一、Linux编辑器 - vim1.vim的打开与关闭2.vim的三种模式3.命令模式常见命令4.底行模式命令5.设置vim的table键为4个字符 二、Linux编辑器 - gcc / g1.介绍2.gcc / g的使用3.gcc /…