前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >select简单使用

select简单使用

作者头像
诺诺的包包
发布2023-12-18 13:53:10
1020
发布2023-12-18 13:53:10
举报
文章被收录于专栏:个人笔记总结个人笔记总结

语法

先大致看一下,后面都会讲,distinct用来去重,from 指明表名,where语句则用来控制查询条件,order by则用来对结果进行升序/降序排序,limit则用来分页。

代码语言:javascript
复制
SELECT
[DISTINCT] {* | {column [, column] ...}
[FROM table_name]
[WHERE ...]
[ORDER BY column [ASC | DESC], ...]
LIMIT ...

注意:mysql不区分大小写,我这里是在命令行敲打的,大多数直接就干脆写成一行了,为了方便观察单词,采用小写。具体使用包包按照要求就行。

基本查询

1、全列查询

语法:select * from 表名

2、指定列查询

语法select 字段1,字段2,字段3... from 表名  (各个字段之间以逗号分隔,注意这里的逗号是英文那个,不是中文)

3、查询结果重命名

语法:select 字段1 新名,字段2 新名,字段3 新名... from 表名  (旧的字段与新名之间用空格隔开)

4、去重查询

语法:select distinct 字段1,字段2.... from 表名 (distinct后面跟几个字段,就表明这几个字段必须相同才会去重)

如果是select distinct * from 表名,则表示表中必须所有字段全部相同,才会去重,只要有一个字段不同,就不会去重。

where条件

我们可以通过where语句,来对查询的条件进行一些限制,比如要查询成绩大于90,小于100的所有人,此时就可以通过where语句,进行条件筛选。

运算符

运算符

说明

>, >=, <, <=

大于,大于等于,小于,小于等于

=

等于,NULL不参与计算

<=>

等于,NULL参与计算

!=

不等于

between a and b

范围属于[a,b],也就是a<= value <=b

in (a,b,c,d......)

只要结果是括号内的范围中的其中一个,条件就成立

is NULL

用来判断是否为NULL

is not NULL

判断是否不为NULL

like

模糊匹配,%表示0或多个任意字符, _表示一个任意字符。比如姓孙的:'孙%',         孙某:'孙_'

逻辑运算符

运算符

说明

and

and两边必须同时满足条件

or

a or b ,满足ab其中之一就可以

not

用来取相反结果

这里来举个例子来进行讲解,先看这么一个表:

例1

筛选英语不及格的同学,以及对应的英语成绩:

例2

筛选语文成绩在80-90之间的同学,以及对应的语文成绩

与逻辑运算符配合使用案例
例1(含in(...)的使用)

筛选数学成绩是58,59,98,99其中之一的同学以及其数学成绩

这里我们可以采用or,进行连接:

也可以采用上面的运算符,in(a,b,c,d...)

例2(like模糊匹配的使用)

筛选出孙某同学,以及他的语文、数学成绩

筛选出姓孙的同学,以及对应的总分

例3(where后面也可以进行字段比较)

筛选出语文大于数学成绩的同学,以及对应的语文、数学成绩

例4(and与not)

筛选出语文成绩大于80,并且不姓孙的同学及其成绩

例5(括号表示一整个大的条件)

如果是孙某,直接筛选,其它人则满足:总分大于200,并且语文小于数学,并且英语大于80

order by对结果排序

前面查询出来的结果都是无序的,我们可以通过order语句,对结果进行排序,这里需要注意,NULL值在里面是最小值。

升序

order by xxx asc:根据xxx进行升序排序

例1:

还是上面那张表,根据语文成绩进行升序排序

例2:

针对总分进行升序显示:

降序

order by xxx desc:根据xxx,对结果进行降序

用法与升序相同,只不过讲asc变成desc了。这里sql语句默认如果不指明的话,是默认asc的。

查询同学各门成绩,依次按 数学降序,英语升序,语文升序的方式显示

例(与where语句配合使用)

查询出姓曹的,以及姓孙的数学成绩,并且按照数学降序排序

limit筛选分页结果

有时候我们只想一个页面显示10条信息,则用到了limit分页,此时再跳到章节开始,可以看到最后的limit。

建议:对未知表进行查询时,最好加一条 LIMIT 1 ,避免因为表中数据过大,查询全表数据导致数据库卡死

注意一点,limit起始下标从0开始

常见有三种用法,如下:我们先来看一张完整的表,以此来实验

limit n

从0开始,筛选n条结果。

limit s,n

从s开始,显示n条结果

limit n offset s

与limit s,n意义相同,只不过相比于limit s,n,更加习惯于用这个罢了。

可以看到与上面结果相同。

讲这张表按照id降序,分成3页,每页显示3条记录

至此,一张表被分成了三页,每页3条记录。

基本单表查询结束,可以配合各种场景,利用where、order by、distinct、limit根据需求配合灵活使用——爱你的包包。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-12-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 语法
  • 基本查询
    • 1、全列查询
      • 4、去重查询
      • where条件
        • 运算符
          • 例1
          • 例2
        • 与逻辑运算符配合使用案例
          • 例1(含in(...)的使用)
          • 例2(like模糊匹配的使用)
          • 例3(where后面也可以进行字段比较)
          • 例4(and与not)
      • order by对结果排序
        • 升序
          • 例1:
          • 例2:
        • 降序
      • limit筛选分页结果
        • limit n
          • limit s,n
            • limit n offset s
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档