news 2026/4/15 4:03:13

PHP递归遍历+MYSQL介绍+MYSQL基本操作

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
PHP递归遍历+MYSQL介绍+MYSQL基本操作

数据库基本知识、1.什么是数据库?广义:凡是能够存储和处理数据的媒介(介质)都是数据库,狭义:高效的存储和处理数据的媒介

2.数据库分类、关系型数据库:建立在关系模型上的数据库。关系模型:二维表,关系模型是通过关系数据结构,关系的操作指令和关系约束三部分组成。关系型数据库:维护实体内部的联系以及实体和实体之间的联系的数据库(实体:自然界中存在的各种数据对象)

非关系型数据库:所有不是关系型数据库的数据库都是非关系型数据库

关系型数据库与非关系型数据库的区别
1.运行的介质部一样:关系型数据库数据保存在磁盘,非关系型数据运行在内存
2.效率区别:非关系型数据库效率高
3.安全区别:关系型数据库安全

3.数据库产品
关系型数据库:mysql,Oracle,DB2,SqlServer,access等
非关系型数据库:memcache,mongodb,redis等

4.数据库名词
数据:data,携带有用信息的字符
数据库:database,存放数据的“仓库”
数据库管理系统:DBMS(database Management System),管理数据库的系统
数据库系统:DBS(database system) = DBMS + DB
数据库管理员:DBA(Database Administrator),专门维护数据库系统

关系型数据库
维护数据的内部联系和数据与数据之间的关系。
关系型数据库都是通过二维表来进行数据的维护的。

学员管理系统:学生,班级

学生:学号,姓名,性别,年龄
学号 姓名 性别 年龄
Itcast0001 华萃文 男 23
Itcast0002 陈丽玲 女
Itcast0003 潘市远 男 20

维护的数据内部的关系
关系型数据库:即便数据不存在,也要分配空间和位置来用于数据存放。比较浪费磁盘空间。

班级:班级号,教室
班级编号 教室
PHP141115 A814
PHP140815 A806

维护的数据内部的关系

班级与学生关系
学号 姓名 性别 年龄 班级编号
Itcast0001 华萃文 男 23 PHP141115
Itcast0002 陈丽玲 女 PHP141115
Itcast0003 潘市远 男 20 PHP140815

维护实体与实体之间的关系

典型的关系型数据库概念
行和记录
行:row,行是从表的结构角度出发
记录:record,记录是从数据的角度出发

列和字段
列:column,结构角度
字段:field,数据角度

SQL:Structured Query Language,结构化的查询语言,是据库的编程语言
DDL:Data Define Language,数据定义语言,专门用于定义数据的存储的结构,create
DML:Data Manipulation Language,数据操作语言,对数据进行增删改查,
DQL:Data Query Language,数据查询语言
DCL:Data Control Language,数据控制语言,控制用户的权限,revoke等

mysql数据库
mysql数据库是一款c/s结构的软件。意味着访问服务器必须通过客户端来实现。
假设:客户端与服务端不在同一台电脑上。(绝大部分的情况如此)

操作数据库的步骤:
1.保证客户端和服务端都已经运行,开始服务了。

2.运行客户端:连接服务器。连接认证。
a)–h:host,主机地址,ip或者域名:-hlocalhost,可以省略
b)–P:port,服务器的服务监听端口:-P3306,可以省略
c)–u:username,登录服务器的用户名:-uroot
d)–p:password,登录服务器的密码:-p
利用mysql.exe,需要借助cmd环境才能运行

3.准备SQL语句
4.发送SQL语句给服务器
5.服务器:接收SQL语句
6.服务器:执行SQL语句
7.服务器:将执行结果返回给客户端
8.客户端:解析结果
9.客户端:显示结果

10.退出服务器:断开连接
exit/quit/\q


mysql服务器对象
整个服务器就是一个DBS:数据库系统

系统是由DBMS进行管理,管理DB,DB管理Table,表管理field


SQL基本操作
SQL基本操作分为三类:库操作,表操作(字段操作),数据操作

SQL基本操作:CRUD

C:Create,新增
R:Read/Retrive,读取
U:Update,更新
D:delete/Drop,删除
库操作
新增库
create database 数据库名字 [库选项];

库选项:字符集和校对集
charset/character set:字符集,utf8/gbk/gb2312,表示当前数据库内的数据按照指定的字符集进行存储
collate:校对集,比较字符的大小的规范,校对集依赖字符集


当以上语句执行的时候,系统发生了如下改变
1.系统内部创建一个叫做my_data1数据库名字的数据库,字符集是utf8
2.系统在服务器存储数据的位置创建一个叫做my_data1的文件夹
my.ini中查看数据存储目录

文件创建

3.文件夹内部有一个opt文件:记住了当前数据库的库选项


数据库命名规范
1.采用字母下划线和数字构成,通常建议使用英文单词配合下划线
2.数据库名字不能够直接使用关键字

3.不能直接使用中文作为数据库名字。如果要使用关键字或者中文,对名字使用反引号
反引号:键盘左上角1键左边的键在英文状态的输出


中文需要先设定字符集


中文数据库在操作系统下使用十六进制命名,并不是中文

注意:不建议使用中文作为数据库名字,关键字也不建议,保留字也一样

查看库
语法1:查看所有
show databases;


语法2:查看部分相关数据库,使用匹配模式:%和_
show databases like ‘pattern’;
%:代表匹配任意长度的任意字符
_:匹配一个长度的字符

语法3:查看数据库的创建语句:不是指 的用户创建的时候自定义的SQL语句,而是系统执行的时候,内部整理后的SQL语句
show create database 数据库名字;


修改库
修改数据库不能够修改数据库名字
修改数据库只能修改库选项

语法:修改结构的语法都是alter
alter database 数据库名字 要修改的库选项; -- 一般用于修改字符集


虽然只修改了字符集,但是校对集也被修改


删除库
删除指定的数据库,只能一个一个的删除,删除数据库会连带的将数据库内部的所有数据表都删除。(慎用)

语法:所有的结构删除都使用drop
drop database 数据库名字;


执行删除语句之后,发生了什么?
1.数据库不存在了
2.数据库对应的文件夹也被删除了


表操作
对数据表的增删改查,以及表中的字段的操作。
数据表不能脱离字段,字段不能独立存在。
SQL是一种强类型语言,所有的字段都必须指定数据类型
增加表
语法
create table 表名(
字段名1 字段类型, -- 字段与字段之间使用逗号分隔
字段名N 字段类型 – 最后一个子弹不需要逗号
) [表选项];

表选项:字符集和存储引擎
字符集:表中数据存储的字符集,可以与数据库的不一致
存储引擎:engine,数据的存储方式,默认的是InnoDB,低版本的myisam

错误:数据表是由数据库来管理,所以必须先指定数据库

如何指定数据库?
1.显示指定数据库:在创建表的表名前面使用数据库名字.表名

2.隐式的指定数据库:事先进入到数据库环境,再创建表时,默认的使用当前数据库
语法:use 数据库名字;


innodb和myisam的区别
1.两种存储引擎结构有区别

InnoDB的数据和索引都在外部的ibdata1文件中

查询表
查看表以及结构,与数据库的查看基本一致
语法1:查看所有表
show tables;


语法2:查看表的创建语句
show create table 表名;


语法3:查看表的结构(字段)
desc/describe/show columns from 表名;


修改表
修改表分为两种:修改表自己,修改表内部的字段

修改表自己:修改表名和表选项
修改表名
rename table 表名 to 新表名;


修改表选项
alter table 表名 表选项;


修改存储引擎会修改对应的数据库文件夹下的文件

修改表字段:增删改
alter table 表名 [add/drop/modify/change] 字段名字 数据类型 [位置]
位置:first/ after 字段名,默认的是本身或者所有的字段之后

添加字段
alter table 表名 add [colomn] 字段名 数据类型 [位置]


修改字段:修改名字和修改字段的数据类型
修改名字
alter table 表名 change 字段原名 新名字 数据类型;


修改字段数据类型
alter table 表名 modify 字段名字 数据类型 [位置];


删除字段
alter table 表名 drop 字段名;


删除表
将表删除和表里面的数据也删除
语法
drop table 表名,表名;


可以一次性删除多个表,使用逗号分隔。
注意:数据表不要轻易删除,删除之前最好先备份。

数据操作
对表里面的数据进行增删改查

新增数据
数据与结构有别,SQL额外使用了关键字insert into
语法
insert into 表名 [(字段列表:字段使用逗号分隔)] values(值列表:必须完全对应字段列表)[,(值列表)]
数据的新增方式有以下几种
1.部分字段添加数据,没有添加的部分系统会自动的使用字段的默认值填充,必须指定字段列表和值列表,顺序都必须一一对应(字段列表里面的字段可以与表结构中的字段不一样)

注意:采用这种方式插入数据的话,必须前提条件是没有插入数据的字段有默认值或者自增长
2.给所有的字段都天剑数据:可以没有字段列表,如果没有字段列表,值列表里面数据的顺序就必须与表结构中的字段顺序一致。

3.可以一次性插入多个数据(记录),在values后面使用括号和逗号进行分隔


查看数据
将表中的数据取出来查看

语法:
select */字段列表 from 表名 where 条件;


where条件用来筛选数据


更新数据
语法
update 表名 set 字段名 = 值[,字段 = 值…] where 条件;


更新多条记录


删除数据
语法
delete from 表名 where条件; -- 没有条件就会删除所有的数据


字符集
1.什么是字符集?
字符集是字符的集合,不同的字符在进行二进制存储的时候,应当遵循的某个转换的规则。


字符集问题解决
1.了解服务器到底能支持哪些字符集?
show character set;


2.了解服务器默认的对外部客户端的默认字符集支持
show variables like ‘character_set%’;


mysql客户端只支持GBK,而服务器默认客户端是utf8字符集


解决方案:将服务器认为的客户端发送的数据由utf8改成gbk
set character_set_client = gbk;


解决效果

查询效果


矛盾:查询出来的结果依然是乱码,原因是因为服务器认为客户端所能解析的结果的字符集是utf8的,客户端实际上是GBK,GBK的确可以解析,只是解析成乱码。

解决方案:修改服务器认为的客户端的所能接收的结果的字符集为gbk;
set character_set_results = gbk;


set names gbk:所做的事情就是将服务器认为的跟客户端相关的字符集(client和results)变成gbk,系统还会将connection也转成gbk;


connection只是为了数据在内部进行转换时,提升转换的效率

原理图


字符集的设置:根据客户端自己的字符集进行设置。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/15 4:03:09

hack.chat 快速入门教程:如何在5分钟内搭建你的私有聊天室

hack.chat 快速入门教程:如何在5分钟内搭建你的私有聊天室 【免费下载链接】hack.chat a minimal, distraction-free chat application 项目地址: https://gitcode.com/gh_mirrors/ha/hack.chat hack.chat 是一款极简、无干扰的网页聊天应用,让你…

作者头像 李华
网站建设 2026/4/15 4:01:08

哔哩下载姬DownKyi:3步掌握B站视频高效管理的终极指南

哔哩下载姬DownKyi:3步掌握B站视频高效管理的终极指南 【免费下载链接】downkyi 哔哩下载姬downkyi,哔哩哔哩网站视频下载工具,支持批量下载,支持8K、HDR、杜比视界,提供工具箱(音视频提取、去水印等&#…

作者头像 李华
网站建设 2026/4/15 3:58:11

openclaw-连接k8s进行管理

目录 1.查看k8s信息 2.配置openclaw 3.创建资源进行验证 1.查看k8s信息 rootk8s-master:~# kubectl get nodes NAME STATUS ROLES AGE VERSION k8s-master Ready control-plane 196d v1.29.15 k8s-node1 Ready 196d v1.29.15 k8s-node2 Ready 196d v1.29.15 rootk8s-maste…

作者头像 李华
网站建设 2026/4/15 3:55:55

Sharetribe Go API接口开发指南:构建第三方集成接口

Sharetribe Go API接口开发指南:构建第三方集成接口 【免费下载链接】sharetribe Sharetribe Go is Sharetribes old source-available marketplace software, which was also available as a hosted SaaS product. Sharetribe Go is no longer actively maintained…

作者头像 李华