数据库基础知识

目录

一、什么是数据库?

二、基本使用方法

(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;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/37981.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在线生成自定义二维码

在线生成自定义二维码 1. 引言 二维码已成为现代互联网的重要工具,广泛应用于链接分享、支付、身份认证等场景。然而,很多在线二维码生成工具功能有限,难以满足个性化需求。如果你需要 自定义颜色、Logo、不同形状的二维码,那么…

DeepSeek处理多模态数据的技术要点和实现方式

DeepSeek具备处理多模态数据的能力,以下是相关技术要点和实现方式。 1. ‌多模态模型架构‌ ‌单流/双流网络‌:通过将文本和图像输入统一编码器(单流)或分别编码后交互(双流)实现模态融合‌。‌预训练模…

系统架构设计知识体系总结

1.技术选型 1.什么是技术选型? 技术选型是指评估和选择在项目或系统开发中使用的最合适的技术和工具的过程。这涉及考虑基于其能力、特性、与项目需求的兼容性、可扩展性、性能、维护和其他因素的各种可用选项。技术选型的目标是确定与项目目标相符合、能够有效解…

数智读书笔记系列022《算力网络-云网融合2.0时代的网络架构与关键技术》读书笔记

一、书籍核心价值与定位 1.1 书籍概述:中国联通研究院的权威之作 《算力网络 —— 云网融合 2.0 时代的网络架构与关键技术》由中国联通研究院算力网络攻关团队精心撰写,是业界首部系统性探讨云网融合 2.0 与算力网络的专著。在云网融合从 1.0 迈向 2.0 的关键节点,本书的…

知识图谱中NLP新技术

知识图谱与自然语言处理(NLP)的结合是当前人工智能领域的前沿方向,其技术发展呈现多维度融合与场景深化的特点。以下从核心技术突破、应用场景创新及未来趋势三个层面,系统梳理知识图谱中NLP的最新进展: 一、核心技术突…

ASP.NET Web的 Razor Pages应用,配置热重载,解决.NET Core MVC 页面在更改后不刷新

Razor Pages应用,修改页面查看修改效果,如果没有热重载,改一句话跑一次,这个活就没法干了。 1、VS2022中的NuGet中安装RuntimeCompilation Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation 需要配套你的.net sdk版本&#x…

DeepSeek(8):结合Kimi-PPT助手一键生成演示报告

1 生成内容 在Deepseek中生成内容: 帮我创建年度计划,描述《智能枕头》产品的如何在全国销售,计划切分到每个月。从而让我们的老板和团队对报告充满信息。输出的内容我需要放到ppt中进行展示。 使用Deepseek R1模型,如下&#x…

到底爱不爱我

L2-3 到底爱不爱我 古代少女有了心上人时,会悄悄折一条树枝,揪那枝上的叶子,揪一片叶子念一句“爱我”,再揪一片念一句“不爱我”…… 这样揪落最后一片叶子的时候,看看是停在“爱”还是“不爱”。 但聪明的慧娘一眼洞…

网络华为HCIA+HCIP 网络编程自动化

telnetlib介绍 telnetlib是Python标准库中的模块。它提供了实现Telnet功能的类telnetlib.Telnet。这里通过调用telnetlib.Telnet类里的不同方法实现不同功能。 配置云

【10】高效存储MongoDB的用法

目录 一、什么是MongoDB 二、准备工作 (1)安装MongoDB ​(2)安装pymongo库 三、连接MongoDB 四、指定数据库 五、指定集合 六、插入数据 (1) insert 方法 (2)insert_one(…

datawhale组队学习--大语言模型—task4:Transformer架构及详细配置

第五章 模型架构 在前述章节中已经对预训练数据的准备流程(第 4 章)进行了介绍。本章主 要讨论大语言模型的模型架构选择,主要围绕 Transformer 模型(第 5.1 节)、详细 配置(第 5.2 节)、主流架…

Tomcat虚拟主机配置详解:Centos环境下多域名部署(详细教程!)

🏡作者主页:点击! Tomcat服务器📝专栏:点击! 🐧Linux高级管理防护和群集专栏:点击! ⏰️创作时间:2025年3月18日14点14分 最近在折腾 Tomcat 的时候&…

Java+Html实现前后端客服聊天

文章目录 核心组件网络通信层事件调度层服务编排层 Spring实现客服聊天技术方案对比WebScoket建立连接用户上线实现指定用户私聊群聊离线 SpringBootWebSocketHtmljQuery实现客服聊天1. 目录结构2. 配置类3. 实体类、service、controller4. ChatWebSocketHandler消息处理5.前端…

51c自动驾驶~合集24

我自己的原文哦~ https://blog.51cto.com/whaosoft/11926510 #DriveArena 上海AI Lab又放大招:首个高保真闭环生成仿真平台 仓库链接:https://github.com/PJLab-ADG/DriveArena 项目链接:https://pjlab-adg.github.io/DriveArena/ D…

锦华新材业绩波动明显:偿债能力偏弱,大额分红引关注

《港湾商业观察》施子夫 近期,浙江锦华新材料股份有限公司(以下简称,锦华新材)收到北交所下发的第二轮审核问询函,公司的上市进程继续推进中。 从两轮审核问询函中监管层关注的问题来看,有关锦华新材业绩…

【Node.js入门笔记9---path 模块】

Node.js入门笔记9 Node.js---path 模块一、核心功能0.学习path的前提1. 使用 path.join() 安全拼接路径2. path.resolve(),路径解析(绝对路径)3. 路径信息提取4. 路径规范化 二、跨平台关键点1. 路径分隔符2. 环境变量分隔符3. 路径格式解析4…

C++20 中 `constexpr` 的强大扩展:算法、工具与复数库的变革

文章目录 一、constexpr 在 <algorithm> 中的应用1. 编译时排序2. 编译时查找 二、constexpr 在 <utility> 中的应用1. 编译时交换2. 编译时条件交换 三、constexpr 在 <complex> 中的应用1. 编译时复数运算 四、总结 C20 对 constexpr 的增强是其最引人注目…

python基础知识,if,elif语句运用(详细),常见编程例题练习

一、问答题 &#xff08;1&#xff09;怎样生成一个满足条件10 ≤ i ≤ 50的随机整数? import random i random.randint(10, 50) random.randint(a, b) #包含a和b &#xff08;2&#xff09;如果number分别是30和35&#xff0c;那么a中的代码和b中的代码的输出结果是什么? …

C++遍历树,前中后序,递归非递归实现

文章目录 前序遍历中序遍历后序遍历代码解释 前序遍历 递归思路&#xff1a;先访问根节点&#xff0c;然后递归遍历左子树&#xff0c;最后递归遍历右子树。非递归思路&#xff1a;使用栈来模拟递归过程。先将根节点入栈&#xff0c;之后循环执行以下操作&#xff1a;弹出栈顶…

Spring 声明式事务应该怎么学?

1、引言 Spring 的声明式事务极大地方便了日常的事务相关代码编写&#xff0c;它的设计如此巧妙&#xff0c;以至于在使用中几乎感觉不到它的存在&#xff0c;只需要优雅地加一个 Transactional 注解&#xff0c;一切就都顺理成章地完成了&#xff01; 毫不夸张地讲&#xff…