mysql深入理解

来源:互联网 发布:黑超特警组3 知乎 编辑:程序博客网 时间:2024/06/16 09:25

模式(schema): 关于数据库和表的布局及特性的信息。
show columns form tablename:显示列,快捷语句是desc tablename;

help show

为了使用select检索表数据,必须至少给出两条信息--,想选择什么,以及从什么地方选择。

select prod_name from products 从表products中选出列prod_name.

1    检索多个列

       要想从一个表中检索多个列,使用相同的select语句。唯一的不同事必须在select

       关键词给出多个列名,列名之间必须以逗号分隔。注意:最后一个列名不可以加

       逗号。

2    检索所有列

      select  * from products ,会降低性能。

3    检索不同的行

       假如      select vend_id from products ;返回如下

                     vend_id

                     1001

                     1001

                     1001

                     1002

                     1002

                     1003

                     1003

       返回了7行,即使表中只有7个供应商,因为products表中列出了7个产品,那么

       如何检索出不同值的列表呢?

       解决方法是用distinct关键字,顾名思义,此关键字只返回不同的值。

       select distinct vend_id  from products ;

       distinct关键字必须放在列的前面。

4     限制结果

       select prod_name from products limit 5;

       此语句是用select语句检索单个列。limit 5 指示mysql返回不多于5行。

       可指定检索的开始行数 select prod_name from products limit 5  , 5从第五行

       开始检索,第二个数位要检索的行数。

5     使用完全限定的表名

       select products.prod_name from products ;等效于select prod_name from 

       products。

二   排序检索数据      

       接下来讲述如何是用 select 语句的order by 字句,根据需要排序检索出来的

       数据

1    子句 sql语句由子句构成,有些子句是必需的,而有的是可选的。一个子句通常

      由一个关键字和所提供的数据组成。子句的例子有select 语句的from 子句,我

      们在前一章看到过这个子句。

2    为了明确地排序使用select 语句检索出的数据,可使用order by 子句,order

      by 子句取一个或多个列的名字,据此对输出进行排序。如

      select prod_name form prodects  order by prod_name;

     以prod_name 列字母顺序排序

3     按多个列排序

       为了按多个列排序,只要指定列名,列名之间用逗号分开即可,下面的代码

       检索3个列,并按其中两个列对结果进行排序——首先按价格,然后按名称

       select prod_id ,prod_price,prod_name from products order by prod_price ,

       prod_name;

4     指定排序方向

      数据排序不限于升序(从A到Z),这只是默认的排序顺序,还可以使用order by

     子句 以降序(从A到Z )顺序排序。为了进行降序必须指定desc关键字。

     下面的例子按价格以降序排序产品(最贵的排在最前面)

      select prod_id ,prod_price ,prod_name from prodects order by prod_price desc;

5     使用order by 和limit 的组合,能够找出一个列中最高或最低的值

      下面的例子找出最昂贵的物品值;

      select prod_price from products order prod_price desc

      limit 1;

      prod_price desc 保证行是按照由最昂贵到最便宜检索的,而limit 1 仅返回一行。