当前位置:Gxlcms > 数据库问题 > 数据库查询语句

数据库查询语句

时间:2021-07-01 10:21:17 帮助过:4人阅读

基本查询

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)。

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

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

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

连接查询举例:

 

 

数据库查询语句

标签:

人气教程排行