MySQL ------ 查询(列)检索(limit,完全限定) (四)

查询数据 SELECT

1、检索单列     

 select prod_name from products;

注意:

1、 返回数据没有排序

2、多条SQL 语句必须使用分号(;) 分隔

3、在处理SQL 语句时,其中所有空格都被忽略

4、SQL 可以一行也可以多行,建议将SQL语句分为多行,这样更易阅读和调试。

5、SQL语句不区分大小写,但是建议SQL 关键字使用大写,所有列和表名使用小写,这样便于阅读调试,还有的就是MySQL4.1 及之前的版本中,标识符(如数据库名称,表名,列名),默认是区分大小写的,4.1 之后默认是不区分大小写的。

 

2、检索多列

在检索多列的时候,一定要在列名之间加上逗号,但是最后一个列名不要添加逗号,不然报错

select prod_id,prod_name,prod_price from products;

 

数据的表示:  SQL 语句一般返回原始的、无格式的数据,实际中一般是使用SQL查出原始的数据,然后使用程序进行提供格式(如给钱加个¥)

 

3、检索所有列

1、是将所有的字段全部列出进行查询

2、是使用通配符(*),表示所有的列

select * from products;

 建议: (*) 能不用最好不用,因为会降低检索和应用程序的性能。当然在你对这表不熟悉,这个时候* 就很重要会把表中所有的列检出来,然后再不断优化

 

4、检索不同的行

如:在你进行单列查询的时候,会把单列的所有的行都返回出来,这个时候可能会有一些行是重复的,也不方便了解, 就想上述的 vend_id  (供应商编号)这一列中的数据好多行是重复的,不变查看,我就想知道这批商品主要有哪些供应商,怎么搞

这个时候  DISTINCT (distinct)关键字孕育而出,意味只返回不同的值

 select distinct vend_id from products;

 

 注意:

  distinct 关键字应用于所有列而不仅是前置他的列,建议只在单列查询的时候使用

如下面:两个都用报错,只用一个没用

 

5、限制结果 (limit)

 select  语句返回所有的匹配的行,但是你要是不需要那么多,需要返回特定的行要怎么办来

这个时候 LIMIT 关键字就出来了,你要是了解的较多可能会听过 TOP 关键字返回前几行,不过这个SQLServer 支持,MySQL不支持

DQL语句语法格式:

--   <> 内为需要添加的内容,[] 内为可选内容
select <字段名列表>
from <表名或视图名>
[where<查询条件>]
[group by<查询条件>]
[order by<查询条件>]
[LIMIT [位置偏移量],行数]
[LIMIT [位置偏移量],行数]中位置偏移量指从结果集中第几行数据开始显示(第一行记录的位置偏移量是0,2的话就是1,以此类推),此参数可选,当省略 时默认从第一条记录开始显示。
行数指的是显示记录的行数

Limit 子句可以实现数据的分页查询,即从一批结果数据中规定每页显示多少条数据,也可以查询中间某页记录。limit子句常与order by 子句一块使用,用来先对查询结果进行排序,然后根据limit 的参数显示其中的部分数据。

从简到难

--  返回前五行
select prod_name from products limit 5;

-- 从第5行开始,检索5行  limit 5,5  第一个数表示开始位置,第二个数表示检索行数
select prod_name from products limit 5,5;

 注意:

1、从0 开始算数,检索出来的第一行为0而不是1(理工科就要无中生有,从零开始)

2、当需要检索的行数大于拥有的时,只返回符合的

3、mysql 5 后支持 limit 4 offset 2,与limit 2,4 一个意思,表示从行2开始取4行 

6、完全限定

就是通过名字来引用列,通过库引用表

-- 查询bookstu 数据库中的products,products 表的prod_name 字段的所有行

 select products.prod_name from bookstu.products;

 7、在查询中使用常量列

 

posted on 2020-05-21 12:06  obge  阅读(1100)  评论(0编辑  收藏  举报