一、先搞懂:数据库到底是什么?
数据库就是长期存在计算机里、有组织、可共享的超级数据仓库,和 Excel 比优势巨大:
- 支持上亿条数据
- 多人同时操作不乱
- 高效查询、安全可控
数据库层级(用学校类比,秒懂)
表格
| 层级 | 类比 | 示例 |
|---|---|---|
| 数据库 | 整个学校 | school(存所有校园数据) |
| 数据表 | 各个部门 | users(学生账号)、classes(班级) |
| 字段 + 数据 | 表头 + 每行内容 | id、name;2025001、张三 |
数据库管理系统 DBMS(数据库的 "管家")
负责管权限、存数据、定规则,主流 3 种:
- Oracle:强、收费,银行 / 电信用
- SQL Server:Windows 友好,政府常用
- MySQL :开源免费、轻巧,网站 / 校园系统首选(本文重点)
二、2 种连接 MySQL 的方式:可视化 + 命令行
1)Navicat 可视化连接
- 打开 Navicat → 连接 → MySQL
- 填信息:
- 主机:localhost
- 端口:3306
- 用户名:root
- 密码:安装时设置
- 测试连接 → 成功即可用
2)命令行连接
mysql -u root -p
回车输密码,看不见是正常的。
三、动手建库建表:school 库 + users 学生表
1)创建 school 数据库
CREATE DATABASE school CHARACTER SET utf8 COLLATE utf8_general_ci;
2)创建 users 表(存账号密码)
USE school;
CREATE TABLE users (
id INT PRIMARY KEY, -- 主键唯一
name VARCHAR(50) NOT NULL, -- 姓名非空
id_card VARCHAR(18) NOT NULL,
phone VARCHAR(11) NOT NULL,
address TEXT,
password VARCHAR(255) NOT NULL
);
字段含义一看就懂:主键、非空、长度限制,保证数据规范。
四、SQL 核心:CRUD 增删改查(必背)
SQL 就是和数据库对话的语言,也是黑客偷数据的工具。
1)C 新增 INSERT
INSERT INTO users(id,name,id_card,phone,address,password)
VALUES(3,'shiro','123456789','123456789','中国','123456');
2)U 修改 UPDATE
千万不能漏 WHERE,否则全表被改!
UPDATE users SET password='newpass789' WHERE id=2;
3)D 删除 DELETE
漏 WHERE 直接清空表,很难恢复!
DELETE FROM users WHERE id=1;
4)R 查询 SELECT(黑客最爱的语句)
-
查所有
SELECT * FROM users;
-
条件查询
SELECT name,password FROM users WHERE id=1;
-
多条件(AND/OR)
SELECT * FROM users WHERE id=2 OR id=3;
-
模糊查询 LIKE
SELECT * FROM users WHERE name LIKE 'x%';
-
排序 ORDER BY
SELECT name FROM users ORDER BY id DESC;
-
联合查询 UNION(SQL 注入核心)
SELECT name,password FROM users UNION SELECT 1,2;
作用:合并多个查询结果,黑客用来跨表偷数据。
五、重点:为什么会被 SQL 注入?真实原理
很多网站、教务系统被拖库、改成绩,90% 是 SQL 注入漏洞。
注入演示(极简复现)
登录框这样输:
- 用户名:随便填
- 密码:
123' or '1'='1
点击登录 → 直接绕过验证!
为什么能成功?
后台拼接 SQL 变成:
SELECT * FROM users WHERE name='xxx' AND password='123' or '1'='1'
'1'='1'永远为真,条件直接成立,登录被绕过。
真相:
网页只是 "门面",数据库才是黑客的真正目标,所有账号、密码、隐私都存在这里。
六、安全底线:法律 + 防护意识
根据《网络安全法》:
- 不得非法侵入、窃取数据
- 不得提供攻击工具、技术支持
- 违者承担法律责任
基础防护思路:
- 过滤用户输入,禁止直接拼接 SQL
- 使用预编译语句 / 参数化查询
- 严格权限,最小够用原则
总结
- 数据库 = 超级仓库;DBMS = 管家;MySQL = 最常用
- 操作 =CRUD:增 INSERT、改 UPDATE、删 DELETE、查 SELECT
- 漏洞 =SQL 注入:恶意拼接 SQL,绕过验证、偷数据