一、安装流程
环境说明:
- Linux 环境:Ubuntu 20.04 LTS
- MySQL 版本:8.0.42 for Linux on x86_64
- 操作身份:超级用户 (root)
本文涵盖 MySQL 基础入门知识,包括安装流程、SQL 语句分类与操作、数据库与表的管理、数据增删改查、聚合函数、多表查询、索引原理与创建、事务 ACID 特性及隔离级别、视图和用户管理等核心内容。适合初学者系统学习 MySQL 数据库的基础使用与管理。

环境说明:
获取 MySQL APT 配置包,用于给系统添加正确的软件源。 下载地址:MySQL :: Begin Your Download 下载后不要解压,通过 rz 指令传输到服务器中。
su - 切换为超级用户,确保安装包已发送到了服务器。dpkg -i mysql-apt-config_0.8.36-1_all.deb 安装下载的 MySQL APT 配置包。apt-get update 更新一下安装包。apt-get install mysql-server 安装 mysql(过程比较慢)。systemctl status mysql 查看 mysql 服务是否正常运行,有绿色字体就是正常运行。systemctl enable mysql 设置开机自启动(根据需求)。systemctl list-unit-files | grep mysql 查看自动启动是否设置成功。路径:/etc/mysql/mysql.conf.d/mysqld.cnf
其中 datadir 是存放我们创建数据库的地方。
默认配置可以通过 mysql 相关指令查到,关键属性如下:
连接 MySQL 指令: mysql -h 127.0.0.1 -P 3306 -u root -p
功能: 以 root 用户身份连接本机 MySQL 数据库,需要输入密码。 选项:
-h:指明登录部署了 mysql 服务的主机 ip,这里使用本地环回地址。-P:指明我们要访问的端口号。-u:指明登录的用户,这里使用的是 root 超级用户。-p:后跟密码,不建议后面直接跟密码,建议回车进行不回显输入。 (注意:当 MySQL 部署在你当前的机器上时,-h和-P这两个参数是可以省略的)
create database db_name;/var/lib/mysql 下创建一个目录。create database if not exists db_name;(如果创建的数据库存在,会抛出错误警告,不会导致已存在的数据库被覆盖)。create database d1 charset=utf8mb4 collate utf8mb4_general_ci;字符集(Character Set):决定了数据库可以存储哪些字符。校验集(Collation):定义了字符的比较和排序规则。
show databases;show create database db_name;show processlist;drop database db_name;/var/lib/mysql 下删除一个目录,级联删除,里面的数据表全部被删。alter database d1 charset=gbk collate gbk_chinese_ci;use db_name;select database(); 查看当前工作数据库。mysqldump -P3306 -u root -p 密码 -B 数据库名 > 数据库备份存储的文件路径mysqldump -P3306 -uroot -p -B database1 > mytest.sqlsource 路径source /root/MySQL/mytest.sqlcreate table table_name (
field1 datatype,
field2 datatype,
field3 datatype
) character set=字符集 collate=校验规则 engine=存储引擎;
create table users(
id int,
name varchar(20) comment '用户名',
password char(32) comment '密码',
birthday date comment '生日'
) character set=utf8mb4 collate=utf8mb4_general_ci;
show tables;desc 表名;show create table 表名 \G;alter table 表名 add 字段 字段类型 comment '备注' after 位于哪个字段后面;alter table 表名 modify 字段 要修改的字段类型 comment '要修改的备注';alter table 表名 drop 要删除的字段;alter table 表名 rename to 新表名;alter table 表名 change 旧字段名 新字段名 字段类型 [其他属性];drop table 表名;if exists 可以避免删除表不存在的报错。insert into 表名 values(值 1), (值 2);insert into 表名 (字段,...) values (数据,...) on duplicate key update 字段=更新数据,...;replace into stu (字段,...) values (字段,...);insert into [要插入的表名] select [查询语句];select * from 表名;select 字段,... from 表名;select 字段,... 表达式 as 重命名 from 表名;select distinct 字段,... from 表名;select 字段,... from 表名 order by 要排序的字段 [asc/desc];limit n (取前 n 条), limit s, n (从第 s+1 条开始取 n 条), limit n offset s (语义更清晰)。update [要更新的表名] set [更新的字段] = [新数据] (where/order/limit 查询结果);delete from 表名 (where/order/limit 查询语句);truncate 表名;count(*), count(字段)sum(字段)avg(字段)max(字段), min(字段)(sal>500 or job='manager') and ename like 'j%'order by deptno asc, sal descselect ename, job from emp where sal = (select max(sal) from emp);emp.ename。select emp.ename, dept.dname from emp, dept where emp.deptno = dept.deptno;=。IN/ALL/ANY。select 字段 from 表 1 inner join 表 2 on 连接条件;文件保存数据的缺点:安全性问题、不利于查询和管理、不利于海量数据存储、程序控制不方便。数据库能更有效地管理数据。
数据库服务器管理多个数据库,每个应用通常创建一个数据库,数据库中创建多个表保存实体数据。
约束的最终目标:保证数据的完整性和可预期性。
current_date(), current_time(), date_add(), datediff()。concat(), left(), right()。abs(), ceiling(), floor(), rand()。user(), md5(), database(), sha2(), ifnull()。create index, add primary key, add unique, add index。show keys from 表名, show index from 表名, desc 表名。drop index, drop primary key。begin 或 start transaction。savepoint 保存点名。rollback to 保存点 或 rollback。commit。create view 视图名 as select 语句;drop view 视图名;mysql 的 user 表中。create user '用户名'@'登陆主机/ip' identified by '密码';drop user '用户名'@'主机名';set password for '用户名'@'主机名' = '新密码'; 或 alter user '用户名'@'主机名' identified by '新密码';grant 权限列表 on 库。对象名 to '用户名'@'登陆位置';revoke 权限列表 on 库。对象名 from '用户名'@'登陆位置';
微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
在线格式化和美化您的 SQL 查询(它支持各种 SQL 方言)。 在线工具,SQL 美化和格式化在线工具,online
解析 INSERT 等受限 SQL,导出为 CSV、JSON、XML、YAML、HTML 表格(见页内语法说明)。 在线工具,SQL 转 CSV/JSON/XML在线工具,online
CSV 与 JSON/XML/HTML/TSV/SQL 等互转,单页多 Tab。 在线工具,CSV 工具包在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML 转 Markdown 互为补充。 在线工具,Markdown 转 HTML在线工具,online