首页 > 代码库 > MySQL3

MySQL3

内连接 关键字 inner join 语法规则:select * from 左表inner join右表 on 左表.字段 = 右表.字段;

内连接中的inner join 可以写成join,inner可以省略,默认就是内连接。
当左表和右表进行匹配的字段名相同时,字段名的前面必须加上表名!
表名一般很长,可以用别名来代替。
on可以用where代替 ,但是使用on的效率更高!

外链接

左外链接
关键字:left outer join

跟内连接一样,也是拿左表的每一条记录按照on后面的条件去匹配右表,如果匹配成功,那么就保留两张表的所有的记录,如果匹配失败(也就是左表的一套记录无法匹配右表的所有的记录),此时,只保留左表的记录,有表达记录全部用null代替,此时左表也叫做主表。


右外连接
关键字:right outer join
跟内连接一样,也是拿左表的每一条记录按照on后面的条件去匹配右表,如果匹配成功,那么久保留两张表的所有的记录,如果匹配失败(也就是右表的一条记录无法匹配坐标点所有的记录),此时,只保留右表的记录,左表的记录全部用null代替,此时右表也叫做主表。

自然连接

关键字:natural join

含义: 所谓自然连接,其实就是“自动连接”,指的是两个或多个表之间在进行连接查询的时候,系统会自动读取匹配连接条件,而不需要人为的指定,从形式上看,也没有on的关键字了。

自然内连接

语法:左表 natural inner join右表
自然内连接其实就是内连接,只是这里的条件是由系统自动指定!

自然外链接

语法:左表natural left|right join 右表
自然外连接其实就是外联接,只是这里匹配条件也是由系统指定罢了!

子查询

根据子查询返回值的形式

单一值:也就是返回单行单列的子查询,也叫做标量子查询!

一列:也就是返回值的子查询,也叫做列子查询!

一行:返回一行的子查询就叫做行子查询!

多行多列:其实也叫做表子查询!

根据子查询出现的位置
from型:也就是子查询出现在from之后
where型:也就是子查询出现在where之后
exist型:判断是否查询到结果

标量子查询:往往就是把标量子查询的结果当成一个值来使用,比如用来判断,参与运算等!

列子查询:就是返回单列的子查询,也叫做列子查询!
行子查询:查询结果为一行的子查询就叫做行子查询! 语法:select *|字段列表 from 表名 where(字段1,字段2。。) = (行子查询结果)


表子查询:返回结果是多行多列的子查询就叫做表子查询

语法: select *|字段列表 from 子查询结果 as 别名 where 子句。。

exists 子查询

exists 主要是用来做判断的,返回的结果是一个布尔值!

PHP操作MySQL
第一步 建立连接认证
通过mysql_commect函数来完成!

第二步 发送操作指令
执行sql语句是通过mysql_query函数来实现的!
mysql_query 有两个参数,第一个是sql语句,第二个参数是连接资源,如果省略,默认的就是上一次(最近一次)打开的连接资源

第三部:返回处理结果
一般mysql执行后返回的结果有两种类型:布尔型:如果所执行的sql语句没有数据返回,如果执行成功就返回true,执行失败就返回false!
资源型:如果所执行的sql语句有数据返回,就是返回一个结果集,返回的是一个资源型的数据,常见的有select语句,show语句!
第四部:断开连接
断开连接需要使用mysql_close函数!


php提取资源结果集
php提取资源结果集基本上都是使用mysql_fetch系列函数来实现

mysql_fetch_array()
语法:mysql_fetch_array(资源结果集) 基本原理为:从资源结果集中,提取出第一条记录,并默认返回一个数组!而且返回是一个关联和索引并存的一个数组,其中关联的下标,就是原表中的字段的名字!同时指针下移!
如果只返回关联数组或索引数组,可以通第二个参数来完成
MYSQL_BOTH:同事返回关联和索引数组,也是默认值!
MYSQL_ASSOC:只返回关联数组!
MYSQL_NUM:只返回索引数组

mysql_fetch_assoc():相当于mysql_fetch_array($jdk,MYSQL_ASSOC);
只返回关联下标!
mysql_fetch_row();相当于mysql_fecht_array($hfh,MYSQL_NUM);只能返回索引数组!

错误调试函数

php在执行mysql语句的时候,一般采用的是静默模式!也就是不会主动把错误告诉用户,所以,mysql也提供了一些错误调试函数

mysql_errno();获取错误编号
mysql_error();获取错误信息

封装数据库连接文件

在项目中,需要使用数据库的脚本有很多,所以,我们有必要对数据库连接封装成函数放到一个单独的文件内,被其他脚本所加载。

 

MySQL3