一、数据库核心基础
数据库定义长期存储在计算机内、有组织、可共享的数据集合,是管理海量数据的超级仓库,优于纸质花名册与Excel,支持高效检索、多人协作、安全可靠。
数据库层级结构
数据库:整体数据集合(类比:整个学校)
数据表:数据库内分类存储单元(类比:学校各部门)
字段:数据表的列(表头)
记录:数据表的行(具体数据)
数据库管理系统(DBMS)数据库的专属管家,负责数据存储、访问、管理,主流类型:
MySQL:开源免费、轻巧灵活,校园/网站系统主流
Oracle:稳定性强、收费,银行/电信/大型企业常用
SQL Server:微软开发,适配Windows,政府单位常用
SQL(结构化查询语言)与数据库交互的专属语言,分为4类:
DDL(数据定义语言):CREATE、ALTER、DROP(库/表结构操作)
DML(数据操纵语言):INSERT、UPDATE、DELETE(数据增删改)
DQL(数据查询语言):SELECT(数据查询)
DCL(数据控制语言):GRANT、REVOKE(权限管理)
二、数据库连接与管理操作
Navicat可视化连接MySQL
打开Navicat → 点击「连接」→ 选择MySQL
填写信息:主机localhost、端口3306、用户名root、输入密码
测试连接→显示成功即完成,双击连接可操作数据库
命令行连接MySQL指令:
mysql -u root -p
-u:指定用户名-p:提示输入密码(输入不显示为正常)
创建数据库(school)
可视化:右键连接→新建数据库→命名school→字符集utf8→排序规则utf8_general_ci
命令行:
CREATE DATABASE school CHARACTER SET utf8 COLLATE utf8_general_ci;
创建学生表(users)
可视化:选中school库→右键表→新建表→添加id(主键)、name、password等字段→保存命名users
命令行:
USE school; CREATE TABLE users ( id INT PRIMARY KEY, name VARCHAR(50) NOT NULL, password VARCHAR(50) NOT NULL );
三、SQL核心CRUD操作(增删改查)
1. C(Create)新增数据
指令:INSERT INTO 表名(字段1,字段2) VALUES(值1,值2);示例:INSERT INTO users(id,name,password) VALUES(1,'niko','123456');
2. R(Read)查询数据
全表查询:
SELECT * FROM 表名;条件查询:
SELECT 字段 FROM 表名 WHERE 条件;多条件:AND(同时满足)、OR(任一满足)
模糊查询:
LIKE 'x%'(%代表任意字符)排序查询:
ORDER BY 字段 ASC/DESC(ASC升序/DESC降序)联合查询:
SELECT ... UNION SELECT ...(字段数/类型需兼容,SQL注入核心)
3. U(Update)修改数据
指令:UPDATE 表名 SET 字段=新值 WHERE 条件;高危提醒:必须加WHERE条件,否则修改全表数据
4. D(Delete)删除数据
指令:DELETE FROM 表名 WHERE 条件;高危提醒:必须加WHERE条件,否则清空全表数据且难以恢复
四、SQL注入漏洞(核心安全知识点)
漏洞危害最常见、最致命的Web漏洞,可绕过登录验证、窃取账号密码、篡改学生成绩/选课信息、泄露海量敏感数据。
攻击目标网站是攻击入口,数据库服务器是黑客核心目标(存储所有用户敏感数据)。
典型攻击步骤
用户名框输入任意用户名(如student)
密码框输入恶意代码:
123' or '1'='1点击登录,成功绕过验证
攻击原理向输入框注入恶意SQL片段,欺骗数据库执行非法操作。
法律约束《中华人民共和国网络安全法》明确禁止:
非法侵入网络、干扰网络功能、窃取网络数据
提供黑客工具、技术支持、广告推广、支付结算等帮助
五、关键安全与操作禁忌
网站是入口,数据库是数据核心与攻击靶心
UNION联合查询是SQL注入窃取多表数据的关键手段
UPDATE/DELETE操作必须加WHERE条件,避免数据灾难
输入框未过滤易引发SQL注入,是系统重大安全隐患