MySQL数据库操作笔记

一、基础操作:连接 / 退出数据库

1. 方式 1:可视化工具(MySQL Workbench,新手首选)

  • 连接:打开 Workbench → 点击「Local Instance MySQL80」→ 输入 root 密码 → OK
  • 执行 SQL:在查询编辑器写 SQL 语句 → 点击「闪电图标」执行 → 下方查看结果
  • 退出:直接关闭 Workbench 即可

2. 方式 2:命令行(CMD/Terminal)

bash

运行

复制代码
# 连接数据库(本地)
mysql -u root -p
# 输入密码后回车(密码不显示,正常输入即可)

# 连接远程数据库(可选,新手暂不用)
mysql -u 用户名 -p -h 远程IP -P 端口号

# 退出数据库
exit;  # 或 quit;

二、核心操作:数据库(DB)的创建 / 查看 / 删除

1. 查看所有数据库

sql

复制代码
SHOW DATABASES;  -- 注意:SQL语句以分号结尾,大小写不敏感(推荐大写关键字)

效果:显示 MySQL 自带的默认数据库(如 mysql、information_schema)+ 你创建的数据库。

2. 创建数据库

sql

复制代码
-- 基础语法:CREATE DATABASE 数据库名;
CREATE DATABASE student_db;  -- 创建名为student_db的数据库

-- 进阶:指定字符集(避免中文乱码,必加!)
CREATE DATABASE student_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
  • utf8mb4:兼容所有中文 / 特殊字符(比 utf8 更完整)
  • COLLATE:排序规则,utf8mb4_unicode_ci 是通用推荐

3. 使用(切换)数据库

sql

复制代码
USE student_db;  -- 后续操作都针对student_db

4. 删除数据库(谨慎!不可逆)

sql

复制代码
DROP DATABASE student_db;  -- 删除整个数据库,包含所有表和数据

三、核心操作:数据表(Table)的创建 / 查看 / 修改 / 删除

1. 查看当前数据库的所有表

sql

复制代码
SHOW TABLES;

2. 创建数据表

语法

sql

复制代码
CREATE TABLE 表名 (
    字段名1 数据类型 [约束],
    字段名2 数据类型 [约束],
    ...
);

实战案例(创建学生表):

sql

复制代码
USE student_db;  -- 先切换到目标数据库

CREATE TABLE student (
    id INT PRIMARY KEY AUTO_INCREMENT,  -- 学号(主键,自增)
    name VARCHAR(20) NOT NULL,         -- 姓名(非空,最多20字符)
    age TINYINT,                       -- 年龄(小整数,范围-128~127)
    gender CHAR(1) DEFAULT '男',       -- 性别(默认值"男")
    score FLOAT(5,2),                  -- 成绩(总5位,小数2位,如98.50)
    create_time DATETIME DEFAULT NOW() -- 创建时间(默认当前时间)
);

新手必懂字段说明

表格

部分 解释
PRIMARY KEY 主键:唯一标识一条数据(如学号),不能重复、不能为空
AUTO_INCREMENT 自增:插入数据时无需手动填 id,自动从 1 开始递增
NOT NULL 非空:该字段必须填值,不能留空
DEFAULT 默认值:未填值时自动使用默认值
常用数据类型 INT(整数)、VARCHAR(n)(可变字符串)、CHAR(n)(固定字符串)、FLOAT(m,d)(浮点数)、DATETIME(时间)

3. 查看表结构(必查!确认字段是否正确)

sql

复制代码
DESC student;  -- 简写,全称:DESCRIBE student;

效果:显示表的字段名、类型、是否为空、主键、默认值等信息。

4. 修改数据表(常用)

sql

复制代码
-- 1. 添加字段(新增"地址"字段)
ALTER TABLE student ADD COLUMN address VARCHAR(100);

-- 2. 修改字段类型(修改"age"为INT类型)
ALTER TABLE student MODIFY COLUMN age INT;

-- 3. 删除字段(删除"address"字段)
ALTER TABLE student DROP COLUMN address;

-- 4. 修改表名
ALTER TABLE student RENAME TO student_info;

5. 删除数据表(谨慎!)

sql

复制代码
DROP TABLE student;  -- 删除整张表,包含所有数据

四、核心操作:数据的增删改查(CRUD,重中之重)

1. 新增数据(CREATE)

sql

复制代码
-- 方式1:指定字段插入(推荐,顺序可自定义)
INSERT INTO student (name, age, gender, score) 
VALUES ('张三', 18, '男', 95.5);

-- 方式2:插入多条数据(高效)
INSERT INTO student (name, age, gender, score) 
VALUES 
('李四', 19, '女', 88.0),
('王五', 20, '男', 92.5);

-- 方式3:不指定字段(需按表字段顺序填值,不推荐)
INSERT INTO student VALUES (NULL, '赵六', 17, '男', 85.0, NOW());
-- id是自增主键,填NULL会自动生成

2. 查询数据(READ,最常用)

sql

复制代码
-- 1. 查询所有字段、所有数据(*代表所有字段)
SELECT * FROM student;

-- 2. 查询指定字段
SELECT name, age, score FROM student;

-- 3. 条件查询(WHERE)
SELECT * FROM student WHERE age > 18;  -- 年龄大于18
SELECT * FROM student WHERE gender = '女' AND score >= 90;  -- 女生且成绩≥90

-- 4. 排序(ORDER BY,ASC升序/ DESC降序)
SELECT * FROM student ORDER BY score DESC;  -- 按成绩降序

-- 5. 限制查询结果数量(LIMIT,新手常用)
SELECT * FROM student LIMIT 2;  -- 只查前2条

3. 修改数据(UPDATE)

sql

复制代码
-- 修改单条数据(必加WHERE,否则修改全表!)
UPDATE student SET score = 90 WHERE id = 1;  -- 把id=1的成绩改为90

-- 修改多条数据
UPDATE student SET age = 20 WHERE gender = '女';  -- 所有女生年龄改为20

4. 删除数据(DELETE)

sql

复制代码
-- 删除单条数据(必加WHERE,否则删除全表!)
DELETE FROM student WHERE id = 3;  -- 删除id=3的记录

-- 删除全表数据(保留表结构,慎用)
DELETE FROM student;

五、实操建议

  1. 先创建数据库 → 再创建表 → 最后操作数据,按 "库→表→数据" 的顺序。
  2. 执行 SQL 前先检查:
    • 修改 / 删除数据是否加了WHERE条件(避免误操作);
    • 字段名、表名是否拼写正确;
    • SQL 语句是否以分号结尾。
  3. 测试数据:先插入 2-3 条测试数据,再练习查询、修改、删除,熟悉逻辑。

总结

  1. MySQL 核心操作分三层:数据库(创建 / 切换 / 删除)→ 数据表(创建 / 改结构 / 删除)→ 数据(增删改查)。
  2. 数据操作中,SELECT(查询)是最常用的,UPDATE/DELETE必须加WHERE条件避免误操作。
  3. 创建表时要指定合适的字段类型和约束(如NOT NULLPRIMARY KEY),字符集推荐utf8mb4避免中文乱码。
相关推荐
2401_832365529 小时前
JavaScript中rest参数(...args)取代arguments的优势
jvm·数据库·python
2301_779622419 小时前
Go语言怎么用信号量控制并发_Go语言semaphore信号量教程【入门】
jvm·数据库·python
love530love9 小时前
精简版|Claude-HUD 插件介绍 + 一键安装教程
人工智能·windows·笔记
2301_7662834410 小时前
c++如何将控制台输出保存到文件_cout重定向到txt【详解】
jvm·数据库·python
北极的冰箱10 小时前
MySQL Ver 8.0.41 for macos14.7密码遗忘
数据库·mysql
想成为优秀工程师的爸爸10 小时前
第三十篇技术笔记:郭大侠学UDS - 人有生老三千疾,望闻问切良方医
网络·笔记·网络协议·tcp/ip·信息与通信
XDH_CS10 小时前
MySQL 8.0 安装与 MySQL Workbench 使用全流程(超详细教程)
开发语言·数据库·mysql
秋911 小时前
MySQL 8.0.46 全平台安装与配置详解(Windows/Linux/macOS)
linux·windows·mysql
treacle田11 小时前
达梦数据库-统计信息收集-记录
数据库·达梦数据库统计信息收集
tq108611 小时前
数学:约束表征空间的最小闭包
笔记