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

数据库基础知识

目录

一、什么是数据库?

二、基本使用方法

(1)启动服务器进程

(2)连接服务器

(3)基本sql语句

三、MySQL架构

四、SQL语句分类

五、存储引擎是什么


一、什么是数据库?

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

        但是你可能有疑问了,我们已经有了文件系统,为什么还需要创造一个数据库出来呢?有以下几点原因:

(1)文件系统不够安全,任何人拿到磁盘就能知道里面存放了什么数据,而数据库有用户的概念,对登陆者做了验证。

(2)数据库是一个运行在文件系统之上的应用程序,对于文件系统的操作进行了优化和封装,便于程序员管理、查询数据。

        数据库按照存储类型可以分为内存型和磁盘型,我们使用的MySQL是一种磁盘型的,你可以把他理解成操作系统自带的文件系统的升级版。

        主流的数据库有哪些呢?

二、基本使用方法

        数据库的安装建议大家自己在网络上搜索一下,不同版本的操作系统可能兼容的数据库不一一。

(1)启动服务器进程

        当我们安装好了数据库之后,一般都会自动启动MySQL服务器,即mysqld。在linux中我们可以使用这样的命令查看该进程有没有运行起来。

如果没有则可以使用systemctl start/stop mysql来启动或者关闭数据库进程。

        此时我们的mysql进程已经在运行了,我们还可以通过下面的操作将该进程设置为开机自动启动,当然由于我们使用的是云服务器,他实际上是不会关机的,所有设不设置都没啥区别,如果你是虚拟机的话可以设置一下。

#开启开机⾃启动
systemctl enable mysqld
systemctl daemon-reload

(2)连接服务器

        一般连接服务器是需要使用用户名和密码的形式的,由于mysql是一个网络客户端服务器的架构,所以还需要指明数据库服务器的ip地址和端口号。

mysql -h IP地址 -P 端口号 -u 用户名 -p

        不过我们这里服务器和客户端在一台主机上,所以可以不用明确指出IP地址和端口号,默认就是本地环回,端口号是3306,这两个属性都是在其配置文件里面写好的,当然你也可以修改端口号来提高自己数据库的安全性,只不过是因为广泛都使用3306,所以比较知名。

mysql -u root -p

自此,你就连接上了一个服务器,可以开始输入sql指令啦。

(3)基本sql语句

创建数据库

create database helloworld;

我们说了,mysql本质就是对文件系统进行操作的封装管理,所以他仍然是将数据存储在文件中。在Ubuntu系统下,他的存储路径在/var/lib/mysql,这个是在配置文件中明确写到的。

使用数据库

use helloworld;

因为数据库中有多个database,所以在查看某个表的时候要先进入该数据库,他就像是Linux中的目录。

创建数据库表

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

表中插入数据

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;

三、MySQL架构

        所谓安装数据库服务器,只是在机器上安装了一个数据库管理系统的应用程序,这个管理程序可以管理多个数据库,一般开发人员会针对每一个应用创建一个数据库。

        为保存应用中实体的数据,一般会在数据库中创建多个表,以保存程序中实体的数据。

         数据库服务器、数据库和表的关系如下:

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

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

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

这种分层的架构方式通常就是我们所说的解耦,能让各个模块的功能独立,方便日后优化或者增加功能。

四、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

五、存储引擎是什么

        存储引擎是:数据库管理系统如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术的实现方法。我们输入的sql语句其实就是交给该搜索引擎来执行的。

        MySQL的核心就是插件式存储引擎,支持多种存储引擎。可以针对不同的应用场景,由程序员选取该使用什么搜索引擎,使得增删查改的效率更高。最常用的就是InnoDB,一般情况下他的效率还比较不错,而且提供了事务的方法。

        在Linux中,可以使用下面的命令来查看当前数据库支持什么引擎。

show engines;

相关文章:

  • React:React主流组件库对比
  • 分子动力学软件包Amber24的安装
  • miniconda安装保姆级教程|win11|深度学习环境配置
  • 颠覆者的困局:解构周鸿祎商业哲学中的“永恒战争”
  • python——UI自动化(1) selenium之介绍和环境配置
  • Bell-1量子计算机分析:开启量子计算2.0时代的创新引擎
  • 安装React开发者工具
  • Windows Once Power-v2.21.0+0-开源文件和文件夹批量重命名工具
  • Windows Server 2025 使用 IIS 搭建 ASP.NET 3.5 网站
  • 【STM32实物】基于STM32的扫地机器人/小车控制系统设计
  • 在线问卷调查|在线问卷调查系统|基于Spring Boot的在线问卷调查系统的设计与实现(源码+数据库+文档)
  • 电脑系统问题检查
  • 从像素到世界:自动驾驶视觉感知的坐标变换体系
  • MyBatis-Plus 自动填充:优雅实现创建/更新时间自动更新!
  • AI比人脑更强,因为被植入思维模型【16】反脆弱
  • 【vue的some和filter】
  • 3-22 vector的使用详解---STL C++
  • 免费下载 | 2025年AI产业全景报告.pdf
  • 手机怎么换网络IP有什么用?操作指南与场景应用‌
  • 常考计算机操作系统面试习题(四)
  • 牛市早报|4月新增社融1.16万亿,降准今日正式落地
  • 中科飞测将投资超10亿元,在上海张江成立第二总部
  • 前四个月社会融资规模增量累计为16.34万亿元,比上年同期多3.61万亿元
  • IPO周报|本周A股暂无新股网上申购,年内最低价股周二上市
  • 为发期刊,高校学者偷贩涉密敏感数据!国安部披露间谍案细节
  • 梅花奖在上海|朱洁静:穿越了人生暴风雨,舞台是最好良药