当前位置: 首页 > 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) 贪心算法是一种在每一步选择中都采取当前状态下最优的…...

NLP学习路线图(二十三):长短期记忆网络(LSTM)

在自然语言处理(NLP)领域,我们时刻面临着处理序列数据的核心挑战。无论是理解句子的结构、分析文本的情感,还是实现语言的翻译,都需要模型能够捕捉词语之间依时序产生的复杂依赖关系。传统的神经网络结构在处理这种序列依赖时显得力不从心,而循环神经网络(RNN) 曾被视为…...

Pinocchio 库详解及其在足式机器人上的应用

Pinocchio 库详解及其在足式机器人上的应用 Pinocchio (Pinocchio is not only a nose) 是一个开源的 C 库&#xff0c;专门用于快速计算机器人模型的正向运动学、逆向运动学、雅可比矩阵、动力学和动力学导数。它主要关注效率和准确性&#xff0c;并提供了一个通用的框架&…...

初探Service服务发现机制

1.Service简介 Service是将运行在一组Pod上的应用程序发布为网络服务的抽象方法。 主要功能&#xff1a;服务发现和负载均衡。 Service类型的包括ClusterIP类型、NodePort类型、LoadBalancer类型、ExternalName类型 2.Endpoints简介 Endpoints是一种Kubernetes资源&#xf…...

免费PDF转图片工具

免费PDF转图片工具 一款简单易用的PDF转图片工具&#xff0c;可以将PDF文件快速转换为高质量PNG图片。无需安装复杂的软件&#xff0c;也不需要在线上传文件&#xff0c;保护您的隐私。 工具截图 主要特点 &#x1f680; 快速转换&#xff1a;本地转换&#xff0c;无需等待上…...

CSS | transition 和 transform的用处和区别

省流总结&#xff1a; transform用于变换/变形&#xff0c;transition是动画控制器 transform 用来对元素进行变形&#xff0c;常见的操作如下&#xff0c;它是立即生效的样式变形属性。 旋转 rotate(角度deg)、平移 translateX(像素px)、缩放 scale(倍数)、倾斜 skewX(角度…...

【Linux系统】Linux环境变量:系统配置的隐形指挥官

。# Linux系列 文章目录 前言一、环境变量的概念二、常见的环境变量三、环境变量特点及其相关指令3.1 环境变量的全局性3.2、环境变量的生命周期 四、环境变量的组织方式五、C语言对环境变量的操作5.1 设置环境变量&#xff1a;setenv5.2 删除环境变量:unsetenv5.3 遍历所有环境…...

区块链技术概述

区块链技术是一种去中心化、分布式账本技术&#xff0c;通过密码学、共识机制和智能合约等核心组件&#xff0c;实现数据不可篡改、透明可追溯的系统。 一、核心技术 1. 去中心化 特点&#xff1a;数据存储在网络中的多个节点&#xff08;计算机&#xff09;&#xff0c;而非…...

微服务通信安全:深入解析mTLS的原理与实践

&#x1f525;「炎码工坊」技术弹药已装填&#xff01; 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 一、引言&#xff1a;微服务时代的通信安全挑战 随着云原生和微服务架构的普及&#xff0c;服务间的通信安全成为系统设计的核心议题。传统的单体架构中&…...

python打卡day49@浙大疏锦行

知识点回顾&#xff1a; 通道注意力模块复习空间注意力模块CBAM的定义 作业&#xff1a;尝试对今天的模型检查参数数目&#xff0c;并用tensorboard查看训练过程 一、通道注意力模块复习 & CBAM实现 import torch import torch.nn as nnclass CBAM(nn.Module):def __init__…...

【Vue】scoped+组件通信+props校验

【scoped作用及原理】 【作用】 默认写在组件中style的样式会全局生效, 因此很容易造成多个组件之间的样式冲突问题 故而可以给组件加上scoped 属性&#xff0c; 令样式只作用于当前组件的标签 作用&#xff1a;防止不同vue组件样式污染 【原理】 给组件加上scoped 属性后…...