内连接

按照条件,将左表的每天记录匹配右表,如果条件符合,字段内容将会被保存,如果不符合,则不会被保存;

语法:

select  *|字段列表 from 左表 inner join 右表 on 左表.字段=右表.字段...;

Inner 可以省略掉;

简约版语法

select  *|字段列表 from 左表 join 右表 on 左表.字段=右表.字段....;

外连接

左外连接

语法:

select  *|字段列表 from 左表 left  join 右表 on 左表.字段=右表.字段...;

跟内连接基本一样,唯一一点区别:外连接,没匹配成功的话,左表的字段内容会保存,而右表则是以null保存。

右外连接

语法:

select  *|字段列表 from 左表 right  join 右表 on 左.字段=右表.字段...;

跟内连接基本一样,唯一一点区别:外连接,没匹配成功的话,右表的字段内容会保存,而左表则是以null保存。

自然连接

规则:

只要两张表中具有相同的字段名,系统就认为是一个连接条件,就会主动的去匹配这两个相同的字段名的值是否相同,如果两个表的相同的字段名的值相同,就认为匹配成功;如果两张表中有多个字段名相同,则所有相同的字段名的值都要相同才算是匹配成功!

自然内连接

语法:

左表 natural inner join右表

跟内连接一样,没匹配成功的字段会直接被删除;

自然外连接

语法:

左表 natural  left|right  join 右表

跟外连接一样,只是匹配条件是系统定而已

PHP操作MySQL

mysql_connect 函数:连接数据库

语法:

Mysql_connect(‘本机名’,’用户名’,’密码’);

断开连接需要使用mysql_close函数!

mysql_query函数:发送操作指令

mysql_query(“操作指令”)

mysql_query 函数如果操作失败的话会返回一个布尔值的(frue),如果成功的话,可能会返回布尔值的(true)也可能返回一个资源结果集

那么,如何提取资源结果集呢?

mysql_fetch_array()函数:提取资源结果集

资源结果集返回的是一个关联及索引并存的一个数组,一次提取,数组指针会下移,及获得下一行数值

MYSQL_BOTH:同时返回关联和索引数组,也是默认值!

MYSQL_fetch_ASSOC:只返回关联数组!

MYSQL_fetch_row:只返回索引数组

当资源结果集使用完了之后,应该主动的释放它:

使用另一个系统函数mysql_free_result(结果集资源);

错误调试函数

因为PHP连接MySQL中不会报错,所以得需要用到错误调试函数来报错

mysql_errno:错误编码

Mysql_error:错误信息

MySQL数据备份

文本备份:

复制粘贴数据表,但每次所以表都要复制,浪费空间

数据备份:

语法:

select *|字段列表 into outfile 文件地址 from 表名;

注意:

文件地址中目录名不能省略,不能备份到一个已经存储了数据的文件中,文件必须由MySQL系统自己新建,也就是说,你只需要指定一个目录,然后设置文件名,MySQL系统就会自己帮你新建好!

Sql备份

语法:

mysqldump  -hlocalhost P3306  -uroot p 数据库名[数据表1 数据表2……] > 存储路径

还原语法

语法:

方法1

mysql  -hPup 数据库名字 < 备份路径

方法2

source 备份路径;