云计算大数据——MySQL数据库二(数据库管理)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、MySQL数据库管理
    • 1.1基本操作
    • [1.2 常用字段数据类型](#1.2 常用字段数据类型)
    • [1.3 数据库文件存储结构](#1.3 数据库文件存储结构)
    • [1.4 SQL语句分类](#1.4 SQL语句分类)
    • [1.5 DDL操作(数据库和表管理)](#1.5 DDL操作(数据库和表管理))
      • [1.5.1 创建数据库](#1.5.1 创建数据库)
      • [1.5.2 创建数据表](#1.5.2 创建数据表)
      • [1.5.3 删除表](#1.5.3 删除表)
      • [1.5.4 删除数据库](#1.5.4 删除数据库)
      • [1.5.5 修改表结构](#1.5.5 修改表结构)
    • [1.6. DML 操作(表数据管理)](#1.6. DML 操作(表数据管理))
      • [1.6.1 插入数据](#1.6.1 插入数据)
      • [1.6.2 更新数据](#1.6.2 更新数据)
    • [1.7 DQL操作(数据查询)](#1.7 DQL操作(数据查询))
      • [1.7.1 查询数据](#1.7.1 查询数据)
      • [1.7.2 限制查询结果](#1.7.2 限制查询结果)
      • 1.7.3竖向显示结果
    • [1.8. 表高级操作](#1.8. 表高级操作)
      • [1.8.1 临时表](#1.8.1 临时表)
      • [1.8.2 克隆表](#1.8.2 克隆表)
    • [1.9 用户管理](#1.9 用户管理)
      • [1.9.1 创建用户](#1.9.1 创建用户)
      • [1.9.2 查看用户](#1.9.2 查看用户)
      • [1.9.3 删除用户](#1.9.3 删除用户)
      • 1.9.4改密码
    • [1.9.5 忘记root密码处理](#1.9.5 忘记root密码处理)
    • [1.10 用户授权管理](#1.10 用户授权管理)
      • [1.10.1 授权用户](#1.10.1 授权用户)
      • [1.10.2 查看授权](#1.10.2 查看授权)
      • [1.10.3 撤销权限](#1.10.3 撤销权限)
  • 总结

前言

MySQL 数据库管理并非单纯的 "命令执行",而是以 "数据安全、系统稳定、性能最优" 为核心目标的体系化工作:小到一条 DELETE 语句的 WHERE 条件校验,大到 my.cnf 配置的参数调优,每一步操作都直接影响数据完整性和服务可用性。本文的内容均贴合一线运维场景,既覆盖基础的语法规则(如 CHAR/VARCHAR 选型、DECIMAL 精度设计),也强调风险防控(如 skip-grant-tables 的临时使用、事务回滚的必要性),旨在为使用者建立 "规范操作、风险先行、应急有策" 的管理思维。

一、MySQL数据库管理

1.1基本操作

3.2常用类型

3.3数据库的文件结构

3.4数据库存管理方式

3.5数据库高级操作

1.1.1查看数据库信息

css 复制代码
SHOW DATABASES;

用途:显示当前 MySQL 服务器上所有数据库列表。

1.1.2切换数据库

css 复制代码
USE 数据库名;

用途:切换当前操作的数据库。

1.1.3查看数据库中的表

css 复制代码
SHOW TABLES; 
SHOW TABLES IN 数据库名;

用途:显示当前数据库或指定数据库的所有表。

1.1.4查看表结构

css 复制代码
 1. DESCRIBE 表名;

输出信息包括:

Field:字段名

Type:数据类型

Null:是否允许为空

Key:键类型(主键、唯一键等)

Default:默认值

Extra:额外信息(如自增属性

1.2 常用字段数据类型

css 复制代码
类型        	说明	         示例
INT        	整型	id       INT
FLOAT	    单精度浮点,4 字节,可表示小数	score FLOAT
DOUBLE	    双精度浮点	price DOUBLE
CHAR(n)	    定长字符串 ,长度 n,不够补空格	name CHAR(10)
VARCHAR(n)	变长字符串,最大 n 个字符	address VARCHAR(50)
TEXT	文本类型	description TEXT
IMAGE	图像类型	photo IMAGE
DECIMAL(p,s)	精确数值类型,p=总长度,s=小数位	salary DECIMAL(5,2)

注意:CHAR类型长度不足时会补空格,超出长度时低版本截断,高版本报错。
主键唯一,可由多个字段组成(联合主键)。

1.3 数据库文件存储结构

MySQL数据存储在/usr/local/mysql/data目录下:

每个数据库对应一个子目录

每张表对应若干文件:

MyISAM引擎:.frm(表结构)、.MYD(数据)、.MYI(索引)

InnoDB引擎:独享表空间为.ibd文件,共享表空间为ibdata文件

1.4 SQL语句分类

css 复制代码
分类	             功能                  	常用语句
DDL(数据定义语言)	创建/修改/删除数据库对象	CREATE, DROP, ALTER
DML(数据操纵语言)	增删改表数据	INSERT, UPDATE, DELETE
DQL(数据查询语言)	查询数据	SELECT
DCL(数据控制语言)	用户权限管理	GRANT, REVOKE, COMMIT, ROLLBACK

1.5 DDL操作(数据库和表管理)

1.5.1 创建数据库

css 复制代码
CREATE DATABASE 数据库名;

1.5.2 创建数据表

css 复制代码
CREATE TABLE 表名 (
  字段1 数据类型 [约束条件],
  字段2 数据类型 [约束条件],
  ...
  PRIMARY KEY (主键字段)
);

常用字段约束:

  • NOT NULL:非空
  • DEFAULT:默认值
  • PRIMARY KEY:主键
  • UNIQUE KEY:唯一键
  • AUTO_INCREMENT:自增长

1.5.3 删除表

go 复制代码
DROP TABLE 表名;
DROP TABLE 数据库名.表名;

1.5.4 删除数据库

go 复制代码
DROP DATABASE 数据库名;

1.5.5 修改表结构

go 复制代码
 修改表名
ALTER TABLE 旧表名 RENAME 新表名;
go 复制代码
修改字段
ALTER TABLE 表名 CHANGE 旧列名 新列名 数据类型 [约束];
ALTER TABLE 表名 MODIFY COLUMN 字段名 数据类型;
go 复制代码
 删除字段
ALTER TABLE 表名 DROP 字段名;

1.6. DML 操作(表数据管理)

1.6.1 插入数据

go 复制代码
INSERT INTO 表名(字段1,字段2,...) VALUES (值1, 值2, ...);

1.6.2 更新数据

go 复制代码
UPDATE 表名 SET 字段1=值1[,字段2=值2] WHERE 条件;

PASSWORD(''):MySQL 内置函数,对空字符串进行哈希计算,生成固定的 41 位哈希值

1.6.3删除数据

go 复制代码
DELETE FROM 表名 WHERE 条件;

1.7 DQL操作(数据查询)

1.7.1 查询数据

css 复制代码
SELECT 字段1,字段2 FROM 表名 WHERE 条件;
SELECT * FROM 表名;  -- 查询所有字段

1.7.2 限制查询结果

css 复制代码
SELECT * FROM 表名 LIMIT 起始行, 查询条数; 
SELECT * FROM 表名 LIMIT 2; -- 显示前2行 
SELECT * FROM 表名 LIMIT 2,3; -- 从第2行开始显示3行

1.7.3竖向显示结果

css 复制代码
SELECT * FROM 表名\G

1.8. 表高级操作

1.8.1 临时表

css 复制代码
CREATE TEMPORARY TABLE 表名 (...);

临时表只存在于当前连接,会在连接关闭时自动销毁

可进行增删改查操作

1.8.2 克隆表

仅复制表结构

CREATE TABLE 新表 LIKE 旧表;

-- 如果想要插入数据

insert into 新表 select * from 旧表;

-- 复制表结构和数据

CREATE TABLE 新表 AS SELECT * FROM 旧表;(会丢失主键)

--或者

CREATE TABLE 新表 (SELECT * FROM 旧表);

1.9 用户管理

1.9.1 创建用户

go 复制代码
CREATE USER '用户名'@'来源地址' IDENTIFIED BY '密码';

1.9.2 查看用户

go 复制代码
USE mysql;
SELECT User, Host, authentication_string FROM user;

1.9.3 删除用户

DROP USER '用户名'@'来源地址';

1.9.4改密码

SET PASSWORD = PASSWORD('新密码'); -- 修改当前用户密码

SET PASSWORD FOR '用户'@'来源地址' = PASSWORD('新密码'); -- 修改指定用户密码

1.9.5 忘记root密码处理

1.修改配置文件/etc/my.cnf,添加:

go 复制代码
[mysqld]
skip-grant-tables

2.重启MySQL服务并直接登录

3.执行密码修改:

UPDATE mysql.user SET AUTHENTICATION_STRING=PASSWORD('新密码') WHERE user='root';

FLUSH PRIVILEGES;

4.删除skip-grant-tables配置并重启MySQL

1.10 用户授权管理

1.10.1 授权用户

go 复制代码
GRANT 权限列表 ON 数据库.表 TO '用户名'@'来源地址' IDENTIFIED BY '密码';

1.10.2 查看授权

go 复制代码
SHOW GRANTS FOR '用户名'@'来源地址'

1.10.3 撤销权限

go 复制代码
REVOKE 权限列表 ON 数据库.表 FROM '用户名'@'来源地址';
REVOKE ALL ON *.* FROM 'lisi'@'%';

总结

综上,MySQL 数据库管理的本质是 "在安全与效率之间找到平衡",既需掌握扎实的基础语法与配置规则,也需建立风险防控意识,每一次操作都以 "数据安全、服务稳定" 为核心,才能让 MySQL 充分发挥其轻量、高效的优势,为业务提供可靠的数据支撑。

相关推荐
编程修仙1 小时前
第二篇 搭建第一个spring程序
java·数据库·spring
VX:Fegn08951 小时前
计算机毕业设计|基于springboot + vue手办商城系统(源码+数据库+文档)
数据库·vue.js·spring boot·后端·课程设计
LucidX1 小时前
MySQL 数据库管理
数据库·mysql·oracle
我科绝伦(Huanhuan Zhou)1 小时前
深入解析Oracle 10046事件与数据库初始化引导机制
数据库·oracle
踢球的打工仔1 小时前
mysql模糊搜索,排序,分组
数据库·mysql
无心水1 小时前
【分布式利器:分布式ID】7、分布式数据库方案:TiDB/OceanBase全局ID实战
数据库·分布式·tidb·oceanbase·分库分表·分布式id·分布式利器
一辉ComeOn1 小时前
【大数据高并发核心场景实战】缓存层 - 写缓存
java·大数据·redis·缓存
一只栖枝1 小时前
MySQL OCP不培训,自学怎么学?
数据库·mysql·备考·考证·ocp
safestar20121 小时前
扒开MySQL的引擎盖:InnoDB如何用B+树、缓冲池和日志系统扛起高并发
数据库·b树·mysql