数据库入门:MySQL必知必会(四)检索数据

四、检索数据

    • 01. SELECT语句
    • 02. 检索单个列
    • 03. 检索多个列
    • 04. 检索所有列
    • 05. 检索不同的行
    • 06. 限制结果
    • 07. 使用完全限定的表名
    • 08.下一篇:[排序检索数据](https://blog.csdn.net/qq_34114121/article/details/90694411)

01. SELECT语句

最经常使用的SQL语句就是SELECT语句了,它的用途是从一个或多个表检索信息,为了使用SELECT检索表数据,必须至少给出两条信息——想选择什么,以及从什么地方选择

02. 检索单个列

从简单的SQL SELECT语句开始,利用SELECT 语句从products表检索一个名为prod_name的列。所需的列名在SELECT关键字之后给出,FROM关键字指出从其中检索数据的表名
Select单个列
数据库入门:MySQL必知必会(四)检索数据_第1张图片

  1. 自己试验这个查询,可能会发现显示输出的数据顺序与这里的不同,出现这种情况很正常。如果没有明确排序查询结果,则返回的数据的顺序没有特殊意义。返回数据的顺序可能是数据被添加到表中的顺序,也可能不是。只要返回相同数目的行,就是正常的;
  2. 如上的一条简单SELECT语句将返回表中所有行,数据没有过滤(过滤将得出结果集的一个子集),也没有排序;
  3. SQL语句不区分大小写,但有些标识符(如数据库名、表名、列名) 可能不同;
  4. 在处理SQL语句时,其中所有空格都被忽略。

03. 检索多个列

要想从一个表中检索多个列,使用相同的SELECT语句,唯一的不同是必须在SELECT关键字后给出多个列名,列名之间必须以逗号分隔
多列
数据库入门:MySQL必知必会(四)检索数据_第2张图片
从上述输出可以看到,SQL语句一般返回原始的、无格式的数据。数据的格式化是一个表示问题,而不是一个检索问题。因此,表示(对齐和显示上面的价格值,用货币符号和逗号表示其金额)一般在显示该数据的应用程序中规定。一般很少使用实际检索出的原始数据(没有应用程序提供的格式)。

04. 检索所有列

除了指定所需的列外(如上所述,一个或多个列),SELECT语句还可以检索所有的列而不必逐个列出它们。这可以通过在实际列名的位置使用星号(*)通配符来达到。
*所有列

  1. 列的顺序一般是列在表定义中出现的顺序,但有时候并不是这样的,表的模式的变化(如添加或删除列) 可能会导致顺序的变化;
  2. 一般,除非你确实需要表中的每个列,否则最好别使用*通配符;虽然使用通配符可能会使你自己省事,不用明确列出所需列,但检索不需要的列通常会降低检索和应用程序的性能
  3. 使用通配符有一个大优点: 由于不明确指定列名(因为星号检索每个列),所以能检索出名字未知的列

05. 检索不同的行

如果你不想要每个值每次都出现,怎么办?例如:假如你想得出products表中产品的所有供应商ID:
数据库入门:MySQL必知必会(四)检索数据_第3张图片

  1. SELECT语句返回14行(即使表中只有4个供应商),因为products表中列出了14个产品。那么,如何检索出有不同值的列表呢?
  2. 解决办法是使用DISTINCT关键字,顾名思义,此关键字指示MySQL只返回不同的值
  3. 不能部分使用DISTINCT: DISTINCT关键字应用于所有列而不仅是前置它的列。如果给出SELECT DISTINCT vend_id,prod_price,除非指定的两个列都不同,否则所有行都将被检索出来。
    返回不同值:输入
    数据库入门:MySQL必知必会(四)检索数据_第4张图片

06. 限制结果

SELECT语句返回所有匹配的行,它们可能是指定表中的每个行。为了返回第一行或前几行,可使用LIMIT子句:

  1. 使用SELECT语句检索单个列,LIMIT 5指示MySQL返回不多于5行
    limit限制
    数据库入门:MySQL必知必会(四)检索数据_第5张图片
  2. 为得出下一个5行,可指定要检索的开始行和行数:
    limit 5,5
    数据库入门:MySQL必知必会(四)检索数据_第6张图片
  3. LIMIT 5, 5指示MySQL返回从行5开始的5行: 第一个数为开始位置,第二个数为要检索的行数
  4. 行0: 检索出来的第一行为行0而不是行1LIMIT 1, 1将检索出第二行而不是第一行;
  5. 行数不够: 没有足够的行(例如:给出LIMIT 10, 5,但只有13行),MySQL将只返回它能返回的那么多行

07. 使用完全限定的表名

迄今为止使用的SQL例子只通过列名引用列,也可能会使用完全限定的名字来引用列(同时使用表名和列字):
完全限定列名
表名也可以是完全限定的:
完全限定表名
有一些情形需要完全限定名,现在,需要注意这个语法,以便在遇到时知道它的作用。

08.下一篇:排序检索数据

你可能感兴趣的:(MySQL数据库,MySQL数据库学习)