Mysql之表的查询

2023-10-28 02:50
文章标签 mysql 查询 database 之表

本文主要是介绍Mysql之表的查询,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、单表的查询

  首先让我们先熟悉一下mysql语句在查询操作时执行的顺序:

         (1)from   
         (2) on 
         (3) join 
         (4) where 
         (5)group by 
         (6) avg,sum.... 
         (7)having 
         (8) select 
         (9) distinct 
         (10) order by 

   创建查询环境:

    创建一个学生表:

      create table stu(id int primary key auto_increment,name char(10) not null,gender enum('男','女'),age int not null);

    插入数据:

      insert into stu(name,gender,age)  values ('小红','女','16'),('小明','男','18'),('小丽','女','17'),('月月','女','12'),('孙哥','男','28');   

  1.查询所有字段

    select * from 表名;

       注: * 表示所有字段

    

  2.查询指定字段

    select 字段1,字段2... from 表名;

    

  3.查询指定记录

    selec 字段 from 表名 where 约束条件

    

  4.空值的查询

    

 

  5.关键字查询in与distinct

    in关键字:IN(xx,yy,...) 满足条件范围内的一个值即为匹配项

    

    distinct让查询的结果不重复 

    

 

  6.多条件查询and与or

    and: 相当于"逻辑与",也就是说要同时满足条件才算匹配

     

    or:相当于“逻辑或",也就是说只要满足其中一个条件,就算匹配上了,跟IN关键字效果差不多

    

  7.范围查询between and

    between ... and ... : 在...到...范围内的值即为匹配项,

    

  8.字符匹配查询like

    like: 相当于模糊查询,和LIKE一起使用的通配符有  "%"与"_" 

      "%":作用是能匹配任意长度的字符。

      

      "_":只能匹配任意一个字符

       

  9.对查询结果排序order by

    关键字 order by,有两个值供选择 desc 降序 、asc 升序(默认值)

     不设置则为默认

    

    desc

    

  10.分组查询group by ※

    分组查询作为查询中的重点难点在这里会详细解释说明一下,相信很多初学者在这里遇到过不少问题,希望你们在看了我的文章后能从中获得启发,

    创建一个新的查询环境

      创建课程表:

        create table cou(cid int primary key auto_increment,cname char(20) not null,elenum int not null,teacher char(10) not null);

        注:cid表示课程号;cname表示课程名;elenum:表示选课人数;teacher:表示授课教师;

      向表中添加数据:

        insert into cou(cname,elenum,teacher) values ('高等数学',67,'张红燕'),('大学物理',67,'李健民'),('大学外语',67,'王小丹'),('大学生安全教育',32,'吴菲'),('舌尖上的植物学',32,'老丁'),('体育',20,'高飞');

      

    首先我们先对字段elenum进行分组

      select elenum from cou group by elenuml;

      

       从图中可有看出将字段elenum分组后,分为了三个组20、32、67

      

  11.筛选having

    分组之后还进行条件过滤,将不想要的分组丢弃,使用关键字 having

    

  12.限制查询LIMIT

    LIMIT[位置偏移量] 行数  通过LIMIT可以选择数据库表中的任意行数

     

  13.集合函数查询

    集合函数查询包括:COUNT()函数、SUM()函数、AVG()函数、MAX()函数、MIN()函数

      COUNT()函数:作用是统计数据表中包含的记录行的总数,或者根据查询结果返回列中包含的数据行数

        

          COUNT(*):计算表中的总的行数,不管某列有数值或者为空值,因为*就是代表查询表中所有的数据行

          COUNT(字段名):计算该字段名下总的行数,计算时会忽略空值的行,也就是NULL值的行。

      SUM()函数:作用是一个求总和的函数,返回指定列值的总和

        

      AVG()函数:作用是通过计算返回的行数和每一行数据的和,求的指定列数据的平均值

        

      MAX()函数:作用是返回指定列中的最大值

        

      MIN()函数:作用是返回指定列中的最小值

        

二、多表的查询

  1.内链接查询

    格式:表名 INNER JOIN 表名 ON 连接条件

    

 

  2.外链接查询

    左外链接查询

      格式:表名 LEFT JOIN 表名 ON 条件; 返回包括左表中的所有记录和右表中连接字段相等的记录

    右外链接查询

      格式:表名 RIGHT JOIN 表名 ON 条件  返回包括右表中的所有记录和右表中连接字段相等的记录

    

  3.复合条件查询

     在连接查询(内连接、外连接)的过程中,通过添加过滤条件,限制查询的结果,使查询的结果更加准确,通俗点讲,就是将连接查询时的条件更加细化。

    举两个简单的例子:

    

    

 

三、子查询

  子查询的意思就是将查询一张表得到的结果来充当另一个查询的条件,这样嵌套的查询就称为子查询。

  需要注意的是在子查询完成后需要起一个别名,

  

  as的使用方法就是写表或者派生表的后面+别名 

  

  1.关键字查询

    关键字ANY与SOME

      ANY关键字与SOME关键字用法相同,都是接在一个比较操作符的后面,表示若与子查询返回的任何值比较为TRUE`

    

    关键字AII

      使用ALL时表示需要同时满足所有条件。

       不太容易理解我们分步来做

      先进行先子查询

        

      在一起查询更容易理解:

        

      

    关键字IN

     IN关键字的作用跟上面单表查询的IN是一样的,不过这里IN中的参数放的是一个子查询语句。

      

 

四、合并结果查询

  利用UNION关键字,可以将查询出的结果合并到一张结果集中,也就是通过UNION关键字将多条SELECT语句连接起来,注意,合并结果集,只是增加了表中的记录,并不是将表中的字段增加,仅仅是将记录行合并到一起。其显示的字段应该是相同的,不然不能合并。

  UNION[ALL]的使用

     UNION:不使用关键字ALL,执行的时候会删除重复的记录,所有返回的行度是唯一的,

     UNION ALL:不删除重复航也不对结果进行自动排序。

       格式:

         SELECT 字段名,... FROM 表名

         UNION[ALL]

         SELECT 字段名,... FROM 表名

  

 

转载于:https://www.cnblogs.com/qq631243523/p/9804149.html

这篇关于Mysql之表的查询的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/290182

相关文章

mysql表操作与查询功能详解

《mysql表操作与查询功能详解》本文系统讲解MySQL表操作与查询,涵盖创建、修改、复制表语法,基本查询结构及WHERE、GROUPBY等子句,本文结合实例代码给大家介绍的非常详细,感兴趣的朋友跟随... 目录01.表的操作1.1表操作概览1.2创建表1.3修改表1.4复制表02.基本查询操作2.1 SE

MySQL中的锁机制详解之全局锁,表级锁,行级锁

《MySQL中的锁机制详解之全局锁,表级锁,行级锁》MySQL锁机制通过全局、表级、行级锁控制并发,保障数据一致性与隔离性,全局锁适用于全库备份,表级锁适合读多写少场景,行级锁(InnoDB)实现高并... 目录一、锁机制基础:从并发问题到锁分类1.1 并发访问的三大问题1.2 锁的核心作用1.3 锁粒度分

MySQL数据库中ENUM的用法是什么详解

《MySQL数据库中ENUM的用法是什么详解》ENUM是一个字符串对象,用于指定一组预定义的值,并可在创建表时使用,下面:本文主要介绍MySQL数据库中ENUM的用法是什么的相关资料,文中通过代码... 目录mysql 中 ENUM 的用法一、ENUM 的定义与语法二、ENUM 的特点三、ENUM 的用法1

MySQL count()聚合函数详解

《MySQLcount()聚合函数详解》MySQL中的COUNT()函数,它是SQL中最常用的聚合函数之一,用于计算表中符合特定条件的行数,本文给大家介绍MySQLcount()聚合函数,感兴趣的朋... 目录核心功能语法形式重要特性与行为如何选择使用哪种形式?总结深入剖析一下 mysql 中的 COUNT

mysql中的服务器架构详解

《mysql中的服务器架构详解》:本文主要介绍mysql中的服务器架构,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、背景2、mysql服务器架构解释3、总结1、背景简单理解一下mysqphpl的服务器架构。2、mysjsql服务器架构解释mysql的架

MySQL之InnoDB存储引擎中的索引用法及说明

《MySQL之InnoDB存储引擎中的索引用法及说明》:本文主要介绍MySQL之InnoDB存储引擎中的索引用法及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录1、背景2、准备3、正篇【1】存储用户记录的数据页【2】存储目录项记录的数据页【3】聚簇索引【4】二

mysql中的数据目录用法及说明

《mysql中的数据目录用法及说明》:本文主要介绍mysql中的数据目录用法及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、背景2、版本3、数据目录4、总结1、背景安装mysql之后,在安装目录下会有一个data目录,我们创建的数据库、创建的表、插入的

MySQL中的InnoDB单表访问过程

《MySQL中的InnoDB单表访问过程》:本文主要介绍MySQL中的InnoDB单表访问过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、背景2、环境3、访问类型【1】const【2】ref【3】ref_or_null【4】range【5】index【6】

MySQL 中 ROW_NUMBER() 函数最佳实践

《MySQL中ROW_NUMBER()函数最佳实践》MySQL中ROW_NUMBER()函数,作为窗口函数为每行分配唯一连续序号,区别于RANK()和DENSE_RANK(),特别适合分页、去重... 目录mysql 中 ROW_NUMBER() 函数详解一、基础语法二、核心特点三、典型应用场景1. 数据分

MySQL之InnoDB存储页的独立表空间解读

《MySQL之InnoDB存储页的独立表空间解读》:本文主要介绍MySQL之InnoDB存储页的独立表空间,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、背景2、独立表空间【1】表空间大小【2】区【3】组【4】段【5】区的类型【6】XDES Entry区结构【