【MySQL】数据库的基本认识和使用

news/2024/11/29 15:48:31/

为什么要使用数据库呢?我们知道Linux是有文件系统的,为什么不使用文件系统呢?

因为OS只负责把我们交给它的数据存储起来,存到某个文件中,它并不负责管理数据的具体内容,也就是说,我们交给OS什么东西,它压根不管(就是说文件没有提供非常号的数据管理的能力)。

并且文件保存数据有如下的几个缺点:

1.文件的安全性问题,比如并发访问会导致数据不一致的问题

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

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

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

这就导致我们想要获取文件中的一些具体内容时还需要编码把文件中的数据读出来并提取出我们想要的内容

这样就显得麻烦了很多,那么有没有一种服务可以具体的管理文件中的数据呢?就用到了我们这篇博客要说的数据库

数据库其实有很多种,但是最常用的就是MySQL数据库

我们在安装好MySQL并且启动之后,首先要看看服务有没有启动:

可以看到有mysqld这样的守护进程正在运行,其实d就表示daemon(守护进程),这个就是mysql的服务端

因为mysql是基于tcp的网络服务,我们还可以用下面的指令查查mysql

知道mysql已经运行了之后,要做的就是登录,可以用下面的指令进行登录

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

之后我们需要输入我们设置好的密码即可登录进去,输入quit;就可以退出来

其实上面的h就代表host,要选择哪台主机;P就是port,MySQL服务默认的端口号就是3306,这个是在配置文件(Ubuntu下配置文件默认在

/etc/mysql/mysql.conf.d/mysqld.cnf

路径下)中配好的;u就是user,表示以谁的身份登录,p就是password。

上面的大部分内容其实都是默认确定的,我们其实只用输入下面的内容即可

mysql -u root -p

下面我们来简单用几个MySQL语句:

查看当前都有哪些数据库

所以到底什么是数据库呢?可以说是第一段讲到的,一套用于解决上面问题的解决方案。为什么数据库可以高效的插入或查询数据肯定是离不开数据库具体是如何架构的,它采用了什么样的方式。

也可以说就是上面图片中展示的具体的一个个的数据库(在磁盘或内存中存储的特定结构组织的数据),这里说的数据库肯定是以文件的形式存在的,通常在下面的路径下

ls /var/lib/mysql

确实是有名叫d1 d2 d3的目录的

创建名为helloworld的数据库

使用数据库并且在helloworld数据库中创建名为country的表

向表中插入数据并且查看表中的内容

经过上面简单的演示,可以看出一个数据库服务可以有多个database(数据库),一个database可以有多个table(表)

上面就是一些最基本的操作,下面我们再来跟深入的了解一下什么是MySQL

首先mysql数据库服务的客户端(只有有用户登录时才会有客户端进程),而上面查到的mysqld是数据库服务的服务端,所以mysql本质就是基于C(client)S(server)模式的一种提供数据存取的服务的网络服务

SQL(Structured Query Language,结构化查询语言),可以分为如下的三类:

1.DDL(Data Definition Language,数据定义语言),用来维护存储数据的结构

代表指令:create,drop,alter

2.DML(Data Manipulation Language,数据操纵语言),用来对数据进行操作

代表指令:insert,delete,updata

3.DCL(Data Control Language,数据控制语言),主要负责权限管理和事务

代表指令:grant,revoke,commit

MySQL的大体架构可以分为三层,第一层负责管理与用户的连接;第二层负责对用户输入的语句进行语法分析并优化,第三层负责让存储引擎去真正的管理数据

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

MySQL的核心就是插件式存储引擎,支持多种存储引擎(就是存储引擎分成不同的几个,想用哪个直接引入)

可以用下面的指令查看都有什么存储引擎

show engines \G

其中用的最多的就是MyISAM和InnoDB


http://www.ppmy.cn/news/1550932.html

相关文章

【Ubuntu 24.04】How to Install and Use NVM

参考 下载 curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash激活 Activate NVM: Once the installation script completes, you need to either close and reopen the terminal or run the following command to use nvm immediately. exp…

机器学习之DeepMind推出的DreamerV3

开放域任务强化学习(Open-Ended Task Reinforcement Learning)的目标是使智能体能够在多样化且未见过的任务中表现出色,同时能够实现任务间的迁移学习。这类研究的重点在于开发通用的学习算法,能够在没有明确任务定义的情况下,从环境中学习并推广到新任务。DeepMind的Drea…

Mybatis:Mybatis快速入门

Mybatis的官方文档是真的非常好!非常好! 点一下我呗:Mybatis官方文档 MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可…

基于Python的飞机大战复现

✨✨ 欢迎大家来访Srlua的博文(づ ̄3 ̄)づ╭❤~✨✨ 🌟🌟 欢迎各位亲爱的读者,感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢,在这里我会分享我的知识和经验。&am…

Linux入门系列--用户与权限

一、前言 1.注意: 【】用户是Linux系统工作中重要的一环,用户管理包括 用户 与 组账号 的管理 【】在Linux系统中,不论是由本机或是远程登录(SSH)系统,每个系统都必须拥有一个账号,并且对于不同的系统资源拥有不同的使…

Android使用UVCCamera打开USBCamera-预览

导入libuvccamera.aar 写一个管理类封装UVCCamera相关API import android.content.Context import android.hardware.usb.UsbDevice import android.os.Handler import android.os.HandlerThread import android.os.Message import android.util.Log import android.view.Surf…

利用zabbix自定义脚本监控MySQL基础状态

1、 mysql_monitor.sh 主要关注mysql的这些状态: uptime| version| questions| slowQueries| select| bytesSent| bytesReceived| ping| activeThread| connectThread| maxConnect| bigSql| bigTransaction | innodbLock| primaryKey| dbRole| readonly| superRead…

深入解析分布式遗传算法及其Python实现

目录 深入解析分布式遗传算法及其Python实现目录第一部分:分布式遗传算法的背景与原理1.1 遗传算法概述1.2 分布式遗传算法的引入1.3 分布式遗传算法的优点与挑战优点:挑战:第二部分:分布式遗传算法的通用Python实现2.1 基本组件的实现第三部分:案例1 - 基于多种交叉与变异…