入门 MySQL 数据库:基础指南
简介
MySQL 是一个非常流行的开源关系型数据库管理系统(RDBMS),广泛用于 Web 应用、企业应用和数据仓库。本博客将引导你从零开始,学习 MySQL 数据库的基础知识。
什么是 MySQL?
MySQL 是一个基于 SQL(Structured Query Language,结构化查询语言)的数据库管理系统,它允许用户创建、修改、查询和删除存储在数据库中的数据。MySQL 是一个多用户、多线程的数据库系统,支持多种操作系统。
为什么选择 MySQL?
- 开源:MySQL 是免费的,并且拥有一个活跃的社区,提供持续的更新和支持。
- 跨平台:支持多种操作系统,如 Windows、Linux 和 macOS。
- 高性能:优化了读写性能,适合处理大量数据。
- 灵活性:支持多种数据类型,包括整数、浮点数、字符串和日期等。
- 安全性:提供多层次的安全特性,包括用户权限管理、加密连接等。、
企业级 MySQL 版本对比
MySQL 提供了两种主要的企业级版本:社区版和企业版。
社区版
- 免费:社区版完全免费,适合个人学习和小型项目。
- 功能:包含基本的数据库功能,可能包含一些测试性质的新功能,但稳定性可能不如企业版。
企业版
- 收费:企业版是商业产品,需要购买许可证。
- 稳定性:提供更高级的功能和更稳定的性能,适合大型企业使用。
远程登录配置
Linux 系统
- 安装 MySQL 后,默认情况下 MySQL 8 不会提示设置 root 密码,可以使用系统 root 用户直接登录。
- 要实现远程登录,需要确保数据库用户具有远程权限,并且在配置文件
/etc/mysql/mysql.conf.d/mysqld.conf
中设置bind-address
为0.0.0.0
或者具体的外网 IP 地址。 - 重启 MySQL 服务以应用更改
在此之前我们详细讲了怎么远程登录
安装 MySQL
我们之前已经写过了安装MySQL 的具体步骤,这边就不再详细阐述了。(点击对应系统可跳转)
Windows
- 访问 MySQL 官方网站下载 Windows 版本的安装程序。
- 运行安装程序并遵循安装向导。
- 在安装过程中,设置 root 用户的密码。
Linux (Ubuntu 示例)
- 更新包索引。
- 安装 MySQL Server。
- 安装配置。
- 验证安装。
MySQL 基本指令
数据库操作(实例均在cmd 命令窗口中执行)
首先要进行操作前先登录进入mysql
- 展示所有数据库:
SHOW DATABASES;
- 创建数据库,指定字符集:
CREATE DATABASE database_name CHARACTER SET utf8;
- 删除数据库:
DROP DATABASE database_name;
- 查看当前使用的数据库:
SELECT DATABASE();
因为我们还未使用数据库,所以显示为NULL,使用"mysql"数据库后: - 使用数据库:
USE database_name;
这边切换数据库到python2407
数据表操作
- 显示所有表:
SHOW TABLES;
- 创建数据表:
CREATE TABLE table_name ( column1 datatype constraint1, column2 datatype constraint2, ... );
-
这里是每个部分的详细说明:
table_name
:新创建的表的名称。column1
,column2
, ...,columnN
:表中的列名称。datatype
:每个列的数据类型,例如INT
,VARCHAR
,DATE
,FLOAT
等。constraint1
,constraint2
, ...,constraintN
:每个列的约束条件,用于限制列中数据的规则,例如NOT NULL
,PRIMARY KEY
,UNIQUE
,DEFAULT
等。
-
下面是一些常见的数据类型和约束条件的例子:
INT
:整型,用于存储整数。VARCHAR(length)
:变长字符串,length
表示字符串的最大长度。CHAR(length)
:固定长度字符串,length
表示字符串的长度,不足部分会用空格填充。DATE
:日期类型,存储格式为YYYY-MM-DD
。FLOAT
或DOUBLE
:浮点数类型,用于存储小数。BOOLEAN
:布尔类型,存储TRUE
或FALSE
。
-
约束条件示例:
NOT NULL
:该列的值不能为 NULL。PRIMARY KEY
:该列的值必须是唯一的,且不能为 NULL,一个表只能有一个主键。UNIQUE
:该列的值必须唯一,可以有多个 NULL 值。DEFAULT value
:如果插入记录时没有为该列指定值,则使用默认值value
。AUTO_INCREMENT
:用于数值类型的列,每当新行插入时,该列的值会自动增加。通常用于主键。CHECK (condition)
:检查约束,确保列的值满足指定的条件(MySQL 8.0.16 及以上版本支持)。
- 查看表结构:
DESC table_name;
- 删除数据表:
DROP TABLE table_name;
删除表之后,此时我们再来查看数据库的表,已经没有了 table_name 这张表。
CURD 操作
- 查(SELECT):查询数据,支持条件查询、排序、分组等。
- 增(INSERT):添加数据。
INSERT INTO table_name (column1, column2, ...) VALUES (value1, value2, ...);
- 改(UPDATE):更新数据。
UPDATE table_name SET column1 = value1 WHERE condition;
- 删(DELETE):删除数据。
DELETE FROM table_name WHERE condition;
用户管理
- 创建用户:
CREATE USER 'username'@'%' IDENTIFIED BY 'password';
- 分配权限:
GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'%'; FLUSH PRIVILEGES;
- 删除用户:
DROP USER 'username'@'%';
- 修改密码:
ALTER USER 'username'@'%' IDENTIFIED BY 'new_password';
特殊数据类型
- 整型(int):存储整数。
- 字符串(varchar, char):存储可变长度或固定长度的字符串。
- 日期时间(datetime):存储日期和时间。
- 枚举(enum):从预定义的值列表中选择。
结语
通过本博客的进阶指南,你现在应该对 MySQL 的企业级版本、远程登录配置、基本指令、用户管理和特殊数据类型有了更深入的了解。MySQL 是一个功能强大的数据库系统,适用于各种规模的应用。继续探索和实践,你将能够更深入地掌握 MySQL 的使用。
如果你有任何问题或需要进一步的帮助,请在评论区留言,或者加入 MySQL 社区与其他用户交流。祝你在 MySQL 的学习旅程中一切顺利!
相关文章:

入门 MySQL 数据库:基础指南
简介 MySQL 是一个非常流行的开源关系型数据库管理系统(RDBMS),广泛用于 Web 应用、企业应用和数据仓库。本博客将引导你从零开始,学习 MySQL 数据库的基础知识。 什么是 MySQL? MySQL 是一个基于 SQL(Str…...

【Hexo系列】【3】使用GitHub自带的自定义域名解析
上一期我们通过学习【Hexo系列】【2】使用Vercel加速Hexo博客访问使用Vercel进行GitHub同步与加速,有时候Vercel也不太稳定访问不了。本身GitHub也是支持自定义域名的,本次教程将讲解如何使用GitHub自带的自定义域名解析。 1. GitHub设置 1.1 登录GitH…...

智能监控,无忧仓储:EasyCVR视频汇聚+AI智能分享技术为药品仓库安全保驾护航
随着科技的飞速发展,药品仓库的安全管理正迎来前所未有的变革。药品作为直接关系到公众健康的重要物资,其安全存储和监管显得尤为重要。在这个背景下,视频汇聚平台EasyCVR视频智能管理系统的应用,为药品仓库的安全监管提供了强有力…...

本地创建PyPI镜像
背景: 在安装一些库时,经常需要反复下载包(有的体积比较大,所以会比较慢),所以考虑在本地创建一个pypi镜像,把常用的库缓存下来,这样安装就会很省事.比较从本地安装库和从服务器下载会快很多. 安装使用 安装:pip install devpi 初始化: devpi-init --serverdirF:\pypioutput…...

使用 Elasticsearch RestHighLevelClient 进行查询
Elasticsearch 提供了多种客户端库,以方便不同编程语言的用户进行操作。其中,Java 的 RestHighLevelClient 是 Elasticsearch 官方推荐的客户端之一,用于 Java 应用程序中。本文将介绍如何使用 Java 的 RestHighLevelClient 进行 Elasticsear…...
【jvm】符号引用
目录 1. 说明2. 特点3. 组成与格式4. 作用5. 过程 1. 说明 1.在Java虚拟机中,符号引用(Symbolic Reference)是一种重要的引用机制。2.它主要用于在编译阶段和类加载阶段之间建立对类、方法、字段等元素的引用关系。3.符号引用是指用一个符号…...
征服云端:Java微服务与Docker容器化之旅
引言 随着云计算技术的迅猛发展,越来越多的企业开始拥抱云原生技术。在这个过程中,微服务架构以其独特的魅力成为了众多开发者的首选方案。而Docker作为容器化领域的佼佼者,在微服务部署与管理方面扮演着不可或缺的角色。本文将带你深入了解…...

python 如何实现执行selenium自动化测试用例自动录屏?
做自动化测试已经好多年了,随着项目技术的正增长提升,我们也不断完善并提高自己的技术能力, 下面给大家分享一个 selenium 自动化执行测试用例的录屏功能。希望对大家有帮助! 首先,我们为什么要执行自动化录屏功能呢…...

03 网络编程 TCP传输控制协议
目录 1、TCP基本特征 2、TCP通信流程基本原理 (1)基本原理 (2)TCP通信代码实现 (3)核心API解析 1)地址绑定--bind 2)设置监听-listen 3)等待连接请求-accept-产生一个已连接套接字 4&a…...

1. 数据结构——顺序表的主要操作
1. 内容 顺序表的初始化、插入、删除、按值查找、输出以及其时间复杂度的计算。 2.代码 #include<stdio.h> #include<stdlib.h> //函数结果状态代码 #define OK 1 #define OVERFLOW -2 #define ERROR 0 #define MAXSIZE 100typedef int ElemType; //顺序表每个…...

[openSSL]TLS 1.3握手分析
文章目录 前言一、ECDHE密钥交换二、TLS单向身份认证三、TLS双向身份认证 前言 关于TLS握手网上资料很多,但是有一些写的很不清楚,导致学习时对概念和流程出现混淆,以下是我觉得写得比较清晰和准确的供学习参考。 浅析 TLS(ECDHE…...

无人机之螺旋桨的安装与维护
一、安装:正确安装桨叶至关重要。请确保顺时针旋转的桨叶安装在对应的电机上,并使逆时针旋转的桨叶安装在相应的电机上。否则,无人机可能无法正常飞行或失去控制。 二、维护:为了确保无人机的安全及长久使用,请定期检…...

手机设备IP地址切换:方法、应用与注意事项
在当今数字化时代,手机已成为我们日常生活中不可或缺的一部分。无论是工作、学习还是娱乐,手机都扮演着重要角色。然而,随着网络环境的日益复杂,有时我们需要切换手机设备的IP地址以满足特定的需求,如保护隐私、绕过地…...

华为HCIP证书好考吗?详解HCIP证书考试难易程度及备考策略!
华为认证体系主要分为三个层次:HCIA(Huawei Certified ICT Associate),HCIP(Huawei Certified ICT Professional)和HCIE(Huawei Certified Internetwork Expert)。作为中级认证,HCIP证书主要面向具备一定技术基础和项目实践能力的专业人士。在…...

《SPSS零基础入门教程》学习笔记——05.模型入门
文章目录 5.1 回归模型5.2 分类模型5.3 降维和刻度模型5.4 生存分析和时间序列模型 5.1 回归模型 线性回归(分析 -> 回归 -> 线性)曲线估计(分析 -> 回归 -> 曲线估计) 二元Logistic回归(分析 -> 回归…...

如何用不到一分钟的时间将Excel电子表格转换为应用程序
我们大多数人对电子表格又爱又恨。当企业需要分析数据、为决策过程提供信息并可视化信息时,Excel和Google Sheets是首选。这些文档非常容易创建,它们帮助我们以直接的方式构建相关的想法和适用的数据。除此之外,事情可能会变得一团糟。 对于…...
WordPress 中 cURL 请求出现 504 网关超时错误的解决方法
错误原因 504网关超时错误通常发生在服务器作为网关或代理,不能在规定的时间内得到响应时。在WordPress中,这可能是因为目标服务器响应过慢,或请求的队列过长导致的。 解决方案 首先,您应该检查您的cURL请求是否设置了一个合理的…...
事件和委托的区别
在C#中,事件(Event)和委托(Delegate)是紧密相关但具有不同含义的概念。以下是它们的主要区别: 委托(Delegate): 委托是一种类型,它表示一个方法的签名(即方法…...

低功耗蓝牙协议栈如何学习?
目录 1. 基础知识 1.1 了解BLE基本概念 1.2 阅读BLE规范 2. 实践和开发工具 2.1 使用开发板 2.2 安装开发环境 3. 学习资源 3.1 官方文档和示例 3.2 在线课程和教程 4. 实践项目 4.1 简单项目 4.2 复杂项目 5. 深入理解协议栈 5.1 分析协议栈 5.2 调试和分析 6…...
ROS 2中,CMakeList.txt常见语法
在ROS 2中,CMakeList.txt 文件扮演着配置和管理构建过程的重要角色。这个文件遵循CMake的语法,用于定义如何编译和链接源代码。下面是一些在ROS 2项目CMakeList.txt文件中常见的语法和用法。 1. 基本结构和命令 cmake_minimum_required(VERSION )&…...
React 第五十五节 Router 中 useAsyncError的使用详解
前言 useAsyncError 是 React Router v6.4 引入的一个钩子,用于处理异步操作(如数据加载)中的错误。下面我将详细解释其用途并提供代码示例。 一、useAsyncError 用途 处理异步错误:捕获在 loader 或 action 中发生的异步错误替…...
电脑插入多块移动硬盘后经常出现卡顿和蓝屏
当电脑在插入多块移动硬盘后频繁出现卡顿和蓝屏问题时,可能涉及硬件资源冲突、驱动兼容性、供电不足或系统设置等多方面原因。以下是逐步排查和解决方案: 1. 检查电源供电问题 问题原因:多块移动硬盘同时运行可能导致USB接口供电不足&#x…...
postgresql|数据库|只读用户的创建和删除(备忘)
CREATE USER read_only WITH PASSWORD 密码 -- 连接到xxx数据库 \c xxx -- 授予对xxx数据库的只读权限 GRANT CONNECT ON DATABASE xxx TO read_only; GRANT USAGE ON SCHEMA public TO read_only; GRANT SELECT ON ALL TABLES IN SCHEMA public TO read_only; GRANT EXECUTE O…...

HBuilderX安装(uni-app和小程序开发)
下载HBuilderX 访问官方网站:https://www.dcloud.io/hbuilderx.html 根据您的操作系统选择合适版本: Windows版(推荐下载标准版) Windows系统安装步骤 运行安装程序: 双击下载的.exe安装文件 如果出现安全提示&…...
鸿蒙DevEco Studio HarmonyOS 5跑酷小游戏实现指南
1. 项目概述 本跑酷小游戏基于鸿蒙HarmonyOS 5开发,使用DevEco Studio作为开发工具,采用Java语言实现,包含角色控制、障碍物生成和分数计算系统。 2. 项目结构 /src/main/java/com/example/runner/├── MainAbilitySlice.java // 主界…...

【Redis】笔记|第8节|大厂高并发缓存架构实战与优化
缓存架构 代码结构 代码详情 功能点: 多级缓存,先查本地缓存,再查Redis,最后才查数据库热点数据重建逻辑使用分布式锁,二次查询更新缓存采用读写锁提升性能采用Redis的发布订阅机制通知所有实例更新本地缓存适用读多…...

认识CMake并使用CMake构建自己的第一个项目
1.CMake的作用和优势 跨平台支持:CMake支持多种操作系统和编译器,使用同一份构建配置可以在不同的环境中使用 简化配置:通过CMakeLists.txt文件,用户可以定义项目结构、依赖项、编译选项等,无需手动编写复杂的构建脚本…...
Python网页自动化Selenium中文文档
1. 安装 1.1. 安装 Selenium Python bindings 提供了一个简单的API,让你使用Selenium WebDriver来编写功能/校验测试。 通过Selenium Python的API,你可以非常直观的使用Selenium WebDriver的所有功能。 Selenium Python bindings 使用非常简洁方便的A…...

VisualXML全新升级 | 新增数据库编辑功能
VisualXML是一个功能强大的网络总线设计工具,专注于简化汽车电子系统中复杂的网络数据设计操作。它支持多种主流总线网络格式的数据编辑(如DBC、LDF、ARXML、HEX等),并能够基于Excel表格的方式生成和转换多种数据库文件。由此&…...

Xcode 16 集成 cocoapods 报错
基于 Xcode 16 新建工程项目,集成 cocoapods 执行 pod init 报错 ### Error RuntimeError - PBXGroup attempted to initialize an object with unknown ISA PBXFileSystemSynchronizedRootGroup from attributes: {"isa">"PBXFileSystemSynchro…...