zoukankan      html  css  js  c++  java
  • MySQL数据库学习02: SELECT语句

    声明:本篇文章大多数内容出自《MySQL必知必会》,仅供学习参考,勿作他用!

    第4章 检索数据

    4.1 SELECT语句

        SELECT子句用于检索数据库中的表数据。它几乎是MySQL中最常用的语句。我们一定要掌握好。为了能够检索表数据,必须至少给出两条信息 —— 想选择什么(表字段,即列),以及从什么地方选择(哪张表)。

    4.2 检索单个列

    输入: select prod_name from products;

    分析:

        上述语句利用SELECT语句从products表中检索一个名为prod_name的列。选择什么 —— prod_name列;从什么地方选 —— products表。

    形式: SELECT 列名 FROM 表名;  (列应该是表中的列)

    输出:    如图

    注释:

        1 你可能得到不同的顺序。这很正常。如果没有排序的话,顺序是随机的。只要数据正确即可。

        2 每一条SQL语句都应该以分号(英文)结尾。一 为了规范,二 如果是命令行则必须如此。

        3 无论何种编程语言,语法中的符号都是英文下的(半角输入法)。以后不再强调。

        4 大小写的说明。MySQL中的SQL语句不区分大小写。但是,为了规范,一般将关键字大写,其它标识符小写。如 SELECT prod_name FROM products;

            我为了节省书写博文的时间,便一律采用小写了,请见谅。

    4.3 检索多个列

        要想从一个表中检索多个列,使用相同的SELECT语句。惟一的不同即SELECT关键字后跟多个列名,且这些列名之间要用逗号(英文的)隔开。

    输入:  select prod_id, prod_name, prod_price from products;

    分析: 没啥分析的。

    输出:

    4.4 检索所有列

    格式:    SELECT * FROM 表名; 或者SELECT 列名1, 列名2... FROM 表名;

    输入:

        select * from products;

        或者

        select prod_id, vend_id, prod_name, prod_price, prod_desc from products;

    分析:

        第一种方式采用了通配符*代表了所有列。第二种方式将所有列的列出了。

        如果不是真的需要,不要为了方便使用*查询。这样会检索到不需要的列,从而增加时间。

    输出:

    方式一

    方式二

    4.5 检所不同的行

         正如所见,SELECT语句默认会返回所有匹配的行。而如果我们不想每个值每次都出现,怎么办?加入你想得出products表中的供应商的id

    输入: select vend_id from products;

    输出:

        我们发现,相同的id多次出现。如果我们想解决这一问题,那么就需要DISTINCT关键字。意思: 独特的,不同的。

    格式: SELECT DISTINCT 列名 FROM 表名;

    输入:

        select distinct vend_id from products;

    分析:

        如果使用DISTINCT关键字,它必须直接放在列名前面。

        如果DISTINCT后面接多个列名,则无效。

    输出:

    4.6 限制结果

        SELECT语句返回所有匹配的行,有时可能是指定表中所有的行。为了返回第一行或前几行可使用LIMIT关键字。

    格式: SELECT 单列名或多个列名 FROM 表名 LIMIT 显示的结果行数;

    输入:    select prod_name from products limit 5;

    分析:    LIMIT 5指示MySQL返回的结果行数不得多于5条。

    输出:

    如果想要显示下一个5行,可以指定要检索的开始行和行数。如下所示:

    格式:    SELECT 单列名或多个列名 FROM 表名 LIMIT 开始的索引(第一行的索引为0,第二行的索引为1...), 显示的结果行数,

    输入: mysql> select prod_name from products limit 0,5;

    分析:

        limit A, B。从行5,即索引为0,结果的第1行开始获取5行, 限制显示条数不得多于B,

    输出:

    注释

        1 行0: 如果是LIMIT A, B的格式。那么检索出来的第一行为行0,即索引为0,而非1. 如LIMIT 1, 1检索出第二行而非第一行。

        2 MySQL5的LIMIT语法:    LIMIT A, B的格式很容易令人混淆,所以MySQL5.0支持LIMIT的另一种语法。LIMIT 结果显示条数 OFFSET 索引(行N);

           OFFSET是偏移量的意思,即索引,行N。

    输入: select prod_name from products limit 5 offset 3;

    分析:

        limit 5 offst 3; 限制显示结果条数为5,索引为3,从行3即第四行开始获取。

    输出:

    4.7 使用完全限定名

       迄今为止使用的SQL例子只通过列名引用咧。也可能会使用完全限定名字来引用列(同时使用表名和列名)。请看下面例子:

    格式: 完全限定的列名 —— 列名.表名

    输入:    select distinct products.vend_id from products;

    分析:    结果与select distinct vend_id from products; 一致。

    输出:

    表名也可以完全限定。

    格式: 数据库名.表名

    输入:     select distinct vend_id from mysqlcrashcourse.products;

    输出:

    有一些情形下需要使用完全限定名,这在之后的博文中会介绍。现在,我们需要注意这个语法,以便日后的学习与使用。

    4.8 小结

        本章学习了如何使用SELECT语句检索表的单列、多列数据以及所有列。下一篇讲讲解如何排序检索出来的数据。

    觉得不错请点个赞 若有想法随意评论 问题难解就联系我 互相帮助才是网络
  • 相关阅读:
    声明:此资源由本博客收集整理于网络,只用于交流学习,请勿用作它途。如有侵权,请联系, 删除处理。
    注入点归纳
    网站入侵思路
    关于网上的“人肉”里面的技巧,简单解释
    SQL注入复习
    自己构造注入点方便入侵
    SQL通常注射的一些介绍
    AWVS13破解版安装_Windows
    黑页
    显ipQQ
  • 原文地址:https://www.cnblogs.com/UzumakiNaruto/p/5785993.html
Copyright © 2011-2022 走看看