检索数据、排序检索数据、过滤数据

在这里插入图片描述
在这里插入图片描述
欢迎关注微信公众号:摸鱼汪的杂货铺

四、检索数据

4.1SELECT语句

SQL语句是由简单的英语单词构成的。这些单词称为关键字,每个SQL语句都是由一个或多个关键字构成的。最经常使用的SQL了语句就是SELECT语句了。他的用途是从一个或多个表中检索信息

4.2检索单个列

SELECT name FROM user

上述语句利用SELECT语句从user表中检索一个名为name的列。所需要的列明在SELECT关键字之后给出,FROM关键字指出从其中检索数据的表名。(如果使用mysql命令行,必须加上分号来结束SQL语句,SQL语句是不区分大小写)

4.3检索多个列

想要从表中检索多个列,使用相同的SELECT语句。唯一的不同是必须在SELECT关键字后给出多个列名,列名之间必须以分号隔开。

SELECT name,age,address FROM user;

在选择多个列时,一定要在列名之间加上逗号,但最后一个列名后不加,如果在最后一个列名加上逗号将出现错误。

4.4检索所有列

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

SELECT * FROM user

如果给定一个通配符(*),则返回表中所有列。列的顺序一般式的变化(如添加或删除列)可能会导致顺序的变化。
一般,除非你确实需要表的每个列,否则最好别使用星号通配符,虽然使用通配符可能会使你自己省事,不用明确列出所需列,但检索不需要的列通常会降低检索和应用程序的性能。

4.5检索不同的行

如何只检索出有不同值得列表呢,使用DISTINCT关键字

SELECT DISTINCT age FROM user;

使用DISTINCT关键字,顾名思义,此关键字指示MySQL只返回不同得值。
SELECT DISTINCT age告诉MySQL只返回不同得age行,因此只返回两行,如上图所示。

4.6限制结果

SELECT语句返回所有匹配得行,他们可以是指定表中得每个行。为了返回第一行或前几行,可使用LIMIT字句。

SELECT * FROM user LIMIT 2;

此语句使用SELECT语句检索单个列。LIMIT 2指是MySQL返回不多于2行。
行0 检索出来得第一行为行0而不是行1,因此,LIMIT 1,1将检索出第二行而不是第一行。

LIMIT 4 OFFSET 3意为从3行还是取4行就像LIMIT3,4一样

LIMIT 要获取得行数  OFFSET 从第几行开始但不含这行;

五、排序检索数据

5.1排序数据

子句(clause) SQL语句由自居构成,有些子句是必需的,而有的是可选的。一个子句通常由一个关键字和所提供的数据组成。子句的例子由SELECT语句的FROM子句,我们在前一节看到过这个例子。

为了明确的排序用SELECT语句检索出的数据,可使用ORDER BY子句。

SELECT * FROM user ORDER BY age;

5.2按多个列排序

为了按多个列排序只要指定列名,列名之间用逗号分开即可。

SELECT * FROM USER ORDER BY age,email;

5.3指定方向排序

数据排序不限于升序排序(从A到Z)。这只是默认的排序顺序,还可以使用ORDER BY子句以降序(从Z到A)顺序排序。为了进行降序排序必须指定DESC关键字。

SELECT * FROM USER ORDER BY id DESC;

与DESC相反的关键字是ASC(ASCFDING),在升序排序时可以指定它。

使用DRDER BY和LIMIT的组合,弄够找出一个列中最高或最低的值。
如下面找出年龄最大的人的全部信息

SELECT * FROM USER ORDER BY age DESC LIMIT 1;

六、过滤数据

6.1使用WHERE子句

只检索所需数据需要制定搜索条件 (search criteria),搜索条件也称为过滤条件(filter condition)。
在SELECT语句中,数据根据WHERE子句中指定的搜索条件进行过滤WHERE子句在表名(FROM子句)之后给出。

SELECT * FROM user WHERE age=18;

6.2WHERE子句操作符

6.2.1检查单个值

检查等于‘李四’的值(MySQL语句不区分大小写)

SELECT * FROM USER WHERE NAME='李四';

6.2.2不匹配检查

列出年龄不等于18的所有用户信息

SELECT * FROM USER WHERE age<>18;

6.2.3范围值检查

为了检查某个范围的值,可以使用BETWEEN操作符。与其他操作语句有所不同,他需要两个值,检索17到18岁之间的用户信息。

SELECT * FROM USER WHERE age BETWEEN 17 AND 18;

6.2.4空值检查

NULL 无值(no value),它与字段包含0、空字符串或仅仅包含空格不同,

SELECT语句有一个特殊的WHERE子句,可用来检查具有NULL值的列。这个WHERE子句就是IS NULL子句。

SELECT * FROM USER WHERE qq IS NULL;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值