上午 3h MySQL 环境搭建 + 数据库 & 数据表操作
1.1 MySQL 安装与环境配置详解
1. 安装核心要点
- 下载社区免费版 MySQL8.0(企业版收费,学习用社区版)
- 安装注意事项
- 配置root 超级管理员密码(牢记,登录必备)
- 端口默认
3306,无需修改 - 选择Developer Default开发默认安装模式
- 配置环境变量:将
MySQL安装目录/bin加入系统 PATH,任意窗口可执行 mysql 命令
2. MySQL 服务启停(Windows)
- 命令行方式(管理员身份运行 CMD)
cmd
# 启动MySQL服务
net start mysql80
# 关闭MySQL服务
net stop mysql80
- 图形化:此电脑→管理→服务→找到 MySQL 手动启停
3. 登录与退出 MySQL
① 黑窗口原生登录
cmd
# 标准登录格式
mysql -u用户名 -p密码
# root用户登录示例
mysql -uroot -p123456
# 隐藏密码登录(推荐,安全)
mysql -uroot -p
输入密码回车即可进入数据库命令行界面
② 退出数据库
sql
exit;
quit;
4. 常用客户端连接方式
- 原生 CMD 命令行(基础必备)
- Navicat Premium(可视化工具,开发主流)
- DBeaver、SQLyog(免费可视化工具)连接三要素:主机localhost、端口 3306、账号密码
5. 字符集配置(重中之重,解决中文乱码)
MySQL8.0 默认字符集utf8mb4(支持所有中文 + 表情)低版本需手动配置,统一设置数据库字符集避免中文存入乱码
6. 基础权限了解
- root:最高权限管理员,拥有所有操作权限
- 普通用户:仅分配查询、新增等部分权限
- 学习阶段全程使用 root 用户即可
1.2 数据库基础命令(DDL 库操作)
语法通用规则
- SQL 语句大小写不敏感,建议关键字大写,表名字段小写规范书写
- 每条 SQL 语句结尾必须加分号; 结束
- 注释写法:
-- 单行注释/* 多行注释 */
1. 查看当前所有数据库
sql
SHOW DATABASES;
解释:查询 MySQL 服务器中已经创建好的全部数据库
2. 创建数据库
sql
-- 基础创建数据库
CREATE DATABASE 数据库名;
-- 标准规范创建(指定字符集,杜绝乱码)
CREATE DATABASE db_student DEFAULT CHARACTER SET utf8mb4;
详解
db_student:自定义数据库名(学生数据库)DEFAULT CHARACTER SET utf8mb4:指定数据库字符集为通用中文编码
3. 使用 / 切换数据库
sql
USE db_student;
核心 :所有表操作、数据操作必须先选中数据库,否则报错
4. 删除数据库
sql
-- 危险语句,删除后数据全部丢失无法恢复
DROP DATABASE 数据库名;
DROP DATABASE db_student;
重点提醒:工作中严禁随意执行 DROP 删除语句
1.3 数据表操作 + 字段类型 + 主键约束
1. MySQL 常用字段数据类型(必背)
表格
| 数据类型 | 作用 | 使用场景 |
|---|---|---|
| int | 整数类型 | 年龄、编号、成绩 |
| varchar (长度) | 可变长度字符串 | 姓名、地址、手机号(最常用) |
| double | 小数类型 | 分数、价格、薪资 |
| date | 日期类型 | 生日、入学日期 格式:yyyy-MM-dd |
| char (长度) | 固定长度字符串 | 性别、状态码 |
2. 核心约束:主键约束 PRIMARY KEY
- 作用:唯一标识表中每一行数据,非空且唯一,不能重复、不能为空
- 业务场景:学生编号、用户 ID、商品 ID,每张表必须设置主键
3. 创建数据表完整语法
sql
-- 语法格式
CREATE TABLE 表名(
字段名1 数据类型 约束,
字段名2 数据类型 约束,
字段名3 数据类型 约束
);
-- 实战:创建学生表 student
CREATE TABLE student(
sid INT PRIMARY KEY, -- 学生编号 主键
sname VARCHAR(20), -- 学生姓名
sage INT, -- 学生年龄
sgender CHAR(2), -- 学生性别
sbirth DATE, -- 出生日期
sscore DOUBLE -- 考试分数
);
逐行详解
sid INT PRIMARY KEY:定义整型学生编号,设置为主键,唯一不重复sname VARCHAR(20):姓名可变字符串,最大存储 20 个字符- 最后一行字段末尾不要加逗号,语法规范
4. 查看表结构
sql
-- 简洁查看表字段
DESC student;
-- 完整查看建表语句
SHOW CREATE TABLE student;
5. 修改数据表(计划重点补充)
sql
-- 1. 添加新字段
ALTER TABLE student ADD saddress VARCHAR(50);
-- 2. 修改字段数据类型
ALTER TABLE student MODIFY sname VARCHAR(30);
-- 3. 删除表中字段
ALTER TABLE student DROP COLUMN saddress;
-- 4. 修改表名
ALTER TABLE student RENAME TO stu;
6. 删除数据表
sql
DROP TABLE student;
下午 2.5h DML 增删改 + 基础条件查询
2.1 DML 数据增删改操作(业务最常用)
1. 插入数据 INSERT
① 单行指定字段插入
sql
INSERT INTO student(sid,sname,sage,sgender,sbirth,sscore)
VALUES(1,'张三',20,'男','2005-01-10',90.5);
解释:精准给对应字段插入数据,字段与值一一对应
② 单行全字段插入(省略字段名)
sql
INSERT INTO student
VALUES(2,'李四',19,'女','2006-02-15',88.0);
要求:值的顺序、数量必须和建表字段顺序完全一致
③ 多行批量插入(高效写法)
sql
INSERT INTO student VALUES
(3,'王五',21,'男','2004-05-20',76.5),
(4,'赵六',18,'女','2007-03-08',95.0),
(5,'孙七',20,'男','2005-09-12',82.0);
2. 修改数据 UPDATE(重点防全表修改)
语法:UPDATE 表名 SET 字段 = 值 WHERE 条件;
sql
-- 带条件修改(安全写法,只改指定数据)
UPDATE student SET sscore=92 WHERE sid=1;
-- 同时修改多个字段
UPDATE student SET sage=22,sgender='女' WHERE sid=3;
致命禁忌
sql
-- 无WHERE条件,修改整张表所有数据,生产绝对禁用
UPDATE student SET sscore=100;
3. 删除数据 DELETE
sql
-- 条件删除:删除指定编号学生
DELETE FROM student WHERE sid=5;
-- 清空表所有数据(危险)
DELETE FROM student;
补充区分(计划必补知识点)
DELETE:删除表数据,表结构保留,可恢复TRUNCATE TABLE 表名:清空全表数据,速度更快,无法回滚
2.2 基础查询语句 SELECT
1. 查询全表所有字段数据
sql
SELECT * FROM student;
* 代表通配符,查询表中全部字段
2. 查询指定字段数据
sql
-- 只查询姓名、年龄、分数
SELECT sname,sage,sscore FROM student;
-- 字段起别名 AS 简化显示
SELECT sname AS 姓名,sage AS 年龄 FROM student;
2.3 条件查询 WHERE(核心重点)
1. 关系运算符
> < >= <= = !=
sql
-- 查询年龄大于19岁的学生
SELECT * FROM student WHERE sage>19;
-- 查询分数不等于90分的学生
SELECT * FROM student WHERE sscore!=90;
2. 逻辑运算符 AND / OR / NOT
sql
-- AND 同时满足两个条件:年龄20岁 且 男生
SELECT * FROM student WHERE sage=20 AND sgender='男';
-- OR 满足其一即可:分数大于90 或者 女生
SELECT * FROM student WHERE sscore>90 OR sgender='女';
-- NOT 取反
SELECT * FROM student WHERE NOT sage=20;
3. 范围查询 BETWEEN AND
sql
-- 查询分数在80~95之间的学生(包含首尾数值)
SELECT * FROM student WHERE sscore BETWEEN 80 AND 95;
4. 集合查询 IN
sql
-- 查询编号为1、3、4的学生
SELECT * FROM student WHERE sid IN(1,3,4);
5. 空值判断 NULL
注意 :MySQL 中null不能用=判断,必须用IS NULL / IS NOT NULL
sql
-- 查询生日为空的学生
SELECT * FROM student WHERE sbirth IS NULL;
-- 查询生日不为空的学生
SELECT * FROM student WHERE sbirth IS NOT NULL;
晚上 1.5h 排序查询 + 分页查询 + 综合实战
3.1 排序查询 ORDER BY
1. 基础升降序
ASC:升序(从小到大,默认可不写)DESC:降序(从大到小)
sql
-- 分数升序排列
SELECT * FROM student ORDER BY sscore ASC;
-- 分数降序排列(成绩从高到低)
SELECT * FROM student ORDER BY sscore DESC;
2. 多字段排序(先按第一个字段,相等再按第二个)
sql
-- 先按年龄降序,年龄相同再按分数升序
SELECT * FROM student ORDER BY sage DESC,sscore ASC;
3.2 分页查询 LIMIT(项目必备)
标准语法
sql
SELECT 字段 FROM 表名 LIMIT 起始索引,每页展示条数;
核心计算公式(必记)
起始索引 = (当前页码 - 1) * 每页条数
实战案例
假设:每页展示 2 条数据
sql
-- 第1页:(1-1)*2=0
SELECT * FROM student LIMIT 0,2;
-- 第2页:(2-1)*2=2
SELECT * FROM student LIMIT 2,2;
-- 第3页:(3-1)*2=4
SELECT * FROM student LIMIT 4,2;
详解
- 第一个数字:从第几条数据开始查(索引从 0 开始)
- 第二个数字:一页显示多少条数据
3.3 全天全套综合实战练习(必完成)
完整流程:建库→建表→插数据→增删改查→条件→排序→分页
sql
-- 1. 创建学生数据库
CREATE DATABASE db_school DEFAULT CHARACTER SET utf8mb4;
-- 2. 使用数据库
USE db_school;
-- 3. 创建学生表
CREATE TABLE student(
sid INT PRIMARY KEY,
sname VARCHAR(20),
sage INT,
sgender CHAR(2),
sscore DOUBLE
);
-- 4. 批量插入测试数据
INSERT INTO student VALUES
(1,'小明',19,'男',85),
(2,'小红',18,'女',96),
(3,'小刚',20,'男',79),
(4,'小丽',19,'女',92),
(5,'小华',21,'男',88);
-- 5. 条件查询:查询19岁女生
SELECT * FROM student WHERE sage=19 AND sgender='女';
-- 6. 排序查询:分数降序
SELECT * FROM student ORDER BY sscore DESC;
-- 7. 分页查询:每页2条,查询第2页数据
SELECT * FROM student LIMIT 2,2;
-- 8. 修改数据:把小刚分数改为86
UPDATE student SET sscore=86 WHERE sid=3;
-- 9. 删除数据:删除编号5的学生
DELETE FROM student WHERE sid=5;
计划缺失重要知识点全面补充(必学)
-
SQL 语句四大分类区分
- DDL:库、表结构操作(CREATE/ALTER/DROP)
- DML:数据增删改(INSERT/UPDATE/DELETE)
- DQL:数据查询(SELECT 90% 开发常用)
- DCL:权限管理(学习阶段暂不学)
-
主键自增 AUTO_INCREMENT 实际开发主键无需手动赋值,设置自增
sql
sid INT PRIMARY KEY AUTO_INCREMENT -
去重查询 DISTINCT
sql
SELECT DISTINCT sage FROM student; -
模糊查询 LIKE(高频遗漏)
sql
-- %匹配任意字符,查询姓小的学生 SELECT * FROM student WHERE sname LIKE '小%'; -
执行顺序 :
FROM → WHERE → ORDER BY → LIMIT -
事务基础认知:增删改属于 DML 会触发事务,查询不会改动数据
Day31 完整版验收标准
- 独立完成 MySQL 安装、环境变量配置、服务启停、账号登录
- 熟练使用库操作命令:建库、查库、选库、删库
- 掌握数据表创建、修改、删除,熟记常用字段类型与主键约束
- 熟练编写单行 / 多行 INSERT 插入、条件 UPDATE 修改、条件 DELETE 删除
- 精通全表查询、指定字段查询、多条件组合查询
- 熟练使用升降序排序、多字段排序语法
- 牢记分页计算公式,独立编写 LIMIT 分页 SQL
- 独立完成学生表全套业务 SQL 手写练习
- 区分危险 SQL 语句,杜绝无条件修改、删除全表数据
核心语句速查清单
(按你今天的学习顺序整理,每句都能直接复制执行)
一、MySQL 服务 & 登录命令
1. 服务启停(CMD 管理员权限)
cmd
# 启动MySQL服务(用你自己的服务名,比如MySQL84)
net start MySQL84
# 停止MySQL服务
net stop MySQL84
2. CMD 登录 MySQL(需配置环境变量或进入 bin 目录)
cmd
# 安全登录方式(推荐,隐藏密码)
mysql -uroot -p
# 退出MySQL
exit;
quit;
二、数据库操作(DDL)
1. 查看所有数据库
sql
SHOW DATABASES;
2. 创建数据库(指定字符集,防乱码)
sql
CREATE DATABASE db_student DEFAULT CHARACTER SET utf8mb4;
3. 使用 / 切换数据库
sql
USE db_student;
4. 删除数据库(危险操作,慎用)
sql
DROP DATABASE db_student;
三、数据表操作(DDL)
1. 创建数据表(带主键约束)
sql
CREATE TABLE student(
sid INT PRIMARY KEY AUTO_INCREMENT, -- 主键+自增(开发常用)
sname VARCHAR(20),
sage INT,
sgender CHAR(2),
sscore DOUBLE
);
2. 查看表结构
sql
DESC student;
3. 删除数据表(危险操作,慎用)
sql
DROP TABLE student;
四、数据增删改(DML)
1. 插入数据(INSERT)
sql
-- 单行插入(指定字段)
INSERT INTO student(sid, sname, sage) VALUES(1, '张三', 20);
-- 多行批量插入(高效写法)
INSERT INTO student VALUES
(2, '李四', 19, '女', 88),
(3, '王五', 21, '男', 76);
2. 修改数据(UPDATE,必须带条件!)
sql
-- 安全修改(只改指定数据)
UPDATE student SET sscore=92 WHERE sid=1;
-- 同时修改多个字段
UPDATE student SET sage=22, sgender='女' WHERE sid=3;
3. 删除数据(DELETE,必须带条件!)
sql
-- 条件删除(安全写法)
DELETE FROM student WHERE sid=5;
五、数据查询(DQL)
1. 基础查询
sql
-- 查询全表所有字段
SELECT * FROM student;
-- 查询指定字段
SELECT sname, sage, sscore FROM student;
-- 字段起别名
SELECT sname AS 姓名, sscore AS 分数 FROM student;
2. 条件查询(WHERE)
sql
-- 关系运算符
SELECT * FROM student WHERE sscore > 90;
SELECT * FROM student WHERE sage != 20;
-- 逻辑运算符 AND / OR
SELECT * FROM student WHERE sage=19 AND sgender='女';
SELECT * FROM student WHERE sscore>90 OR sgender='男';
-- 范围查询 BETWEEN AND
SELECT * FROM student WHERE sscore BETWEEN 80 AND 95;
-- 集合查询 IN
SELECT * FROM student WHERE sid IN(1,3,4);
-- 空值判断
SELECT * FROM student WHERE sbirth IS NULL;
SELECT * FROM student WHERE sbirth IS NOT NULL;
3. 排序查询(ORDER BY)
sql
-- 分数降序(从高到低)
SELECT * FROM student ORDER BY sscore DESC;
-- 多字段排序(先按年龄降序,再按分数升序)
SELECT * FROM student ORDER BY sage DESC, sscore ASC;
4. 分页查询(LIMIT,项目必备)
sql
-- 语法:LIMIT 起始索引, 每页条数
-- 起始索引 = (当前页码 - 1) * 每页条数
-- 第1页(每页2条)
SELECT * FROM student LIMIT 0, 2;
-- 第2页(每页2条)
SELECT * FROM student LIMIT 2, 2;
六、今日必背高频易错点
- 危险语句 :
UPDATE/DELETE不加WHERE会全表修改 / 删除,严禁乱用 - 主键约束 :
PRIMARY KEY必须非空且唯一,每张表必须设置 - 字符集 :建库时指定
utf8mb4,避免中文乱码 - 分页公式:起始索引 = (当前页码 - 1) × 每页条数
- SQL 结尾 :每条语句必须加
;结束