文章目录
前言
本文围绕 MySQL 核心操作展开,涵盖数据库基础、数据类型、SQL 语句分类、用户及授权管理等关键内容,旨在帮助读者夯实基础、掌握实操技能,适配项目落地需求。
一、数据库基础操作
1、查看数据库信息
show databases;
用途:显示当前 MySQL 服务器上所有数据库列表。

2、切换数据库
use 数据库名;
用途:切换当前操作的数据库。

3、查看数据库中的表
show tables;
show tables in 数据库名称;
用途:显示当前数据库或指定数据库的所有表。

4、查看表结构
desc 表名;

二、常用数据类型

三、数据库文件存储结构(重要)
MySQL 数据目录: /usr/local/mysql/data
每个数据库对应一个子目录,每个表对应若干文件:
MyISAM: .frm (表结构)、 .MYD (数据)、 .MYI (索引)
InnoDB:
独享表空间: .ibd 文件(每表一个文件)
共享表空间: ibdata 文件(多个表共用)
四、sql语句分类
DDL(数据定义语言)
创建/修改/删除数据库对象。CREATE, DROP, ALTER
DML(数据操纵语言)
增删改表数据。INSERT, UPDATE, DELETE
DQL(数据查询语言)
查询数据 。SELECT
DCL(数据控制语言)
用户权限管理 。GRANT, REVOKE, COMMIT, ROLLBACK
1、DDL操作
1.1、创建数据库
create database 数据库名称;
1.2、创建数据表
create table 表名(
字段1 数据类型 [约束条件],
字段2 数据类型 [约束条件],
...
字段n 数据类型 [约束条件],
primary key(主键字段)
);
示例:
CREATE TABLE yjs2025 (
id INT NOT NULL,
name CHAR(10) NOT NULL,
score DECIMAL(5,2),
passwd CHAR(48) DEFAULT '',
PRIMARY KEY (id)
);
字段约束:
NOT NULL :不能为空
DEFAULT :默认值
PRIMARY KEY :主键
UNIQUE KEY :唯一键
AUTO_INCREMENT :自增长字段
1.3、删除表
drop table 表名;
drop table 数据库名.表名; (不切换数据库时用)
1.4、删除数据库
drop database 数据库名称;
1.5、修改表结构
bash
-- 修改表名
alter table 旧表名 rename 新表名
-- 增加字段
alter table 表名 add 字段名 数据类型 [约束];
-- 修改字段
alter table 表名 change 旧列名 新列名 数据类型 [约束];
alter table 表名 modify column 字段名 数据类型;
-- 删除字段
alter table 表名 drop 字段名称;
示例:
bash
alter table yjs1023 rename yjs2025;
alter table yjs2025 add age2 int;
alter table yjs2025 change age2 age3 int;
alter table yjs2025 drop age3;



2、DML操作
2.1、插入数据
插入一条数据:
insert into 表名(字段1,字段2,...) values (值1,值2,...);
插入多条数据
insert intao 表名(字段1,字段2,...) values
(值1,值2,...),
(值1,值2,...),
(值1,值2,...);
示例:
insert into yjs2025(id,name,age,sname) values (5,'sjj5',19,'洛阳理工'), (6,'sjj6',19,'洛阳理工'), (7,'sjj7',19,'洛阳理工');

2.2、更新数据
update 表名 set 字段1=值1[,字段2=值2] where 条件;
示例:修改sjj1的年龄为20
update yjs2025 set age=20 where name='sjj1';

2.3、删除数据
delete from 表名 where 条件;
示例:
delete from yjs2025 where id=7;

2.4、清空表
方法1:delete
delete from 表名;
方法2:truncate
truncate table 表名;
注意:
DELETE 可带 WHERE 条件,可回滚,速度慢
TRUNCATE 不可回滚,速度快,ID 自增重置
3、SQL操作
3.1、查询数据
select 字段1,字段2... from 表名;
查询所有字段
select * from 表名;
示例:
select * from yjs2025;

3.2、限制查询结果
select * from 表名 limit; --起始行,查询条数;
select * from 表名 limit 2; --显示前两行
select * from 表名 limit 2,3; --第三行开始的后三行
示例:
select * from yjs2025 limit 2,3;

3.3、竖向显示结果
select * from 表名 \G;
示例:
select * from yjs2025 \G;

4、临时表和克隆表
临时表:
create temporary table 表名(...);
作用:
1)临时表只存在于当前连接,会在连接关闭时自动销毁
2)可进行增删改查操作
克隆表:
方法1:约束一起复制,比如:主键
create table 新表 like 旧表;
insert into 表名 select * from 表名;
方法2:会丢失约束,如:主键
create table 新表 as select * from 旧表;
五、用户管理
1、创建和查看用户
创建用户:
create user '用户名'@'来源地址' identified by '密码';
约束登入服务器:
● localhost: 本地登入
● %:允许任意ip登入
● 密码可使用明文或加密方式
示例:create user 'cxk'@'192.168.10.%' identified by '123456';
查看用户:
use mysql;
select user,host,authentication_string from user;

2、删除用户
drop user '用户名'@'来源地址';
示例:
drop user 'cxk'@'%';

3、修改密码
修改当前用户密码
set password = password('新密码');
修改用户密码
set password for '用户'@'来源地址' = password('新密码');
4、忘记密码处理
步骤一:/etc/my.cnf 添加
mysqld
skip-grant-tables
步骤二:重启mysql服务并直接登入
步骤三:修改密码
UPDATE mysql.user SET AUTHENTICATION_STRING=PASSWORD('新密码') WHERE user='root';
刷新
flush privileges;
步骤四:删除skip-grant-tables,并重启mysql
六、用户授权管理
1、授权用户和查看授权
grant 权限列表 on 数据库.表 to '用户名'@'来源地址' identified by '密码';
权限示例: SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, ALTER, INDEX, EXECUTE, ALL
. 表示所有数据库和表
所有权限授权操作:
GRANT ALL PRIVILEGES ON . TO 'lisi'@'%' IDENTIFIED BY '123456';
'%' 所有主机都能远程登入
192.168.10.2 特定ip登入
192.168.10.% 特定网段登入
localhost 本地服务器登入
示例:
授权用户sjj只能看到szsxjd2数据库,且只有查询权限和修改权限
grant select,update on szsxjd2.* to 'sjj'@'%' identified by '123456';
flush privileges; 刷新权限


2、撤销权限
REVOKE 权限列表 ON 数据库.表 FROM '用户名'@'来源地址';
REVOKE ALL ON . FROM 'lisi'@'%';
示例:
revoke all on . from 'sjj'@'%';

撤销后的权限状态:
● 全局级权限变为:GRANT USAGE ON . TO 'sjj'@'%'------USAGE是 MySQL 的 "空权限",表示该用户存在,但无任何全局权限(原有的ALL PRIVILEGES ON *.*已被彻底撤销);
3、权限说明

总结
本文系统梳理了 MySQL 从基础操作到权限管理的核心知识,构建了完整的实操体系,助力读者快速上手数据库运维,为企业级应用开发与管理提供支撑。