MySQL数据库入门之单表数据记录查询

简单数据查询

语法形式如下:

SELECT field1,field2,...,fieldn
    FROM table_name

在上述语句中,参数fieldn表示所要查询的字段名字,参数table_name表示所要查询数据记录的表名。

当需要查询表中所有字段时,可使用”*”代替所查询的字段

SELECT * FROM table_name

避免重复数据查询

SELECT DISTINCT field1 field2 ... fieldn
    FROM table_name

在上述语句中,关键字DISTINCT去除掉重复的数据。

实现数学四则运算数据查询

MySQL支持加法【+】、减法【-】、乘法【*】、除法【/(DIV)】、求余【%(MOD)】关系运算。

语法形式如下

SELECT field关系运算 [AS] 字段别名 FROM table_name

设置显示格式数据查询

在MySQL中提供函数CONCAT()来连接字符串,从而实现设置显示数据的格式。

SELECT CONCAT(需要拼接的字段及字符串,之间使用英文逗号隔开) 字段别名 FROM table_name

条件数据记录查询

在MySQL软件中数据查询通过SQL语句SELECT来实现,同时通过关键字WHERE对所查询到的数据记录进行过滤。

语法形式如下:

SELECT field1,field2,...,fieldn
    FROM table_name
        WHERE CONDITION

在上述语句中通过参数CONDITION对数据进行条件查询。

条件查询语句可以包含如下功能:

  • 带关系运算符和逻辑运算符的条件数据查询。
  • 带BETWEEN AND关键字的条件数据查询
  • 带IS NULL关键字的条件数据查询
  • 带IN关键字的条件数据查询
  • 带LIKE关键字的条件数据查询

带关系运算符和逻辑运算符的条件数据查询

MySQL支持的比较运算符有大于【>】、小于【<】、等于【=】、不等于【!=或<>】、大于等于【>=】、小于等于【<=】。

MySQL支持的逻辑运算符有逻辑与【AND或&&】、逻辑或【OR或||】、逻辑异或【XOR】、逻辑非【NOT或!】。

带BETWEEN AND关键字的条件数据查询

MySQL软件提供了关键字BETWEEN AND用来实现判断字段的数值是否在指定范围内的条件查询。

语法形式如下:

SELECT field1,field2,...,fieldn
    FROM table_name
        WHERE field BETWEEN value1 AND value2

在上述语句中,通过关键字BETWEEN AND来设置字段field的取值范围,如果字段field的值在所指定的范围内,则满足查询条件,该记录就会被查询出来,否则不会被查询出来。如果想要查询不在指定范围内的数据记录,可以使用NOT关键字

SELECT field1,field2,...,fieldn
    FROM table_name
        WHERE field NOT BETWEEN value1 AND value2

带IS NULL关键字的空值查询

MySQL软件提供了关键字IS NULL,用来实现判断字段的数值是否为空的条件查询。

语法形式如下:

SELECT field1,field2,...fieldn
    FROM table_name
        WHERE field IS NULL

在上述语句中,通过关键字IS NULL来判断字段field的值是否为空。

在具体实现该应用时,一定要注意空值与空字符串和0的区别。

带IN 关键字的集合查询

MySQL软件提供了关键字IN,用来实现判断字段的数值是否在指定集合中的条件查询。

语法形式如下:

SELECT field1,field2,...,fieldn
    FROM table_name
        WHERE field IN (value1,value2,...,valuen)

在上述语句中,参数valuen表示集合中的值,通过关键字IN来判断字段field的值是否在集合(value1,value2,…,valuen)中,如果字段field的值在集合中,则满足查询条件,该记录就会被查询出来,否则不会被查询出来。

除了上述语句外,也可使用逻辑判断语句来实现

SELECT field1,field2,...,fieldn
    FROM table_name
        WHERE field=value1 OR field=value2 OR ... OR field=valuen

结合NOT关键字,实现查询不在集合内的数据记录

SELECT field1,field2,...,fieldn
    FROM table_name
        WHERE field NOT IN (value1,value2,...,valuen)

在具体使用关键字IN时,查询的集合中如果存在NULL,则不会影响查询;如果使用关键字NOT IN,查询的集合中如果存在NULL,则不会有任何的查询结果。

带LIKE关键字的模糊查询

MySQL软件提供LIKE关键字,用来实现判断字段的值是否与指定的值相匹配。

语法形式如下:

SELECT field1,field2,...,fieldn
    FROM table_name
        WHERE field LIKE value;

在上述语句中,参数value表示所匹配的字符串值,通过关键字LIKE来判断字段field的值是否与value字符串相匹配,如果字段field的值与value相匹配,则满足查询条件,该记录就会被查询出来;否则不会被查询出来。

对于字符串在MySQL软件,必须加上单引号或者双引号。

LIKE关键字后除了可以连接字符串外,还可以连接通配符【_】与【%】;

  • 【_】通配符值能匹配单个字符;
  • 【%】通配符值可以匹配任意长度的字符串,既可以是0个字符,1个字符,也可以是多个字符;

在MySQL软件中不区分字母大小写。

排序数据记录查询

通过条件数据查询,虽然可以查询到符合用户需求的数据记录,但是查询到的数据记录在默认情况下都是按照数据记录最初添加到表中的顺序来显示。默认的查询结果顺序并不能满足用户的需求,于是MySQL软件提供了关键字ORDER BY来设置查询结果的顺序。

语法形式如下;

SELECT field1,field2,...,fieldn
    FROM tanle_name
        WHERE CONDITION
            ORDER BY fieldm1 [ASC|DESC][,fieldm2 [ASC|DESC],]

在上述语句中,通过参数fieldm表示按照该字段进行排序,参数ASC表示按升序的顺序进行排序,参数DESC表示按照降序的顺序进行排序。默认情况下按照ASC进行排序,还可以在关键字ORDER BY 后面设置多个不同的字段进行排序。

限制数据记录查询数量

通过条件数据查询,虽然可以查询到符合用户需求的数据记录,但是有时所查询到的数据记录太多。对于这么多数据记录,如果全部显示则不符合实际需求,这时可以通过MySQL软件提供的关键字LIMIT来限制查询结果的数量。

语法形式如下:

SELECT field1,field2,...,fieldn
    FROM table_name
        WHERE CONDITION
            LIMIT OFFSET_START,ROW_COUNT

在上述语句中,通过关键字LIMIT来限制数据查询结果数量,其中参数OFFSET_START表示数据记录的起始偏移量,参数ROW_COUNT表示显示的行数。

在具体使用中,如果不指定初始位置【OFFSET_START】,默认值为0,表示从第一条记录开始显示。

统计函数和分组数据记录查询

在MySQL软件中,很多情况下都需要进行一些统计汇总操作,比如,统计整个公司的人数或者统计整个部门的人数,这时候就会用到该软件所支持的统计函数,它们分别为:

  • COUNT()函数:该统计函数实现统计表中记录的条数
  • AVG()函数:该统计函数实现计算字段值的平均值
  • SUM()函数:该统计函数实现计算字段值的总和
  • MAX()函数:该统计函数实现计算字段值的最大值
  • MIN()函数:该统计函数实现计算字段值的最小值

在具体应用中,统计函数经常与分组一起使用。

使用统计函数语法形式如下:

SELECT function(field) [AS] 字段别名 FROM table_name

在上述语句中,参数function表示函数名。

使用分组查询语法形式如下:

SELECT field1,field2,...,fieldn
    FROM table_name
        WHERE CONDITION
            GROUP BY field

在具体使用中,分组所依据的字段上的值一定要具有重复值,否则将没有任何实际意义。

两者结合使用,语法形式如下:

SELECT function(field)
    FROM table_name
        WHERE CONDITION
            GROUP BY field

原创文章,作者:ZERO,如若转载,请注明出处:https://www.edu24.cn/course/mysql-single-table-query.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
ZEROZERO
上一篇 2020年7月14日
下一篇 2020年7月17日

相关推荐

  • Angular环境搭建(Windows 10)

    目前前端开发正处于快速发展阶段,接触angular时,Angular 2刚刚发布,现在第五版也已经发布。由于刚开始没有系统的学习,导致工作中,经常捉襟见肘。现在把自己在工作中踩过的…

    2018年9月5日
    4.1K
  • CSS卡片堆栈

    在浏览各种APP及网站,往往会发现很多酷炫的布局及样式。搜集一下,补充自己的技能库,借鉴学习一下。 HTML CSS

    2019年12月31日
    2.1K
  • MySQL数据库入门之数据的操作知识点整理

    插入数据记录 插入一条完整数据记录 在上述语句中,参数table_name表示所要插入完整记录的表名,参数fieldn表示表中全部的字段名字,参数valuen表示所要插入的数值,最…

    2020年7月14日
    1.5K
  • 从零开始开发vue组件库

    前言 很早之前,就有开发一套vue组件库的想法,直到现在想法依旧只是想法。汗颜啊……此篇文章将讲述如何开发vue组件库,虽然文章标题为《从零开始开发vue组件库》,实际上是从搭建v…

    2024年6月23日
    685
  • 如何搭建MyBatis开发环境

    进入一段时间的学习及温习,已经可以说是初步掌握了Javaweb入门开发,由于我的中心思想是抛弃JSP,做纯粹的前后端分离项目,所以接下来计划学习持久层开发,现在主流的持久层开发工具…

    2022年4月6日
    802
  • css晦涩难懂的点都在这啦

    CSS大家肯定都是会的但是每个人所撑握的情况都不一样,特别是已经工作几年的前辈(这里指的是我司)很多CSS玩法都不知道,可能他们已经习惯了用组件, 但是面试的时候又不可避免问,所以…

    2021年1月20日
    1.4K
  • Java自学之I/O编程

    I/O(Input/Output,输入/输出)可以实现数据的读取与写入操作,Java针对I/O操作的实现提供了java.io工具包,此包的核心组成由File类、InputStrea…

    2020年12月21日
    1.3K
  • CSS布局之圣杯与双飞翼布局

    所谓圣杯布局和双飞翼布局其实解决的问题是相同的,都是解决左右两栏固定宽度,中间部分自适应,其中某部分内容比其他内容高的时候,保证三者元素等高。他俩的区别就是:圣杯用padding。…

    2019年6月18日
    1.9K
  • MyBatis配置之properties属性详解

    之前写了一篇《如何搭建MyBatis开发环境》,通过一个简单的实例讲解了关于搭建MyBatis的开发环境,这篇将详细讲解MyBatis的配置。 MyBatis配置文件的层次结构 这…

    2022年4月18日
    802
  • STS插件mybatis-generator安装及使用

    断断续续学习Java也有好长时间了,没有师傅带,没有项目练手,学习超级慢,也很烦。视频、书籍翻看了一大推,还是没有目标。 相信滴水成海,外加条条大路通罗马,只要坚持,自己终能达成目…

    2019年12月27日
    2.3K

发表回复

登录后才能评论