当前位置: 首页 > news >正文

select简单使用

语法

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

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或多个任意字符, _表示一个任意字符。比如姓孙的:'孙%',         孙某:'孙_'

逻辑运算符

运算符说明
andand两边必须同时满足条件
ora 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根据需求配合灵活使用——爱你的包包。

http://www.xdnf.cn/news/846559.html

相关文章:

  • Unity移动应用如何在Bugly上查看崩溃堆栈
  • 【Python】【进阶篇】四、Python爬虫的URL编码/解码
  • ASCII码表完整版
  • Postman下载安装教程
  • XML简介及举例
  • 阿里图标库使用(Unicode)展示图标
  • pip基本使用
  • Linux基本指令(超详版)
  • Three.js学习1:threejs简介及文档本地部署
  • vscode使用git上传提交代码、比较代码(git基本操作)
  • 【雕爷学编程】Arduino智慧农业之精确控制温度、湿度和光照
  • Git的下载、安装与使用(Windows)
  • flex布局
  • 前端插件swiper基础使用详解含部分常用API
  • SSH服务
  • swagger接口测试工具介绍及使用
  • 00_简单常识介绍——NOIP/NOI/IOI(信息学奥林匹克竞赛)
  • zabbix监控
  • Apache Doris新手指南:10分钟内搭建数据分析引擎!_doris priority_netwoks(3)
  • 什么是LLM?看这一篇就够了!
  • Ping命令详解(使用Ping这命令来测试网络连通)
  • Token验证流程、代码示例、优缺点和安全策略,一文告诉你。
  • jQuery看这一篇就够啦,jQuery基础大全,可用于快速回顾知识,面试首选
  • Https连接过程详解
  • Linux - 安装 Jenkins(详细教程)
  • Python编程入门——透析八大核心知识点快速掌握Python编程
  • VirtualBox虚拟机与主机互传文件的五种方法
  • Docker 搭建 Minio 容器 (完整详细版)
  • ASCII码对照表
  • vue 使用canvas 详细教程