输入banner图图片脚本导航/分类

数据库查询语句

基本查询

orderby子句

形式:

order  by  排序字段1  [排序方式],  排序字段2  [排序方式], .....

说明:

对前面取得的数据(含from子句,where子句,group子句,having子句的所有结果)来指定按某个字段的大小进行排列(排序),排序只有2种方式:

正序: ASC(默认值),可以省略

倒序: DESC

如果指定多个字段排序(虽然不常见),则其含义是,在前一个字段排序中相同的那些数据里,再按后一字段的大小进行指定的排序。

技术分享

技术分享

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

limit子句

形式:

limit   [起始行号start], 要取出的行数num

说明:

表示将前面取得的数据并前面排好之后(如果有),对之指定取得“局部连续的若干条”数据。

起始行号start:第一行的行号为0, 可以省略,则为默认行号(0)。

要取得的行数:如果结果集中从指定的行号开始到最后没有这么多行,则就只取到最后。 

此子句非常有用——主要用于网页上最常见的一个需求(现象):分页。

分页原理:

分页的前提:人为指定每页显示的条数,$pageSize = 3;

显示(取得)第1页数据:select * from 表名 limit  0,  $pageSize;

分页原理:

分页的前提:人为指定每页显示的条数,$pageSize = 3;

显示(取得)第1页数据:select * from 表名 limit  0,  $pageSize;

显示(取得)第2页数据:select * from 表名 limit  3,  $pageSize;

显示(取得)第3页数据:select * from 表名 limit  6,  $pageSize;

..................................................

显示(取得)第$n页数据:select * from 表名 limit  ($n-1)*$pageSize,  $pageSize;

技术分享

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

连接查询

基本含义

连接就是指两个或2个以上的表(数据源)“连接起来成为一个数据源”。

实际上,两个表的完全的连接是这样的一个过程:

左边的表的每一行,跟右边的表的每一行,两两互相“横向对接”后所得到的所有数据行的结果。

注意:连接之后,并非形成了一个新的数据表,而只是一种“内存形态”。

技术分享

连接语法的基本形式

from 表1  [连接方式]  join 表2  [on 连接条件];

连接的结果可以当作一个“表”来使用。常用有以下几种连接方式:

交叉连接:

实际上,交叉连接是将两个表不设定任何条件的连接结果。

交叉连接通常也被叫做“笛卡尔积”——数学上可能比较多。

语法:

from  表1  [cross]  join  表2  ; //可见交叉连接只是没有on条件而已。

cross这个词也可以省略,还可以使用inner这个词代替

表1:技术分享

表2:技术分享

交叉:技术分享

内连接:

语法:

from  表1  [inner]  join  表2  on  表1.字段1=表2.字段2;

含义:找出(过滤)在交叉连接的结果表中的表1的字段1的值等于表2的字段2的值的那些行。

技术分享

 

分析交叉连接的“无意义性”,以及内连接的“有意义性”:

先看交叉连接:技术分享

技术分享

再看内连接:

技术分享

技术分享

可见,在现实的常见需求中,上述内连接的结果就都是“有意义”的数据了。

也可以指定只列出其中部分字段:

SELECT t1.pro_id, pro_name, price, t2.protype_name FROM product as t1 join `product_type` as t2 on t1.protype_id=t2.protype_id WHERE 1

结果为:

技术分享

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

左[外]连接:

形式:

from  表1  left  [outer]  join   表2   on  连接条件。

说明:

1,这里,left是关键字。

2,连接条件跟内连接一样。

3,含义是:内连接的结果基础上,加上左边表中所有不符合连接条件的数据,相应本应放右边表的字段的位置就自动补为“null”值。

技术分享

则左连接结果为:

技术分享

右[外]连接:

右连接跟左连接恰恰相反:

形式:

from  表1  right  [outer]  join   表2   on  连接条件。

说明:

1,这里,right是关键字。

2,连接条件跟内连接一样。

3,含义是:在内连接的结果基础上,加上右边表中所有不符合连接条件的数据,相应本应放左边表的字段的位置就自动补为“null”值。

技术分享

全[外]连接:

形式:

from  表1  full  [outer]  join  表2  on  连接条件;

说明:

1,含义:其实是左右连接的“并集”(消除重复项),即内连接的结果,加上左表中不满足条件的所有行(右边对应补null),再加上,右表中不满足条件的所有行(左边对应补null)。

2,mysql中其实不认识全[外]连接语法,即mysql这个软件本身不支持全连接的语法。

3,此概念在其他数据库有的存在,了解就可以。

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

连接查询举例:

 

 

数据库查询语句

标签: