MySQL 1、初识数据库

news2024/12/24 0:00:46

一、什么是数据库?

以特定的格式保存好的文件,我们就叫做数据库。

提供较为便捷的数据的存取服务的软件集合、解决方案,我们就叫它数据库。

存储数据用文件就可以了,为什么还要弄个数据库。

文件或数据库都可以存储数据,但是如果用文件,对于其内数据内容的管理工作就需要程序员自己做,如果用数据库,只需要几条语句就可以了。

相比较于数据库,文件的缺点在于

1.文件的安全性

2.文件不利于数据查询和管理

3.文件不利于存储海量数据

4.文件在程序中控制不方便

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

在Linux中,安装包一般是.rpm格式的。

rpm -qa查看系统中之前安装过的安装包

数据库可以更有效的管理数据。

指令:

启动:systemctl start mysqld

MySQL的登录:mysql -uroot -p

连接数据库:mysql -h 127.0.0.1 -p 3306 -u

127.0.0.1为指定主机ip(这里是本地ip,如果支持远端,也可以输入远端ip)

3306是mysql的默认端口号(数据库是建议改端口号的)

-u表示想以哪个用户登录

-p选项后面跟密码

mysql实际上是一套网络服务

mysql是数据库的客户端

mysqld是数据库的服务端

我们目录下的mysql实际上是MySQL的客户端,mysqld是MySQL的服务端,也叫数据库服务,实际是一个应用程序,启动之后变成进程。

如果数据库被卸载,其内的数据仍然会保留下来

数据库的本质:对文件的内容提供基本的内容操作,不需要用户、程序员手动进行数据管理,可直接通过mysql软件来操作文件。mysqld是一个软件层,能够帮助用户进行数据管理。

什么是数据库?

mysql实际上是一个数据库服务,以mysqld的形式呈现,最终在磁盘上会有大量的文件保存数据库内部的数据,我们把服务端和这些数据统称为数据库。

实际mysql的服务端就是一个网络服务器,也就是说它采用TCP协议,mysql处于应用层,就是一个应用层服务。在网络的视角,mysqld它就是一个应用层服务,在系统的视角,它就是一个用户层的一个进程

 :::3306和LISTEN是TCP协议,是mysqld应用层

它是一个网络服务,内部一定有自己的协议(我们不学mysql的协议规范等等)

要重启的是服务端

d开头的这个表示未来我们建库或者建表以及数据、数据库,都会放在这个目录

s开头的这个主要是用来进行管道通信的。

最重要的就是datadir。第一节1:12:00-1:16:00改mysql路径

改端口号:第一节1:58:45

二、创建一个数据库

mysql是一个关系型数据库(数据和数据之间、数据的行列之间、表与表之间有较大的联系、关系,数据间耦合度较高)。像Nosql(not only sql)这种,它的数据和字段之间没有关系。

创建一个数据库,本质是在做什么?建表本质在Linux上是做什么?

本质是在系统里创建了一个目录,建表本质是创建文件。

在MySQL中建立一个表本质是在Linux上创建对应的文件。

建表的行为在数据库里对应着两个文件。

数据库命令:

show databases;//显示当前数据库支持的数据库列表

creat database +名称;//创建数据库

在MySQL中,建立一个数据库本质是在Linux下建立了一个目录。这个目录就叫数据库。我们操作的是客户端,也就是说实际上本质是客户端构建一个sql,通过网络或本地进程间通信,交给服务端进程,服务端进程收到sql指令,在它的进程内部,一定有对应的系统调用,帮我们创建目录

use +库名称;//使用该库、进入该库

select database();//可以查一下现在用的是哪个库

system clear//执行系统的清屏命令,因为mysql没有清屏命令

create table user(//建表

name varchar(20),

age int

);

show tables;//查看表

desc user;//查看表的具体结构

insert into 表名 () values ();//插入数据

select * from user;

mysql有自己的缓存,不是每个操作都反映在磁盘上

上图是Linux环境下的。

Mysql本质就是一个命令行的client,未来我们知道的图形化界面的访问数据库的软件,也是client,(mysql的生态中,也会提供第三方库,让语言也能直接访问MySQL,这种也叫client(客户端))(Linux中的mysql是一个客户端,mysqld是一个数据库服务端)

服务器、数据库、表关系

MySQL实际是以二进制形式存数据的,只是呈现出来的不一样,MySQL为我们做了相关转换(呈现出来的是逻辑结构)mysql的逻辑结构是行和列的

第一节最后二十分钟,了解就行

mysql架构

mysql在不同环境下都有编好的,我们可以直接拿来用,现在的它在大部分平台都是可以跑的。所以mysql的底层源码在不同平台的底层源码是不一样的,但是上层的sql语句基本都是一样的。而C/C++这样的语言在不同平台上,底层的源码也是不一样的。

Mysql分为三层,第一层叫链接层,主要作链接管理、安全管理、鉴权(例如检测密码是否正确等等)。第二层主要作词法语法分析、系统调优、编译处理等等。第三层是存储引擎层,且支持插件。每一个存储引擎其实都是一个类。

sshd:远程登录协议,如果这个不启动,我们就无法在windows用xshell登录mysql

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

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

相关文章

基于单片机设计的水平仪(STC589C52+MPU6050)

一、前言 【1】项目背景 水平仪是一种常见的测量工具,用于检测物体或设备的水平姿态。在许多应用中,如建筑、制造和航空等领域,保持设备的水平姿态是非常重要的。为了实现实时的水平检测和显示,基于单片机设计的水平仪是一个常见…

LeetCode(26)判断子序列【双指针】【简单】

目录 1.题目2.答案3.提交结果截图 链接: 判断子序列 1.题目 给定字符串 s 和 t ,判断 s 是否为 t 的子序列。 字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。(…

设计模式解码:软件工程架构的航标

引言 软件工程领域的设计模式,就像是建筑师手中的设计蓝图,它们是经验的总结,指导开发者如何在面对层出不穷的编程难题时,构建出既稳固又灵活的软件结构。就像一座经过精心设计的大厦能够经受住风雨的考验一样,一个利用…

通讯录实现之进阶版将通讯录数据保存在文件中(完整代码)

我们在之前的博客中已经写过两版通讯录了: 第一版是用C语言实现了通讯录,但是通讯录的存储人数信息是固定的,用完就没有了 感兴趣的可以转到对应博客看一下,附带链接:第一版通讯录 第二版是在第一版的基础上动态开辟…

vscode Prettier配置

常用配置项: .prettierrc.json 是 Prettier 格式化工具的配置文件 {"printWidth": 200, // 指定行的最大长度"tabWidth": 2, // 指定缩进的空格数"useTabs": false, // 是否使用制表符进行缩进,默认为 false"singl…

GPTS全网刷屏!定制增长速度指数增长

还记的上周OpenAI刚刚举行完开发者大会,在大会上主要公布了三个事情: 新版本的GPT-4 Turbo:更强大、更便宜且支持128K新的助手API:让开发者更轻松地基于GPT构建辅助AI应用平台中新的多模态功能:包括视觉、图像创作&am…

SpringMVC调用流程

SpringMVC的调用流程 SpringMVC涉及组件理解: DispatcherServlet : SpringMVC提供,我们需要使用web.xml配置使其生效,它是整个流程处理的核心,所有请求都经过它的处理和分发![ CEO ] HandlerMapping : SpringMVC提供&…

如何理解Java是按值传递

在 Java 中,参数传递有两种方式:按值传递(pass by value)和按引用传递(pass by reference)。然而,Java 中的参数传递方式实际上是按值传递的。 按值传递的含义是: 在方法调用时&am…

华为 Mate 60 Pro 拆解:陆制零件比率上升至47% | 百能云芯

近日,日经新闻联合研究公司Fomalhaut Techno Solutions对华为 Mate 60 Pro 进行了拆解,揭示了这款于8月发布的新型智能手机的成本结构。拆解结果显示,该手机的国产零部件比例达到了47%,相较于三年前的 Mate 40 Pro,提高…

2.FastRunner定时任务Celery+RabbitMQ

注意:celery版本和Python冲突问题 不能用高版本Python 用3.5以下,因为项目的celery用的django-celery 3.2.2 python3.7 async关键字 冲突版本 celery3.x方案一: celery3.xpython3.6方案二 : celery4.xpython3.7 解决celery执…

Accelerate 0.24.0文档 三:超大模型推理(内存估算、Sharded checkpoints、bitsandbytes量化、分布式推理)

文章目录 一、内存估算1.1 Gradio Demos1.2 The Command 二、使用Accelerate加载超大模型2.1 模型加载的常规流程2.2 加载空模型2.3 分片检查点(Sharded checkpoints)2.4 示例:使用Accelerate推理GPT2-1.5B2.5 device_map 三、bitsandbytes量…

计算机毕业设计选题推荐-幼儿园管理微信小程序/安卓APP-项目实战

✨作者主页:IT毕设梦工厂✨ 个人简介:曾从事计算机专业培训教学,擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Py…

微机原理_10

一、单项选择题(本大题共15小题,每小题3分,共45分。在每小题给出的四个备选项中,选出一个正确的答案。) 1,将二进制数110110.01转换为十六进制为() A. 66.1H B. 36.4H C. 66.4 D. 36.2 2,一台计算机的字长是4个字节,含义是() A.能处理的最大…

soh估计:Data-driven prediction of battery cycle life before capacity degradation

文献思想 作者发现不同循环寿命的电池,第100次和第10次循环放电容量的差有不同,作者由这一现象,提取出了放电容量差的方差、平均值、最小值等特征,其中放电容量差的方差对数和循环寿命的对数的皮尔逊相关性高达-0.93,…

【精选】JavaScript语法大合集【附代码和超详细介绍以及使用】

JavaScript语法大合集 JavaScript引入到文件 嵌入到HTML文件中 <body><script>var num10;console.log(num);</script> </body>引入本地独立JS文件 <body><script src"./hello.js"></script> </body>引入网络来源…

leetcode:链表的中间结点

1.题目描述 题目链接&#xff1a;876. 链表的中间结点 - 力扣&#xff08;LeetCode&#xff09; 我们先看题目描述&#xff1a; 2.解题思路 我们用画图用快慢指针来解决这个问题 定义一个快指针fast&#xff0c;一个慢指针slow 快指针一次走两个结点&#xff0c;慢指针一次…

3GPP协议解读(一)_23.501_23.502_PDU Session_SMF与UDP的交互

UE发起计算服务申请后&#xff0c;网络侧处理的流程 UE发起服务的流程&#xff1a;service request网络侧处理服务涉及的通信数据通过PDU Session进行传输&#xff0c;涉及到SMF与UPF的交互。PDU Session的建立、管理全部由SMF&#xff08;Session Management Function&#x…

Docker与VM虚拟机的区别以及Docker的特点

01、本质上的区别 VM(VMware)在宿主机器、宿主机器操作系统的基础上创建虚拟层、虚拟化的操作系统、虚拟化的仓库&#xff0c;然后再安装应用&#xff1b; Container(Docker容器)&#xff0c;在宿主机器、宿主机器操作系统上创建Docker引擎&#xff0c;在引擎的基础上再安装应…

WordPress丸子小程序问题常见解决方案

WordPress丸子小程序问题常见解决方案 下载uniapp&#xff0c;导入项目。修改下图域名为自己的WP博客地址。&#xff08;如下图&#xff09; 发行微信小程序&#xff0c;如果显示不是项目所有者&#xff0c;请重新获取。 重新发行微信小程序&#xff0c;请打开微信开发者工具端…

【leaflet】学习笔记1-4

▒ 目录 ▒ &#x1f6eb; 导读开发环境 1️⃣ 改造greengis的leafletinsCodeinline-module服务器live-server 2️⃣ d1. 初见&#xff1a;Map、TileLayer说明/流程关键代码 3️⃣ d2. 多地图切换&#xff1a;Control.Layers说明/流程关键代码 4️⃣ d3. 标记&#xff1a;Marke…