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

MySQL 数据库学习教程一:开启数据库探索之旅

在当今数字化时代,数据已然成为企业和组织最为宝贵的资产之一。而数据库管理系统则是存储、管理和操作这些数据的核心工具。MySQL 作为一款广泛应用的开源关系型数据库管理系统,以其可靠性、高性能和易用性而备受青睐。如果你渴望踏入数据库领域,掌握 MySQL 数据库的基本技能,那么这篇教程将为你指引方向,带你迈出坚实的第一步。

一、MySQL 简介

MySQL 是一种基于结构化查询语言(SQL)的关系型数据库管理系统。它能够高效地存储、组织和检索大量的数据,适用于各种规模的应用场景,从个人博客网站到大型企业级应用系统都有广泛的应用。其具有以下特点:

• 开源免费:MySQL 的开源性质使得开发者可以免费使用、修改和分发它,大大降低了开发成本,促进了技术社区的积极参与和创新。

• 跨平台支持:可以在多种操作系统上运行,包括 Windows、Linux、Mac OS 等,为不同环境下的开发和部署提供了便利。

• 高性能:通过优化的存储引擎和查询处理机制,能够快速地处理复杂的查询操作,满足高并发访问的需求。

• 可靠性:具备完善的数据备份和恢复功能,以及数据完整性约束机制,确保数据的安全性和一致性。

二、安装与配置 MySQL

(一)下载 MySQL

首先,访问 MySQL 官方网站(https://dev.mysql.com/downloads/mysql/),根据你的操作系统版本选择合适的 MySQL 安装包进行下载。

(二)安装 MySQL

• Windows 系统:

• 运行下载的安装程序,按照安装向导的提示进行操作。在安装过程中,你可以选择安装类型(如典型安装、自定义安装)、设置安装路径、配置 root 用户密码等。

• 安装完成后,确保将 MySQL 的 bin 目录添加到系统环境变量 PATH 中,以便在命令行中能够方便地访问 MySQL 命令。

• Linux 系统(以 Ubuntu 为例):

• 打开终端,使用以下命令更新软件包列表:
sudo apt-get update
• 然后安装 MySQL 服务器:
sudo apt-get install mysql-server
• 安装过程中会提示设置 root 用户密码,按照提示完成设置。

• 安装完成后,可以使用以下命令检查 MySQL 服务是否正常运行:
sudo service mysql status
(三)配置 MySQL

MySQL 安装完成后,可能需要进行一些基本的配置。例如,可以修改 MySQL 的配置文件(my.cnf)来调整一些参数,如字符集设置、缓存大小等,以适应特定的应用需求。在 Windows 系统中,my.cnf 文件通常位于 MySQL 安装目录下;在 Linux 系统中,一般位于 /etc/mysql 目录下。

三、MySQL 基本概念

(一)数据库

数据库是一个存储数据的容器,类似于一个文件柜,用于组织和管理相关的数据表、视图、存储过程等对象。在 MySQL 中,可以使用CREATE DATABASE语句创建一个新的数据库,例如:
CREATE DATABASE my_database;
(二)数据表

数据表是数据库中存储数据的基本单元,由行和列组成。每一行代表一条记录,每一列代表一个字段,用于存储特定类型的数据。例如,创建一个名为users的数据表,包含id、name、age等字段:
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50),
age INT
);
在这个例子中,id字段被定义为自增长的整数类型,并作为主键,用于唯一标识每一条记录;name字段为字符串类型,最大长度为 50;age字段为整数类型。

(三)数据类型

MySQL 支持多种数据类型,包括整数类型(如 INT、BIGINT)、小数类型(如 DECIMAL)、字符串类型(如 VARCHAR、CHAR)、日期时间类型(如 DATE、DATETIME)等。选择合适的数据类型对于数据库的性能和数据存储的准确性非常重要。

(四)主键与外键

• 主键:主键是数据表中的一个或一组字段,其值能够唯一地标识每一条记录。主键的作用是确保数据的完整性和唯一性,便于数据的查询、更新和删除操作。如上面users表中的id字段就是主键。

• 外键:外键用于建立两个数据表之间的关联关系。它指向另一个表的主键,通过外键可以实现数据的关联查询和数据一致性维护。例如,创建一个orders表,其中包含user_id外键,关联到users表的id主键:
CREATE TABLE orders (
order_id INT AUTO_INCREMENT PRIMARY KEY,
user_id INT,
order_date DATE,
FOREIGN KEY (user_id) REFERENCES users(id)
);
四、SQL 基础操作

(一)插入数据

使用INSERT INTO语句向数据表中插入数据。例如,向users表中插入一条记录:
INSERT INTO users (name, age) VALUES (‘John’, 25);
(二)查询数据

使用SELECT语句从数据表中查询数据。例如,查询users表中所有记录:
SELECT * FROM users;
也可以指定查询特定字段:
SELECT name, age FROM users;
还可以使用WHERE子句添加查询条件,例如查询年龄大于 20 岁的用户:
SELECT * FROM users WHERE age > 20;
(三)更新数据

使用UPDATE语句更新数据表中的数据。例如,将John的年龄更新为 26 岁:
UPDATE users SET age = 26 WHERE name = ‘John’;
(四)删除数据

使用DELETE FROM语句删除数据表中的数据。例如,删除users表中名为John的记录:
DELETE FROM users WHERE name = ‘John’;
五、总结

在本教程中,我们对 MySQL 数据库进行了初步的介绍,包括其特点、安装与配置方法、基本概念以及 SQL 基础操作。这只是 MySQL 学习的开端,接下来我们将深入探讨更复杂的查询语句、数据连接操作、索引优化等内容。通过不断的学习和实践,你将逐渐掌握 MySQL 数据库的强大功能,能够有效地管理和操作数据,为构建各种应用系统奠定坚实的基础。希望你能继续保持学习的热情,在 MySQL 数据库的学习道路上不断前进。

相关文章:

MySQL 数据库学习教程一:开启数据库探索之旅

在当今数字化时代,数据已然成为企业和组织最为宝贵的资产之一。而数据库管理系统则是存储、管理和操作这些数据的核心工具。MySQL 作为一款广泛应用的开源关系型数据库管理系统,以其可靠性、高性能和易用性而备受青睐。如果你渴望踏入数据库领域&#xf…...

Vue+Elementui el-tree树只能选择子节点并且支持检索

效果&#xff1a; 只能选择子节点 添加配置添加检索代码 源码&#xff1a; <template><div><el-button size"small" type"primary" clearable :disabled"disabled" click"showSign">危险点评估</el-button>…...

Lumos学习王佩丰Excel第十八讲:LOOKUP函数与数组

一、回顾统计函数 1、使用SUMIF函数 sumif(条件区域,求和条件,求和区域) 2、使用SUMIFS函数 SUMIFS(求和范围, 条件范围1, 条件1, 条件范围2, 条件2, ...) 二、认识数组 1、数组生成原理 所谓数组&#xff0c;是有序的元素序列。组成数组的各个变量称为数组的元素。对于Ex…...

Git的基本使用操作

文章目录 Git 全局配置基本操作Git 常用命令版本回退根据版本号回滚分支远端分支 &#x1f3e1;作者主页&#xff1a;点击&#xff01; &#x1f916;Git专栏&#xff1a;点击&#xff01; ⏰️创作时间&#xff1a;2024年12月1日12点50分 Git 全局配置 虽然说是全局配置&am…...

【C语言】结构体嵌套

结构体嵌套是指在一个结构体中定义另一个结构体作为其成员。这种方式可以实现更复杂的数据结构设计&#xff0c;便于对数据进行分层管理和组织&#xff0c;广泛应用于实际开发中&#xff0c;例如操作系统内核、嵌入式系统、网络协议解析等。下面是对结构体嵌套的详细介绍&#…...

PDF view | Chrome PDF Viewer |Chromium PDF Viewer等指纹修改

1、打开https://www.browserscan.net/zh/ 2、将internal-pdf-viewer改为 internal-pdf-viewer-jdtest看下效果&#xff1a; 3、源码修改&#xff1a; third_party\blink\renderer\modules\plugins\dom_plugin_array.cc namespace { DOMPlugin* MakeFakePlugin(String plugin_…...

maxun爬虫工具docker搭建

思路来源开源无代码网络数据提取平台Maxun 先把代码克隆到本地&#xff08;只有第一次需要&#xff09; git clone https://github.com/getmaxun/maxun.git 转到maxun目录 cd maxun 启动容器 docker-compose --env-file .env up -d 成功启动六个容器 网址 http://local…...

JAVAWeb之javascript学习

1.js引入方式 1. 内嵌式&#xff1a;在head中&#xff0c;通过一对script标签引入JS代码&#xff1b;cript代码放置位置有一定的随意性&#xff0c;一般放在head标签中&#xff1b;2.引入外部js文件 在head中&#xff0c;通过一对script标签引入外部JS代码&#xff1b;注意&…...

vue3中是如何实现双向数据绑定的

在 Vue 3 中&#xff0c;双向数据绑定主要通过 v-model 指令实现。v-model 是一个语法糖&#xff0c;它内部实际上结合了 v-bind 和 v-on 指令来实现数据的双向绑定。下面详细介绍 Vue 3 中双向数据绑定的实现原理和使用方法。 双向数据绑定的基本原理 v-bind 指令&#xff1…...

JavaScript事件机制详解

JavaScript中的事件模型是指当用户与网页进行交互时&#xff0c;浏览器会触发不同类型的事件&#xff0c;开发者可以通过添加事件监听器来响应这些事件。事件流是描述事件在页面元素中传播的过程&#xff0c;从窗口对象开始&#xff0c;逐级向下传播到最具体的元素&#xff0c;…...

k8s运行运行pod报错超出文件描述符表限制

1.问题描述 运行pod超过文件描述符表 unable to allocate file descriptor table - out of memory/opt/COMMAND.sh: line 9: 2.查看设备的文件描述符限制 操作前一定要先查询这个值&#xff0c;2097152这个值即为我们可设置的最大值&#xff0c;超过这个值后将无法登录&am…...

vue 2 父组件根据注册事件,控制相关按钮显隐

目标效果 我不注册事件&#xff0c;那么就不显示相关的按钮 注册了事件&#xff0c;才会显示相关内容 实现思路 组件在 mounted 的时候可以拿到父组件注册监听的方法 拿到这个就可以做事情了 mounted() {console.log(this.$listeners, this.$listeners);this.show.search !…...

22智能 图

例题 根据下列顶点之间的关系&#xff0c;画出相应的图结构 A -> B, C, D B -> A, C, C -> A, D, E, D -> B, E, E -> C, 数据结构&#xff1a;使用邻接表表示图&#xff0c;每个顶点有一个链表来存储与它相邻的顶点。 功能&#xff1a; 创建图。 添加边。 打…...

Springfox、Swagger 和 Springdoc

Springfox、Swagger 和 Springdoc 是用于在 Spring Boot 项目中生成 API 文档的工具&#xff0c;但它们之间有显著的区别和演进关系&#xff1a; 1. Swagger 简介 Swagger 是一个开源项目&#xff0c;旨在为 RESTful APIs 提供交互式文档。最早由 SmartBear 开发&#xff0c;…...

编程基础篇

什么是编程&#xff1f; 原文地址 &#xff1a;样式不太熟悉&#xff0c;有点单一&#xff0c;原文地址 一千个人眼中有一千个哈姆雷特&#xff0c;以下是我眼中的编程&#xff1a; A每天出门需要关一下空调&#xff0c;在家喜欢室内温度在 20左右&#xff0c;6 点左右会打开灯…...

GPT视角下,如何在密码学研究中找到属于你的方向?

&#xff08;本文所有内容由GPT生成&#xff09;在密码学领域发现关键性的研究方向并成为一位优秀的密码学研究员&#xff0c;需要结合对领域趋势的洞察、扎实的理论基础以及创新的研究思维。以下是具体步骤和方法&#xff1a; 一、发现关键性研究方向 关注领域前沿动态 顶级会…...

【经典】星空主题的注册界面HTML,CSS,JS

目录 界面展示 完整代码 说明&#xff1a; 这是一个简单的星空主题的注册界面&#xff0c;使用了 HTML 和 CSS 来实现一个背景为星空效果的注册页面。 界面展示 完整代码 <!DOCTYPE html> <html lang"zh"> <head><meta charset"UTF-8&…...

Linux学习——4_WEB服务器的部署及优化

WEB服务器的部署及优化 用户常用关于web信息 什么是www www是world wide web的缩写&#xff0c;即万维网&#xff0c;也就是全球信息广播 通常说的上网就是使用www来查询用户所需要的信息。 www可以结合文字、图形、影像以及声音等多媒体&#xff0c;超链接的方式将信息以…...

《Vue 组件化开发:构建可复用的模块》

一、Vue 组件化开发概述 组件化是 Vue.js 的核心概念之一&#xff0c;它允许将界面拆分成独立、可复用的组件&#xff0c;使得开发大型应用变得更加简单和高效。 组件的定义是实现应用中局部功能代码和资源的集合。Vue.js 的组件化用于将 UI 页面分割为若干组件进行组合和嵌套…...

贪心算法理论

系列博客目录 文章目录 系列博客目录贪心算法 (Greedy Algorithm)贪心算法的特点贪心算法的适用条件常见的贪心算法问题贪心算法的步骤贪心算法示例&#xff1a;活动选择问题贪心算法的优缺点 贪心算法 (Greedy Algorithm) 贪心算法是一种在每一步选择中都采取当前状态下最优的…...

Linux链表操作全解析

Linux C语言链表深度解析与实战技巧 一、链表基础概念与内核链表优势1.1 为什么使用链表&#xff1f;1.2 Linux 内核链表与用户态链表的区别 二、内核链表结构与宏解析常用宏/函数 三、内核链表的优点四、用户态链表示例五、双向循环链表在内核中的实现优势5.1 插入效率5.2 安全…...

CVPR 2025 MIMO: 支持视觉指代和像素grounding 的医学视觉语言模型

CVPR 2025 | MIMO&#xff1a;支持视觉指代和像素对齐的医学视觉语言模型 论文信息 标题&#xff1a;MIMO: A medical vision language model with visual referring multimodal input and pixel grounding multimodal output作者&#xff1a;Yanyuan Chen, Dexuan Xu, Yu Hu…...

Java 8 Stream API 入门到实践详解

一、告别 for 循环&#xff01; 传统痛点&#xff1a; Java 8 之前&#xff0c;集合操作离不开冗长的 for 循环和匿名类。例如&#xff0c;过滤列表中的偶数&#xff1a; List<Integer> list Arrays.asList(1, 2, 3, 4, 5); List<Integer> evens new ArrayList…...

Axios请求超时重发机制

Axios 超时重新请求实现方案 在 Axios 中实现超时重新请求可以通过以下几种方式&#xff1a; 1. 使用拦截器实现自动重试 import axios from axios;// 创建axios实例 const instance axios.create();// 设置超时时间 instance.defaults.timeout 5000;// 最大重试次数 cons…...

九天毕昇深度学习平台 | 如何安装库?

pip install 库名 -i https://pypi.tuna.tsinghua.edu.cn/simple --user 举个例子&#xff1a; 报错 ModuleNotFoundError: No module named torch 那么我需要安装 torch pip install torch -i https://pypi.tuna.tsinghua.edu.cn/simple --user pip install 库名&#x…...

Mysql中select查询语句的执行过程

目录 1、介绍 1.1、组件介绍 1.2、Sql执行顺序 2、执行流程 2.1. 连接与认证 2.2. 查询缓存 2.3. 语法解析&#xff08;Parser&#xff09; 2.4、执行sql 1. 预处理&#xff08;Preprocessor&#xff09; 2. 查询优化器&#xff08;Optimizer&#xff09; 3. 执行器…...

【Go语言基础【13】】函数、闭包、方法

文章目录 零、概述一、函数基础1、函数基础概念2、参数传递机制3、返回值特性3.1. 多返回值3.2. 命名返回值3.3. 错误处理 二、函数类型与高阶函数1. 函数类型定义2. 高阶函数&#xff08;函数作为参数、返回值&#xff09; 三、匿名函数与闭包1. 匿名函数&#xff08;Lambda函…...

Go 语言并发编程基础:无缓冲与有缓冲通道

在上一章节中&#xff0c;我们了解了 Channel 的基本用法。本章将重点分析 Go 中通道的两种类型 —— 无缓冲通道与有缓冲通道&#xff0c;它们在并发编程中各具特点和应用场景。 一、通道的基本分类 类型定义形式特点无缓冲通道make(chan T)发送和接收都必须准备好&#xff0…...

处理vxe-table 表尾数据是单独一个接口,表格tableData数据更新后,需要点击两下,表尾才是正确的

修改bug思路&#xff1a; 分别把 tabledata 和 表尾相关数据 console.log() 发现 更新数据先后顺序不对 settimeout延迟查询表格接口 ——测试可行 升级↑&#xff1a;async await 等接口返回后再开始下一个接口查询 ________________________________________________________…...

Kafka入门-生产者

生产者 生产者发送流程&#xff1a; 延迟时间为0ms时&#xff0c;也就意味着每当有数据就会直接发送 异步发送API 异步发送和同步发送的不同在于&#xff1a;异步发送不需要等待结果&#xff0c;同步发送必须等待结果才能进行下一步发送。 普通异步发送 首先导入所需的k…...