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

MySql:理解数据库

       

目录

一、什么是数据库

第一层理解

第二层理解

第三层理解

二、Linux下的数据库

三、基本认识


        登录数据库时,

mysql -u root -h 127.0.0.1 -P 3306 -p

        -h指定MySql服务器所在主机,若在本地则为回环地址。-P表示目标主机上MySql服务端口号

        一般简单写成下面这个样子。

mysql -uroot -p

        退出MySql时,输入quit即可。 

一、什么是数据库

第一层理解

  • 不难知道,由Linux对可执行程序的归类(Linux的指令都在bin和sbin目录下),mysql、mysqld这两条命令都是可执行程序。
  • mysqld,带d说明mysqld是一种网络服务。
  • 于是,mysql是客户端,mysqld是服务端。
  • 总结,数据库就是一种基于C(mysql)-S(mysqld)的一种网络服务。
  • 一般服务端的MySql端口号为3306。

第二层理解

        理解平时口述的三个概念,它们最常用的一层意义。

  • 一般提到mysql,指的是一套网络程序,用来帮助使用者存储数据。
  • 数据库一般指,存储在磁盘上的一套管理数据的方案。
  • 数据库服务,就是指mysqld。

第三层理解

        从文件的角度理解。

文件存储数据的缺点:

        文件的安全性问题
        文件不利于数据查询和管理(增删查改)
        文件不利于存储海量数据
        文件在程序中控制不方便

于是,发明了数据库管理:

        本质就是对文件的一套存储解决方案(方便增删查改)。因此,提到“数据库”,也可能是在说某个数据库文件。

        当使用者增删查改的时候,基于客户端请求数据库(服务器)来完成,具体操作由数据库(数据库文件)完成后,返回给使用者,这个过程就叫数据库,是一套解决方案。

        换句话说,是把存储数据的解决方案,由传统的普通文件存储,转换为可以帮助我们增删查改的数据库文件。


二、Linux下的数据库

        登录成功后,输入show databases;

        注意,MySql语句不同于命令行指令,要加分号

        而在Linux的 /var/lib/mysql目录下,

        蓝色的打印信息表示是一个目录,于是,不难总结出一点,建立了一个数据库的本质,就是Linux下的一个目录

  • 建立一个数据库
create database school;

        注意不要漏写分号。

  • 建立一张学生表

        建表之前,指定要在哪个数据库建表。

use school;

        建立一张学生表,表中有学号、姓名、性别。

create table student(
id int,
name varchar(32),
gender varchar(2)
);

        注意student后面是()而不是{},分号在最后加。

  • 在表中插入数据       
insert into student(id,name,gender)
            values(1,'张三','男');
  •  查询表中数据
select * from stduent;

        以上过程都由服务端的mysqld完成。

三、基本认识

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

  • MySql三层架构

        Connection Pool,链接池:一般做权限管理

        词法分析、语法分析。

        Storage Engines,存储引擎:MySql一般使用的是InnoDB,支持热插拔,具体的文件操作是由它来完成。

  • SQL语句分类

        SQL语句大致可以分为三类:

        DDL(data definition language),数据定义语言,这种SQL语句用来维护存储数据的结构,比如建库、建表。代表的指令有create、drop、alter

        DML(data manipulation language),数据操作语言,这种SQL语句就是用来操作数据的,代表的指令有insert、delete、update。DML又有一个分支叫DQL,数据查询语言,比如select

        DCL(data control language),数据控制语言,主要用来赋权、减权、事物管理。代表指令有grant、revoke、commit

  • 存储引擎

        存储引擎是位于最底层,和数据库文件直接交互的。

        存储引擎是数据库管理系统如何存储数据、如何建立索引和如何更新数据、查询数据等技术的具体实现方法。

        MySQL的核心就是插件式存储引擎,支持多种存储引擎。
        查看支持的存储引擎:
show engines;

http://www.kler.cn/a/421687.html

相关文章:

  • web三、 window对象,延时器,定时器,时间戳,location对象(地址),本地存储-localStorage,数组去重new Set
  • 12.2深度学习_项目实战
  • 【k8s】创建基于sa的token的kubeconfig
  • 【HarmonyOS】鸿蒙应用地理位置获取,地理名称获取
  • Delphi 12.2.1 idhttpserver的使用方法
  • RK3568 + OpenCV 会碰撞出什么火花?案例详解:2-1 基于OpenCV的画线实验
  • Java 基于Spring AI RAG组件做AI智能问答_rag检索增强_AI智能问答
  • 03-13、SpringCloud Alibaba第十三章,升级篇,服务降级、熔断和限流Sentinel
  • Git相关记录
  • 前端跳转路由的时候,清掉缓存
  • Spark常问面试题---项目总结
  • Java基础——(二)Java基本程序结构设计
  • qt QAnimationDriver详解
  • 一种多功能调试工具设计方案开源
  • 跟着官方文档快速入门RAGAS
  • Linux内核4.14版本——ccf时钟子系统(3)——ccf一些核心结构体
  • 使用Tauri创建桌面应用
  • MySQL有哪些日志?
  • AMEYA360:上海永铭电子全新高压牛角型铝电解电容IDC3系列,助力AI服务器电源高效运转
  • vue初始化脚手架