MySQL基础入门
一、MySQL核心概念
MySQL是一款开源的关系型数据库管理系统(RDBMS),基于客户端-服务器(C/S)架构,核心作用是存储、管理数据,支持多用户、多线程并发访问,广泛应用于Web开发、小程序、后台系统等场景,特点是轻量、高效、易用、开源免费。
1.1 核心术语解释
-
数据库(Database):本质是一个数据文件集合,是存储数据的“容器”,比如一个电商系统的数据库,会存储用户、商品、订单等所有相关数据。
-
表(Table):数据库中的最小数据存储单元,用于存储同一类数据,比如“user”表存储所有用户信息,“goods”表存储所有商品信息。表由行和列组成,类比Excel表格(行=一条数据,列=一个字段)。
-
字段(Column):表中的一列,对应数据的一个属性,比如“user”表中的“id”“username”“age”都是字段,每个字段有固定的数据类型。
-
记录(Row):表中的一行,对应一条完整的数据,比如“user”表中一行数据,就是一个用户的完整信息(id=1,username=zhangsan,age=20)。
-
主键(Primary Key):表中唯一标识一条记录的字段,不能重复、不能为null,比如“user”表的“id”字段,通常作为主键,确保每条用户数据唯一。
-
SQL(Structured Query Language):结构化查询语言,用于和MySQL交互(创建数据库、查询数据、修改数据等),所有操作都通过SQL语句完成,语法统一、简单易懂。
1.2 MySQL与其他数据库的区别(入门了解)
入门阶段重点掌握MySQL即可,简单区分3种常用数据库:
-
MySQL:开源免费、轻量高效,适合中小型项目(Web、小程序等),学习成本低,是入门首选。
-
Oracle:收费、功能强大,适合大型企业级项目(银行、电商平台),性能好但学习成本高。
-
SQL Server:微软出品,适合Windows环境,中小型项目常用,兼容性强但跨平台性差。
二、MySQL环境搭建(Windows系统,新手友好)
入门阶段推荐使用“MySQL安装包+Navicat”组合,Navicat是可视化工具,无需记忆复杂命令,方便操作数据库(新手优先用可视化,后续再熟练命令行)。
2.1 安装MySQL(步骤简化,重点注意事项)
-
下载MySQL安装包:官网下载对应系统版本(推荐8.0版本,稳定且常用),避免下载最新测试版。
-
安装过程:下一步即可,重点设置“root用户密码”(记牢,后续登录需要),端口默认3306(不要随意修改,避免后续连接失败)。
-
验证安装:安装完成后,打开“命令提示符”,输入命令
mysql \-u root \-p,输入设置的密码,能成功进入MySQL命令行,即为安装成功。
2.2 安装Navicat(可视化工具)
-
下载Navicat(社区版或破解版,新手先用免费版即可),安装后打开。
-
新建连接:点击“连接”→“MySQL”,输入连接名(自定义,比如“本地MySQL”)、主机名(默认localhost)、端口(3306)、用户名(root)、密码(安装MySQL时设置的密码),点击测试连接,提示成功即可。
-
连接成功后,即可通过可视化界面操作数据库(创建数据库、表,查询数据等),无需输入复杂命令,新手友好。
注意事项:1. 安装MySQL时,密码不要设置太复杂,避免忘记;2. 若连接失败,检查MySQL服务是否启动(控制面板→服务→找到MySQL,确保状态为“正在运行”);3. 端口3306若被占用,可修改端口,但后续连接时需对应修改。
三、MySQL基础SQL操作(核心,必练)
SQL语句分为3大类,入门阶段重点掌握“DDL(数据定义语言)”和“DQL(数据查询语言)”,DML(数据操纵语言)简单了解,后续进阶再深入。所有SQL语句不区分大小写(推荐关键字大写,表名、字段名小写,规范易读),语句结尾必须加英文分号“;”。
3.1 DDL:数据定义语言(创建/删除/修改数据库、表)
核心作用:定义数据库和表的结构,常用命令:CREATE(创建)、DROP(删除)、ALTER(修改)。
1. 数据库操作(创建、查询、删除)
-- 1. 创建数据库(最常用,指定编码格式为utf8mb4,支持中文和特殊字符)
CREATE DATABASE IF NOT EXISTS test_db CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
-- 2. 查询所有数据库
SHOW DATABASES;
-- 3. 切换到指定数据库(操作表之前,必须先切换数据库)
USE test_db;
-- 4. 删除数据库(谨慎使用,删除后数据无法恢复)
DROP DATABASE IF EXISTS test_db;
说明:IF NOT EXISTS 表示“如果不存在则创建”,避免重复创建报错;utf8mb4是MySQL推荐的编码,支持所有中文和表情符号,避免中文乱码。
2. 表操作(创建、查询、修改、删除)
创建表是重点,必须指定“表名、字段名、字段数据类型、约束”,常用数据类型和约束如下:
-
常用数据类型:
-
INT:整数类型(比如年龄、ID,常用);
-
VARCHAR(n):字符串类型(比如用户名、手机号,n表示最大长度,比如VARCHAR(20)表示最多20个字符);
-
DATE:日期类型(格式YYYY-MM-DD,比如生日);
-
DATETIME:日期时间类型(格式YYYY-MM-DD HH:MM:SS,比如注册时间);
-
DECIMAL(m,n):小数类型(比如金额,m表示总长度,n表示小数位数,比如DECIMAL(10,2)表示最大10位数字,2位小数)。
-
-
常用约束:
-
PRIMARY KEY:主键约束,唯一且非空;
-
NOT NULL:非空约束,该字段不能为null(比如用户名、密码,必须填写);
-
UNIQUE:唯一约束,该字段值不能重复(比如手机号、邮箱);
-
DEFAULT:默认值约束,若该字段未填写,自动填充默认值(比如性别,默认值为“男”)。
-
-- 1. 创建表(以user表为例,包含常用字段和约束)
CREATE TABLE IF NOT EXISTS user (
id INT PRIMARY KEY AUTO_INCREMENT, -- 主键,自增(无需手动插入,自动递增)
username VARCHAR(20) NOT NULL UNIQUE, -- 用户名,非空、唯一
password VARCHAR(50) NOT NULL, -- 密码,非空
age INT DEFAULT 18, -- 年龄,默认值18
gender VARCHAR(10) DEFAULT '男', -- 性别,默认值男
register_time DATETIME DEFAULT CURRENT_TIMESTAMP -- 注册时间,默认当前时间
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 2. 查询当前数据库中的所有表
SHOW TABLES;
-- 3. 查询表结构(查看表的字段、数据类型、约束)
DESC user;
-- 4. 修改表(比如给user表添加一个email字段)
ALTER TABLE user ADD COLUMN email VARCHAR(50) UNIQUE;
-- 5. 删除表(谨慎使用,删除后表中所有数据丢失)
DROP TABLE IF EXISTS user;
重点说明:AUTO_INCREMENT 表示主键自增,适合ID字段,插入数据时无需填写ID,MySQL会自动生成唯一递增的ID;ENGINE=InnoDB 是MySQL默认的存储引擎,支持事务、主键约束等核心功能,不要修改。
3.2 DQL:数据查询语言(查询表中数据,最常用)
核心命令:SELECT,用于从表中查询指定数据,入门阶段掌握基础查询、条件查询、排序查询即可。
-- 先插入几条测试数据(后续查询用)
INSERT INTO user (username, password, age, gender, email)
VALUES
('zhangsan', '123456', 20, '男', 'zhangsan@163.com'),
('lisi', '654321', 22, '女', 'lisi@163.com'),
('wangwu', '111111', 19, '男', 'wangwu@163.com');
-- 1. 基础查询:查询表中所有字段的数据(*表示所有字段)
SELECT * FROM user;
-- 2. 指定字段查询:只查询username、age、gender字段(避免查询无用字段,提升效率)
SELECT username, age, gender FROM user;
-- 3. 条件查询:查询年龄大于20的用户(WHERE后面跟条件)
SELECT * FROM user WHERE age > 20;
-- 4. 多条件查询:查询年龄大于18且性别为男的用户(AND表示同时满足)
SELECT * FROM user WHERE age > 18 AND gender = '男';
-- 5. 排序查询:按年龄升序排列(ASC默认,可省略;DESC表示降序)
SELECT * FROM user ORDER BY age ASC;
SELECT * FROM user ORDER BY age DESC;
-- 6. 去重查询:查询所有性别,去除重复值(DISTINCT)
SELECT DISTINCT gender FROM user;
3.3 DML:数据操纵语言(简单了解,后续进阶)
核心作用:修改表中的数据,常用命令:INSERT(插入)、UPDATE(修改)、DELETE(删除),操作时需谨慎,避免误操作。
-- 1. 插入数据(INSERT,前面已用,注意字段和值一一对应)
INSERT INTO user (username, password, age) VALUES ('zhaoliu', '222222', 25);
-- 2. 修改数据(UPDATE,必须加WHERE条件,否则修改所有数据!)
UPDATE user SET age = 21 WHERE username = 'zhangsan'; -- 只修改zhangsan的年龄
-- 3. 删除数据(DELETE,必须加WHERE条件,否则删除所有数据!)
DELETE FROM user WHERE username = 'zhaoliu'; -- 只删除zhaoliu的数据
警告:UPDATE和DELETE语句,必须加WHERE条件,否则会修改/删除表中所有数据,且无法恢复;新手操作时,可先执行SELECT语句确认数据,再执行修改/删除操作。
四、MySQL基础规范(新手必遵守)
规范操作能避免后续出现数据混乱、查询效率低等问题,入门阶段养成良好习惯:
-
命名规范:数据库名、表名、字段名全部小写,用下划线分隔(比如test_db、user_info、user_name),避免大写和特殊字符。
-
编码规范:所有数据库、表统一使用utf8mb4编码,避免中文乱码。
-
SQL语句规范:关键字大写(SELECT、CREATE、WHERE等),字段名、表名小写,语句结尾加英文分号,复杂语句换行排版(便于阅读)。
-
安全规范:操作修改/删除数据时,先执行SELECT语句确认数据;避免使用DROP、DELETE不加WHERE条件;root用户密码定期修改,不要泄露。
-
设计规范:每个表必须有主键(优先用自增ID);字段尽量设置非空约束(避免null值,后续查询更方便);合理选择数据类型(比如年龄用INT,不要用VARCHAR)。
五、基础常见问题(新手避坑)
-
问题1:SQL语句报错“1064 - You have an error in your SQL syntax”? 解决:检查语句语法(比如是否漏加分号、关键字拼写错误、括号不匹配),SQL关键字不区分大小写,但不要拼写错误。
-
问题2:插入中文数据显示乱码? 解决:创建数据库、表时,指定编码为utf8mb4;检查Navicat连接的编码是否为utf8mb4。
-
问题3:连接MySQL失败? 解决:检查MySQL服务是否启动;检查主机名、端口、用户名、密码是否正确;端口是否被占用。
-
问题4:主键插入重复报错? 解决:主键具有唯一性,若主键是自增ID,无需手动插入;若手动插入,确保ID不重复。
六、基础总结
MySQL基础核心是“理解概念+掌握基础SQL”,重点记住3点:
-
核心概念:数据库→表→字段→记录,主键是表的唯一标识,SQL是操作MySQL的工具。
-
重点操作:会用DDL创建数据库、表;会用DQL查询数据(基础查询、条件查询);谨慎使用DML修改/删除数据。
-
新手避坑:遵守命名、编码规范;修改/删除数据必须加WHERE条件;遇到报错先检查语法和连接。
掌握以上内容,即可完成MySQL基础操作,后续进阶可学习复杂查询、事务、索引、权限管理等内容。 MySQL基础入门 一、MySQL核心概念 MySQL是一款开源的关系型数据库管理系统(RDBMS),基于客户端-服务器(C/S)架构,核心作用是存储