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 作为一款广泛应用的开源关系型数据库管理系统,以其可靠性、高性能和易用性而备受青睐。如果你渴望踏入数据库领域…...
Vue+Elementui el-tree树只能选择子节点并且支持检索
效果: 只能选择子节点 添加配置添加检索代码 源码: <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、数组生成原理 所谓数组,是有序的元素序列。组成数组的各个变量称为数组的元素。对于Ex…...
Git的基本使用操作
文章目录 Git 全局配置基本操作Git 常用命令版本回退根据版本号回滚分支远端分支 🏡作者主页:点击! 🤖Git专栏:点击! ⏰️创作时间:2024年12月1日12点50分 Git 全局配置 虽然说是全局配置&am…...
【C语言】结构体嵌套
结构体嵌套是指在一个结构体中定义另一个结构体作为其成员。这种方式可以实现更复杂的数据结构设计,便于对数据进行分层管理和组织,广泛应用于实际开发中,例如操作系统内核、嵌入式系统、网络协议解析等。下面是对结构体嵌套的详细介绍&#…...
PDF view | Chrome PDF Viewer |Chromium PDF Viewer等指纹修改
1、打开https://www.browserscan.net/zh/ 2、将internal-pdf-viewer改为 internal-pdf-viewer-jdtest看下效果: 3、源码修改: third_party\blink\renderer\modules\plugins\dom_plugin_array.cc namespace { DOMPlugin* MakeFakePlugin(String plugin_…...
maxun爬虫工具docker搭建
思路来源开源无代码网络数据提取平台Maxun 先把代码克隆到本地(只有第一次需要) 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. 内嵌式:在head中,通过一对script标签引入JS代码;cript代码放置位置有一定的随意性,一般放在head标签中;2.引入外部js文件 在head中,通过一对script标签引入外部JS代码;注意&…...
vue3中是如何实现双向数据绑定的
在 Vue 3 中,双向数据绑定主要通过 v-model 指令实现。v-model 是一个语法糖,它内部实际上结合了 v-bind 和 v-on 指令来实现数据的双向绑定。下面详细介绍 Vue 3 中双向数据绑定的实现原理和使用方法。 双向数据绑定的基本原理 v-bind 指令࿱…...
JavaScript事件机制详解
JavaScript中的事件模型是指当用户与网页进行交互时,浏览器会触发不同类型的事件,开发者可以通过添加事件监听器来响应这些事件。事件流是描述事件在页面元素中传播的过程,从窗口对象开始,逐级向下传播到最具体的元素,…...
k8s运行运行pod报错超出文件描述符表限制
1.问题描述 运行pod超过文件描述符表 unable to allocate file descriptor table - out of memory/opt/COMMAND.sh: line 9: 2.查看设备的文件描述符限制 操作前一定要先查询这个值,2097152这个值即为我们可设置的最大值,超过这个值后将无法登录&am…...
vue 2 父组件根据注册事件,控制相关按钮显隐
目标效果 我不注册事件,那么就不显示相关的按钮 注册了事件,才会显示相关内容 实现思路 组件在 mounted 的时候可以拿到父组件注册监听的方法 拿到这个就可以做事情了 mounted() {console.log(this.$listeners, this.$listeners);this.show.search !…...
22智能 图
例题 根据下列顶点之间的关系,画出相应的图结构 A -> B, C, D B -> A, C, C -> A, D, E, D -> B, E, E -> C, 数据结构:使用邻接表表示图,每个顶点有一个链表来存储与它相邻的顶点。 功能: 创建图。 添加边。 打…...
Springfox、Swagger 和 Springdoc
Springfox、Swagger 和 Springdoc 是用于在 Spring Boot 项目中生成 API 文档的工具,但它们之间有显著的区别和演进关系: 1. Swagger 简介 Swagger 是一个开源项目,旨在为 RESTful APIs 提供交互式文档。最早由 SmartBear 开发,…...
编程基础篇
什么是编程? 原文地址 :样式不太熟悉,有点单一,原文地址 一千个人眼中有一千个哈姆雷特,以下是我眼中的编程: A每天出门需要关一下空调,在家喜欢室内温度在 20左右,6 点左右会打开灯…...
GPT视角下,如何在密码学研究中找到属于你的方向?
(本文所有内容由GPT生成)在密码学领域发现关键性的研究方向并成为一位优秀的密码学研究员,需要结合对领域趋势的洞察、扎实的理论基础以及创新的研究思维。以下是具体步骤和方法: 一、发现关键性研究方向 关注领域前沿动态 顶级会…...
【经典】星空主题的注册界面HTML,CSS,JS
目录 界面展示 完整代码 说明: 这是一个简单的星空主题的注册界面,使用了 HTML 和 CSS 来实现一个背景为星空效果的注册页面。 界面展示 完整代码 <!DOCTYPE html> <html lang"zh"> <head><meta charset"UTF-8&…...
Linux学习——4_WEB服务器的部署及优化
WEB服务器的部署及优化 用户常用关于web信息 什么是www www是world wide web的缩写,即万维网,也就是全球信息广播 通常说的上网就是使用www来查询用户所需要的信息。 www可以结合文字、图形、影像以及声音等多媒体,超链接的方式将信息以…...
《Vue 组件化开发:构建可复用的模块》
一、Vue 组件化开发概述 组件化是 Vue.js 的核心概念之一,它允许将界面拆分成独立、可复用的组件,使得开发大型应用变得更加简单和高效。 组件的定义是实现应用中局部功能代码和资源的集合。Vue.js 的组件化用于将 UI 页面分割为若干组件进行组合和嵌套…...
贪心算法理论
系列博客目录 文章目录 系列博客目录贪心算法 (Greedy Algorithm)贪心算法的特点贪心算法的适用条件常见的贪心算法问题贪心算法的步骤贪心算法示例:活动选择问题贪心算法的优缺点 贪心算法 (Greedy Algorithm) 贪心算法是一种在每一步选择中都采取当前状态下最优的…...
SpringBoot-17-MyBatis动态SQL标签之常用标签
文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…...
Cursor实现用excel数据填充word模版的方法
cursor主页:https://www.cursor.com/ 任务目标:把excel格式的数据里的单元格,按照某一个固定模版填充到word中 文章目录 注意事项逐步生成程序1. 确定格式2. 调试程序 注意事项 直接给一个excel文件和最终呈现的word文件的示例,…...
深入理解JavaScript设计模式之单例模式
目录 什么是单例模式为什么需要单例模式常见应用场景包括 单例模式实现透明单例模式实现不透明单例模式用代理实现单例模式javaScript中的单例模式使用命名空间使用闭包封装私有变量 惰性单例通用的惰性单例 结语 什么是单例模式 单例模式(Singleton Pattern&#…...
linux 下常用变更-8
1、删除普通用户 查询用户初始UID和GIDls -l /home/ ###家目录中查看UID cat /etc/group ###此文件查看GID删除用户1.编辑文件 /etc/passwd 找到对应的行,YW343:x:0:0::/home/YW343:/bin/bash 2.将标红的位置修改为用户对应初始UID和GID: YW3…...
ardupilot 开发环境eclipse 中import 缺少C++
目录 文章目录 目录摘要1.修复过程摘要 本节主要解决ardupilot 开发环境eclipse 中import 缺少C++,无法导入ardupilot代码,会引起查看不方便的问题。如下图所示 1.修复过程 0.安装ubuntu 软件中自带的eclipse 1.打开eclipse—Help—install new software 2.在 Work with中…...
NLP学习路线图(二十三):长短期记忆网络(LSTM)
在自然语言处理(NLP)领域,我们时刻面临着处理序列数据的核心挑战。无论是理解句子的结构、分析文本的情感,还是实现语言的翻译,都需要模型能够捕捉词语之间依时序产生的复杂依赖关系。传统的神经网络结构在处理这种序列依赖时显得力不从心,而循环神经网络(RNN) 曾被视为…...
让AI看见世界:MCP协议与服务器的工作原理
让AI看见世界:MCP协议与服务器的工作原理 MCP(Model Context Protocol)是一种创新的通信协议,旨在让大型语言模型能够安全、高效地与外部资源进行交互。在AI技术快速发展的今天,MCP正成为连接AI与现实世界的重要桥梁。…...
精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南
精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南 在数字化营销时代,邮件列表效度、用户参与度和网站性能等指标往往决定着创业公司的增长成败。今天,我们将深入解析邮件打开率、网站可用性、页面参与时…...
[大语言模型]在个人电脑上部署ollama 并进行管理,最后配置AI程序开发助手.
ollama官网: 下载 https://ollama.com/ 安装 查看可以使用的模型 https://ollama.com/search 例如 https://ollama.com/library/deepseek-r1/tags # deepseek-r1:7bollama pull deepseek-r1:7b改token数量为409622 16384 ollama命令说明 ollama serve #:…...
【 java 虚拟机知识 第一篇 】
目录 1.内存模型 1.1.JVM内存模型的介绍 1.2.堆和栈的区别 1.3.栈的存储细节 1.4.堆的部分 1.5.程序计数器的作用 1.6.方法区的内容 1.7.字符串池 1.8.引用类型 1.9.内存泄漏与内存溢出 1.10.会出现内存溢出的结构 1.内存模型 1.1.JVM内存模型的介绍 内存模型主要分…...
