【MySQL】初见数据库
目录
什么是MySQL
为什么要使用数据库
数据库基础
数据库的本质
存储引擎
常用操作
登录mysql
创建数据库
使用数据库
查看数据库
创建数据库表
查看表
向表中插入数据
查询表中数据
什么是MySQL
🍒在我们服务器安装完 MySQL 服务之后,经常会看到两种概念,分别是 mysql 和 mysqld ,二者有什么区别呢?

🍒其实,MySQL 本质上就是一套基于CS模式的网络服务对数据内容存储的一套解决方案,而 mysql 则是数据库服务的客户端,mysqld 为数据库服务的服务器端(带d表示该进程为守护进程)。

🍒我们口语中常说的数据库特指的是,将来在磁盘上存储的一套数据库方案,而数据库服务则指的是mysqld。
为什么要使用数据库
🍒从用户的角度来看,一般的文件确实提供了数据的存储功能,但也有一些其他的漏洞。
例如:
- 文件的安全性问题
- 不利于数据的查询和管理
- 在程序中控制不便
🍒使用数据库后便可以简便化数据的存储,由此学习数据库的使用便十分重要。
数据库基础
数据库的本质
🍒打开 /var/lib/mysql 我们便会发现,有一系列的文件,其中还包含了几个目录文件,仔细一看好像就与我们在 mysql 中的数据库一样,查询我们的数据库后发现确实如此。


🍒若我们创建一个数据库,在该路径下便能够查询得到。


🍒当我们在文件之中删除这个目录(只是演示,并不推荐),再进行查询便找不到对应的数据库了。
![]()

存储引擎
🍒存储引擎就是数据库管理系统如何存储数据,如何为存储的数据建立索引和如何更新等技术的实现方法。
🍒我们可以使用 show engines; 查询服务中支持的存储引擎。

🍒我们还可以在语句后加上 \G 让输出的结果以行为单位进行打印。

🍒MySQL 的核心就是插件式的存储引擎,支持多种存储引擎。
常用操作
🍒这里就简单讲一下几个简单的操作,方便直接上手,更多的细节放在之后的博客中进行讲解。
登录mysql
🍒登录 mysql 时需要使用这串命令,其中:
- -h 表示的是指明连接的数据库所在的ip,若没写则默认连接本地的数据库。
- -P表示对应的端口,默认为3306。
- -u 表示以什么身份连接。
- -p则表示之后输入的表示密码,若设置为无密码,在提示你输入密码后直接回车即可。
mysql -h ... -P ... -u ... -p
🍒熟悉上面的规则后,若我们想直接连接本地的数据库只需要以下命令即可。
mysql -u root -p
创建数据库
create database 数据库名
🍒这个操作在上面我们也使用过了,可以直接以默认的设定创建一个数据库。

使用数据库
🍒进行对该数据库的操作前,需要先将当前所在的数据库切换成该数据库,即使用该数据库。
use 数据库名;
![]()
查看数据库
🍒就像 Linux 中有 pwd 那样查看自己的路径,我们使用 select database() 查询当前所在的数据库。

创建数据库表
🍒数据库中又是一个一个的表组成,下面便介绍如何进行表的创建。
create table 表名(......
);
🍒创建表时便会涉及 MySQL 的数据类型,这里简单介绍一下之后会有专门的博客来介绍 MySQL 的数据类型。
🍒例如,我们创建一个表用来描述一个人,这个人有他的学号,姓名。于是我们使用 int 作为学号的类型,使用 varchar 作为姓名的类型。
由此便可以这样写:
mysql> create table person(-> id int,-> name varchar(10)-> );
🍒这样我们就在数据库中成功地创建了一个表,而且我们可以使用 desc 查看表的相关成员属性。
desc 表名
mysql> desc person;
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id | int(11) | YES | | NULL | |
| name | varchar(10) | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
2 rows in set (0.00 sec)
查看表
🍒我们可以使用这个操作查看当前数据库中的所有表。
show tables;

向表中插入数据
🍒虽然创建了好多个表,但是我们还未插入任何数据,因此当前表里都是空的,接下来我们就来介绍如何向表中插入数据。
insert into 表名 (内部成员名) values (要插入的值...);
🍒在写之前可以先用 desc 先查看一下表的成员组成,以便于接下来的插入操作。其中跟在表名后的这个括号决定的是在后方插入值的顺序,若不写则使用创建时的顺序进行插入。
mysql> desc person;
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id | int(11) | YES | | NULL | |
| name | varchar(10) | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
2 rows in set (0.00 sec)mysql> insert into person values(1,'张三');
Query OK, 1 row affected (0.01 sec)mysql> insert into person(name, id) values('李四',2);
Query OK, 1 row affected (0.00 sec)mysql> insert into person (id, name) values (3,'王五');
Query OK, 1 row affected (0.01 sec)
🍒于是,我们以三种不同的方法进行数值的插入,第一种是不写括号,二三种则是将括号里的顺序颠倒。
🍒接下来我们来看看插入之后的表会是什么样的。
查询表中数据
select * from 表名
🍒在上面我们往表插入了三个数据,通过查询操作我们可以看到插入的三个结果都是符合我们预期的,也验证了我们上方说法的正确性。
mysql> select * from person;
+------+--------+
| id | name |
+------+--------+
| 1 | 张三 |
| 2 | 李四 |
| 3 | 王五 |
+------+--------+
3 rows in set (0.00 sec)
🍒好了,今天我们就简单介绍了 MySQL 和几个操作,以便能直接上手,更多具体的介绍会分别写作数据库的操作和数据库的数据类型两部分,敬请期待。
相关文章:
【MySQL】初见数据库
目录 什么是MySQL 为什么要使用数据库 数据库基础 数据库的本质 存储引擎 常用操作 登录mysql 创建数据库 使用数据库 查看数据库 创建数据库表 查看表 向表中插入数据 查询表中数据 什么是MySQL 🍒在我们服务器安装完 MySQL 服务之后,经…...
选择合适的帧率和分辨率:优化RTSP流视频抓取(java)
引言 在实时视频流应用中,选择适当的帧率和分辨率对于确保视频流的顺畅播放和图像质量至关重要。本文将向您介绍如何使用Java和JavaCV库中的FFmpegFrameGrabber来从RTSP流中抓取图像,并在抓取时设置帧率和分辨率。 一、配置开发环境 首先,…...
HTTP协议都有哪些方法?
分析&回答 HTTP1.0定义了三种请求方法: GET, POST 和 HEAD方法HTTP1.1新增了五种请求方法:OPTIONS, PUT, DELETE, TRACE 和 CONNECT 方法描述HEAD请求资源的头部信息, 并且这些头部与 HTTP GET 方法请求时返回的一致. 该请求方法的一个使用场景是在…...
数学建模--非整数规划求解的Python实现
目录 1.算法流程简介 2.算法核心代码 3.算法效果展示 1.算法流程简介 #非线性规划模型求解: #我们采用通用的minimize函数来求解 #minimize(f,x,method,bounds,contrains) #f是待求函数 #x是代求的自变量 #method是求解方法 #bounds是取值范围边界 #contrains是约束条件 &q…...
LeetCode 48题: 旋转图像
题目 给定一个 n n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。 你必须在 原地 旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。 示例 1: 输入:matrix [[1,2,3],[4,5,6],[7,8,9]]…...
集成快递物流平台(快递100、快递鸟、闪送)连通多个应用
场景描述: 基于快递物流平台(快递100、快递鸟、闪送等)开放能力,无代码集成快递物流平台与多个应用互连互通。通过Aboter可搭建业务自动化流程,实现多个应用之间的数据连接。 连接器: 快递100快递鸟闪送…...
搭建hadoop集群的常见问题及解决办法
问题一: namenode -format重复初始化 出现问题的原因是重复初始化时会重新生成集群ID,而dn还是原先的集群ID,两者不匹配时无法启动相应的dn进程。 怎么查找问题原因:在logs目录下找到对应节点的.log文件,使用tail -200 文件名来查…...
virtualbox centos 使用NAT模式上网
新安装了centos7之后,发现无法yum,无法ping外网。ping 外网域名无法ping通。 virtualbox的nat 网卡已经打开了。 需要手动打开centos7的网卡(centos7.9) 可以通过 ip addr 命令查看网卡地址 1: lo: <LOOPBACK,UP,LOWER_UP>…...
蓝桥杯官网填空题(梅森素数)
题目描述 本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。 如果一个数字的所有真因子之和等于自身,则称它为“完全数”或“完美数” 例如: 6 1 2 3 28 1 2 4 7 14早在公元前 300300 多年&am…...
IBM Spectrum LSF Application Center 以应用程序为中心的工作负载提交和管理
IBM Spectrum LSF Application Center 为集群用户和管理员提供了一个灵活的、以应用为中心的界面。IBM Spectrum LSF Application Center 作为 IBM Spectrum LSF 的可选附加模块提供,使用户能够与直观、自我记录的界面进行交互。这提高了用户满意度和生产力。通过对…...
同步FIFO的verilog实现(2)——高位扩展法
一、前言 在之前的文章中,我们介绍了同步FIFO的verilog的一种实现方法:计数法。其核心在于:在同步FIFO中,我们可以很容易的使用计数来判断FIFO中还剩下多少可读的数据,从而可以判断空、满。 关于计数法实现同步FIFO的详…...
数据结构与算法面试
1、链表反转 需要三个指针,一个pre指针指向反转的前一个节点,cur指向要反转的节点,然后设置有一个temp指针指向需要反转的下一个节点,用来使得cur指针移动,因为我们反转之后,无法使用next指针访问到后一个节…...
android studio cmake生成.a文件(静态库)及调用(c c++)静态库.a
第一步生成静态库.a文件: cmake 语法如何生成静态库,就不介绍了,比较简单,我下文列出的参考资料里面有详细介绍。 add_library(${CMAKE_PROJECT_NAME} STATICsrc/CalculStatic.cpp)这一步有坑,我刚开始的时候,也花了不少时间,死活都没有生成.a静态库文件。但是我多方查…...
本地部署体验LISA模型(LISA≈图像分割基础模型SAM+多模态大语言模型LLaVA)
GitHub地址:https://github.com/dvlab-research/LISA 该项目论文paper reading:https://blog.csdn.net/Transfattyacids/article/details/132254770 在GitHub上下载源文件,进入下载的文件夹,打开该地址下的命令控制台,…...
SpotBugs代码检查:instanceof总是返回true(BC_VACUOUS_INSTANCEOF)
https://spotbugs.readthedocs.io/en/latest/bugDescriptions.html#bc-instanceof-will-always-return-true-bc-vacuous-instanceof 使用instanceof判断的时候,总是返回true,除非被检测的结果是null。遇到这种告警,可能是写代码的人理解错误…...
Redis的Java客户端:Jedis入门
Jedis的优点在于方法名称和Redis命令基本一致,不过存在线程安全问题,在多线程操作时需要引入线程池。 一、引入依赖 <!--jedis--> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifa…...
【完整代码】2023数学建模国赛C题代码--蔬菜类商品的自动定价与补货决策
C 题 蔬菜类商品的自动定价与补货决策 在生鲜商超中,一般蔬菜类商品的保鲜期都比较短,且品相随销售时间的增加而变差, 大部分品种如当日未售出,隔日就无法再售。因此,商超通常会根据各商品的历史销售和需 求情况每天进…...
idea:java: Compilation failed: internal java compiler error
java: Compilation failed: internal java compiler error错误 检查下面2个即可:...
普罗米修斯(Prometheus)
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一、普罗米修斯(Prometheus)是什么?1.下载Prometheus工具(切记和操作系统版本对应)2.解压命令3.修改prom…...
JAVA面试题2012年版本
1、已知a10,b15,在不用第三方变量的情况下,将a、b的值调换? 2、Session容易丢值,cookie不安全,用什么可以代替它们? 3、简述多态的特征及意义 4、冒泡排序 5、已知int array[]{3,7,5,12,20};实现从大到小排序并返回数组输出…...
iPhone密码忘记了办?iPhoneUnlocker,iPhone解锁工具Aiseesoft iPhone Unlocker 高级注册版分享
平时用 iPhone 的时候,难免会碰到解锁的麻烦事。比如密码忘了、人脸识别 / 指纹识别突然不灵,或者买了二手 iPhone 却被原来的 iCloud 账号锁住,这时候就需要靠谱的解锁工具来帮忙了。Aiseesoft iPhone Unlocker 就是专门解决这些问题的软件&…...
【机器视觉】单目测距——运动结构恢复
ps:图是随便找的,为了凑个封面 前言 在前面对光流法进行进一步改进,希望将2D光流推广至3D场景流时,发现2D转3D过程中存在尺度歧义问题,需要补全摄像头拍摄图像中缺失的深度信息,否则解空间不收敛…...
【ROS】Nav2源码之nav2_behavior_tree-行为树节点列表
1、行为树节点分类 在 Nav2(Navigation2)的行为树框架中,行为树节点插件按照功能分为 Action(动作节点)、Condition(条件节点)、Control(控制节点) 和 Decorator(装饰节点) 四类。 1.1 动作节点 Action 执行具体的机器人操作或任务,直接与硬件、传感器或外部系统…...
HTML前端开发:JavaScript 常用事件详解
作为前端开发的核心,JavaScript 事件是用户与网页交互的基础。以下是常见事件的详细说明和用法示例: 1. onclick - 点击事件 当元素被单击时触发(左键点击) button.onclick function() {alert("按钮被点击了!&…...
uniapp 小程序 学习(一)
利用Hbuilder 创建项目 运行到内置浏览器看效果 下载微信小程序 安装到Hbuilder 下载地址 :开发者工具默认安装 设置服务端口号 在Hbuilder中设置微信小程序 配置 找到运行设置,将微信开发者工具放入到Hbuilder中, 打开后出现 如下 bug 解…...
Vue 3 + WebSocket 实战:公司通知实时推送功能详解
📢 Vue 3 WebSocket 实战:公司通知实时推送功能详解 📌 收藏 点赞 关注,项目中要用到推送功能时就不怕找不到了! 实时通知是企业系统中常见的功能,比如:管理员发布通知后,所有用户…...
数据结构:泰勒展开式:霍纳法则(Horner‘s Rule)
目录 🔍 若用递归计算每一项,会发生什么? Horners Rule(霍纳法则) 第一步:我们从最原始的泰勒公式出发 第二步:从形式上重新观察展开式 🌟 第三步:引出霍纳法则&…...
从零手写Java版本的LSM Tree (一):LSM Tree 概述
🔥 推荐一个高质量的Java LSM Tree开源项目! https://github.com/brianxiadong/java-lsm-tree java-lsm-tree 是一个从零实现的Log-Structured Merge Tree,专为高并发写入场景设计。 核心亮点: ⚡ 极致性能:写入速度超…...
StarRocks 全面向量化执行引擎深度解析
StarRocks 全面向量化执行引擎深度解析 StarRocks 的向量化执行引擎是其高性能的核心设计,相比传统行式处理引擎(如MySQL),性能可提升 5-10倍。以下是分层拆解: 1. 向量化 vs 传统行式处理 维度行式处理向量化处理数…...
C++ 类基础:封装、继承、多态与多线程模板实现
前言 C 是一门强大的面向对象编程语言,而类(Class)作为其核心特性之一,是理解和使用 C 的关键。本文将深入探讨 C 类的基本特性,包括封装、继承和多态,同时讨论类中的权限控制,并展示如何使用类…...
