当前位置: 首页 > news >正文

MySQL 基础操作与编码设置:从入门到避坑

MySQL 基础操作与编码设置:从入门到避坑

掌握 MySQL 的基础操作是使用数据库的第一步,而字符集设置不当导致的乱码问题则是新手常踩的 “坑”。本文从实际操作出发,带你快速上手数据库基本操作,并解决中文存储的常见问题。

一、MySQL 基础操作:从数据库到表的核心命令

1. 查看所有数据库

登录 MySQL 后,首先可以查看当前服务器中的所有数据库:

SHOW DATABASES;

系统默认包含 4 个核心数据库:

  • information_schema:存储数据库元信息(如库名、表名、字段类型等);

  • performance_schema:用于监控数据库性能;

  • sys:简化性能监控的视图集合;

  • mysql:存储用户权限、系统配置等核心信息。

2. 创建自己的数据库

使用create database命令创建自定义数据库,名称需唯一:

-- 创建名为cyforkkdb的数据库
CREATE DATABASE cyforkkdb;

3. 切换到目标数据库

对数据库操作前需先指定目标库,使用use命令:

-- 切换到cyforkkdb数据库
USE cyforkkdb;

提示:若未执行use命令直接操作表,会报错No database selected。

4. 查看数据库中的表

切换到目标库后,查看所有表:

-- 查看当前数据库的表
show tables;
SHOW TABLES;-- 查看指定数据库的表(无需切换库)SHOW TABLES FORM 数据库名;

5. 创建数据表

使用create table定义表结构,需指定字段名和数据类型:

-- 创建student表(包含id和name字段)
CREATE TABLE student(id int,  -- 整数类型name varchar(20)  -- 字符串类型,最长20个字符
);

6. 查看表数据

新表默认无数据,可通过select命令查看:

-- 查看student表的所有数据
SELECT * FROM student;

7. 插入数据

使用insert into添加记录:

-- 向student表插入两条记录
INSERT INTO student VALUES(1, '张三');
INSERT INTO student VALUES(2, '李四');

注意:若插入中文时出现Incorrect string value错误,大概率是字符集不支持中文,需按后文方法配置。

8. 查看表 / 库的创建信息

通过show create命令可查看表或数据库的详细配置(包括字符集):

-- 查看student表的创建信息(\G用于格式化输出)
SHOW CREATE TABLE student\G-- 查看cyforkkdb数据库的创建信息
SHOW CREATE DATABASE cyforkkdb\G

9. 删除表和数据库

删除操作需谨慎,执行后数据无法恢复:

-- 删除student表
DROP TABLE student;-- 删除atguigudb数据库
DROP DATABASE cyforkkdb;

二、字符集设置:解决中文乱码问题

1. 问题表现

插入中文时提示ERROR 1366 (HY000): Incorrect string value,或查询时显示乱码,本质是字符集不支持中文(默认latin1)。

2. 查看当前字符集

通过以下命令检查字符集配置:

-- 查看字符集相关变量
SHOW VARIABLES LIKE 'character_%';
SHOW VARIABLES LIKE 'collation_%';

3. MySQL 5.7 配置方法

步骤 1:修改配置文件my.ini

找到安装目录下的my.ini(默认路径:C:\ProgramData\MySQL\MySQL Server 5.7),添加以下配置:

[mysql]
default-character-set=utf8  -- 客户端默认字符集[mysqld]
character-set-server=utf8  -- 服务器默认字符集
collation-server=utf8_general_ci  -- 服务器默认排序规则
步骤 2:重启服务
-- 停止服务(mysql57是服务名)
net stop mysql57-- 启动服务
net start mysql57
步骤 3:验证配置

重新登录后执行show variables like ‘character_%’;,确认character_set_server等参数为utf8。

4. MySQL 8.0 的优势

MySQL 8.0 默认字符集为utf8mb4(支持所有中文、emoji 和生僻字),无需手动配置即可正常存储中文,从根源解决乱码问题。

5. 已有库 / 表的字符集修改

若修改配置前已创建库或表,需手动调整:

-- 修改数据库字符集
ALTER DATABASE 数据库名 charset utf8;-- 修改表字符集(仅影响新字段)
ALTER TABLE 表名 charset utf8;-- 修改字段字符集(需指定字段类型)
ALTER TABLE 表名 MODIFY 字段名 varchar(20) charset utf8;

总结

MySQL 基础操作围绕 “库 - 表 - 数据” 三层结构展开,核心命令包括create、use、insert、select等。中文乱码问题的关键是字符集配置,MySQL 5.7 需手动修改my.ini为utf8,而 8.0 默认utf8mb4更省心。掌握这些内容,即可完成日常数据存储与查询需求。

http://www.dtcms.com/a/334159.html

相关文章:

  • 范式转移:AI幻觉的终结与GPT-5的“可信”架构设计
  • 《解耦的艺术:Python 观察者模式在 GUI 与事件驱动中的实战》
  • 音视频学习(五十四):基于ffmpeg实现音频重采样
  • 【科普向-第一篇】数字钥匙生态全景:手机厂商、车厂与协议之争
  • GPFS集群性能压测
  • C++编程学习阶段性总结
  • 2025年生成式引擎优化(GEO)服务商技术能力评估报告
  • 企业运维规划及Linux介绍虚拟环境搭建
  • ROS相关的ubuntu基础教程
  • 神经网络 常见分类
  • 视觉语言模型(VLA)分类方法体系
  • 6JSON格式转python并实现数据可视化
  • RJ45 网口集成万兆(10Gbps)以太网的核心是通过物理层技术革新和信号处理优化,在传统铜缆(双绞线)介质上突破速率限制,其原理可从以下几个关键维度解析
  • Express开发快速学习
  • 探秘gRPC——gRPC原理详解
  • B3924 [GESP202312 二级] 小杨的H字矩阵
  • Flink Stream API 源码走读 - window 和 sum
  • Kubernetes Service
  • Google C++ 风格指南
  • 大模型教机器人叠衣服:2025年”语言理解+多模态融合“的智能新篇
  • Cmake学习笔记
  • 小白学习《PCI Express体系结构导读》——第Ⅰ篇第1章PCI总线的基本知识
  • 如何使用 Git 修改已推送 Commit 的用户名和邮箱
  • FFmpeg QoS 处理
  • 正点原子【第四期】Linux之驱动开发篇学习笔记-1.1 Linux驱动开发与裸机开发的区别
  • C语言(11)—— 数组(超绝详细总结)
  • [论文阅读] 人工智能 | 对话中的属性与情感:LLM如何通过多代理反思实现细粒度理解
  • 利用爬虫按图搜索淘宝商品(拍立淘)实战指南
  • 教材采购管理系统(java)
  • OpenEuler 等 Linux 系统中运行 Vue 项目的方法