数据库基础

文章目录

    • [1. 什么是数据库](#1. 什么是数据库)
      • [1.1 服务器角度](#1.1 服务器角度)
      • [1.2 数据库服务](#1.2 数据库服务)
      • [1.3 数据库与文件区别](#1.3 数据库与文件区别)
    • [2. Linux环境基础操作](#2. Linux环境基础操作)
      • [2.1 登录](#2.1 登录)
      • [2.2 查当前服务器的数据库](#2.2 查当前服务器的数据库)
      • [2.3 建立数据库](#2.3 建立数据库)
      • [2.4 选择数据库](#2.4 选择数据库)
      • [2.5 建表](#2.5 建表)
      • [2.6 插入数据](#2.6 插入数据)
    • [3. 服务器、数据库、表之间的关系](#3. 服务器、数据库、表之间的关系)
    • [4. MySQL架构](#4. MySQL架构)
    • [5. SQL分类](#5. SQL分类)
    • [6. 存储引擎](#6. 存储引擎)

1. 什么是数据库

1.1 服务器角度

mysqld是数据库服务的服务器端;mysql是数据库服务的客户端。

名字后缀带d一般是守护进程,说明mysql本质就是基于CS的一个网络服务。

1.2 数据库服务

mysql是一套给我们提供数据存储服务的网络程序

一般口语上说的数据库,大多数情况指的是在磁盘或者内存当中存储的特定结果组织的数据------将来在磁盘上存储的一套数据库方案

数据库服务mysqld,数据库mysql

1.3 数据库与文件区别

一般存储数据用的是文件,但是文件并没提供非常好的数据管理能力(用户角度)

比如说一个大文件,我要对里面的内容做提取,这就需要我们自己写程序来提取。

文件只是提供了基本的读写能力,并没有对内容进行管理

所以数据库本质就是对数据内容存储的一套解决方案,我们提出要求,数据库直接返回结果

2. Linux环境基础操作

2.1 登录

mysql 复制代码
mysql -h ip -P port -u root -p password

如果不写-h默认ip是127.0.0.1本地登录,不写-P默认端口为配置文件的端口,一般是3306

本次示例为本地登录:mysql -uroot -p

2.2 查当前服务器的数据库

mysql 复制代码
show databases;

2.3 建立数据库

mysql 复制代码
create database hello_mysql;

本质就是在Linux下的一个目录

2.4 选择数据库

mysql 复制代码
use hello_mysql

2.5 建表

mysql 复制代码
create table student( name varchar(32), age int, gender varchar(2) );

建表完毕之后会自动创建对应的文件:

建立表的本质就是在Linux下创建对应的文件

2.6 插入数据

mysql 复制代码
insert into student (name, age, gender) values('小王', 22, '女');

逻辑存储结构是行列式结构
以上的建立数据库、建表,是我们发起的请求,然后是mysqld服务帮我们做的

所以数据库本质也是文件,只不过这些文件并不是由程序员直接操作,而是数据库服务mysqld进行操作

3. 服务器、数据库、表之间的关系

  • 安装数据库服务器,就是在机器上安装一个数据库管理系统程序,一般一后台守护进程的形式运行;
    这个管理程序可以管理多个数据库(Linux下的目标),开发人员针对每个应用创建一个数据库
  • 在数据库创建多个表,保存应用的实体数据
  • 关系图:

4. MySQL架构

MySQL是一个可移植的数据库,在主流的操作系统上都能运行,但是MySQL服务本身是一个网络服务,就应该在网络服务器后端上跑。

图片来源:一文搞懂MySQL体系架构!!,侵权删

5. SQL分类

  • DDL(data definition language):数据定义语言,用来维护存储结构的相关语句
    例如:create、drop、`alter``
  • ``DML(data manipulation language):数据操纵语言,用来对数据进行操作 例如:insert、delete、update`
  • DCL(data control language):数据控制语言,负责权限和事务的管理
    例如:grant、revoke、commit

6. 存储引擎

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

真正和操作系统打交道的

MySQL是以插件式存储引擎为核心的,支持多种存储引擎。

查看存储引擎

mysql 复制代码
show engines;

大部分情况常用的就是InnoDB和MyISAM

配置文件/etc/my.cnf可以设置默认存储引擎:

相关推荐
帷幕落秋13 分钟前
Mysql备份
运维·数据库
ShineWinsu17 分钟前
对于Redis:ZSet类型的解析
数据库·c++·redis·缓存·面试·有序集合·zset
Dxy123931021636 分钟前
MySQL 条件注释 vs 普通注释
数据库·mysql
做运维的阿瑞41 分钟前
自连接、交叉连接与复杂 JOIN:一条问题链讲透
前端·数据库·mysql
Fcy6481 小时前
Linux下 传输层协议TCP详解
linux·网络·tcp/ip
charmingmm8151 小时前
数据库和数据表的设计和命名经验
数据库
BIM云平台开发1 小时前
DAZ里,如何保存现在姿势,如果调错了,可以重新导回
linux·服务器·前端·daz基础教程
EatFan1 小时前
Spring Boot 4 迁移避坑清单:Jackson 3、starter 拆分与最低 JDK 口径核对(含若依/芋道/CRMEB 升级对照)
java·数据库·spring boot·spring boot 4·java 21·jakarta ee 11·jackson 3
栖凤1 小时前
多 Agent 工作流实践:从单打独斗到协同作战
java·linux·服务器
其实防守也摸鱼1 小时前
渗透测试学习计划(全栈综合 · 零基础进阶)
android·数据库·学习·安全·oracle·自动化·学习方法