WEB安全
00-HTTP协议
01-前端基础【HTML】
02-前端基础【CSS】
03-后端基础【PHP速通】
04-后端基础【PHP面向对象】
05-MySQL基础操作
06-前后端联动【代码练习】
07-SQL注入
08-SQL注入 Labs
09-跨站脚本攻击【XSS】
09-XSS Labs
10-CSRF
11-SSRF
12-XML 外部实体注入【XXE】
13-代码执行漏洞
14-命令执行漏洞
15-文件包含漏洞
16-文件上传漏洞
17-反序列化漏洞
18-业务逻辑漏洞
19-未授权访问漏洞集合
20-跨源资源共享【CORS】
21-SSTI模板注入
22-并发漏洞
23-点击劫持【Clickjacking 】
24-请求走私
25-路径遍历
26-访问控制
27-身份验证漏洞
28-WebSocket
29-Web缓存中毒
30-HTTP 主机头攻击
31-信息泄露漏洞
32-原型污染
33-API概述
34-API分类类型
35-API交换格式
36-API身份验证
37-API常见漏洞
38-crAPI靶场
39-JWT
40-DVGA靶场
41-服务器端参数污染
42-API Labs
43-OAuth Labs
44-GraphQL API Labs
45-JWT Labs
46-小程序抓包
47-云存储
48-对象存储OSS
49-存储桶
50-存储桶漏洞
51-STS访问OSS
-
+
05-MySQL基础操作
浏览
2
# 一、关于数据 ## 数据 1、数据(Date) 是用来描述事物的记录符号,是数据库中存储的基本对象,数据库的核心。 2、数据的形式多种多样,包括:数字、字母、文字、图形、声音、动画等。 ## 信息 1、信息通常指被加工处理过的数据, 是行为、决策的基础。 2、数据库软件不仅仅保存数据,而且具有加工数据产生信息的能力。 信息 = 数据 + 处理。 ## 数据库 1、数据库(DataBase 简称DB),是长期储存在计算机内、有组织的、可共享的相关数据的集合。 2、数据库不仅仅包括数据本身,还包括数据间的联系,而且能够被不同用户和程序访问。 ## 数据库系统 1、数据库系统(DataBase System 简称DBS),指在计算机系统中引入数据库后的系统构成。 2、主要包括:数据库、硬件、软件、数据库管理系统、数据库管理员、数据库用户。 注意:DBMS在操作系统的支持下工作,应用程序DBMS支持下才能使用数据库。 ## 数据管理系统 1、数据库管理系统(DataBase Management System 简称为DBMS)是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库。 2、数据库管理系统有:MySQL、Oracle、Microsoft SQL server、Microsoft Access等等。 3、数据库管理系统是数据库系统的核心,是管理数据库的软件。 4、主要功能: * 数据定义功能(建库建表等); * 数据操纵功能(增删查改); * 数据运行管理功能; * (备份还原等)。 ## 数据库管理人员 1、数据库管理人员(DataBase Administrator 简称DBA)是从事管理和维护数据库管理系统(DBMS)的相关工作人员的统称。 2、DBA的主要职责是运维和管理数据库管理系统,如数据备份还原等。 # 二、概述 MySQL是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的RDBMS (Relational Database Management System,关系数据库管理系统)应用软件之一。 MySQL是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。 MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型和大型网站的开发都选择 MySQL作为网站数据库。 # 三、表结构 库--表--字段名--数据 MySQL表由information\_schema表、schemata表、tables表和columns表等组成,如数据库名、表名、列的数据类型,以及访问权限等。 information\_schema表:MySQL自带的系统数据库,用于存储数据库元数据(关于数据的数据),如数据库名、表名、列的数据类型,以及访问权限等。 schemata表:存储数据库名的表,当前MySQL实例的所有数据库(select schema\_name from schemata)。 tables表:存储数据库及数据库中的表名(select table\_schema,table\_name from information\_schema.tables)。 columns表:存储数据库、表,以及表中的字段(select group\_concat(column\_name) from information\_schema.columns)。  # 四、库操作 ## 增加库 create database 库名;  ## 查看当前有哪些数据库 show databses;  ## 切换数据库 需要使用哪个数据库就使用use 库名;  ## 删除数据库 drop database 库名;  # 五、表操作 ## 增加 创建表,格式: ```sql create table 表名(字段名1 字段类型,字段名2 字段类型, ...); ``` ```sql create table users(name varchar(200),age int); ```  向表中增加数据,格式: ```sql INSERT INTO table_name (column1, column2, column3, ...) VALUES (value1, value2, value3, ...); ``` 注意:如果数据是字符型,必须使用单引号 ' 或者双引号 ",如: 'value1', "value1"。 ```sql mysql> insert into users (name,age) values ('Ming',20); Query OK, 1 row affected (0.00 sec) mysql> insert into users values ('Lin',22); Query OK, 1 row affected (0.00 sec) ```  也可以进行批量插入数据 ```sql mysql> insert into users values ('Hong',18),('Kong',25); Query OK, 2 rows affected (0.00 sec) Records: 2 Duplicates: 0 Warnings: 0 ```  ## 修改 关键词 update,语法: update 表名 set 字段名=值 [where 条件表达式] 全部字段都做了更改 ```sql mysql> update users set age = 50; Query OK, 4 rows affected (0.00 sec) Rows matched: 4 Changed: 4 Warnings: 0 ```  如果只想修改name\=‘Ming’的age为20呢? ```sql mysql> update users set age = 20 where name='Ming'; Query OK, 1 row affected (0.01 sec) Rows matched: 1 Changed: 1 Warnings: 0 ```  ## 删除 只想删除数据表中的一行数据 ```sql delete from users where 字段名=值; ```  清空整张表 ```sql truncate [table] 表名; ```  删除记录 ```sql delete from 表名; ```  truncate与delete的区别: ```bash DELETE: DELETE是一个DML(Data Manipulation Language)操作,用于删除表中的行。 当你使用DELETE删除数据时,MySQL会生成一个事务日志来记录每一行的删除操作,以便进行回滚操作。 DELETE操作是可回滚的,因为它记录了足够的信息来撤销删除操作。 DELETE操作会触发与被删除行相关的任何外键约束,如果存在外键依赖,则可能阻止删除操作。 DELETE操作通常比TRUNCATE慢,因为它需要逐行处理并记录日志。 TRUNCATE: TRUNCATE是一个DDL(Data Definition Language)操作,用于快速删除表中的所有行,并重置任何自增的计数器。 TRUNCATE操作实际上是重新创建表,但它保留了表结构、索引、触发器和外键约束。 TRUNCATE操作不会生成事务日志,因为它不是逐行删除,而是一次性删除所有行。 TRUNCATE操作是不可回滚的,因为它不记录每行的删除信息。 TRUNCATE操作通常比DELETE快得多,因为它不逐行处理数据。 TRUNCATE操作不能用于有外键依赖的表,除非外键约束被禁用或使用TRUNCATE CASCADE。 ``` 其他操作 ```sql - 删除字段:alter table 表名 drop 字段名 - 修改表名:rename table 旧表名 to 新表名 - 修改表名:alter table 旧表名 rename 新表名 - 添加新的字段:alter table 表名 add 新字段名 新数据类型 [新约束条件] [first|after 旧字段名]; - 修改表的字段名:alter table 表名 change 旧字段名 新字段名 新数据类型 ; - 仅对字段的数据类型进行修改:alter table 表名 modify 字段名 数据类型; - 添加约束条件:alter table 表名 add constraint 约束名 约束类型(字段名); - 删除表的主键约束:alter table 表名 drop primary key; - 删除表的外键约束:alter table 表名 drop foreign key 约束名; - 删除表字段的唯一约束:alter table 表名 drop index 唯一索引名 - alter table 表名 engine = 新的存储引擎类型 - alter table 表名 default charset = 新的字符集 - alter table 表名 auto_increment = 新的初始值 注意:存在外键约束关系,若想删除父表,首先需要删除父表与子表之间的外键约束条件,解除“父子”,在删除表 ``` ## 查询 查询不但能实现数据检索,而且可以在查询过程中进行计算、合并不同数据源的数据 查询当前数据库下有哪些表,关键词show ```sql show tables; ```  ### 查询格式 ```txt SELECT[ALL | DISTINCT] <目标列表达式> [,<目标列表达式>] ... FROM <表名或视图名>[, <表名或视图名> ] ... [WHERE <条件表达式> ] GROUP BY <列名1> [HAVING <条件表达式> ] ] [ORDER BY <列名2> [ ASC | DESC ] ]; ``` ### 单表查询 1、查询表中全部数据 ```sql select * from table_name; ```  2、只查询name字段的数据  3、查询name\=lin的数据  4、查询某几行数据  5、模糊查询 字段名 [ NOT ] like ... 如果条件不确定,必须使用LIKE关键字进行模糊查询,用like进行字符串匹配,将该字符串叫做匹配串,用它与属性值进行比较。 匹配串中的通配符为:\_ 任意单个字符;% 零个或多个任意字符串 ```sql mysql> select * from users where name like 'L%'; +------+------+ | name | age | +------+------+ | Lin | 22 | +------+------+ 1 row in set (0.00 sec) ```  ## 多表查询 同时涉及**多个表的**查询称为**连接查询**,用来连接两个表的条件称为**连接条件**或连接谓词。 一般格式:[\<表名1\>.] \<列名1\> \<比较运算符\> [\<表名2\>.]\<列名2\>。 比较运算符:\=、\>、\<、\>\=、\<\=、 !\= 连接谓词中的列名 称为连接字段,连接条件中的各连接字段类型必须是可比的,但不必是相同的。 在多表查询中,存在 内连接、外连接、自连接。 联合查询,合并结果集,关键词 union,使用union将多个select语句的查询结果集组合成一个结果集 语法:select 字段列表1 from table1 UNOIN [all] select 字段列表2 from table2 注意: * 字段列表1和字段列表2的字段个数必须相同,且具有相同的数据类型 * union与union all的区别:union 会筛选掉select结果集中重复记录,union all 会直接合并两个结果集 交集 intersect 和 差集 except 在SQL Server中支持,MySQL不支持   # 六、常用函数 1、聚合函数count(),统计元组个数。  2、order by 字段名,根据字段进行排序,asc 顺序,desc倒序(默认使用顺序)。  3、@@hostname:主机名  4、@@datadir:数据库路径  5、database():数据库名  6、current\_user():当前用户  7、version():数据库版本 8、注释符 单行注释可以使用 # 或 -- 注释符。使用 # 后直接加注释内容,而使用 -- 后需要跟一个空格才能生效。 多行注释使用 /\* \*/ 注释符,可以跨多行。 
毛林
2026年11月15日 18:27
转发文档
收藏文档
上一篇
下一篇
评论(0)
登录
后可发表评论
还没有评论,来抢沙发~
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
Word文档
PDF文档(打印)
分享
链接
类型
密码
更新密码
还没有评论,来抢沙发~