本篇带你零基础入门MySQL,从数据库原理、SQL语法、库表操作、字段约束、基础查询手把手吃透,零基础也能一次性学懂、直接上手开发。

本篇核心学习目标:
-
理解数据库作用、MySQL架构与存储原理
-
掌握SQL四大分类(DDL/DML/DQL/DCL)
-
精通数据库、数据表的创建、修改、删除操作
-
掌握常用数据类型,学会合理设计字段
-
吃透六大字段约束(主键、非空、唯一、默认、外键、自增)
-
熟练掌握基础单表查询、条件、排序、分页
-
掌握数据库入门高频面试与开发规范
一、数据库核心认知(零基础必懂)
1.1 什么是数据库?
数据库是长期存储在计算机中、结构化、可共享、统一管理的数据集合。
通俗理解:
之前Java程序数据存在内存/文件中,不安全、不易查询、不易管理。
数据库就是专门用来永久保存、管理、查询数据的软件。
1.2 为什么要用数据库?
-
数据永久存储,断电不丢失
-
查询速度极快,支持海量数据检索
-
支持数据约束,保证数据规范、安全
-
支持多用户、多程序共享访问
-
支持事务,保证数据一致性
1.3 常见数据库分类
-
关系型数据库(主流):MySQL、Oracle、SQL Server
-
非关系型数据库:Redis、MongoDB
Java后端入门与开发首选MySQL:免费、开源、轻量、生态最全。
二、数据库完整存储结构
数据存储层级从大到小:数据库 → 数据表 → 字段(列) → 数据(行)
2.1 层级通俗解释
-
数据库:相当于一个文件夹,存放整套项目所有数据
-
数据表:相当于Excel表格,分门别类存储数据(用户表、订单表)
-
字段/列:表格标题(用户名、密码、年龄)
-
数据/行:每一条具体的记录
三、SQL语句四大分类(必背)
SQL是操作数据库的统一语言,所有数据库通用。
SQL分为四大类,开发各司其职:
| 分类 | 全称 | 作用 | 常用语句 |
|---|---|---|---|
| DDL | 数据定义语言 | 定义库、表结构 | CREATE、ALTER、DROP |
| DML | 数据操纵语言 | 增删改数据 | INSERT、UPDATE、DELETE |
| DQL | 数据查询语言 | 查询数据(开发最多) | SELECT |
| DCL | 数据控制语言 | 权限、事务控制 | GRANT、COMMIT、ROLLBACK |
四、DDL语句:数据库操作
4.1 创建数据库
sql
-- 创建数据库
CREATE DATABASE mydb;
-- 创建数据库(不存在才创建,防止报错)
CREATE DATABASE IF NOT EXISTS mydb;
-- 创建数据库并指定编码
CREATE DATABASE mydb DEFAULT CHARACTER SET utf8mb4;
4.2 查看数据库
sql
-- 查看所有数据库
SHOW DATABASES;
-- 查看数据库创建语句
SHOW CREATE DATABASE mydb;
4.3 修改数据库编码
sql
ALTER DATABASE mydb DEFAULT CHARACTER SET utf8mb4;
4.4 删除数据库
sql
-- 谨慎操作!删除不可恢复
DROP DATABASE IF EXISTS mydb;
4.5 使用/切换数据库
sql
USE mydb;
五、DDL语句:数据表操作
5.1 常用MySQL数据类型
建表必须指定字段类型,常用类型熟记:
| 类型 | 说明 |
|---|---|
| int | 整型,存放数字、年龄、编号 |
| varchar(n) | 可变字符串,存放用户名、密码、地址 |
| char(n) | 固定长度字符串,适合手机号、身份证 |
| double | 小数,存放金额、分数 |
| date | 日期格式:年月日 |
| datetime | 完整时间:年月日时分秒 |
5.2 创建数据表(核心)
sql
-- 创建用户表
CREATE TABLE user(
id INT,
username VARCHAR(20),
password VARCHAR(20),
age INT,
create_time DATETIME
);
5.3 查看、删除、修改表
sql
-- 查看当前库所有表
SHOW TABLES;
-- 查看表结构
DESC user;
-- 删除表
DROP TABLE IF EXISTS user;
-- 修改表名
ALTER TABLE user RENAME TO new_user;
-- 添加字段
ALTER TABLE user ADD email VARCHAR(30);
-- 修改字段类型
ALTER TABLE user MODIFY username VARCHAR(50);
-- 删除字段
ALTER TABLE user DROP email;
六、六大字段约束(数据库灵魂、面试必考)
约束作用:限制字段数据,保证数据合法、完整、唯一、安全。
六大常用约束:
6.1 约束详解
-
主键约束 PRIMARY KEY:唯一标识、非空、唯一、一张表只能有一个
-
自增约束 AUTO_INCREMENT:数值自动递增,无需手动赋值
-
非空约束 NOT NULL:字段不能为空,必须赋值
-
唯一约束 UNIQUE:数据不能重复(手机号、账号)
-
默认约束 DEFAULT:不赋值时使用默认值
-
外键约束 FOREIGN KEY:关联两张表,保证关联数据完整性
6.2 带约束建表实战(标准开发写法)
sql
CREATE TABLE user(
id INT PRIMARY KEY AUTO_INCREMENT, -- 主键+自增
username VARCHAR(20) NOT NULL, -- 非空
phone CHAR(11) UNIQUE, -- 唯一
age INT DEFAULT 18 -- 默认值18
);
开发规范:每张表必须有主键!
七、DML增删改数据
7.1 新增数据 INSERT
sql
-- 指定字段新增
INSERT INTO user(username,phone,age) VALUES ('张三','13800138000',20);
-- 全字段新增
INSERT INTO user VALUES (NULL,'李四','13900139000',22);
7.2 修改数据 UPDATE
sql
-- 带条件修改(精准修改)
UPDATE user SET age=25 WHERE username='张三';
-- 批量修改
UPDATE user SET age=30;
开发严禁不带条件修改!会修改全表数据!
7.3 删除数据 DELETE
sql
-- 删除指定数据
DELETE FROM user WHERE username='李四';
-- 清空全表
DELETE FROM user;
八、DQL基础查询(开发最常用)
8.1 基础查询语法
sql
-- 查询所有字段
SELECT * FROM user;
-- 查询指定字段
SELECT username,age FROM user;
-- 别名查询
SELECT username AS 用户名,age AS 年龄 FROM user;
-- 去重查询
SELECT DISTINCT age FROM user;
8.2 条件查询 WHERE
sql
-- 查询年龄等于20
SELECT * FROM user WHERE age=20;
-- 查询年龄大于18
SELECT * FROM user WHERE age>18;
-- 区间查询
SELECT * FROM user WHERE age BETWEEN 18 AND 30;
-- 模糊查询
SELECT * FROM user WHERE username LIKE '%张%';
8.3 排序查询 ORDER BY
sql
-- 升序(默认)
SELECT * FROM user ORDER BY age ASC;
-- 降序
SELECT * FROM user ORDER BY age DESC;
8.4 分页查询 LIMIT(开发高频)
sql
-- 每页展示2条数据,第1页
SELECT * FROM user LIMIT 0,2;
-- 每页2条,第2页
SELECT * FROM user LIMIT 2,2;
分页公式:起始索引 = (页码-1) * 每页条数
九、新手易错坑汇总
-
修改、删除必须加where条件,否则操作全表数据
-
数据表必须设置主键,保证数据唯一性
-
字符串、日期必须加单引号
-
varchar必须指定长度,合理设计字段类型
-
数据库编码统一utf8mb4,防止中文乱码
-
自增主键无需手动赋值,写NULL即可
十、本篇总结
本篇搞定MySQL入门全部核心,核心口诀速记:
-
数据层级:数据库→数据表→字段→数据
-
SQL四大类:DDL结构、DML增删改、DQL查询、DCL权限
-
六大约束保证数据完整性,主键自增是建表标配
-
熟练掌握库表操作、数据增删改、条件排序分页查询
-
严格遵守开发规范,避免全表更新、删除事故