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