MySQL基础4-数据查询

MySQL,数据,基础 · 浏览次数 : 138

小编点评

**DQL介绍** DQL全称数据查询语言,用于查询数据库中表的记录。 **DQL语法** ```sql select 字段列表 from 表名列表 where 条件列表 ``` **基本查询** 1. **原始表数据**: ```sql select 字段1,字段2,... from 表名 ``` 2. **设置别名**: ```sql select 字段1  [as 别名1], 字段2 [as 别名2] ... from 表名 ``` 3. **去重查询**: ```sql select distinct 字段列表 from 表名 ``` 4. **条件查询**: ```sql select 字段列表 from 表名 where 条件列表 ``` **聚合函数** 1. **介绍**:将一列数据作为一个整体,进行纵向计算 2. **常见聚合函数**: ```sql count:统计数量 max: 最大值 min:最小值 avg:平均值 sum:求和 ``` **分组查询** 1. **语法**: ```sql select 字段列表 from 表名 [where 条件] group by 分组字段名 [having 分组后过滤条件] ``` **排序查询** 1. **语法**: ```sql select 字段列表 from 表名 order by 字段1 排序方式1, 字段2 排序方式2; ``` **分页查询** 1. **语法**: ```sql select 字段列表 from 表名 limit 起始索引,查询记录数; ``` **示例** ```sql -- 统计table_test表中一共有多少数据 select count(*) from table_test; -- 统计table_test表中年龄最大的数据 select max(年龄) from table_test; -- 统计table_test表中年龄最小的数据 select min(年龄) from table_test; -- 统计table_test表中年龄的平均值 select avg(年龄) from table_test; -- 统计table_test表中所有人的年龄之和 select sum(年龄) from table_test where性别 = '男'; -- 统计北京地区所有员工的年龄之和 select sum(年龄) from table_test where地区 = '北京' and 职位 = '员工'; -- 统计不同地区的平均年龄,先使用where做条件筛选,然后再分组 select avg(年龄) from table_test where地区 = '北京' and 职位 = '员工' group by 地区; -- 统计各个地区的平均年龄(不统计空地区),并且显示平均年龄要大于19岁的 select avg(年龄) from table_test where地区 = '北京' and 职位 = '员工' and年龄 > 19; -- 查询第一页数据,每页展示5条数据 select * from table_test limit 1, 5; -- 查询第二页数据,每页展示5条数据,因为每页的数据是5条,所以第二页的索引其实位置是(2-1)*5 = 5 ```

正文

一、DQL介绍

  DQL全称:Data Query Language(数据查询语言),用来查询数据库中表的记录。

  关键字:select

 

二、DQL语法

  select 字段列表 from 表名列表 where 条件列表 group by 分组字段列表 having 分组后条件列表 order by 排序字段列表 limit 分页参数

  注意:本章节只涉及到单表查询,多表查询会在后面的文章中介绍

 

三、基本查询

  1、原始表数据

    

  2、查询多个字段

    语法:select 字段1,字段2,... from 表名 或者 select * from 表名(查询所有数据)

    查询指定字段

    

  3、设置别名

    语法:select 字段1  [as 别名1], 字段2 [as 别名2] ... from 表名;

    对查询结果设置别名

    

 

  4、去重查询

    语法:select distinct 字段列表 from 表名;      

    

 

四、条件查询

  语法:select 字段列表 from 表名 where 条件列表  

 
运算符 功能
> 大于
>= 大于等于
< 小于
<= 小于等于
<> 或 != 不等于
between ... and ... 在某个范围之间(包含最大值和最小值)
in(...) 在in之后的列表中的值,多选一
like 占位符 模糊匹配( "_" 匹配单个字符,"%"匹配任何字符)
is null 是null
and 或者 && 并且
or 或者 || 或者
not 或者 !

  1、查询年龄等于18的所有人的姓名

    

 

   2、查询年龄小于21的人的姓名 

    

   3、查询年龄大于18,小于20的

    

   4、查询地址不为空的人的姓名和地址信息  

    

   5、查询年龄小于20并且地址在西安的人的姓名和地址

    

   6、查询地址在列表["北京","上海","广州","深圳"]中的人的姓名和地址

    

 

五、聚合函数

  1、介绍

    将一列数据作为一个整体,进行纵向计算

  2、常见聚合函数

    count:统计数量

    max: 最大值

    min:最小值

    avg:平均值

    sum:求和

  3、语法

    select 聚合函数(字段列表) from 表名;

  4、示例

    4.1 统计table_test表中一共有多少数据

    

     4.2 统计table_test表中年龄最大的数据

    

     4.3 统计table_test表中年龄最小的数据

    

     4.4 统计table_test表中年龄的平均值

    

     4.5 统计table_test表中所有人的年龄之和

    

    4.6 统计北京地区所有员工的年龄之和 

    

     注意:在使用聚合函数的时候,所有的null值是不参与运算的,虽然table_test表中有6个数据,但是address列有一个是null,所以统计address字段时是5

    

 

六、分组查询

  1、语法:

    select 字段列表 from 表名 [where 条件] group by 分组字段名 [having 分组后过滤条件]

  2、where与having区别

    执行时机不同:where是分组之前进行过滤,不满足where条件,不参与分组,而having是分组之后对结果进行过滤

    判断条件不同:where不能对聚合函数进行判断,而having可以

  3、示例

    3.1 统计不同地区的平均年龄,需要根据address做分组

    

     3.2 统计各个地区的平均年龄(不统计空地区的),先使用where做条件筛选,然后再分组

    

     3.3 统计各个地区的平均年龄(不统计空地区),并且显示平均年龄要大于19岁的  

     

     注意:

      1、执行顺序:where > 聚合函数 > having

      2、分组之后,查询的字段一般为聚合函数和分组字段,查询其他字段没有意义

 

七、排序查询

  1、语法:

    select 字段列表 from 表名 order by 字段1 排序方式1, 字段2 排序方式2;

  2、排序方式

    ASC:升序(默认)

    DESC:降序

  3、示例

    3.1 table_test表中数据按照年龄升序排列

      

     3.2 table_test 表中数据按照年龄降序排列

      

     3.3 table_test 表中数据按照年龄降序排列,年龄一样的,在继续按照id降序排列

      

 

八、分页查询

  1、语法

    select 字段列表 from 表名 limit 起始索引,查询记录数;

  2、注意

    * 其实索引从0开始,其实索引等于(查询页码-1)* 每页显示的记录数

    * 分页查询是数据库的方言,不同的数据库有不同的实现,MySQL中是limit

    * 如果查询的是第一页,起始索引可以省略,直接写为limit 数量

  3、示例

    3.1 查询第一页数据,每页展示5条数据

      

    3.2 查询第二页数据,每页展示5条数据,因为每页的数据是5条,所以第二页的索引其实位置是(2-1)*5 = 5,第三页的起始位置是(3-1)*5=10

      又因为一共只有6条数据,所以第二页只有一条数据可以展示

      

 

 

九、DQL执行顺序

  

 

      

 

与MySQL基础4-数据查询相似的内容:

MySQL基础4-数据查询

一、DQL介绍 DQL全称:Data Query Language(数据查询语言),用来查询数据库中表的记录。 关键字:select 二、DQL语法 select 字段列表 from 表名列表 where 条件列表 group by 分组字段列表 having 分组后条件列表 order by 排序

[转帖]MySQL提升笔记(4)InnoDB存储结构

https://cdn.modb.pro/u/310923 这一节本来计划开始索引的学习,但是在InnoDB存储引擎的索引里,存在一些数据存储结构的概念,这一节先了解一下InnodDB的逻辑存储结构,为索引的学习打好基础。 从InnoDB存储引擎的存储结构看,所有数据都被逻辑地放在一个空间中,称之为

MySQL基础7-约束

一、约束的基本概念 1、概念:约束是作用于表中字段上的规则,用于限制储存在表中的数据 2、目的:保证数据库中的数据的正确性,有效性和完整性 3、分类 非空约束(not null):限制该字段的数据不能为null 唯一约束(unique):保证该字段的所有数据都是唯一,不重复的 主键约束(primar

MySQL基础8-多表查询

一、多表关系 一对多或者多对一 案例:部门与员工的关系 关系:一个部门对应多个员工,一个员工对应一个部门(不考虑跨部门的特殊情况) 实现:在多的一方建立外键,指向一的一方的主键,这里员工表是多的的一方,部门表是一的一方 多对多 案例:学生与课程的关系 关系:一个学生可以选修多门课程,一门课程也可以供

MySQL基础9-事务基础

一、事务简介 事务是一组操作的集合,它是一个不可分割的工作单位,事务会把所有操作作为一个整体一起向系统提交或者撤销操作请求,即这些操作要么同时成功,要么同时失败。mysql的事务默认是自动提交的,也就是说,当执行一条DML语句,Mysql会立即隐式的提交事务 二、事务操作 2.1 查看事务提交方式

MySQL基础5-用户及权限管理

一、介绍 DCL:Data Control Language(数据控制语言),用来管理数据库用户,控制数据库的访问,权限。 二、用户管理 1、查询用户 语法: 1、use MySQL; 2、select * from user; 默认只有四个账户。 2、创建用户 语法:create user '用户

MySQL基础6-常用数据库函数

一、字符串函数 1、常见MySQL内置字符串函数 concat(s1,s2,s3,...):字符串拼接,将s1,s2,s3...等拼接成一个字符串 lower(str):将字符串str全部转为小写 upper(str):将字符串str全部转为大写 lpad(str,n,pad):左填充,将字符串pa

【冷启动#1】实用的MySQL基础

简单安装一下MySQL Windows下(5.7.x) 本体安装 1、首先先下载安装包,名字如下: mysql-5.7.19-winx64.zip 2、配置环境变量,将解压之后的bin目录添加一下 3、在解压目录下创建my.ini文件,内容如下: [ client ] port=3306 defau

[转帖]第二章 MySQL的体系结构与基础管理

第二章 MySQL的体系结构与基础管理 https://www.jianshu.com/p/6d017ac5e685 本课程,适合具备一定Linux运维或者开发基础的朋友,课程定级中、高级DBA。只要掌握80%,轻松助力薪资15k-25K。课程内容均来自与MySQL官网+MySQL源码。配套精品视频

我在前端写Java SpringBoot项目

本篇文章主要是使用 NestJs + Sequelize + MySQL 完成基础运行, 带大家了解 Node 服务端的基础搭建,也可以顺便看看 Java SpringBoot 项目的基础结构,它俩真的非常相似,不信你去问服务端开发同学。