SQL入门:第三章 数据查询

在前面几章中,已经慢慢的熟悉了数据库的概念。通过了SQL语句取到了学生表格里的数据,看到了SQL并不是一门难于理解的语言,这么门语言的语法像极了英文代码。

在数据的管理中,如同在管理物件一样,最常见的是取出相应的物品,查询取得数据也同样,先要知道数据存在在哪个仓库,存放在哪一个位置下。

对于数据的查询选取,占据了数据库操作的大半江山,是SQL语句的重点。开始来看看数据是如何查询的。

再来看一下已有的学生的数据:

在这里插入图片描述

数据有六行属性字段:序号,名字,性别,年龄,手机号。其中id是自动增长的,在插入的时候不用考虑这一列的数值。

字段的选择

在SQL中 * 号表示通配符,表示选择所有的东西,如

SELECT * FROM `students`

选择了 students 表中所有的字段,在具体的要求中如果并不需要所有的字段的话,有时字段特别的多,SQL的运行规则在前面介绍过,服务器算完了数据要返回给客服端,如果字段特别多,数据量特别大,拖慢了计算速度和数据返回的速度,所以一般在项目的使用过程中通常不会用 * 号来返回所有的数据字段。

对于要返回的数据字段,把 * 替换为字段的名称:

SELECT name,sex FROM `students`

字段之间用 隔开。

结果返回个数

select 如果不加限制的话,返回的是所有的数据,在这个例子中我们只有六条数据,并没有太大的影响,如果有一个几百万条的数据,返回来的数据量太大,容易导致服务端卡死。

一般来说,我们也不需要一次性的返回太多的数据,基本上是看不过来的,在很多网页上对于太多的数据大部分使用分页的办法来处理。SQL的查询就能实现很好的分页功能。

只可惜并不是所有版本的SQL对于结果个数的限制是同样的语法,在MySQL中使用的关键字为limit

假设我们需要每一页显示两个学生,用分页的方式来处理,如下:

SELECT * FROM `students` limit 0,2

显示的结果如下:

在这里插入图片描述

结果学生表格里的前面两条数据,这里就能知道 limit 的用法,limit offset,num,即 limit 后面跟的是偏移,和个数,偏移就可以用在sql的分页中了,如下显示第二页的内容:

SELECT * FROM `students` limit 2,2

不出意外的话,显示的应该是 id为 3,4的数据。如下:

在这里插入图片描述

limit 中,如果只跟一个数值,那个数值就是返回的结果数,也就是默认的偏移为0。

SELECT * FROM `students` limit 2

显示的结果为前面的两条数据。

在这里插入图片描述

不同SQL的分页方法不太一样,但是基本的语法都是相似的,可以根据选用的版本进行选择。

条件选择数据
普通字段查询

SQL语言中,条件选择的关键字 where,用 where 后面跟具体的条件,条件的限制基本上是对字段的限制,如我们要选出班级所有的男学生,用sex来进行限制:

SELECT * FROM `students` where sex = '男' limit 10

结果如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WkbkGxEi-1649725714832)(/images/kuxue/sql-start/mysqlwhere1.png)]

where 关键字对条件进行过滤,sex字段限制学生的性别,这里的操作符为 =,除了等号以外,常用的操作符如下:

操作符说 明
=等于
< >不等于
<小于
<=小于等于
!不等于
>大于
!>不大于
BETWEEN两者之间
IS NULL是否为空
in在数组中
not用来否定其后条件

以上的这些操作符,跟我们数学用到的意思差不多,经常用到的是那几个,也不用特别的去记。

多条件

有的时候一个条件的限制并不能满足需要,如需要选出年纪在20岁的男同学,多个条件的组合,条件的组合关键字为 and,or:

SELECT * FROM `students` where sex = '男' and age = 20 limit 10

结果如下:

在这里插入图片描述

只有id为1的王小明符合上面的条件,即20岁男同学。

用like匹配字符串

对字符串的查找是搜索最经常见的,想走出某一字符串是否出现在特定的字段中,用以上的操作符是做不到的,例如想查找手机号码以13开头的同学,这是一种匹配的结果,用通配符 %,加操作符 like
如下:

SELECT * FROM `students` where tel like '13%'  limit 10

结果如下:

在这里插入图片描述

可以试试:

SELECT * FROM `students` where tel like '%23%'  limit 10

的结果是那些同学,语句具体的意思是什么?

通常通配符的查询效率都是比较低的,为什么会是这样,后面会有解释。

对于数据的查询,涉及到了字段的选择,返回个数,条件查询等,查询语句按照固定的顺序组织起来,在写SQL语句时根据需求写出语句就能查到相应的结果。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

go2coding

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

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

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

打赏作者

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

抵扣说明:

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

余额充值