【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 和几个操作,以便能直接上手,更多具体的介绍会分别写作数据库的操作和数据库的数据类型两部分,敬请期待。

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

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

相关文章

【C语言】初阶测试 (带讲解)

目录 ① 选择题 1. 下列程序执行后,输出的结果为( ) 2. 以下程序的输出结果是? 3. 下面的代码段中,执行之后 i 和 j 的值是什么() 4. 以下程序的k最终值是: 5. 以下程序的最终的输出结果为&#xff…

Redisson分布式锁实战

实战来源 此问题基于电商 这周遇见这么一个问题,简略的说一下 由MQ发布了两个消息,一个是订单新增,一个是订单状态变更 由于直接付款之后,这两个消息的发布时间不分先后,可能会造成两种情况,1、订单状态变更…

Spark2x原理剖析(二)

一、概述 基于社区已有的JDBCServer基础上,采用多主实例模式实现了其高可用性方案。集群中支持同时共存多个JDBCServer服务,通过客户端可以随机连接其中的任意一个服务进行业务操作。即使集群中一个或多个JDBCServer服务停止工作,也不影响用…

后端笔试题(2)分频器波形图

我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧? 拾陆楼知识星球入口

算法通关村第十八关:青铜挑战-回溯是怎么回事

青铜挑战-回溯是怎么回事 回溯,最重要的算法之一 主要解决一些暴力枚举也搞不定的问题,例如组合、分割、子集、排列、棋盘等 从性能角度来看回溯算法的效率并不高,但对于这些暴力都搞不定的算法能出结果就很好了,效率低点没关系…

c++类与对象

文章目录 前言一、1、类的引入2、类的定义3、类的访问限定符及封装4、类的实例化5、类对象模型6、this指针7、封装 前言 C语言是面向过程的,关注的是过程,分析出求解问题的步骤,通过函数调用逐步解决问题。 C是基于面向对象的,关…

MySQL聚簇索引与非聚簇索引

分析&回答 当数据库一条记录里包含多个字段时,一棵B树就只能存储主键,如果检索的是非主键字段,则主键索引失去作用,变成顺序查找了。这时应该在第二个要检索的列上建立第二套索引。这个索引由独立的B树来组织。有两种常见的方…

2023国赛数学建模B题思路分析 - 多波束测线问题

# 1 赛题 B 题 多波束测线问题 单波束测深是利用声波在水中的传播特性来测量水体深度的技术。声波在均匀介质中作匀 速直线传播, 在不同界面上产生反射, 利用这一原理,从测量船换能器垂直向海底发射声波信 号,并记录从声波发射到…

vue基于Echarts、百度地图MapVGL实现可视化大屏数据展示

一、布局 常见的大屏数据展示布局&#xff0c;一般会将地图作为整个屏幕的背景&#xff0c;在地图上以九宫格布局展示各类数据图表。实现这一效果可以使地图的z-index1,在地图上的图表等z-index>1,下面会详细描述这种设计该如何实现&#xff1a; <div style"width…

嵌入式开发笔试面试

C语言部分&#xff1a; 1.gcc的四步编译过程 1.预处理 展开头文件&#xff0c;删除注释、空行等无用内容&#xff0c;替换宏定义。 gcc -E hello.c -o hello.i 2.编译 检查语法错误&#xff0c;如果有错则报错&#xff0c;没有错误则生成汇编文件。 gcc -S hello.i -o h…

C++ vector模拟实现

目录 使用insert时迭代器失效使用erase时迭代器失效使用memcpy浅拷贝的问题调用最匹配的函数可能出现的问题模拟实现vector 使用insert时迭代器失效 在模拟vector插入的时候会遇到扩容后pos失效的问题&#xff0c;需要更新pos vector():_start(nullptr), _finish(nullptr), _e…

解耦只是一个巧合?

本文分享一篇在IJCAI2023看到的文章&#xff1a;Overlooked Implications of the Reconstruction Loss for VAE Disentanglement 首先回顾下VAE&#xff0c;其loss函数有两项&#xff0c;一项是重构误差&#xff0c;另一项是正则项&#xff1a; L r e c ( x , x ^ ) E q ϕ (…

QT(9.1)对话框与事件处理

作业&#xff1a; 1. 完善登录框 点击登录按钮后&#xff0c;判断账号&#xff08;admin&#xff09;和密码&#xff08;123456&#xff09;是否一致&#xff0c;如果匹配失败&#xff0c;则弹出错误对话框&#xff0c;文本内容“账号密码不匹配&#xff0c;是否重新登录”&…

23062C++QT day2

封装一个结构体&#xff0c;结构体中包含一个私有数组&#xff0c;用来存放学生的成绩&#xff0c;包含一个私有变量&#xff0c;用来记录学生个数&#xff0c; 提供一个公有成员函数&#xff0c;void setNum(int num)用于设置学生个数 提供一个公有成员函数&#xff1a;void…

FPGA实战小项目3

基于FPGA的波形发生器 基于FPGA的波形发生器 基于FPGA的beep音乐播放器设计 基于FPGA的beep音乐播放器设计 基于FPGA的cordic算法实现DDS sin和cosine波形的产生 基于FPGA的cordic算法实现DDS sin和cosine波形的产生

无需公网IP,实现远程访问群晖Drive并挂载为电脑磁盘的方法

文章目录 前言1.群晖Synology Drive套件的安装1.1 安装Synology Drive套件1.2 设置Synology Drive套件1.3 局域网内电脑测试和使用 2.使用cpolar远程访问内网Synology Drive2.1 Cpolar云端设置2.2 Cpolar本地设置2.3 测试和使用 3. 结语 前言 群晖作为专业的数据存储中心&…

利用MQ实现mysql与elasticsearch数据同步

流程 1.声明exchange、queue、RoutingKey 2. 在hotel-admin中进行增删改&#xff08;SQL&#xff09;&#xff0c;完成消息发送 3. 在hotel-demo中完成消息监听&#xff0c;并更新elasticsearch数据 4. 测试同步 1.引入依赖 <!--amqp--> <dependency><groupId&…

欧洲云巨头OVHcloud收购边缘计算专家 gridscale

边缘计算社区近日获悉&#xff0c;欧洲云巨头OVHcloud已进入全面收购德国公司 gridscale 的谈判&#xff0c;该公司是一家专门从事超融合基础设施的软件提供商。 此次战略收购将标志着 OVHcloud 的另一个重要里程碑&#xff0c;使该集团能够显着加速其地理部署&#xff0c;并进…

lv3 嵌入式开发-6 linux shell脚本编程(概念、变量、语句)

1 Shell脚本概述 1.1Shell脚本概述 Shell脚本是利用 shell 的功能所写的一个程序。这个程序是使用纯文本文件&#xff0c;将一些 shell 的语法与命令&#xff08;含外部命令&#xff09;写在里面&#xff0c;搭配正则表达式、管道命令与数据流重定向等功能 1.2Shell脚本编写流…

[JAVA] byte与int的类型转换案例剖析

总结&#xff1a; ①没有byte的字面值&#xff0c;赋值时需要强制转换类型 ②涉及运算&#xff0c;系统自动进行类型升级&#xff0c;由此用final修饰&#xff0c;代表这是一个不会更改值的常量&#xff0c;通过编译 感受&#xff1a;还是用int吧&#xff0c;自动类型转换太复…