【MySQL】数据库基础和SQL分类

news2024/9/25 11:20:06

文章目录

  1. MySQL数据库基础
    • 数据库的概念
    • 主流数据库
    • 基本使用
    • 连接服务器
    • 服务器管理
    • 数据库服务器,数据库,表关系
  2. MySQL架构
    • SQL分类
    • 存储引擎
    • 查看存储引擎

MySQL数据库基础

数据库的概念

数据库是按照数据结构来组织、存储和管理数据的仓库,是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。数据库的使用优于简单的文件存储,因为它提供了更好的安全性、数据查询和管理的功能,并更容易控制和存储海量数据。

主流数据库

下面列举了几个主流的数据库:

  • SQL Server:微软的产品,适用于中大型项目。
  • MySQL:甲骨文产品,全球最受欢迎的数据库,适用于电商、SNS、论坛等简单业务。
  • Oracle:甲骨文产品,适合大型项目和复杂的业务逻辑。
  • PostgreSql:加州大学伯利克分校开发的关系型数据库。
  • SQLite:轻型数据库,适用于嵌入式设备。
  • H2:Java开发的嵌入式数据库。

基本使用

连接服务器

连接MySQL服务器的方式:

mysql -h127.0.0.1 -P3306 -uroot -p

服务器管理

停止服务器:

systemctl stop mysqld

启动服务器:

systemctl start mysqld

重启服务器:

systemctl restart mysqld

数据库服务器,数据库,表关系

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

[图示见原文]

说明一下:

图中的Client对应的就是mysql命令,MySQL对应的就是mysqld服务。
DB(database)表示的是mysqld管理的多个数据库,而每一个DB下会包含多张表。

使用案例

数据存储路径

MySQL创建的数据库和表结构会以文件的形式存储,数据存储路径可以在配置文件中查看。

创建数据库

连接MySQL服务器后,通过create语句创建数据库:

CREATE DATABASE helloworld;

使用数据库

使用数据库:

USE helloworld;

创建数据库表

通过create语句创建一个名为student的表:

CREATE TABLE student (
  id INT PRIMARY KEY AUTO_INCREMENT,
  name VARCHAR(50),
  age INT
);

表中插入数据

通过insert语句向表中插入数据:

INSERT INTO student (name, age) VALUES ('John', 25);
INSERT INTO student (name, age) VALUES ('Jane', 28);

查询表中的数据

通过select语句查看表中的数据:

SELECT * FROM student;

数据逻辑存储

数据的逻辑存储以二维表格的形式进行,每行为一条记录,每列代表一个属性。

MySQL架构

MySQL是一个可移植的数据库,几乎能在当前所有的操作系统上运行,如Unix/Linux、Windows、Mac和Solaris。MySQL架构主要可分为如下四层:

  1. 连接层: 完成连接处理、授权认证及相关的安全方案。

  2. 服务层: 在MySQL数据库系统处理底层数据之前的所有工作都是在这一层完成的。包括权限判断、SQL接口、SQL解析、SQL分析优化、缓存查询的处理以及部分内置函数执行等。各个存储引擎提供的功能都集中在这一层,如存储过程、触发器、视图等。

  3. 引擎层: 由多种可拔插的存储引擎共同组成。真正负责MySQL中数据的存储和提取。每个存储引擎都有自己的优点和缺陷,例如InnoDB支持事务、行级锁和外键等,MyISAM则支持全文索引和压缩等特性。

  4. 存储层: 将数据存储在裸设备的文件系统之上,完成存储引擎的交互。
    在这里插入图片描述

MySQL客户端是通过MySQL服务器来执行数据库操作的。MySQL服务器会收到MySQL客户端发来的SQL语句,并根据SQL语句执行对应的操作。MySQL客户端不仅指连接MySQL时使用的mysql命令,还包括语言接口客户端。MySQL提供了多种语言接口,如C/C++、Python、Java和PHP等。

SQL分类

SQL(Structured Query Language,结构化查询语言)是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。

SQL语句可分为以下三类:

  1. DDL(Data Definition Language): 数据定义语言,用于维护存储数据的结构,包括create语句用于创建数据库、表等;drop语句用于删除数据库、表等;alter语句用于修改数据库、表等的结构。

  2. DML(Data Manipulation Language): 数据操作语言,用于对数据进行操作,包括insert语句用于向表中插入数据;delete语句用于从表中删除数据;update语句用于修改表中的数据。

  3. DCL(Data Control Language): 数据控制语言,主要用于权限管理和事务控制,包括grant语句用于授权给用户访问数据库或表的权限;revoke语句用于收回已授权的权限;commit语句用于提交事务。

此外,DML中又单独分了一个DQL(Data Query Language)数据查询语言,包括select语句用于查询表中的数据、from语句用于指定要查询的表等。

存储引擎

存储引擎是数据库管理系统如何存储数据、如何为存储的数据建立索引、如何更新数据、如何查询数据等技术的实现方法。MySQL中的存储引擎是插件式的存储引擎,它可以支持多种存储引擎。

查看存储引擎

通过show语句可以查看MySQL支持的存储引擎。在MySQL客户端中执行以下命令:

SHOW ENGINES;

其中MySQL默认使用的存储引擎是InnoDB,该存储引擎支持事务、行级锁、外键等。其他常用的存储引擎还包括MyISAM、MEMORY和CSV等。

存储引擎的选择要根据具体的业务需求和数据特点进行,不同的存储引擎有不同的特性和适用场景。例如,InnoDB适用于事务处理和并发读写较多的场景,MyISAM适用于读操作频繁、写操作较少的场景,MEMORY适用于对速度要求较高、数据量不大、对数据持久性要求不高的场景。

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

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

相关文章

mysql--InnoDB存储引擎--架构和事务

MySQL进阶篇 文章目录 架构1、逻辑结构InnoDB 逻辑存储单元主层级关系图:1、表空间2、段3、区4、页5、行总结: 2、架构2、1 内存架构2、2 磁盘架构 3、事务3、1事务基础(1)事务(2)特性 架构 1、逻辑结构 I…

青少年软件编程(Python) 等级考试试卷(六级)2023年5月

青少年软件编程(Python) 等级考试试卷(六级) 分数: 100 题数: 38 一、 单选题(共 25 题, 共 50 分) 1.明明每天坚持背英语单词, 他建立了英语单词错题本文件“mistakes. txt” &…

PPT文件常见的几种格式有哪些?

PPT文件大家都不陌生,那么PPT文件的几种格式,大家也可以学习一下: .ppt & .pptx 这两种PPT格式是最基本的ppt文件后缀,就是我们普通可以编辑的PPT文件格式,2003版的PowerPoint的文件格式是.ppt,而在0…

【C++】文件操作(囊括特殊情况:读文件遇到的空格被跳过、“文件只读一次“)

author:&Carlton tag:C topic:【C】文件操作(囊括特殊情况:读文件遇到的空格被跳过、“文件只读一次”) website:黑马程序员C date:2023年7月31日 目录 文本文件 写文件 源…

二叉搜索树的模拟实现

基础的二叉树用的其实不多,二叉树的重点在二叉树的延伸:二叉搜索树。二叉搜索树又延伸出了平衡二叉搜索树。搜索数的特点是:查找效率极高。 二叉搜索树的作用: 1. map和set特性需要先铺垫二叉搜索树,而二叉搜索树也是一…

3节点linux服务器集群搭建

一,目的 由于当前集群部署已经成为主流,适当研究一些集群部署的基本操作,有助于后续像k8s集群、doris集群的部署。 大部分集群都是一主两从这种三节点配置。故本文也是采用三节点完成相关学习和记录。 二,说明 因为会关闭防火…

webScoket

webScoket是什么&#xff1f; 支持端对端通讯可以由客户端发起&#xff0c;也可以有服务端发起用于消息通知、直播间讨论区、聊天室、协同编辑等 做一个简单的webScoket 客户端配置&#xff1a; 1、新建一个页面叫web-scoket.html <!DOCTYPE html> <html lang"…

P7243 最大公约数

题目 思路 利用曼哈顿原理求离&#xff08;x&#xff0c;y&#xff09;最远的点 代码 #include<bits/stdc.h> using namespace std; #define int long long #define INF 0x3f3f3f3f const int maxn2005; int gcd(int a,int b) { return b?gcd(b,a%b):a; } int n,m; i…

华为OD机试真题 JavaScript 实现【输入整型数组和排序标识,对其元素按照升序或降序进行排序】【牛客练习题】

目录 一、题目描述二、输入描述三、输出描述四、解题思路五、JavaScript算法源码 华为OD机试 2023B卷题库疯狂收录中&#xff0c;刷题点这里 刷的越多&#xff0c;抽中的概率越大&#xff0c;每一题都有详细的答题思路、详细的代码注释、样例测试&#xff0c;发现新题目&#x…

RK3566 使能NPU

一、硬件 确定VDD_NPU所用的电源 用的是PMIC的DC-DC2 二、SDK 1、修改板级配置DTS文件 配置vdd_gpu vdd_gpu: DCDC_REG2 {regulator-always-on;regulator-boot-on;regulator-min-microvolt <500000>;regulator-max-microvolt <1350000>;regulator-init-microv…

[threejs]相机与坐标

搞清相机和坐标的关系在threejs初期很重要&#xff0c;否则有可能会出现写了代码&#xff0c;运行时一片漆黑的现象&#xff0c;这种情况就有可能是因为你相机没弄对。 先来看一下threejs中的坐标(世界坐标) 坐标轴好理解&#xff0c;大家只需要知道在three中不同颜色代表的轴…

python-pytorch基础之cifar10数据集使用图片分类

这里写目录标题 总体思路获取数据集下载cifar10数据解压包文件介绍加载图片数字化信息查看数据信息数据读取自定义dataset使用loader加载建模训练测试建测试数据的loader测试准确性测试一张图片读取一张图片加载模型预测图片类型创建一个预测函数随便来张马的图片结果其他打开一…

java实现钉钉群机器人@机器人获取信息后,机器人回复

1.需求 鉴于需要使用钉钉群机器人回复&#xff0c;人们提出的问题&#xff0c;需要识别提出的问题中的关键词&#xff0c;后端进行处理实现对应的业务逻辑 2.实现方式 用户群机器人&#xff0c;附带提出的问题&#xff0c;后端接收消息后识别消息内容&#xff0c;读取到关键…

亚马逊、虾皮、Lazada、速卖通、阿里国际等跨境电商平台怎么获取优质评价?

在跨境电商平台上&#xff0c;产品的评价直接影响卖家账户的评定因素&#xff0c;同时也影响产品页面的曝光量和流量&#xff0c;从而对产品销量产生影响&#xff0c;因此&#xff0c;产品评价的重要性不言而喻&#xff0c;除了产品的图片、描述、详情、广告和站外推广&#xf…

Java throw和throws 关键字

在Java中&#xff0c;异常可以分为两种类型&#xff1a; 未检查的异常&#xff1a;它们不是在编译时而是在运行时被检查&#xff0c;例如&#xff1a;ArithmeticException&#xff0c;NullPointerException&#xff0c;ArrayIndexOutOfBoundsException&#xff0c;Error类下的异…

[Docker实现测试部署CI/CD----相关服务器的安装配置(2)]

目录 6、Jenkins安装配置安装jdk安装maven拉取镜像启动jenkins修改数据卷权限浏览器访问安装插件配置jenkins移动JDK和Maven配置JDK和Maven 6、Jenkins安装配置 Jenkins 是一个开源软件项目&#xff0c;是基于 Java 开发的一种持续集成工具&#xff0c;用于监控持续重复的工作&…

MySQL 的解析器以及 MySQL8.0 做出的改进 | StoneDB技术分享 #2

设计&#xff1a;小艾 审核&#xff1a;丁奇 编辑&#xff1a;宇亭 作者&#xff1a;柳湛宇&#xff08;花名&#xff1a;乌淄&#xff09; 浙江大学-软件工程-在读硕士、StoneDB 内核研发实习生 一、MySQL 的解析器 MySQL 所使用的解析器&#xff08;即 Lexer 和 Parser …

⛳ Java多线程 一,线程基础

线程基础 ⛳ Java多线程 一&#xff0c;线程基础&#x1f43e; 一&#xff0c;线程基础&#x1f4ad; 1.1&#xff0c;什么是程序&#xff0c;进程&#xff0c;线程&#x1f3ed; 1.2&#xff0c;什么是并行和并发&#x1f463; 1.3&#xff0c;线程使用的场景&#x1f3a8; 1.…

Nginx 15分钟入门

1、反向代理和负载均衡 Nginx 反向代理 负载均衡 网站初期用户量较少的时候&#xff0c;一台服务器就够用&#xff0c;但是当大量用户注册&#xff0c;那么显然一台机器就不够了。如下图&#xff0c;我们把同一个项目部署在3台服务器上。那么问题又来了&#xff0c;用户A的请…

连锁门店新零售管理系统服务商,提供新零售商城一体化解决方案|亿发

新零售时代&#xff0c;客户需求和购物方式正在发生翻天覆地的变化&#xff0c;数字化运营服务成为连锁门店增强竞争力的有效工具。那么&#xff0c;我们该如何借助数字化力量&#xff0c;升级连锁门店的新零售运营服务&#xff0c;迎接未来的商业挑战呢&#xff1f;一、智慧新…