MySQL学习记录——이 了解数据库

文章目录

  • 1、概念
  • 2、初次建立数据库并使用
  • 3、主流数据库
  • 4、服务器,表,数据库关系
  • 5、MySQL架构
  • 6、SQL语句分类
  • 7、存储引擎


1、概念

用ps axj |grep mysqld可以查看数据库服务的服务器端,mysql则是客户端。mysqld是一个守护进程。mysql本质是一个基于CS模式的一种网络服务,也就是客户端和服务端。

mysql是给客户提供数据存取的服务的网络程序;数据库则指的是在磁盘上存储数据的一套方案,数据以数据库的方式存到文件中,之后用户给字段或要求,数据库给结果;mysqld是数据库服务器端,客户端mysql发来请求,mysqld服务端接收请求后,去和磁盘、内存上的数据库文件做交互,准备好响应用的数据,最后发回给客户端。

2、初次建立数据库并使用

创建数据库

create databse helloworld;

数据库名字叫helloworld,mysql命令行结尾都得是分号。创建好后可以查看到

MySQL学习记录——이 了解数据库_第1张图片

也可以看这个目录里会有helloworld目录

/var/lib/mysql

建立数据库就是在Linux下创建一个指定名字的目录。

使用一个数据库

use helloworld

创建数据库表

MySQL学习记录——이 了解数据库_第2张图片
MySQL学习记录——이 了解数据库_第3张图片

刚创建时会有dp.opt,创建数据库表后又添加了两个文件。

插入数据必须按照创建时的顺序

在这里插入图片描述

多次插入就会有多个重复信息。用这个命令查看当前数据库的所有内容

select * from student;

MySQL学习记录——이 了解数据库_第4张图片

像这样的存储格式,也有别的样式,但都是有逻辑的存储。

以上所有操作底层都是mysqld做的工作,数据库本质上是文件,由mysqld来操作,而不是用户本身。

3、主流数据库

SQL Sever:微软的产品,Net程序员的最爱,中大型项目。

Oracle:甲骨文产品,适合大型项目,复杂的业务逻辑,并发一般来说不如MySQL。

MySQL:世界上最受欢迎的数据库,属于甲骨文,并发性好,不适合做复杂的业务。主要用在电
商,SNS,论坛。对简单的SQL处理效果好。

PostgreSQL:加州大学伯克利分校计算机系开发的关系型数据库,不管是私用,商用,还是学术研
究使用,可以免费使用,修改和分发。

SQLite:是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库
中。它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的
低,在嵌入式设备中,可能只需要几百K的内存就够了。

H2:是一个用Java开发的嵌入式数据库,它本身只是一个类库,可以直接嵌入到应用项目中。

4、服务器,表,数据库关系

安装数据库服务器,就是在机器上安装了一个数据库管理系统程序,这个管理程序可以管理多个数据库,一般开发人员会针对每一个应用创建一个数据库。为保存应用中实体的数据,一般会在数据库中创建多个表,以保存程序中实体的数据。

下图中的MySQL表示mysqld,DB和表共同为数据库,Client是mysql。DB是目录,表是二进制文件。

MySQL学习记录——이 了解数据库_第5张图片

5、MySQL架构

MySQL是一个可移植的数据库,不过最主流的场景是在网络服务器后端,类Unix系统上运行。

MySQL服务分为三层,最上层是连接池,用来管理用户连接;中间层用来分析mysql命令,做些准备工作,就像编译器一样;最下层有各种存储引擎,接收中间层处理好的语句,交给对应的存储引擎去实现功能。数据有种类差别,所以有多种存储引擎。当然最底层就是系统的文件体系,MySQL服务基于此,先对用户的操作进行处理,再利用文件系统,就像C语言中的FILE结构体,封装了底层的read、write接口等,而FILE则反向要求了用户必须使用FILE来操作文件,FILE就处理用户对文件的各种操作。

6、SQL语句分类

DDL【data definition language】 数据定义语言,用来维护存储数据的结构
代表指令:create,drop,alter

DML【data manipulation language】数据操纵语言,用来对数据进行操作
代表指令: insert,delete,update。DML中又单独分了一个DQL,数据查询语言,代表指令: select

DCL【Data Control Language】数据控制语言,主要负责权限管理和事务
代表指令: grant,revoke,commit

7、存储引擎

存储引擎是:数据库管理系统如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术的实现方法。MySQL的核心是插件式存储引擎,支持多种存储引擎。

查看存储引擎

show engines \G

每一个Engine就是一个存储引擎。常用的就是InnoDB和MyISAM。

结束。

你可能感兴趣的:(MySQL学习,数据库,mysql,学习)