【MySQL】初识数据库

news2025/2/23 18:01:31

数据库基础知识

  • 一、什么是数据库
  • 二、mysql与mysqld
  • 三、服务器、数据库、表关系
  • 四、数据库的连接、创建与使用
    • 4.1 安装地址
    • 4.2 连接服务器
    • 4.3 数据库的基本使用
    • 4.4 数据逻辑存储
  • 五、MySQL架构
  • 六、SQL分类
  • 七、存储引擎

一、什么是数据库

存储数据用文件就可以了,为什么还要弄个数据库?(有缺点

文件保存数据有以下几个缺点:

  • 文件的安全性问题
  • 文件不利于数据查询和管理
  • 文件不利于存储海量数据
  • 文件在程序中控制不方便

数据库存储介质:

  • 磁盘
  • 内存

为了解决上述问题,专家们设计出更加利于管理数据的东西——数据库,它能更有效的管理数据。数据库的水平是衡量一个程序员水平的重要指标。

为什么需要数据库呢?

简单来说,其实操作系统对文件的管理已经足够我们存储数据并查找了,但是并不利于我们用户来进行操作,如果在10w条数据中查找姓李的人,这就极其不方便,还需要用户写代码,所以就设计了数据库,我们只需要给出关键字段和要求,由数据库来帮我们查找并返回结果

如何理性地理解数据库?

  1. 站在用户的角度上,数据库就是存储在磁盘或内存上的具有特殊结构文件,是对数据内容存储的一套解决方案,根据字段或者要求,数据库文件直接返回结果
  2. 站在宏观的角度上,数据库是一套宏大的体系,用户向mysql提出要求,mysql把要求传给mysqld(服务端)由mysqld给我们的要求解析并得到结果,然后把结果返还给mysql,我们就看到了要增删改查的数据!!

在这里插入图片描述

二、mysql与mysqld

  1. mysql 是数据库服务的客户端。
    2. mysqld 是数据库服务的服务器端,是一个守护进程、给我们提供网络服务。
  2. mysql本质:基于C(mysql)S(mysqld)模式的一种网络服务,启动绑定端口的,mysqld绑定了3306端口(可修改)
  3. 用户(程序员)通过mysql创建数据库文件(文件存储在 /var/lib/mysql中),创建,增删改查并不由我们自己直接操作,而是通过操作mysql给服务器端的mysqld传递信息,由它帮我们进行一系列操作,我们不需要看到底层的细节。
  4. 建立数据库的本质就是在Linux中创建文件(mysqld服务器创建)
  5. 创建数据库就是在 /var/lib/mysql 目录下创建一个目录,选中数据库创建表结构就是在该目录下创建文件。

三、服务器、数据库、表关系

所谓安装数据库服务器,只是在机器上安装了一个数据库管理系统程序,这个管理程序可以管理多个数据库,一般开发人员会针对每一个应用创建一个数据库。
为保存应用中实体的数据,一般会在数据库中创建多个表,以保存程序中实体的数据。数据库服务器、数据库和表的关系如下:

在这里插入图片描述

四、数据库的连接、创建与使用

4.1 安装地址

Centos 6.5下编译安装MySQL 5.6.14
CentOS 7 通过 yum 安装 MariaDB
Windows下安装MySQL5.7
自行下载安装(官方)
不多赘述,网上资源很多

4.2 连接服务器

mysql -h 127.0.0.1 -P 3306 -u root -p

mysql:使用mysql操作

-h:指明登陆部署了mysql服务的主机ip (不写默认本地主机ip)
-P:指明要访问的端口号(可修改) (不写默认设置的port(3306))
-u: 指明登陆的用户(默认为root)
-p: 指明要输入的密码,密码输入的时候,是不显示的

4.3 数据库的基本使用

创建数据库:create database 数据库名
使用数据库:use 数据库名
创建表:create table 表名

在这里插入图片描述
在这里插入图片描述

数据库创建成功后会在/var/lib/mysql路径下面创建对应的数据库目录

在这里插入图片描述
数据库目录存储了创建的表的二进制文件
在这里插入图片描述

4.4 数据逻辑存储

在这里插入图片描述
以行和列的形式存储,二维数组

五、MySQL架构

MySQL 是一个可移植的数据库,几乎能在当前所有的操作系统上运行,如 Unix/Linux、Windows、
Mac 和 Solaris。各种系统在底层实现方面各有不同,但是 MySQL 基本上能保证在各个平台上的物理体系结构的一致性。

在这里插入图片描述

mysql本质仍旧是一个进程,是运行在操作系统之上的一个文件系统(应用),它完成一系列的操作之后最终交给OS系统存储,读取也依赖于OS系统.

六、SQL分类

  • DDL【data definition language】 数据定义语言,用来维护存储数据的结构 代表指令: create, drop, alter

  • DML【data manipulation language】 数据操纵语言用来对数据进行操作 代表指令: insert,delete,update

    • DML中又单独分了一个DQL,数据查询语言,
      代表指令: select
  • DCL【Data Control Language】 数据控制语言,主要负责权限管理和事务 代表指令: grant,revoke,commit

  1. 首先要定义数据库 才能创建表
  2. 创建表的目的是为了存储和管理,怎么管理,增删查改,
  3. 增删查改需要权限管理和事物,记录曾经的操作,已经造成的结果

七、存储引擎

存储引擎是:数据库管理系统如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术的实现方法。

MySQL的核心就是插件式存储引擎,支持多种存储引擎。

查看存储引擎命令:

show engines

在这里插入图片描述
其实主要用的是InnoDB,80%都是它。

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

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

相关文章

一文即可了解!Web测试(性能测试 / 界面测试 / 兼容性测试 / 安全性测试)

目录 前言: 一、Web性能测试:(压力测试、负载测试、连接速度测试) 二、Web界面测试:(导航测试、图形测试、内容测试、整体界面测试) 三、Web兼容性测试:(平台&#x…

Linux搭建Java环境——安装MySQL5.7(CentOS7.6)

一、使用Xftp上传MySQL安装包,并解压 这里可以直接使用安装包也可以使用命令直接在Xshell运行 wget http://dev.mysql.com/get/mysql-5.7.26-1.el7.x86_64.rpm-bundle.tar 当然要提前创建好文件夹/opt/mysql,并cd进去,运行tar -xvf mysql-…

通义千问写的高考作文你觉得怎么样?

目录 一、全国卷-全国甲卷 二、北京卷 三、上海卷 今天带大家使用通义千问来体验一下2023年高考作文,大家一起来一睹为快吧! 一、全国卷-全国甲卷 阅读下面的材料,根据要求写作。(60分) 人们因技术发展得以更好地掌控…

计算机网络管理-使用SNMPc开展网管活动

一、实验目的 全面学习SNMPc网络管理软件业务服务监控功能,了解如何使用网管软件从事网络管理工作 二、实验内容与设计思想 1)操作映射数据库。 2)查看管理对象的MIB数据。 3)创建、保存长期统计数据(要求一定时长…

django传统全栈开发一个ChatGPT应用

根据客户需求,开发一个能多人使用的ChatGPT平台,背后使用的是ChatGPT的api_key。 需求 1、可多轮对话 2、可删除对话 3、流式显示对话 4、可多人使用 5、多个api_key均衡使用 技术分析 第一次接触openai的二次开发,看文档、看文章&…

软件测试-金融银行项目怎么测?系统业务测试总结分析...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 银行测试人员的组…

《计算机组成原理》期末考试手写笔记——模块三:运算方法与运算器(变形补码计算+原码补码一位乘法计算+浮点运算)

本课程的期末考试复习笔记与你分享,祝你考试成功~ 目录 (一)知识点总结 知识点1:计算机中的运算(不考) 知识点2:定点加减法运算(很简单) 知识点3:定点乘法…

IDE/在VS2015中集成Qt开发环境

文章目录 概述安装VS2015安装Qt VS Tools 插件Qt相关配置应用到所有项目配置增加配置删除 VS项目属性下Qt工程配置(Qt Project Settings)Qt VersionsQt Modules编辑器找不到Qt的类 QtDesigner在VS下使用无法打开UI/打开失败找不到UI编译中间文件UI添加的…

package.json与package-lock.json区别需不需要被.gitignore文件忽略

前言 先要搞清楚package.json与package-lock.json文件分别是什么作用 .gitignore文件是干什么的-主页文章有 介绍 package.json 1.项目名称版本号,描述,以及运行命令和一些配置的node环境命令 2.记录那些包会在开发环境中用到,哪些包会…

【项目】从零实现一个高并发内存池

目录 一、项目介绍 1、该项目的原型 2、该项目所涉及到的技术及博主往期参考文章 3、池化技术 4、内存池的内碎片和外碎片 二、先来看一个定长内存池设计 三、高并发内存池的三层框架设计 1、thread cache的实现 1.1thread cache整体框架 1.2哈希桶映射对齐规则 1.3…

【送书福利-第九期】Web安全攻防从入门到精通

大家好,我是洲洲,欢迎关注,一个爱听周杰伦的程序员。关注公众号【程序员洲洲】即可获得10G学习资料、面试笔记、大厂独家学习体系路线等…还可以加入技术交流群欢迎大家在CSDN后台私信我! 本文目录 一、前言二、内容介绍三、作者介…

【LeetCode】768. 最多能完成排序的块 II

768. 最多能完成排序的块 II(困难) 思路 对于已经分好块的数组,若块数大于 1,则可以得到以下结论:「 右边的块的所有数字均大于或等于左边的块的所有数字」。考虑这个问题:对于已经分好块的数组&#xff0…

Linux——多线程互斥

多线程互斥 抢票问题互斥锁锁的接口 理解锁锁的背景概念如何看待锁:加锁和解锁的原理锁的封装 可重入与线程安全死锁死锁的概念与条件 抢票问题 这里用上一篇: https://blog.csdn.net/qq_63580639/article/details/131054847?spm1001.2014.3001.5501 的…

LVGL lv_color_t 像素定义详解

更多源码分析请访问:LVGL 源码分析大全 目录 1、概述2、颜色格式详解2.1、LV_IMG_CF_RAW_X2.2、LV_IMG_CF_TRUE_COLOR_X2.3、LV_IMG_CF_INDEXED_XBIT2.4、LV_IMG_CF_ALPHA_XBIT2.5、LV_IMG_CF_RGBX 3、送显函数(flush_cb)中的 lv_color_t附录…

【P54】JMeter 生成概要结果(Generate Summary Results)

文章目录 一、生成概要结果(Generate Summary Results)参数说明二、准备工作三、测试计划设计 一、生成概要结果(Generate Summary Results)参数说明 可以将测试结果在客户端模式下输出,同时能美化压测输出的结果 使…

申请Let‘s Encrypt免费SSL证书、自动化续签证书

一、环境 安装证书的环境为Centos Nginx,如果没有安装Nginx则需要先安装。 二、申请流程 1、开放80和443端口 firewall-cmd --permanent --add-port80/tcp firewall-cmd --permanent --add-port443/tcp firewall-cmd --reload2、安装 certbot 使用certbot工具能…

Doris动态表使用快速入门实战

1. 动态表构功能概述 半结构化数据,是介于结构化和非结构化之间的数据。和普通纯文本相比,半结构化数据具有一定的结构性。和结构化数据相比,其结构变化复杂,我们又不能方便的使用结构化的方式去描述它。 半结构的数据中通常即包…

Java基础知识总结归纳

0. 入门常识 0.1 Java 特点 0.2 Java 和 C 0.3 JRE 和 JDK 0.4 Java 程序编译过程 1. 数据类型 1.1 基本数据类型 1.2 引用类型 1.3 封装类 1.4 缓存池 2. 字符串 String 2.1 定义 2.2 不可变性的优点 2.3 String vs StringBuffer vs StringBuffer 2.4 字符串常量池…

【网络协议详解】——BGP协议(学习笔记)

目录 🕒 1. 概述🕒 2. BGP 发言人🕒 3. 工作原理🕒 4. 报文格式🕘 4.1 报文首部🕘 4.2 打开报文🕘 4.3 更新报文🕘 4.4 保活报文🕘 4.5 通知报文 🕒 5. BGP 的…

接口实战一“篇”入魂!你真正地了解接口测试么?

目录 前言: 需求描述: 计划和目标: 需求分析: 1.功能点划分 2.接口测试用例设计 3.测试用例评审 4.测试准备 5.测试执行 前言: 接口测试是软件测试的一种类型,它主要关注软件系统中的接口或 API …