安装MySQL
在MySQL之前,我们先查看一下电脑上有没有数据库。
ps axj | grep mysql
在我的云服务器上就存在MySQL,如果电脑上没有数据库,可以用下面指令安装:
以为的Ubuntu云服务器为例:
sudo apt update
sudo apt install mysql-server -y
安装完成之后,先免密码登录:
sudo mysql -uroot
进入MySQL之后我们设置密码:
alter user 'root'@'localhost' identified with mysql_native_password by 'your_new _password';
后面的your_new_passworld是你的新密码。
注意:上面的操作是在root用户环境下进行的
做完上面这些之后,我们用quit
操作退出MySQL,然后用下面命令进行登录:
mysql -u root -p
输入密码之后就进入了mysql。
数据库基础
什么是数据库
数据库是存储和管理数据的系统,能够高效地存取、更新和管理数据。数据库通常用于存储结构化数据,如用户信息、订单记录、日志等。
为什么文件也可以存储数据,但是我们还是要用数据库来存储数据?
原因是因为数据库有很多文件没有的功能,数据库可以通过特定的格式结构来高效的管理数据,在查询方面,文件只能由程序员进行操作遍历,数据库在查找方面做了优化,可以减少很多不必要的操作。
我们之前看到的mysql和mysqld有什么区别?
mysql是数据库服务的客户端,mysqld是数据库服务服务器端。
可以理解为上面简图mysql发出命令之后,mysqld会对数据库文件进行操作。
在数据库中创建一张表
首先创建创建之前,我们先来解释一下打开mysql的命令行的意思
进入MySQL当中:
在创建表之前,我们先查看资源:
可以看见,我们这里已经有几张表。
我们重新创建一张表:
如果显示no database selected
,就表示我们还没有选择数据库。
我们先创建一个新的数据库文件:
可以看见这里已经创建好了一个数据库。
创建好新的数据库之后我们可以选择新创建的数据库:
创建表成功
插入数据:
insert into student(name,age,gender) value("zhangsan",11,'M')
查看表结构:
我们还可以重复插入几组数据:
主流数据库
- SQL Sever: 微软的产品,.Net程序员的最爱,中大型项目。
- Oracle: 甲骨文产品,适合大型项目,复杂的业务逻辑,并发一般来说不如MySQL。
- MySQL:世界上最受欢迎的数据库,属于甲骨文,并发性好,不适合做复杂的业务。主要用在电
商,SNS,论坛。对简单的SQL处理效果好。 - PostgreSQL :加州大学伯克利分校计算机系开发的关系型数据库,不管是私用,商用,还是学术研
究使用,可以免费使用,修改和分发。 - SQLite: 是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库
中。它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的
低,在嵌入式设备中,可能只需要几百K的内存就够了。 - H2: 是一个用Java开发的嵌入式数据库,它本身只是一个类库,可以直接嵌入到应用项目中。
服务器,数据库,表的关系
- 所谓安装数据库服务器,只是在机器上安装了一个数据库管理系统程序,这个管理程序可以管理多
个数据库,一般开发人员会针对每一个应用创建一个数据库。 - 为保存应用中实体的数据,一般会在数据库中创建多个表,以保存程序中实体的数据。
- 数据库服务器、数据库和表的关系如下:
MySQL架构
MySQL架构分为四层:
- 连接层:最上层是一些客户端和连接服务,所包含的服务并不是MySQL所独有的技术。
- 服务层:主要完成大多数的和核心功能,所有跨存储引擎的功能也在这一层,还有sql的分析和优化及部分内置函数的执行也在这一层。
- 引擎层:在存储引擎层,存储引擎真正的负责了MySQL中数据的存储和提取,服务器通过API与存储引擎通信。
- 存储层:数据存储层,主要将数据存储在运行于裸设备的文件系统上,并完成与存储引擎的交互。
存储引擎对比
查看存储引擎:
总结
本篇文章中,我们介绍了 MySQL 的基础知识,包括 MySQL 的安装、数据库的基本概念、创建表、主流数据库类型、服务器与数据库的关系、MySQL 的架构以及存储引擎的对比。
通过学习这些内容,你应该对 MySQL 有了初步的认识,并掌握了基本的数据库操作。MySQL 作为一种强大且广泛使用的数据库管理系统,在开发和数据管理中起着至关重要的作用。
后续学习可以深入探索 SQL 语句优化、事务管理、索引设计、主从复制 等更高级的 MySQL 技术,以提升数据库性能和应用能力。希望本篇文章对你有所帮助!