简介
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 的学习旅程中一切顺利!