当前位置: 首页 > news >正文

MySQL 1、初识数据库

一、什么是数据库?

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

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

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

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

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

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

相关文章:

MySQL 1、初识数据库

一、什么是数据库? 以特定的格式保存好的文件,我们就叫做数据库。 提供较为便捷的数据的存取服务的软件集合、解决方案,我们就叫它数据库。 存储数据用文件就可以了,为什么还要弄个数据库。 文件或数据库都可以存储数据&#…...

H5ke11--3介绍本地,会话存储

代码顺序: 1.设置input,捕获input如果有多个用属性选择符例如 input[typefile]点击事件.向我们的本地存储设置键值对 2.在点击事件外面设置本地存储表示初始化的值.点击上面的事件才能修改我们想修改的值 会话(session)浏览a数据可以写到本地硬盘,关闭页面数据就没了 本地(…...

技术分享 | 如何写好测试用例?

对于软件测试工程师来说,设计测试用例和提交缺陷报告是最基本的职业技能。是非常重要的部分。一个好的测试用例能够指示测试人员如何对软件进行测试。在这篇文章中,我们将介绍测试用例设计常用的几种方法,以及如何编写高效的测试用例。 ## 一…...

quarkus的一些注解1

path 用于指定一个类或者方法的URL路径前缀。 Inject 将一个依赖注入到一个类或方法中 Get 用于指定一个处理HTTP GET请求 Produce 注解用于指定一个方法返回的内容类型。例如,Produces(MediaType.TEXT_PLAIN) 表示该方法返回一个纯文本类型的内容 QuarkusIn…...

初学Redis(Redis的启动以及字符串String)

首先使用在Windows PowerShell中输入指令来启动Redis: redis-server.exe 然后通过指令连接Redis: redis-cli 上图的127.0.0.1是计算机的回送地址 ,6379是默认端口 上述代码中创建了两个键,注意Redis中严格区分大小写&#xff0…...

C++ opencv基本用法【学习笔记(九)】

这篇博客为修改过后的转载,因为没有转载链接,所以选了原创 文章目录 一、vs code 结合Cmake debug1.1 配置tasks.json1.2 配置launch.json 二、图片、视频、摄像头读取显示2.1 读取图片并显示2.2 读取视频文件并显示2.3 读取摄像头并写入文件 三、图片基…...

理财和银保区别

理财和银保在以下六个方面存在区别: 产品性质:银行理财是银行发行的理财产品,属于金融投资,主要投向债券、票据等固定收益类资产。银保产品是保险公司发行的保险产品,属于保障投资,除了固定收益类资产外&am…...

一文浅入Springboot+mybatis-plus+actuator+Prometheus+Grafana+Swagger2.9.2开发运维一体化

Swagger是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTFUL风格的Web服务,是非常流行的API表达工具。 Swagger能够自动生成完善的 RESTFUL AP文档,,同时并根据后台代码的修改同步更新,同时提供完整的测试页面来调试API。 Prometheus 是一个开源的服务监控系统和时…...

【日常】爬虫技巧进阶:textarea的value修改与提交问题(以智谱清言为例)

序言 记录一个近期困扰了一些时间的问题。 我很喜欢在爬虫中遇到问题,因为这意味着在这个看似简单的事情里还是有很多值得去探索的新东西。其实本身爬虫也是随着前后端技术的不断更新在进步的。 文章目录 序言Preliminary1 问题缘起1.1 Selenium长文本输入阻塞1.2…...

C++知识点总结(6):高精度乘法真题代码

一、高精度数 低精度数 #include <iostream> #include <cstring> using namespace std;int main() {// 存储并输入两个数字 char a_str[1005] {};long long b;cin >> a_str >> b;// 特例先行&#xff1a;结果是0的情况if (a 0 || b 0){cout <&…...

Polygon zkEVM的Dragon Fruit和Inca Berry升级

1. Polygon zkEVM的Dragon Fruit升级 2023年8月31日&#xff0c;Polygon zkEVM团队宣称启动了其Mainnet Beta的Dragon Fruit升级的10天timelock&#xff0c;预计将于2023年9月11日激活。 Dragon Fruit升级点有&#xff1a; 改进了网络支持了最新的以太坊opcode——PUSH0 1.…...

【计算机网络学习之路】网络基础1

文章目录 前言一. 计算机网络发展局域网和广域网 二. 网络协议三. OSI七层模型四. TCP/IP四层&#xff08;五层&#xff09;模型五. 计算机体系结构与网络协议栈六. 协议形式及局域网通信数据包封装与分用 七. 跨网络通信八. MAC地址与网络通信的理解结束语 前言 本系列文章是…...

HTTP/2.0协议详解

前言 HTTP/2.0&#xff1a;互联网通信的革新标准 随着互联网技术的飞速发展&#xff0c;HTTP协议作为互联网应用最广泛的通信协议&#xff0c;也在不断演进和优化。HTTP/2.0是HTTP协议的最新版本&#xff0c;它旨在提供更高效、更安全、更快速的互联网连接。 一、HTTP/2.0的优…...

Python中的Random模块详解:生成随机数与高级应用

在Python编程中&#xff0c;随机数生成是许多应用的基础之一。random模块为我们提供了生成伪随机数的丰富工具&#xff0c;从简单的随机数生成到复杂的应用场景&#xff0c;都有很多功能可以探索。本文将深入介绍random模块的各个方面&#xff0c;通过详实的示例代码&#xff0…...

(论文阅读32/100)Flowing convnets for human pose estimation in videos

32.文献阅读笔记 简介 题目 Flowing convnets for human pose estimation in videos 作者 Tomas Pfister, James Charles, and Andrew Zisserman, ICCV, 2015. 原文链接 https://arxiv.org/pdf/1506.02897.pdf 关键词 Human Pose Estimation in Videos 研究问题 视频…...

【设计一个缓存--针对各种类型的缓存】

设计一个缓存--针对各种类型的缓存 1. 设计顶层接口2. 设计抽象类 -- AbstractCacheManager3. 具体子类3.1 -- AlertRuleItemExpCacheManager3.2 -- AlertRuleItemSrcCacheManager 4. 类图关系 1. 设计顶层接口 // 定义为一个泛型接口,提供给抽象类使用 public interface Cach…...

Django部署时静态文件配置的坑

Django部署时静态文件配置配置的坑 近期有个需求是用django进行开发部署&#xff0c;结果发现静态文件配置的坑是真的多&#xff0c;另外网上很多的内容也讲不清楚原理&#xff0c;就是这样这样&#xff0c;又那样那样&#xff0c;进了不少坑&#xff0c;这里记录一下关于css,…...

Android---网络编程优化

网络请求操作是一个 App 的重要组成部分&#xff0c;程序大多数问题都是和网络请求有关。使用 OkHttp 框架后&#xff0c;可以通过 EventListener 来查看一次网络请求的详细情况。一次完整的网络请求会包含以下几个步骤。 也就是说&#xff0c;一次网络请求的操作是从 DNS 解析…...

《算法通关村——不简单的字符串转换问题》

《算法通关村——不简单的字符串转换问题》 8. 字符串转换整数 (atoi) 请你来实现一个 myAtoi(string s) 函数&#xff0c;使其能将字符串转换成一个 32 位有符号整数&#xff08;类似 C/C 中的 atoi 函数&#xff09;。 函数 myAtoi(string s) 的算法如下&#xff1a; 读入…...

给VSCode插上一双AI的翅膀

#AI编程助手哪家好&#xff1f;DevChat“真”好用# 文章目录 前言一、安装DevChat1.1、访问地址1.2、注册1.3、在VSCode里安装DevChat插件1.3.1、未安装状态1.3.2、已安装状态 二、设置Access Key2.1. 点击左下角管理&#xff08;“齿轮”图标&#xff09;—命令面板&#xff…...

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …...

国防科技大学计算机基础课程笔记02信息编码

1.机内码和国标码 国标码就是我们非常熟悉的这个GB2312,但是因为都是16进制&#xff0c;因此这个了16进制的数据既可以翻译成为这个机器码&#xff0c;也可以翻译成为这个国标码&#xff0c;所以这个时候很容易会出现这个歧义的情况&#xff1b; 因此&#xff0c;我们的这个国…...

Cursor实现用excel数据填充word模版的方法

cursor主页&#xff1a;https://www.cursor.com/ 任务目标&#xff1a;把excel格式的数据里的单元格&#xff0c;按照某一个固定模版填充到word中 文章目录 注意事项逐步生成程序1. 确定格式2. 调试程序 注意事项 直接给一个excel文件和最终呈现的word文件的示例&#xff0c;…...

基于大模型的 UI 自动化系统

基于大模型的 UI 自动化系统 下面是一个完整的 Python 系统,利用大模型实现智能 UI 自动化,结合计算机视觉和自然语言处理技术,实现"看屏操作"的能力。 系统架构设计 #mermaid-svg-2gn2GRvh5WCP2ktF {font-family:"trebuchet ms",verdana,arial,sans-…...

将对透视变换后的图像使用Otsu进行阈值化,来分离黑色和白色像素。这句话中的Otsu是什么意思?

Otsu 是一种自动阈值化方法&#xff0c;用于将图像分割为前景和背景。它通过最小化图像的类内方差或等价地最大化类间方差来选择最佳阈值。这种方法特别适用于图像的二值化处理&#xff0c;能够自动确定一个阈值&#xff0c;将图像中的像素分为黑色和白色两类。 Otsu 方法的原…...

【Go】3、Go语言进阶与依赖管理

前言 本系列文章参考自稀土掘金上的 【字节内部课】公开课&#xff0c;做自我学习总结整理。 Go语言并发编程 Go语言原生支持并发编程&#xff0c;它的核心机制是 Goroutine 协程、Channel 通道&#xff0c;并基于CSP&#xff08;Communicating Sequential Processes&#xff0…...

学习STC51单片机31(芯片为STC89C52RCRC)OLED显示屏1

每日一言 生活的美好&#xff0c;总是藏在那些你咬牙坚持的日子里。 硬件&#xff1a;OLED 以后要用到OLED的时候找到这个文件 OLED的设备地址 SSD1306"SSD" 是品牌缩写&#xff0c;"1306" 是产品编号。 驱动 OLED 屏幕的 IIC 总线数据传输格式 示意图 …...

什么是EULA和DPA

文章目录 EULA&#xff08;End User License Agreement&#xff09;DPA&#xff08;Data Protection Agreement&#xff09;一、定义与背景二、核心内容三、法律效力与责任四、实际应用与意义 EULA&#xff08;End User License Agreement&#xff09; 定义&#xff1a; EULA即…...

ardupilot 开发环境eclipse 中import 缺少C++

目录 文章目录 目录摘要1.修复过程摘要 本节主要解决ardupilot 开发环境eclipse 中import 缺少C++,无法导入ardupilot代码,会引起查看不方便的问题。如下图所示 1.修复过程 0.安装ubuntu 软件中自带的eclipse 1.打开eclipse—Help—install new software 2.在 Work with中…...

EtherNet/IP转DeviceNet协议网关详解

一&#xff0c;设备主要功能 疆鸿智能JH-DVN-EIP本产品是自主研发的一款EtherNet/IP从站功能的通讯网关。该产品主要功能是连接DeviceNet总线和EtherNet/IP网络&#xff0c;本网关连接到EtherNet/IP总线中做为从站使用&#xff0c;连接到DeviceNet总线中做为从站使用。 在自动…...