当前位置: 首页 > news >正文

【数据库基础】基本认识数据库--入门引导

文章目录

    • 什么是数据库?
    • 主流数据库
    • 基本使用
      • 安装MySQL
      • 连接服务器
      • 服务器、数据库、表关系
      • 使用案例
      • 数据逻辑存储
    • MySQL架构
    • SQL语句分类
    • 什么叫存储引擎

什么是数据库?

数据库是指在磁盘和内存中存储特定结构组织数据。数据库通常用于存储于某个系统、组织或应用相关的信息。和文件系统存储管理数据的方式不同,数据库以结构化的方式进行存储,比如按行列式(类似于表格)
等形式。除此之外,相比于文件系统,数据库保存数据还有以下优点:

  • 数据更加安全
  • 更有利于数据的查询和管理
  • 有利于存储大量数据
  • 控制数据方便

数据库存储的介质:磁盘和内存

主流数据库

  • SQL Sever: 微软的产品,.Net程序员的最爱,中大型项目。
  • Oracle: 甲骨文产品,适合大型项目,复杂的业务逻辑,并发一般来说不如MySQL。
  • MySQL:世界上最受欢迎的数据库,属于甲骨文,并发性好,不适合做复杂的业务。主要用在电商,SNS,论坛。对简单的SQL处理效果好
  • PostgreSQL :加州大学伯克利分校计算机系开发的关系型数据库,不管是私用,商用,还是学术研究使用,可以免费使用,修改和分发。
  • SQLite: 是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。
  • H2: 是一个用Java开发的嵌入式数据库,它本身只是一个类库,可以直接嵌入到应用项目中

基本使用

安装MySQL

在安装MySQL之前建议先去查看当前linux系统的版本,版本越新的系统最好搭配越新的MySql。如果你是ubuntu系统,直接使用指令sudo apt install mysql-server就可以安装了。这是因为ubuntu内置了最新版本的MySql。

  • Centos安装Mysql,这里有安装教程。

连接服务器

当我们安装好MySql之后,一般都会默认启动MySql服务。可以使用指令ps ajx | grep mysql观察mysql进程:
在这里插入图片描述
此时要想进入mysql,需要先登录。本地登录指令mysql -u root -p
-u选项后面跟着登录的用户名
-p选项后面跟密码
此外 -h选项后面跟登陆的主机号 -P后面接访问的端口号
在这里插入图片描述
默认没有密码,直接按回车就可以进去了。退出输入quit

服务器、数据库、表关系

值得注意的是,mysql是数据库服务的客户端,mysqld是数据库服务的服务端(后端)。
在这里插入图片描述
mysql的本质是基于C(mysql,客户端)S(mysqld,服务端) 模式的一种网络服务。我们常说的mysql其实只是指mysql服务的客户端数据库服务才是指mysqld

  • 所谓的安装数据库服务器,只是在机器上安装了一个数据库管理系统程序,这个管理程序可以管理多个数据库。
  • 数据库中一般会有多个表,表是数据库的基本单位,每张表存储具体的数据

数据库服务器、数据库、和表的关系如下:
在这里插入图片描述
DB是存储引擎。

使用案例

登录mysql,简单使用一下mysql指令,目前不用考虑指令的细节,观察结果即可。

  • 创建数据库
create database helloworld;

在这里插入图片描述
在mysql创建的数据库一般会存放在/var/lib/mysql目录下,并且我们可以看到,数据库本质是一个文件目录。

  • 查看当前数据库
show databases;

在这里插入图片描述

  • 使用数据库
use helloworld;

这条指令表示接下来的操作都是在helloworld数据库中进行。比如新建一张表,该表就属于该数据库。

  • 在数据库中创建表
create table student(
   id int,
   name varchar(32),
   gender varchar(2)
);

sudent是表的名字,括号里面的是表的属性,以键值对的形式描述,左边是属性名,右边是类型,()里面是字节大小。
在这里插入图片描述

  • 在表中插入数据
insert into student (id, name, gender) values (1, '张三', '男');
insert into student (id, name, gender) values (2, '李四', '女');
insert into student (id, name, gender) values (3, '王五', '男');
  • 查询表中数据
select * from student

查询并显示student表中所有信息
在这里插入图片描述

数据逻辑存储

数据库中的存储逻辑是指数据在数据库系统中组织和表示方式,主要关注数据的结构和关系,而不是物理存储的的具体实现。简单理解为,逻辑存储方式是用来描述人看到的数据的表现形式,而物理存储方式是数据具体在磁盘中存储形式。

mysql的逻辑存储方式就是行列式
在这里插入图片描述

MySQL架构

MySQL是一个可移植的数据库服务程序,几乎能在当前所有操作系统上运行。各种系统在底层实现方面各有不同,但是 MySQL 基本上能保证在各个平台上的物理体系结构的一致性

MySQL的架构从上到下一般可以分为4个层次:

  1. 连接层:客户端通过连接层与 MySQL 服务器建立连接
  2. 服务层:解析SQL语句,优化查询,生成执行计划
  3. 存储引擎层:查询执行计划通过存储引擎 API 与相应的存储引擎交互,读取或写入数据
  4. 存储层:数据最终存储在文件系统中

在这里插入图片描述
这种分层结构使MySQL具有良好的可扩展性和灵活性,各个层次之间的职责分明,方便优化和扩展

SQL语句分类

mysql中的指令我们称为SQL语句。

  • DDL(data definition language):数据定义语言,用来维护存储数据的结构,代表指令有:create(创建表)、drop(删除表)、alter(修改表)。
  • DML(data manipulation language):数据操纵语言,对数据进行操作。代表指令有:insert(向表中插入数据)、delete(向表中删除数据)、update(修改表中数据)
  • DCL(data Control language):数据控制语言。主要负责权限事务管理。代表指令有:grant(授予用户权限)、revoke(撤销用户权限)、commit(提交事务)

什么叫存储引擎

存储引擎是:数据库管理系统如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术
实现方法。我们输入的sql指令最后都是由存储引擎来实现的。并且,MySQl针对不同的场景,提供了不同的存储引擎。这种插件式存储引擎使得MySQL更加灵活且高效。

我们在mysql种可以使用指令show engines;来查看不同的引擎:
在这里插入图片描述

其中呢InnoDB存储引擎是最常用的,其次是MyISAM。这些引擎目前了解即可

相关文章:

  • 用Dockerfile和Shell脚本来部署一个Go项目
  • 15:00面试,15:08出来,面试问的有点变态。。。。
  • 《王者荣耀》4月狂揽2.34亿美元 单日流水1亿美元 全球销量第二
  • 新一代开源爬虫平台:SpiderFlow
  • conda activate 报错:conda: error: argument COMMAND: invalid choice: ‘ctivate‘解决
  • JDK、JRE、编译指令和垃圾回收机制详解
  • Linux 查询开机时间
  • ubuntu手动替换源后,更新源时提示“仓库.... jammy Release“ 没有Release文件
  • 《QT实用小工具·六十四》QT实现仿Windows消息通知控件可交互
  • CentOS7安装Redis
  • C语言游戏实战(12):植物大战僵尸(坤版)
  • 深度学习中特征(tensor)维度转换
  • 数据链路层简单介绍
  • 阿里云数据库 SelectDB 版全面商业化,开启现代化实时数据仓库的全新篇章
  • 向郭老师学习研发项目管理
  • 赶紧收藏!2024 年最常见 20道 Redis面试题(三)
  • 文件搜索相关命令
  • 5.23小结
  • 老题重测,国产AI大模型从“智障”走向“智能”?
  • JS对象超细
  • 马上评丨上热搜的协和“4+4”模式,如何面对舆论审视
  • 启程回家!神十九轨道舱与返回舱成功分离
  • 违规行为屡禁不止、责任边界模糊不清,法治日报:洞穴探险,谁为安全事故买单?
  • 中国人保聘任田耕为副总裁,此前为工行浙江省分行行长
  • 我国首部《人工智能气象应用服务办法》今天发布
  • 总有黑眼圈是因为“虚”吗?怎么睡才能改善?