PHP学习文件总结9.docx

上传人:b****2 文档编号:17187233 上传时间:2023-04-24 格式:DOCX 页数:27 大小:923.12KB
下载 相关 举报
PHP学习文件总结9.docx_第1页
第1页 / 共27页
PHP学习文件总结9.docx_第2页
第2页 / 共27页
PHP学习文件总结9.docx_第3页
第3页 / 共27页
PHP学习文件总结9.docx_第4页
第4页 / 共27页
PHP学习文件总结9.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

PHP学习文件总结9.docx

《PHP学习文件总结9.docx》由会员分享,可在线阅读,更多相关《PHP学习文件总结9.docx(27页珍藏版)》请在冰豆网上搜索。

PHP学习文件总结9.docx

PHP学习文件总结9

mysql数据库

永久性保存数据的仓库。

php的变量,在php脚本执行周期,临时性保存变量的概念!

什么是关系型

所谓关系型数据库,基于关系模型建立的数据!

关系模型:

mysql数据是关系型数据库!

何谓关系型(关系模型),利用关系(二维表),去描述实体信息,与实体之间的联系的数据库架构就是关系型数据!

所谓关系:

二维表!

学生信息

学号

名字

年龄

所属班级

Itcast_007

王翦

66

Java1011

Itcast_010

李白

44

Php1016

Itcast_001

杜十娘

33

Ios1021

Itcast_123

喜羊羊

11

Java1011

班级信息

班级名称

教室号

Php1016

102

Java1011

201

.net0918

108

Ios1021

218

其他的类型的数据介绍

nosql:

notonlysql,非关系型数据库

sql:

一门语言,结构化查询语言,操作关系型数据的语言!

典型的是key/value型,键值对型

‘abcedefakasdnfakjsdi’=>{‘itcast_007’,王翦,66,java1011}

‘asdfkndikciuehaalcidk’=>{‘itcast_001’,杜十娘,33,ios1021,‘female’,{‘珠宝’,‘百宝箱’,’投河’}}

关系型数据的基本概念

关系,二维表

行,记录,一行就是一条记录。

列,字段,一列就是一个字段。

SQL:

结构化查询语言,操作关系型数据库的语言!

操作MYSQL基本流程

什么数据库系统,mysql就是数据库系统!

数据库系统最基本应该由:

数据系统=数据库(数据主体部分)+数据管理系统(操作数据的工具)

DBS(DataBaseSystem)=DB(Database)+DBMS(DatabaseManagenemtSystem)

mysql的操作,是基于C/S的!

Client/Server,客户端/服务器.

c/s指的是不同的服务器,提供的是不同的终端访问方式!

操作mysql,就一定:

通过操作mysql客户端,向mysql服务器发出指令,从而完成操作!

按照mysql时,自动携带一个命令行的客户端!

mysql。

利用该客户端,向服务器发送指令,然后等待执行结果即可!

任何操作mysql服务器行为的行为,都是mysql客户端发出的!

msyql服务器的基本结构体系

数据库服务器->库->表->字段(数据)

完成数据的操作,先建立数据的结构(由库到表再到字段)

SQL:

大体分成典型:

DML(数据管理语句,数据操作),DDL(数据定义语句,数据结构的控制语句,表操作和库操作)

库操作,DDL

创建,create

(create,几乎所有的结构都是用该语法完成)

createdatabase库名[库选项]

注意的问题:

库选项,只有字符集,校对集的概念!

每个库,会对应一个数据目录

存放在当前mysql的总的数据库目录内

参考mysql的配置文件得到该目录:

看到刚刚的数据库目录:

看看目录内,没有表,没有其他文件,除了一个数据库选项文件:

数据库名的问题

大小写问题,取决于mysql服务器,所在的操作系统!

(建议是,认为区分)

特殊名称,关键字,特殊字符等!

默认是不可以的!

但是,可以使用反引号将名称包裹起来,告知服务器,此处一个名字,而不是特殊操作!

中文等都可以作为标识符(库名),需要同样反引号!

(多字节字符,还需要注意字符集的问题)

查询(看看有哪些库,库的基本结构),show

查询已有的数据库名字

showdatabases;

showdatabaseslikes;

like关键字用于过滤多个数据库!

可以使用通配符(通用匹配符,可以匹配多个字符)

%匹配任意字符的任意次数(包括0次)的组合!

_匹配任意字符的一次!

like‘x_y’;

x1yxbyxxy(可以)

xy(不可以)

通配符是与like关键字一起使用!

注意如需要匹配特定的通配符,则需要对通配符转义,使用反斜杠\完成转义!

查看某个数据库的定义

showcreatedatabase库名;

修改,alter

alterdatabase数据库名

只能修改数据库选项

删除,drop

dropdatabase名字

ifnotexists,ifexists

在create与drop时,创建和删除时,有两个额外的操作:

createdatabaseifnotexists

如果不存在则创建

dropdatabaseifexists

如果存在,则删除

表操作,DDL

表本身,与表结构的操作!

创建,createtable

createtable表名(

字段的定义

)[表选项];

其中表名,一定先要确定数据库!

因此一个典型的表名是由两部分组成:

所在库.表名

test.itcasttest库内itcast表

itcast.stuitcast库内的stu表

但是我们可以设置默认数据库,如果不指定则使用默认数据库(当前数据库)

use数据库名。

选择默认数据库!

在使用表名但是没有指明其所在数据库时,默认数据库才会起作用!

在itcast库内创建:

useitcast;createtablestu;

或者

createtableitcast.stu

其中字段的部分

字段才是最终的数据的载体(与变量的概念是类似的,都是基本保存数据的),mysql的是强类型,字段的类型是固定的,提前定义好的!

因此,在定义字段时,至少要字段名和字段类型!

两种最基本的mysql数据类型(int,varchar,varchar必须指定最大长度字符为单位)

表选项部分

典型的常用的表选项有:

字符集(校对集),表引擎。

查看,show,desc

查看所有的表有哪些

showtableslike‘模式’

查看具体的建表语句

showcreatetabletable_name

在mysql的命令行客户端,如果数据过多,不容易展示!

可以使用\G作为语句结束符!

查询表结构

desc表名

descdescribe的简写

修改,altertable

修改表选项

altertabletable_name[新选项]

改表名

renametable原表名to新表名。

注意,表名可以由库名.表名形式的!

因此,可以跨库修改表名:

只要在表名前增加库名即可

修改表结构,表内字段

增加字段

altertabletable_nameaddcolumn字段定义[字段位置]

增加一个age字段:

增加一个height在name之后:

使用关键字aftersome_column_name;

在最开始增加sn字段

使用关键字,first

删除字段

altertabletable_namedropcolumncolumn_name;

修改已有字段(修改字段定义)

altertabletable_namemodifycolumncolumn_name新的定义!

可以修改位置

字段改名

altertabletable_namechangecolumn原字段名新字段名新字段定义!

注意,不是纯粹的改名,而是需要在修改定义的同时改名!

删除,droptable

droptableifexists

createtableifnotexists!

数据操作,DML

基本的操作

增加,创建,插入,insert

insertinto表名(字段列表)values(与字段相对的值列表)

不一定要一次性插入所有字段,或者按照原始的字段顺序插入:

但是:

字段与值的数量一定要匹配:

特别的:

如果所有的值都按照字段的出现顺序都插入的话,可以省略字段列表部分!

注意:

数值类型,不需要增加引号!

而字符串类型都需要出现引号内!

(但是数值型,可以出现引号内)

查询,检索,选择,select

select字段列表from表名[where条件表达式]

其中字段列表可以使用*表示所有字段!

关于条件表达式,默认是没有,表示永远为真!

但是,很少出现没有条件的情况!

为了突出,应该所有的语句都有查询条件!

即使没有条件,我也强制增加一个where1;

关于字段列表:

也应该够用就可以!

删除,delete

deletefrom表名where条件;

关于条件,可以省略。

表示永远为真。

注意,删除是不可逆的。

要避免没有条件的删除!

修改,更新,update

update表名set字段=新值,字段n=新值nwhere条件

关于条件,可以省略。

表示永远为真。

create,show,alter,dropdatabase/talbe

add,modify,change,dropcolumn

insert,select,update,deletetable_name

字符集

字符集,描述可见到的图形,在存储和传输时使用的编码称之为字符集!

指的是:

图形与编码之间的对应关系!

字=>111001011110000100010100

数据存储的编码

数据是存储在服务器端的!

究竟是以哪种编码保存的,怎么决定?

数据是最终要映射(保存)到字段的层面上!

因此决定数据的编码,也是最终由字段来决定!

确定数据的存储编码是由以下的方案完成的:

1,先看字段的编码!

如果存在则确定完毕!

2,如果字段没有设置编码,查看表的编码,如果有,则确定数据编码!

3,如果表没有编码,查看库的编码,如果有,则确定数据编码!

4,如果库也没有编码,则有服务器程序确定!

典型的编码:

gbk,utf8!

客户端操作,查询的编码

在客户端与服务器端交互时,存在两个重要的编码:

1,客户端发送数据的编码

2,客户端接收到服务器数据编码!

可以通过showvariableslike‘character_set_%’展示以character_set开头变量,其中就有上面的两个值:

在命令行客户端下:

该客户端,只能是gbk编码!

使用set变量名=变量值的形式更改变量值!

setnamesgbk,就是一个快捷操作,将上面两个配置同时更改成目标编码!

setnamesgbk|utf8取决于,客户端所能接受的编码!

整体流程:

setnamesgbk|utf8。

PHP操作mysql服务器

php作为mysql服务器的客户端!

连接认证

发送sql

执行sql,生成结果(mysql-server)

处理结果

关闭连接

加载必要的扩展,使可以作为客户端使用

mysql_connect();

连接认证

mysql_connect()

成功返回连接资源,失败false!

向mysql服务器发送sql

mysql_query(sql,连接资源);

失败返回false,成功返回资源或者true!

可以使用mysql_error(连接)mysql_errno(连接)获得错误信息和标识

处理返回数据

执行成功后:

返回数据可以是资源也可以true。

执行失败一定是false!

依据所执行的sql,是否有返回数据!

返回资源:

有返回数据:

select,show,desc。

返回true:

没有返回数据的:

use,set,insert,update,delete,DDL

处理返回资源

称之为结果集(resultset)类型资源!

结果集:

结果的集合!

将数据,从结果集中取出来!

称之为fetch!

使用函数:

mysql_fetch_assoc|row|array。

功能完全一致,只是返回的数据格式不同!

在结果集中,取得一条记录。

结果集内也存在结果集记录指针的概念!

fetch一次,只能取得当前记录,但是可以向后移动记录指针!

配合上循环结构可以将所有的记录从结果集中取出!

特别注意:

任何有结果的sql操作,返回的都是结果集!

结果集,就是一个二维表的结构!

是一行行的记录组成!

即使,结果集中只有一条记录

甚至,我们只需要返回一条数据!

释放资源

mysql_free_result(结果集)

mysql_close(连接资源);

预习

校对集

列类型(数据类型)

列选项(列属性,列约束)

设计模式(范式,关联)

作业

1,模拟查找所有的数据表结构

2,编码问题!

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1