MySQL检索数据和排序数据

目录

一、select语句

1.检索单个列(SELECT 列名 FROM 表名;)

2.检索多个列(SELECT 列名1,列名2,列名3  FROM 表名;)

 3.检索所有的列(SELECT * FROM 表名;)

4.检索不同的行(SELECT 列名 FROM 表名;)

5.限制结果(SELECT 列名 FROM 表名 LIMIT 行数;)

6.使用完全限定的表名(SELECT 表名.列名 FROM 表名;)

二、排序检索数据

1.排序数据

 2.按多个列排序

3.指定排序方向

4.limit和order by子句的结合使用


一、select语句

最经常使用的语句就是select语句,它的作用是从一个或多个表中检索信息。为了使用select检索数据,至少给出两条信息-----想选择什么以及从什么地方选择

1.检索单个列(SELECT 列名 FROM 表名;)

输入:select  prod_name from products;

输出:

注意:结束SQL语句:如果使用mysql命令行,多条SQL语句必须以分号(;)分隔,且SQL语句必须加上分号来结束。

SQL语句的大小写问题:SQL语句不区分大小写!!!SELECT和select是相同的,写成Select也没有关系。但是把SQL的关键字使用大写,表名等使用小写,可以使代码更易于阅读和调试。

2.检索多个列(SELECT 列名1,列名2,列名3  FROM 表名;)

使用同一个SELECT语句检索多个列,需要在每个列名之后加上逗号,最后一个列名不需要加。

输入: select vend_id,vend_name from vendors;

 3.检索所有的列(SELECT * FROM 表名;)

可以通过在实际列名的位置使用星号(*)通配符来检索。

输入:select * from vendors;

 注意:除非需要检索表中的所有列,否则最好不使用(*)通配符,检索不需要的列会降低检索效率和应用程序的性能。

4.检索不同的行(SELECT 列名 FROM 表名;)

假如想要获取所有的ID

输入:select vend_id from vendors;

 注意:如果所获取的数据有重复出现的,可以使用DISTINCT关键字,此关键字指示MySQL只返回不同的值。即(SELECT DISTINCT vend_id FROM vendors;)

5.限制结果(SELECT 列名 FROM 表名 LIMIT 行数;)

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

输入:select vend_id  from vendors limit 4;

注意: 如果要返回下一个4行,即从行4开始的4行,如下所示:

select vend_id  from vendors limit 4,4; 

如果行数不够,MySQL只返回能返回的行数。

6.使用完全限定的表名(SELECT 表名.列名 FROM 表名;)

使用完全限定的名字来引用列(同时使用表名和列名)。

输入: select vendors.vend_name from vendors;

 注意:表名也可以是限定的,前提是这个表名确实存在于某个数据库中。

二、排序检索数据

1.排序数据

一般来说返回表中的某个列没有特定顺序,但是检索出来的数据也不是纯粹的随机显示,而是以底层表中出现的顺序显示。如果数据后来进行过更新或删除,这个顺序就会受到MySQL重用回收存储空间的影响关系数据库设计理论认为,如果不明确规定排序顺序,则不应该假定检索出的数据的顺序有意义。

为了明确的排序用SELECT检索出来的数据,可以使用ORDER BY 子句。ORDER BY子句取一个或多个列的名字对输出进行排序。输出结果将以字母顺序进行排序

格式:SELECT 列名 FROM 表名 ORDER BY 列名;

输入: select vend_name from vendors order by vend_name;

 2.按多个列排序

为了按多个列进行排序,则需要指定列名,列名之间用逗号(,)分隔。

格式:SELECT 列名1,列名2,列名3 FROM 表名 ORDER BY 列名1,列名2,列名3;

输入:select prod_price,prod_name from products order by prod_price,prod_name;

 以上排序按照价格进行排序。仅在多个行具有相同的prod_price值时才按照prod_price排序。如果prod_price列中的值是唯一的,则不会按照prod_price排序。

3.指定排序方向

数据排序不只是升序排序(A-Z),也有降序排序(Z-A),为了使用降序排序,可以使用DESC关键字。

格式:SELECT 列名1,列名2,列名3 FROM 表名 ORDER BY 列名1 DESC;

输入: select prod_price,prod_name from products order by prod_price desc;

 如果要使用多个列进行排序怎么办?则可以降序进行排序之后再对产品进行排序。

desc只对prod_price有效,而其他的依旧以升序排序。

示例:

 注意:如果想要多个列都降序排序,则每个列后都要加上desc关键字

4.limit和order by子句的结合使用

使用limit和order by的组合,可以找到某个列中最高或最低的值。

输入:select prod_price,prod_name from products order by prod_price desc limit 1;

 注意:在给出order by子句时,要保证它位于from之后,如果使用limit,它必须位于order by之后。使用子句顺序不对将会产生错误。

即from------>order by------->limit

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

simpleHan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值