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

文章目录

    • 什么是数据库?
    • 主流数据库
    • 基本使用
      • 安装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。这些引擎目前了解即可

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

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

相关文章

基于springboot实现的校园博客系统

开发语言:Java 框架:springboot JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7(一定要5.7版本) 数据库工具:Navicat11 开发软件:eclipse/myeclipse/idea Maven…

Mac SourceTree配置ssh git仓库

一、准备条件 1、Mac系统电脑 2、安装好SourceTree 3、获取ssh git仓库地址 二、配置步骤 1、打开终端命令行 ssh -t rsa -C "xxx""xxx"代表注册git仓库时,使用的用户名,可以是字符串也可以是邮箱地址。 如果遇到输入密码&#xf…

无线网络安全技术基础

无线网络安全技术基础 无线网络安全风险和隐患 随着无线网络技术广泛应用,其安全性越来越引起关注.无线网络的安全主要有访问控制和数据加密,访问控制保证机密数据只能由授权用户访问,而数据加密则要求发送的数据只能被授权用户所接受和使用。 无线网络在数据传输时以微波进…

数据访问层设计_6.连接对象管理设计

1.数据库连接管理 在基于JDBC的数据库应用开发中,数据库连接的管理是一个难点,因为它是决定该应用性能的一个重要因素。 对于共享资源,有一个很著名的设计模式——资源池。该模式正是为了解决资源频繁分配、释放所造成的问题。把该模式应用到…

Centos7.9安装卸载Docker

文章目录 1、官网安装1.1、卸载旧版本Docker1.2、通过rpm仓库安装1.2.1、设置仓库1.2.2、安装Docker Engine1.2.3、启动Docker1.2.4、验证安装 1.3、通过rpm软件包安装1.4、通过便捷脚本安装 2、yum安装2.1、安装docker-ce以及客户端2.2、启动docker2.3、配置镜像加速 3、卸载D…

Linux安装刻录软件

在工作场景经常使用光盘和刻录机,在windows系统下有nero软件,在linux下有k3b,但是原始的k3b只能一次刻录,十分浪费光盘,这里我们使用经优麒麟优化过的刻录软件,实现多次追加刻录。 进入优麒麟软件仓库,需要…

项目管理—需求管理规程(软件研发过程标准,管理标准,标书技术编写,资质评审,安全管理体系,项目交付,实施运维,各类建设方案)

软件资料清单列表部分文档清单:工作安排任务书,可行性分析报告,立项申请审批表,产品需求规格说明书,需求调研计划,用户需求调查单,用户需求说明书,概要设计说明书,技术解…

30.包名的修改和新建后端模块

权限和第三方登录确实令人头疼,我们来学一点简单一点的。 另外,如果各位有属于自己的域名和ICP/IP备案,布置一个作业,自行实现第三方QQ登录。 我们所说的包名修改,是一次性修改ruoyi的全部包名,因为发现很多人有这样的需求,下载别人的代码,想要改成自己公司的包名,结…

Spring Boot:SpringBoot 如何优雅地定制JSON响应数据返回

一、前言 目前微服务项目中RESTful API已经是前后端对接数据格式的标配模式了,RESTful API是一种基于REST(Representational State Transfer,表述性状态转移)原则的应用程序编程接口(Application Programming Interfac…

P6【知识点】【数据结构】【树tree】C++版

树是由一个集合以及在该集合上定义的一种关系构成的,集合中的元素称为树的结点,所定义的关系称为父子关系。父子关系在树的结点之间建立了一个层次结构,在这种层次结构中有一个结点具有特殊的地位,这个结点称为该树的根结点。 二叉…

大数据——大数据架构

一:大数据应用场景 1.离线批处理 数据量比较大,延迟比较高 2.实时检索 实时检索中的hbase按key值检索较快,因为其存储是顺序存储,但是对value的检索就相对较慢。 数据量大,实时查询数据,不能对数据做大量…

数据结构(二)单链表

一、链表 (一)概念 逻辑结构:线性 存储结构:链式存储,在内存中不连续 分为有头链表和无头链表 同时又细分为单向、循环、双向链表 (二)有头单向链表示意图 以下数据及地址只是为了方便理解…

Colab/PyTorch - 006 Mask RCNN Instance Segmentation

Colab/PyTorch - 006 Mask RCNN Instance Segmentation 1. 源由2. 用 PyTorch 实现 Mask R-CNN2.1 输入输出2.2 预训练模型2.3 模型预测2.4 目标检测流程2.5 推理示例一示例二示例三 3. 推断时间比较(CPU v.s. GPU)4. 总结5. 参考资料 1. 源由 在《Colab/PyTorch - 004 Torchv…

vue2组件的封装+antd

1.vue2表格的封装使用 表格使用 <standard-tables:columns"columns":dataSource"dataSource":loading"loading"bordered:pagination"{ ...pagination, onChange: onPageChange }"><div slot"warnType" slot-scope…

必应bing国内推广开户,全方位必应广告开户流程介绍!

在所有获客渠道中&#xff0c;搜索引擎广告成为企业扩大品牌影响力、精准触达目标客户的关键途径之一。作为全球领先的搜索引擎之一&#xff0c;必应&#xff08;Bing&#xff09;拥有庞大的用户群体和独特的市场优势&#xff0c;是企业不可忽视的营销阵地。云衔科技&#xff0…

vscode添加代办相关插件,提高开发效率

这里写目录标题 前言插件添加添加TODO Highlight安装TODO Highlight在项目中自定义需要高亮显示的关键字 TODO Tree安装TODO Tree插件 单行注释快捷键 前言 在前端开发中&#xff0c;我们经常会遇到一些未完成、有问题或需要修复的部分&#xff0c;但又暂时未完成或未确定如何处…

合约的值类型

基本数据类型&#xff1a;整数、枚举、布尔&#xff08;类似java的数据类型&#xff09;Address、Contract&#xff08;这两种是solidity特有的数据类型&#xff09;Fixed byte array&#xff08;定长字节数组&#xff09; Integer(int/uint) int/uint 以8位字节递增&#xf…

推荐ChatGPT4.0——数学建模

1.建模助手 2. 可直接上传文档分析 3.获取途径 现在商家有活动&#xff0c;仅仅需要19.9&#xff01;&#xff01;&#xff01;&#xff01; 现在有优惠&#xff1a; 推荐人写&#xff1a;love 周卡&#xff0c;半月卡&#xff0c;月卡优惠码是love&#xff0c; 会优惠10元…

表现层框架设计之表现层设计模式_1.MVC模式

1.MVC模式三个核心模块 MVC是一种目前广泛流行的软件设计模式。近年来&#xff0c;随着Java EE的成熟&#xff0c;MVC成为了Java EE平台上推荐的一种设计模式。MVC强制性地把一个应用的输入、处理、输出流程按照视图、控制、模型的方式进行分离&#xff0c;形成了控制器…

Github上传时报错The file path is empty的解决办法

问题截图 文件夹明明不是空的&#xff0c;却怎么都上传不上去。 解决方案&#xff1a; 打开隐藏文件的开关&#xff0c;删除原作者的.git文件 如图所示&#xff1a; 上传成功&#xff01;