MySQL新手入门指南(一):从“小白懵”到“会操作”

一、先搞懂:数据库到底是个啥?

1. 为啥非得用数据库?文件存数据不香吗?

咱们先脑补一个“崩溃场景”:假设你用Excel(或普通文本文件)存数据,足足存了1T——啥概念?差不多是几百部高清电影的大小。里面长这样:

姓名  年龄  性别  住址
张三  23  男   北京西三旗
李四  24  女   北京西二旗
王五  25  男   西安软件新城
...(后面还有亿条数据)

现在需求来了:把“赵六”的年龄改成26。你以为双击修改就行?天真了!1T的数据根本装不进电脑内存,你得让电脑从头到位把这1T文件翻一遍,找到赵六那一行才能改——等改完,可能奶茶都凉了八杯,电脑还大概率卡崩。

这时候就需要“救星”了:既能把数据稳稳存住(专业说法叫“持久化存储”),又能快速找到、修改数据的技术——这就是数据库。简单说,它就是个“智能文件柜”,找东西不用全翻,喊一声就能定位。

2. 数据库:本质是个“智能数据仓库”

数据库(database,简称DB),说直白点就是个“存储数据的文件夹”,但比普通文件夹聪明——它会给数据分类、编索引,方便后续查找。

3. 数据库管理系统:数据库的“大管家”

数据库管理系统(DBMS),就是帮你管理这个“智能文件夹”的软件。比如MySQL、Oracle这些,就相当于“管家”——你不用自己动手整理数据,只要跟“管家”说指令(比如“找赵六的数据”“改张三的年龄”),它就帮你搞定。

4. MySQL的数据模型:套娃式存储,一层包一层

MySQL里的数据存储很有规律,就像套娃一样,层级分明:

数据库管理系统(MySQL) → 数据库(相当于“分类文件夹”) → 表(相当于“整理好的Excel表”) → 数据(相当于“Excel里的每一行内容”)

举个例子:MySQL是你家的“储物间”,数据库是储物间里的“抽屉”,表是抽屉里的“文件袋”,数据就是文件袋里的“纸条”——找东西按“储物间→抽屉→文件袋→纸条”的顺序,绝不会乱。

二、MySQL安装卸载:新手零踩坑指南

1. 安装:跟着步骤走,不用瞎琢磨

  1. 下载:找准官网老版本,稳定不翻车 地址放这了:https://downloads.mysql.com/archives/community/,直接下载“mysql-5.7.24-winx64.zip”,这个版本对新手友好,不容易出bug。
  2. 安装:解压就行,不用点下一步 把下载好的压缩包,直接解压到D盘根目录(比如“D:\mysql-5.7.24-winx64”),记住这个路径,后面要用。
  3. 配置环境变量:让电脑认得出MySQL 这步是为了让你在任何地方都能打开MySQL,不用每次都找安装路径: ① 新建系统变量:变量名写“MYSQL_HOME”,变量值写刚才的解压路径(D:\mysql-5.7.24-winx64); ② 找到“Path”变量,点击编辑,新增一条“%MYSQL_HOME%\bin”,保存退出。
  4. 测试:出现报错?正常!别慌 以管理员身份打开cmd(命令提示符),输入“mysql”,会出现“Can’t connect to MySQL server on ‘localhost’ (10061)”——这不是装错了,是因为还没初始化服务,继续往下走。
  5. 初始化MySQL:给数据库“搭骨架” 还是管理员cmd,输入“mysqld –initialize-insecure”,回车等待。完成后,你会发现MySQL文件夹里多了个“data”目录,里面已经自动建好了4个默认数据库——这就是MySQL的“初始骨架”。
  6. 注册MySQL服务:让它开机能自动跑 管理员cmd输入“mysqld -install”,回车后会提示服务安装成功。这时候打开电脑的“服务”(可以直接搜索“服务”),就能看到“MySQL”,默认是自动启动的。
  7. 启动/停止MySQL:控制“管家”上班下班 管理员cmd输入对应的命令: 启动:net start mysql(“管家”上班) 停止:net stop mysql(“管家”下班)
  8. 修改密码:给“管家”设个门禁 刚初始化的MySQL是免密码的,不安全。管理员cmd输入“mysqladmin -u root password 1111”,这里的“1111”就是你的密码,想改其他的也可以(比如123456,记得记牢)。
  9. 登录MySQL:跟“管家”打招呼 cmd输入“mysql -u root -p”,回车后输入刚才设的密码(1111),就能登录成功;也可以直接一步到位:“mysql -uroot -p1111”(注意u和root、p和密码之间没空格)。
  10. 退出MySQL:跟“管家”说再见 输入“exit”或“quit”,回车就能退出。

2. 卸载:干净收尾,别留“后遗症”

  1. 先停服务,再删服务 管理员cmd依次输入: net stop mysql(先让“管家”下班) mysqld -remove mysql(把“管家”解雇)
  2. 删除文件+清理环境变量 ① 删除MySQL解压目录:把D:\mysql-5.7.24-winx64整个删掉; ② 清理环境变量:删除“MYSQL_HOME”变量,再把Path里的“%MYSQL_HOME%\bin”删掉,保存退出。

三、数据库操作:跟“管家”说话的常用指令

注意:所有MySQL指令都要以“;”结尾,就像说话要加句号一样,不然“管家”不知道你说完了。

  1. 显示所有数据库:看看“储物间”里有哪些抽屉 指令:show databases; 效果:列出MySQL里所有已有的数据库。
  2. 使用数据库:选中一个“抽屉”开始操作 指令:use 数据库名;(比如use mysql;) 效果:切换到指定的数据库,后续操作都针对这个数据库。
  3. 创建数据库:新建一个“抽屉” 基础版:create database 数据库名;(比如create database db1;) 稳妥版:create database if not exists db1 default charset UTF8; 解释:“if not exists”是防止重复创建报错,“default charset UTF8”是设置字符集为UTF-8,避免中文乱码。
  4. 删除数据库:删掉一个“抽屉”(谨慎用!) 基础版:drop database 数据库名;(比如drop database db1;) 稳妥版:drop database if exists db2; 警告:删除后数据找不回来,一定要确认好再输!
  5. 查看数据库信息:看看“抽屉”的详细情况 查看指定数据库创建语句:show create database db1; 查看当前正在使用的数据库:select database();

四、常用数据类型:给数据“分个类”

就像收纳时要把衣服、书本分开放,MySQL里的数据也要分类——不同类型的字段存不同的数据,不然会乱套。常用的有这几类:

  • 数值类型:存数字的,比如smallint(小整数)、int(整数)、float(单精度小数)、double(双精度小数);
  • 字符类型:存文字的,比如varchar(可变长度字符串,比如姓名、电话)、text(长文本,比如文章内容);
  • 日期类型:存时间的,比如date(日期,比如2024-01-01)、datetime(日期+时间,比如2024-01-01 12:30:00);
  • boolean类型:存“是/否”的,用bit表示(通常0代表否,1代表是,比如性别:0=男,1=女)。

五、表操作:给“文件袋”做增删改查

表是数据库里实际存数据的地方,相当于“整理好的Excel表”,每个表有固定的字段(比如姓名、年龄),操作表是核心技能,重点记!

1. 创建表【重点中的重点!】

语法:先定义表名,再列出每个字段的名字和数据类型,字段之间用逗号分隔(最后一个字段不用加逗号)。

create table 表名(
  字段名1 数据类型,
  字段名2 数据类型,
  ...
);

案例:创建一个“学生表”(student),包含学号、姓名、性别、年龄等字段:

create table student(
  id int,  -- 学号,整数类型
  name varchar(50),  -- 姓名,最长50个字符
  sex bit,  -- 性别,0=男1=女
  age smallint,  -- 年龄,小整数足够
  hobby varchar(100),  -- 爱好,最长100个字符
  phone varchar(11),  -- 电话,11位手机号
  birthday date  -- 生日,日期类型
);

2. 查看表结构:看看“文件袋”里有哪些格子

指令1:show create table student;(查看表的创建语句,包括字符集等信息) 指令2:desc student;(简洁查看表的字段、类型、是否为空等,新手常用)

3. 删除表:删掉“文件袋”(谨慎用!)

基础版:drop table student; 稳妥版:drop table if exists student; 警告:删除表会把表里的所有数据一起删掉,一定要确认!

4. 修改表:给“文件袋”加/改/删格子

新增字段(比如给学生表加“身高”字段): alter table student add column stu_height int(11);

补充:如果要修改字段类型、删除字段,后续可以慢慢学,新手先掌握“新增”即可。

5. 显示所有表:看看当前“抽屉”里有哪些“文件袋”

指令:show tables;

六、数据操作:给“文件袋”里塞纸条、改纸条

1. 添加数据:往“文件袋”里塞纸条

语法:指定表名和要填的字段,再对应填字段值。

insert into 表名(字段名1, 字段名2...) values(字段值1, 字段值2...);

案例:往学生表塞数据,分三种常见情况:

  1. 插入所有字段:要按字段顺序填值,字符串和日期用单引号包裹; insert into student(id, name, sex, age, hobby, phone, birthday) values(1, ‘张三’, 0, 18, ‘打篮球’, ‘18812345678’, ‘2000-01-01’);
  2. 插入部分字段:只填需要的字段,没填的字段会留空; insert into student(name, sex) values(‘王五’, 1);
  3. 插入多行数据:用逗号分隔多个值列表,一次塞多条; insert into student(name, sex) values(‘赵六’, 0),(‘钱七’, 1);

2. 修改数据:改“纸条”上的内容(务必加条件!)

语法:指定表名、要改的字段和值,用where指定修改条件(不然会改全表!)。

update 表名 set 字段名1=字段值1, 字段名2=字段值2... where 条件;

案例:

  1. 修改全表数据(谨慎用!):没有where条件,会把表中所有行的该字段都改掉; update student set age=31;(所有学生年龄都变成31,除非特殊需求,别这么干!)
  2. 修改单行数据(常用):用where指定唯一条件(比如id),精准修改; update student set age=18 where id=1;(只把id=1的学生年龄改成18)
  3. 修改多个字段:多个字段用逗号分隔; update student set age=19, hobby=’唱跳 rup 篮球’ where sex=0;(把所有性别为0的学生,年龄改成19,爱好改成“唱跳 rup 篮球”)