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

张开发
2026/4/15 4:03:18 15 分钟阅读

分享文章

PHP递归遍历+MYSQL介绍+MYSQL基本操作
数据库基本知识、1.什么是数据库广义凡是能够存储和处理数据的媒介介质都是数据库狭义高效的存储和处理数据的媒介2.数据库分类、关系型数据库建立在关系模型上的数据库。关系模型二维表关系模型是通过关系数据结构关系的操作指令和关系约束三部分组成。关系型数据库维护实体内部的联系以及实体和实体之间的联系的数据库实体自然界中存在的各种数据对象非关系型数据库所有不是关系型数据库的数据库都是非关系型数据库关系型数据库与非关系型数据库的区别1.运行的介质部一样关系型数据库数据保存在磁盘非关系型数据运行在内存2.效率区别非关系型数据库效率高3.安全区别关系型数据库安全3.数据库产品关系型数据库mysqlOracleDB2SqlServeraccess等非关系型数据库memcachemongodbredis等4.数据库名词数据data携带有用信息的字符数据库database存放数据的“仓库”数据库管理系统DBMSdatabase Management System管理数据库的系统数据库系统DBSdatabase system DBMS DB数据库管理员DBADatabase Administrator专门维护数据库系统关系型数据库维护数据的内部联系和数据与数据之间的关系。关系型数据库都是通过二维表来进行数据的维护的。学员管理系统学生班级学生学号姓名性别年龄学号 姓名 性别 年龄Itcast0001 华萃文 男 23Itcast0002 陈丽玲 女Itcast0003 潘市远 男 20维护的数据内部的关系关系型数据库即便数据不存在也要分配空间和位置来用于数据存放。比较浪费磁盘空间。班级班级号教室班级编号 教室PHP141115 A814PHP140815 A806维护的数据内部的关系班级与学生关系学号 姓名 性别 年龄 班级编号Itcast0001 华萃文 男 23 PHP141115Itcast0002 陈丽玲 女 PHP141115Itcast0003 潘市远 男 20 PHP140815维护实体与实体之间的关系典型的关系型数据库概念行和记录行row行是从表的结构角度出发记录record记录是从数据的角度出发列和字段列column结构角度字段field数据角度SQLStructured Query Language结构化的查询语言是据库的编程语言DDLData Define Language数据定义语言专门用于定义数据的存储的结构createDMLData Manipulation Language数据操作语言对数据进行增删改查DQLData Query Language数据查询语言DCLData Control Language数据控制语言控制用户的权限revoke等mysql数据库mysql数据库是一款c/s结构的软件。意味着访问服务器必须通过客户端来实现。假设客户端与服务端不在同一台电脑上。绝大部分的情况如此操作数据库的步骤1.保证客户端和服务端都已经运行开始服务了。2.运行客户端连接服务器。连接认证。a)–hhost主机地址ip或者域名-hlocalhost可以省略b)–Pport服务器的服务监听端口-P3306可以省略c)–uusername登录服务器的用户名-urootd)–ppassword登录服务器的密码-p利用mysql.exe需要借助cmd环境才能运行3.准备SQL语句4.发送SQL语句给服务器5.服务器接收SQL语句6.服务器执行SQL语句7.服务器将执行结果返回给客户端8.客户端解析结果9.客户端显示结果10.退出服务器断开连接exit/quit/\qmysql服务器对象整个服务器就是一个DBS数据库系统系统是由DBMS进行管理管理DBDB管理Table表管理fieldSQL基本操作SQL基本操作分为三类库操作表操作字段操作数据操作SQL基本操作CRUDCCreate新增RRead/Retrive读取UUpdate更新Ddelete/Drop删除库操作新增库create database 数据库名字 [库选项];库选项字符集和校对集charset/character set字符集utf8/gbk/gb2312表示当前数据库内的数据按照指定的字符集进行存储collate校对集比较字符的大小的规范校对集依赖字符集当以上语句执行的时候系统发生了如下改变1.系统内部创建一个叫做my_data1数据库名字的数据库字符集是utf82.系统在服务器存储数据的位置创建一个叫做my_data1的文件夹my.ini中查看数据存储目录文件创建3.文件夹内部有一个opt文件记住了当前数据库的库选项数据库命名规范1.采用字母下划线和数字构成通常建议使用英文单词配合下划线2.数据库名字不能够直接使用关键字3.不能直接使用中文作为数据库名字。如果要使用关键字或者中文对名字使用反引号反引号键盘左上角1键左边的键在英文状态的输出中文需要先设定字符集中文数据库在操作系统下使用十六进制命名并不是中文注意不建议使用中文作为数据库名字关键字也不建议保留字也一样查看库语法1查看所有show databases;语法2查看部分相关数据库使用匹配模式%和_show databases like ‘pattern’;%代表匹配任意长度的任意字符_匹配一个长度的字符语法3查看数据库的创建语句不是指 的用户创建的时候自定义的SQL语句而是系统执行的时候内部整理后的SQL语句show create database 数据库名字;修改库修改数据库不能够修改数据库名字修改数据库只能修改库选项语法修改结构的语法都是alteralter database 数据库名字 要修改的库选项; -- 一般用于修改字符集虽然只修改了字符集但是校对集也被修改删除库删除指定的数据库只能一个一个的删除删除数据库会连带的将数据库内部的所有数据表都删除。慎用语法所有的结构删除都使用dropdrop 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改成gbkset character_set_client gbk;解决效果查询效果矛盾查询出来的结果依然是乱码原因是因为服务器认为客户端所能解析的结果的字符集是utf8的客户端实际上是GBKGBK的确可以解析只是解析成乱码。解决方案修改服务器认为的客户端的所能接收的结果的字符集为gbkset character_set_results gbk;set names gbk所做的事情就是将服务器认为的跟客户端相关的字符集client和results变成gbk系统还会将connection也转成gbkconnection只是为了数据在内部进行转换时提升转换的效率原理图字符集的设置根据客户端自己的字符集进行设置。

更多文章