MySQL查询语句

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 2核4GB
简介: MySQL查询语句

单表查询

(1)、查询所有字段

select 字段1,字段2,字段3,字段..... from 表名;
select t.*,t.rowid from t_student t;

(2)、查询指定字段

select 字段1,字段2,字段3 from 表名;
select stuName from t_student;

(3)、where条件查询

select 字段1,字段2,字段3  from 表名 where 条件表达式;
select t.* from t_student t where t.age ='18';

(4)、带in关键字查询

select 字段1,字段2,字段3 ...from 表名 where 字段 [not] in (元素1,元素2,元素3);
select t.* from t_student where t.age in ('18','19','20');

(5)、带between and的范围查询

select 字段1,字段2,字段3...from 表名 where 字段 [not]  取值1 and 取值2;
select t.* from t_student where t.age between 12 and 25;

(6)、带like的模糊查询

-- “%”-->匹配所有字符
-- “_”-->匹配单个字符
select 字段1,字段2,字段3...from 表名 where 字段 [not] like '字符串';

(7)空值查询

select 字段1,字段2,字段3 ... from 表名 where 字段 is [not]null;

(8)、带and的多条件查询

select 字段1,字段2,字段3... from 表名 where 条件表达式1 and 条件表达式2...

(9)带or的多条件查询

select 字段1,字段2,字段3... from 表名 where 条件表达式1 or 条件表达式2...

(10)、distinct 去重复查询

select distinct 字段名from 表名;

(11)对查询结果排序

select 字段1,字段2,字段3...from 表名 order by 属性名[asc|desc]

(12)、group by分组查询

<1>单独使用(没什么意义)

<2>与group_concat()函数一起使用

group by 属性名 [having 条件表达式]
select gradName, group_concat(stuName)from t_student group by gradName;
  一年级    张三,李四
  三年级    许xx,赵XX
  二年级    王五,陈xx,李xx
  四年级    张凤,宫佳伟

<3>与聚合函数一起使用

select stuName ,count(stuName) from t_student group by gradName;
  张三    2
  许xx    2
  王五    3
  张凤    2

<4>与having一起使用(限制输出结果)

select stuName,count(stuName) from t_student group by gradName having count(stuName)<3;
stuName    count(stuName)
  张三                2
  许xx                2
  张凤                2

<5>与with rollup 一起使用(最后加入总和行)

 select stuName ,count(stuName) from t_student group by gradName with rollup;
    张三    2
    许xx    2
    王五    3
    张凤    2
    张凤    9             <新加的行>

(13)、分页查询 limit

  select 字段1,字段2,字段3... from 表名 limit 初始位置,记录数;
  select t.* from t_student t limit 0,3;
  select t.* from t_student t limit 3,3;

聚合函数

(1)、count()函数

<1>count ()函数用来统计记录的条数

select count(*) from t_student;

<2>与group by 关键字一起使用

select  count (*) total from t_student group by gradName;

(2)sum()函数

<1> sum ()用来求和

<2> 与group by一起使用

(3)avg()函数

<1>age()用来求平均值

<2>与group by关键字一起使用

(4)max()函数

<1>max()用来求最大值

<2>与group by关键字一起使用

(5)min()函数

<1>min()用来求最小值

<2>与group by关键字一起使用


3、连接查询(将两个或两个以上表根据某种关系连接起来,从中选取所需数据)

(1)内连接

内连接查询是最常用的连接查询,内连接查询可以查询两个或两个以上的表

           select t1.bookName,t1.author,t2.bookType from t_book t1,t_bookType t2 where t1.id =t2.id;

(2)外链接

查出某张表的所有信息

select 属性列表 from 表名 1 left|right join 表名2 on 表1属性=表2属性  注释:on 之后的为条件

(2.1)左连接

罗列表1的所有信息而表2只能查出匹配记录(不匹配的null显示)

(2.2)右连接

罗列表2所有信息而表1只能查出匹配记录(不匹配的null显示)

(3)多条件查询


4、子查询


(1)带in关键字的子查询

一个查询语句的条件可能落在另一个select语句的查询结果中


(2)带比较运算符的子查询

子查询可使用比较运算符

(3)带exits关键字的子查询

加入子查询到记录,则进行外层查询,否则不进行外层查询

(4) 带any关键字的子查询

any关键字表示满足其中任意一个条件

(5)带all关键字的子查询

all关键字表示满足所有条件


5、合并查询


(1)、union

使用union关键字,会将查询到的所有结果合并到一起,然后去除相同的记录


(2)、union all

使用union all关键字,是合并所有查询结果,不去除相同记录


相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
1月前
|
存储 关系型数据库 MySQL
提高MySQL查询性能的方法有很多
提高MySQL查询性能的方法有很多
156 7
|
1月前
|
存储 关系型数据库 MySQL
提高MySQL的查询性能
提高MySQL的查询性能
69 4
|
9天前
|
SQL 前端开发 关系型数据库
SpringBoot使用mysql查询昨天、今天、过去一周、过去半年、过去一年数据
SpringBoot使用mysql查询昨天、今天、过去一周、过去半年、过去一年数据
39 9
|
11天前
|
缓存 监控 关系型数据库
如何优化MySQL查询速度?
如何优化MySQL查询速度?【10月更文挑战第31天】
36 3
|
16天前
|
SQL NoSQL 关系型数据库
2024Mysql And Redis基础与进阶操作系列(5)作者——LJS[含MySQL DQL基本查询:select;简单、排序、分组、聚合、分组、分页等详解步骤及常见报错问题所对应的解决方法]
MySQL DQL基本查询:select;简单、排序、分组、聚合、分组、分页、INSERT INTO SELECT / FROM查询结合精例等详解步骤及常见报错问题所对应的解决方法
|
15天前
|
监控 关系型数据库 MySQL
数据库优化:MySQL索引策略与查询性能调优实战
【10月更文挑战第27天】本文深入探讨了MySQL的索引策略和查询性能调优技巧。通过介绍B-Tree索引、哈希索引和全文索引等不同类型,以及如何创建和维护索引,结合实战案例分析查询执行计划,帮助读者掌握提升查询性能的方法。定期优化索引和调整查询语句是提高数据库性能的关键。
77 1
|
21天前
|
SQL Java 关系型数据库
java连接mysql查询数据(基础版,无框架)
【10月更文挑战第12天】该示例展示了如何使用Java通过JDBC连接MySQL数据库并查询数据。首先在项目中引入`mysql-connector-java`依赖,然后通过`JdbcUtil`类中的`main`方法实现数据库连接、执行SQL查询及结果处理,最后关闭相关资源。
|
18天前
|
SQL 关系型数据库 MySQL
定时任务频繁插入数据导致锁表问题 -> 查询mysql进程
定时任务频繁插入数据导致锁表问题 -> 查询mysql进程
37 1
|
16天前
|
监控 关系型数据库 MySQL
数据库优化:MySQL索引策略与查询性能调优实战
【10月更文挑战第26天】数据库作为现代应用系统的核心组件,其性能优化至关重要。本文主要探讨MySQL的索引策略与查询性能调优。通过合理创建索引(如B-Tree、复合索引)和优化查询语句(如使用EXPLAIN、优化分页查询),可以显著提升数据库的响应速度和稳定性。实践中还需定期审查慢查询日志,持续优化性能。
47 0
|
18天前
|
SQL 关系型数据库 MySQL
mysql编写sql脚本:要求表没有主键,但是想查询没有相同值的时候才进行插入
mysql编写sql脚本:要求表没有主键,但是想查询没有相同值的时候才进行插入
30 0