2.基础-检索数据(SELECT)

       本文将介绍如何使用SELECT语句从表中检索一个或多个数据列。使用SELECT从表中检索信息,必须给定两个信息,想选择什么,以及从什么地方选择。

检索单个列

       输入:SELECT prod_name FROM products;

      分析:利用SELECT语句从products表中检索一个名为pro_name的列。所需的列名在SELECT后面给出,FROM后面是从哪个表检索数据。

       输出的结果是未排序的数据。如果没有明确对查询结果进行排序,则返回的数据的顺序没有任何意义。返回的数据顺序可能是数据被添加到表中的顺序,也可能不是。

       注意:SQL语句是不区分大小写的;

检索多个列

       只需在SELECT后面给出多个列的名字即可,列名之间必须以逗号分隔。

       输入:SELECT prod_id,prod_name,prod_price FROM products;

       分析:指定了3个列名,列名之间以逗号分隔。

检索所有的列(*通配符)

       输入:SELECT * FROM products;

       分析:给定一个通配符(*),则返回表中所有的列;列的顺序是列在表定义中出现的顺序。但有时候并不是这样的,表的模式的变化(如天添加或删除列)可能会导致顺序的变化。

       注意:一般情况下,如果你确实需要表中的每个列,否则最后不要使用*通配符。因为检索不需要的列通常会降低检索和应用程序的性能。

       使用通配符有一个优点,由于不明确指定列名,所以能检索出名字未知的列。

检索不用的行

       SELECT返回所有匹配的行,但是,如果你不想检索的结果出现重复值,怎么办。

       输入:SELECT vend_id FROM products;
       输出:

       解决方法是使用DISTINCT,即只返回不同的值。distinct:美/dɪ'stɪŋkt/.adj. 明显的;独特的;清楚的;有区别的
       
        输入:SELECT DISTINCT vend_id FROM products;

       分析:SELECT DISTINCT vend_id告诉MySQL只返回不同的vend_id即可。DISTINCT必须放在列名的前面。

       注意:不能部分使用DISTINCT,DISTINCT应用于所有的列而不仅是前置它的列。当DISTINCT后面有多个列时,它是以这些列组成的每行为单位进行比较。过滤掉其中多余的完全一样的行,即只显示一行。

限制结果

       为了返回第一行或前几行,可以使用LIMIT。

       输入:SELECT prod_name FROM products LIMIT 5;

       分析:LIMIT 5指示MySQL返回不多于5行。

       输出:


       为了得到下一个5行,可指定要检索的开始行和行数

       输入:SELECT pro_name FROM products LIMIT 5,5;

       分析:LIMIT 5,5意思是返回从行5开始的接下来的5行。第一个数字为开始位置,第二个数字为要检索的行数。

       输出:


       所以,带一个数字的LIMIT总是从第一行开始。

       注意:

              1.第一行的行标是0,而不是1。所以,LIMIT 1,1将检索出第二行而不是第一行。

            2.在行数不够时。即LIMIT中指定要检索的行数位检索的最大行数。如果没有足够的行(例如,LIMIT 10,5,但只有13行),将只返回它能返回的那么对行。

             3.LIMIT 4 OFFSET 3,意思是从行3开始取行,等价于LIMIT 3,4。

使用完全限定的表名

       之前都是用列名来引用列,其实也可以使用完全限定的名字来引用列(同时使用表名和列名)。

       输入:SELECT products.prod_name FROM products;

       分析:这里使用了完全限定名的列名;

       输入:SELECT product.prod_name FROM crashcourse.products;

       分析:这里使用了完全限定名的表名;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值