目录

MySQL基础MySQL核心操作全解析

【MySQL基础】MySQL核心操作全解析

前言

你可能没意识到,平时刷手机时看到的聊天记录、购物订单、游戏角色信息,背后都藏着 “数据库” 在帮忙管理。而 MySQL,就是最常用的数据库工具之一,它像个 “智能文件柜”,能把杂乱的数据整理得井井有条,还能快速找到我们需要的信息。​
https://i-blog.csdnimg.cn/direct/34f5fc6701db4587a305fbf41ec9b486.gif#pic_center

刚开始接触 MySQL 时,不少人会怕 “操作复杂”“看不懂代码”。其实不用慌,这部分内容会避开难懂的专业术语,从最实用的基础操作讲起 —— 比如怎么把数据存进 MySQL,怎么快速找出想要的信息,每一步都尽量简单明了。哪怕你是第一次碰数据库,跟着步骤慢慢试,也能很快上手,让你感受到 MySQL 管理数据的方便~

‼️没安装MySql请看👇👇👇

一、数据库操作😶‍🌫️

我们先输入打开mysql

mysql -u root -p

https://i-blog.csdnimg.cn/direct/bb1dd617d10a4da597fe0250c3536788.png#pic_center

1.1 查看数据库🔍

1)查看MySQL服务器中所有数据库
通过以下SQL语句可列出当前MySQL服务下已存在的所有数据库:

SHOW DATABASES;

具体实操效果如下:
https://i-blog.csdnimg.cn/direct/b075f68a1c4e4f2784a81dd6792507d4.png#pic_center

其中4个默认系统数据库的作用需重点了解:

  • information_schema:MySQL的数据字典,记录所有数据库、表的结构及字段信息。
  • performance_schema:性能监控库,存储服务器运行时的性能参数与状态。
  • mysql:核心管理库,保存用户权限、系统配置等关键信息(如root用户密码)。
  • sys:辅助管理库,包含预定义的存储过程和函数,简化日常运维操作。

注意:这4个数据库是MySQL安装后自动生成的核心组件,切勿随意删除或修改,否则可能导致服务器无法正常运行。

2)查看指定数据库的创建信息
若需了解某数据库的创建语句(如字符集、校对集),可使用以下命令:

SHOW CREATE DATABASE 数据库名称;

以查看sys数据库为例,实操效果如下:

SHOW CREATE DATABASE sys;

https://i-blog.csdnimg.cn/direct/225760d939324af999e3c1e555838648.png#pic_center

3)查看当前正在操作的数据库
若忘记当前处于哪个数据库上下文,可通过以下命令查询:

SELECT DATABASE();

具体实操效果如下:
https://i-blog.csdnimg.cn/direct/87ae808b394d4a27ae3811038bc08727.png#pic_center

1.2 创建数据库➕

创建数据库的基本语法如下,其中可选参数可按需添加:

CREATE DATABASE [IF NOT EXISTS] 数据库名称 [库选项];

关键说明

  • IF NOT EXISTS:可选参数,意为“若数据库不存在则创建”,避免因重复创建导致报错。
  • 数据库名称规则:仅允许包含字母、数字和下划线,且不能以数字开头(如db_test合法,123_db不合法)。
  • 库选项:常用CHARSET(指定字符集)和COLLATE(指定校对集),默认字符集为latin1(不支持中文),建议显式设置为utf8mb4(支持中文及emoji等4字节字符,比utf8更全面)。

具体实操效果如下:
https://i-blog.csdnimg.cn/direct/3ae7becb430e4186aee795547855ec25.png#pic_center

1.3 选择数据库📌

在操作数据表或数据前,需先指定要操作的数据库,语法如下:

USE 数据库名称;

具体实操效果如下:
https://i-blog.csdnimg.cn/direct/6a5269ae09d44aa7a8bd9a1a4f950b27.png#pic_center

1.4 删除数据库❌

删除数据库的语法如下,执行后会彻底清除数据库及其中所有数据,需谨慎操作:

DROP DATABASE [IF EXISTS] 数据库名称;

关键说明

  • IF EXISTS:可选参数,若数据库不存在则忽略删除操作,避免报错。
  • 操作风险:删除数据库会永久删除其中所有数据表和数据,且无法恢复,建议操作前备份重要数据。

具体实操效果如下:
https://i-blog.csdnimg.cn/direct/5eda9609be774043ad332ef387d63dd2.png#pic_center

二、数据表操作📋

2.1 创建数据表➕

创建数据表需基于已选中的数据库,基本语法如下,可按需配置字段、属性及表选项:

CREATE [TEMPORARY] TABLE [IF NOT EXISTS] 表名( 
    字段1 字段1类型 [字段属性] [COMMENT 字段1注释], 
    字段2 字段2类型 [字段属性] [COMMENT 字段2注释], 
    ...... 
    字段n 字段n类型 [COMMENT 字段n注释] 
) [表属性] [COMMENT 表注释];

关键说明

  • TEMPORARY:创建临时表,仅在当前MySQL会话中可见,会话关闭后自动删除。
  • 字段类型:需根据数据特点选择(如INT存整数、VARCHAR存字符串、DATE存日期)。
  • 字段属性:常用NOT NULL(非空约束)、DEFAULT(默认值)、PRIMARY KEY(主键)等。
  • 表属性:常用ENGINE(存储引擎,推荐InnoDB,支持事务和外键)、DEFAULT CHARSET(字符集,建议设为utf8mb4),确保表支持中文及特殊字符。

具体实操效果如下:
首先创建一个数据库:CREATE DATABASE IF NOT EXISTS CompanyDB;
https://i-blog.csdnimg.cn/direct/9d4153e3da034041a9144e60d7b1fb21.png#pic_center
进入创建的数据库;USE CompanyDB;
https://i-blog.csdnimg.cn/direct/9bd00a5f9ef84251a04551bd6959b326.png#pic_center

CREATE TABLE IF NOT EXISTS Employee(
    emp_id INT PRIMARY KEY AUTO_INCREMENT COMMENT '员工ID:自动生成,每个员工唯一',
    emp_name VARCHAR(50) NOT NULL COMMENT '员工姓名:比如“张三”,必须填',
    emp_job VARCHAR(50) COMMENT '员工职位:比如“程序员”,可填可不填',
    emp_hire_date DATE COMMENT '入职日期:比如“2024-01-15”,可填可不填'
) COMMENT '最简单员工表:存员工核心信息';

https://i-blog.csdnimg.cn/direct/5fc43f8cf0f54e6399e9b3b65ac3221d.png#pic_center
👉显示ok即创建成功

2.2 查看数据表🔍

1)查看当前数据库中的所有数据表
语法如下,可选LIKE匹配模式筛选表名:

SHOW TABLES [LIKE 匹配模式];

匹配模式说明

  • %:匹配任意长度的字符(包括0个),如SHOW TABLES LIKE 'user%'匹配所有以user开头的表。
  • _:仅匹配1个字符,如SHOW TABLES LIKE 'user_'匹配user1userA等(仅后缀1个字符)。

具体实操效果如下:
https://i-blog.csdnimg.cn/direct/5a73d11e6d2d4c6385957cbdb1f3194c.png#pic_center

2)查看数据表的详细信息
若需了解表的存储引擎、创建时间、字符集等信息,可使用以下命令:

SHOW TABLE STATUS [FROM 数据库名] [LIKE 匹配模式];

具体实操效果如下:
https://i-blog.csdnimg.cn/direct/5ba5d428335c489598d2ad95e7d5473c.png#pic_center
扩展技巧:在命令末尾加\G可将结果纵向排列,便于查看字段较多的表信息(如大表的存储大小、行数)。
https://i-blog.csdnimg.cn/direct/babfce8a844c4a20b793f93e81b303c7.png#pic_center

2.3 查看表结构📊

MySQL提供多种方式查看表结构,核心是了解字段名、类型、约束等信息:

1)简洁查看字段信息(DESC/DESCRIBE)
两种语法效果一致,前者为后者的简写:

# 语法1:查看所有字段
{DESCRIBE|DESC} 数据表名;

# 语法2:查看指定字段
{DESCRIBE|DESC} 数据表名 字段名;

查看所有字段的实操效果如下:desc employee;
https://i-blog.csdnimg.cn/direct/d737b704f9814ea391946e3750db9a0a.png#pic_center

查看指定字段的实操效果如下: desc employee emp_id;
https://i-blog.csdnimg.cn/direct/ead0939bcdb24dbcb344aab1c339a361.png#pic_center

2)查看数据表的创建语句
若需复现表结构或查看完整配置(如存储引擎、字符集),可使用:

SHOW CREATE TABLE 表名;

具体实操效果如下: SHOW CREATE TABLE employee/G;
https://i-blog.csdnimg.cn/direct/79e52252f4be47b8bb1020b42bcc50c4.png#pic_center

3)详细查看字段属性(SHOW COLUMNS)
添加FULL参数可查看字段权限、校对集等额外信息:

# 语法1:基于当前数据库
SHOW FULL COLUMNS FROM 数据表名;

# 语法2:查看指定数据表完整结构
SHOW [FULL] COLUMNS FROM 数据库名.数据表名;

查看完整信息的实操效果如下: SHOW FULL COLUMNS FROM Employee;
https://i-blog.csdnimg.cn/direct/9392e89d85b845df9101a9623752a97b.png#pic_center
查看指定数据表完整结构:SHOW FULL COLUMNS FROM CompanyDB.Employee;
https://i-blog.csdnimg.cn/direct/9b30950ac0e54c39a95007e9729aaa6c.png#pic_center

2.4 删除数据表❌

删除数据表会彻底清除表结构及所有数据,语法如下:

# 单表删除(永久表)
DROP TABLE [IF EXISTS] 数据表名;

单表删除(永久表)的实操效果如下: deop table if exists employee;https://i-blog.csdnimg.cn/direct/78f7cebc2891415dbe499e93afed7733.png#pic_center

https://i-blog.csdnimg.cn/direct/feab94408a43484fb7bc3179529b2045.png#pic_center

三、数据操作🔄

3.1 增加数据➕

MySQL提供多种数据插入方式,可按需选择单条、多条或指定字段插入:

1)为部分字段插入数据
适用于仅需赋值部分字段(未赋值字段需允许为空或有默认值),两种语法如下:

# 语法1:字段列表+VALUES
INSERT [INTO] 数据表名(字段1, 字段2, ...) {VALUES|VALUE} (1, 2, ...);

# 语法2SET关键字赋值(灵活性更高)
INSERT [INTO] 数据表名 SET 字段1=1, 字段2=2, ...;

字段列表+VALUES的实操效果如下:

 INSERT INTO Employee(emp_name, emp_job, emp_hire_date)
    -> VALUES('李四', NULL, NULL);

https://i-blog.csdnimg.cn/direct/d851cc10eb67494795701ead8995ffdf.png#pic_center

SELECT * FROM Employee;

https://i-blog.csdnimg.cn/direct/ba4dac28082046718800339aedf3f0b8.png#pic_center

SET关键字赋值的实操效果如下:

INSERT INTO Employee 
SET emp_name='王五', emp_job='销售', emp_hire_date='2024-03-15';

https://i-blog.csdnimg.cn/direct/cfad8594c4cb4097a94e26d69bb33e0b.png#pic_center

SELECT * FROM Employee;

https://i-blog.csdnimg.cn/direct/75356102e9b6445ca5a6885eeef882ad.png#pic_center

注意:字段顺序与值顺序必须一一对应,字符串类型的值需用单引号包裹(如'李四')。

2)为所有字段插入数据
可省略字段列表,但值的顺序必须与表结构字段顺序完全一致:

INSERT [INTO] 数据表名 {VALUES|VALUE} (1, 2, ..., n);

具体实操效果如下:

INSERT INTO Employee VALUES(NULL, '周二', NULL, NULL);

https://i-blog.csdnimg.cn/direct/098ab32602654c68a1a8a7512b0acddb.png#pic_center

  SELECT * FROM Employee;

https://i-blog.csdnimg.cn/direct/7873af03053945b5b03e92b7efca9435.png#pic_center
3)批量插入多行数据
通过逗号分隔多个值列表,大幅提升插入效率(避免多次执行单条插入):

INSERT [INTO] 数据表名 [字段列表] VALUES (值列表1), (值列表2), ..., (值列表n);

具体实操效果如下:

INSERT INTO Employee (emp_name, emp_job, emp_hire_date)
VALUES 
  ('吴九', '产品经理', '2024-05-01'),  -- 第一条:填全3个字段
  ('郑十', '设计师', NULL),             -- 第二条:不填入职日期(用NULL)
  ('钱十一', NULL, '2024-05-10');      -- 第三条:不填职位(用NULL)

https://i-blog.csdnimg.cn/direct/a84c07e50e4242309d6e271c2d24b2c7.png#pic_center

SELECT * FROM Employee;

https://i-blog.csdnimg.cn/direct/823553bc7f7849409adba8c3fb8e17ff.png#pic_center

3.2 查询数据🔍

查询是数据操作的核心,支持查询所有字段、指定字段及带条件筛选:

1)查询表中所有数据
使用*通配符表示所有字段,适用于需查看完整数据的场景:

SELECT * FROM 数据表名;

具体实操效果如下:
https://i-blog.csdnimg.cn/direct/4186c28228b841a4b18e373494ad248d.png#pic_center

2)查询指定字段数据
仅查询所需字段,减少数据传输量,提升效率:

SELECT 字段1, 字段2, ... FROM 数据表名;

具体实操效果如下:

SELECT emp_name, emp_job, emp_hire_date FROM Employee WHERE emp_job='产品经理';

https://i-blog.csdnimg.cn/direct/29e40d82d77c4279a0a1816584d6cd24.png#pic_center

3)带条件查询数据
通过WHERE子句筛选符合条件的记录,常用条件运算符(=><!=等):

# 语法1:查询所有字段(带条件)
SELECT * FROM 数据表名 WHERE 条件表达式;

# 语法2:查询指定字段(带条件)
SELECT 字段1, 字段2 FROM 数据表名 WHERE 字段名=;

带条件查询所有字段的实操效果如下:

SELECT * FROM Employee WHERE emp_job='产品经理';

https://i-blog.csdnimg.cn/direct/4a73c13e9abe480bae0858183a5a7956.png#pic_center

带条件查询指定字段的实操效果如下:

SELECT emp_name, emp_hire_date FROM Employee WHERE emp_job='设计师';

https://i-blog.csdnimg.cn/direct/7378e8ae5f8f4ac487ef7b1b5618ae00.png#pic_center

3.3 修改数据✏️

通过UPDATE语句修改已有数据,必须加WHERE条件(否则会修改表中所有记录):

UPDATE 数据表名 SET 字段1=1, 字段2=2, ... [WHERE 条件表达式];

关键说明

  • 多字段修改用逗号分隔“字段=值”对。
  • WHERE条件用于定位需修改的记录(如id=1),避免误改无关数据。

具体实操效果如下:

UPDATE Employee 
SET emp_job='高级销售'  
WHERE emp_name='王五'; 

https://i-blog.csdnimg.cn/direct/b8fe7f69ef2e4b5c830ad47914abbdc7.png#pic_center

SELECT * FROM Employee;

https://i-blog.csdnimg.cn/direct/7822e622d4cd40838d3fb0bfad4743b4.png#pic_center

3.4 删除数据❌

通过DELETE语句删除数据,同样必须加WHERE条件(否则会删除表中所有记录):

DELETE FROM 数据表名 [WHERE 条件表达式];

关键说明

  • 若需清空表中所有数据且不保留表结构,也可使用TRUNCATE TABLE 表名(效率更高,但无法恢复数据,且不触发删除触发器)。
  • DELETE支持带复杂条件删除(如WHERE age>30),需谨慎验证条件正确性。

具体实操效果如下:

DELETE FROM Employee WHERE emp_name='钱十一';

https://i-blog.csdnimg.cn/direct/21c01c79908d443eb701805cbe41974e.png#pic_center

四、实用辅助操作🛠️

4.1 查看MySQL安装目录📍

通过查询BASEDIR变量,可快速获取MySQL的安装路径(便于找到配置文件my.inimy.cnf):

SHOW VARIABLES LIKE 'BASEDIR';

具体实操效果如下:
https://i-blog.csdnimg.cn/direct/e53f4b0f5fe2450c9f704ecf77a16d1c.png#pic_center

4.2 查看数据存储目录📍

通过查询DATADIR变量,可找到数据库文件的实际存储路径(如ibdata1共享表空间文件、各数据库对应的文件夹及表文件):

SHOW VARIABLES LIKE 'DATADIR';

具体实操效果如下:
https://i-blog.csdnimg.cn/direct/28284341e7fe4e879c3e717aec45c2fa.png#pic_center

4.3 查询错误日志目录📍

错误日志记录MySQL运行中的异常信息(如启动失败、SQL执行错误、连接超时等),通过以下命令可找到日志路径,便于排查故障:

SHOW VARIABLES LIKE 'log_error';

具体实操效果如下:
https://i-blog.csdnimg.cn/direct/48b78ad3392d4b05bd59aefa8dd48e07.png#pic_center

总结

以上就是MySQL基础操作的完整内容,确保新手实操时少踩坑。
如果在操作中遇到问题,欢迎在评论区留言或私信交流;若觉得内容对自己有帮助,不妨点赞、关注支持一下,后续会持续更新MySQL进阶教程(如索引优化、事务管理、多表关联查询),感谢大家的阅读!

你好,我是意疏。我们一起进步。

https://i-blog.csdnimg.cn/direct/66f12c6bc0de4ef39398de06a9f8f937.gif#pic_center


意气风发,漫卷疏狂
学习是成长的阶梯,每一次的积累都将成为未来的助力。我希望通过持续的学习,不断汲取新知识,来改变自己的命运,并将成长的过程记录在我的博客中。
如果我的博客能给您带来启发,如果您喜欢我的博客内容,请不吝点赞、评论和收藏,也欢迎您关注我的博客。
您的支持是我前行的动力。听说点赞会增加自己的运气,希望您每一天都能充满活力!

愿您每一天都快乐,也欢迎您常来我的博客。我叫意疏,希望我们一起成长,共同进步。
https://i-blog.csdnimg.cn/blog_migrate/43667a7fa197e8b51b99f2680bab2c2c.png#pic_center 我是意疏 下次见!