MySQL中的各种查询问题

 更新时间:2024年01月11日 16:04:11   作者:Mr-X~  
这篇文章主要介绍了MySQL中的各种查询问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

MySQL中的各种查询

基础查询

条件查询

#语法:select 查询列表 from 表名 where 筛选条件;
#分类:
#		一.按条件表达式筛选,条件运算符:> < = != <> >= <=
#		二.按逻辑表达式筛选,逻辑运算符:&& || ! and or not
#		三.模糊查询:like       between and      in      is null
# like一般和通配符搭配使用,%通配符表示任意多个字符包含0个字符
#						_通配符表示任意单个字符

排序查询

#语法:
#	select 查询列表 from 表名
#	[where 筛选条件]
#	order by 排序列表 [asc|desc]
#其中asc表示升序排列,desc表示降序排列,如果不写默认是asc升序排列

常见函数查询

分组查询

#语法
# select 分组函数,列(要求是出现在group by后面的列)
# from 表
# [where 筛选条件]
# group by 分组的列表
# [order by 子句]

#常见的分组函数
# sum求这组总和,avg求这组平均值,max求这组最大值,min求这组最小值,count计算这组数据总的个数

连接查询

#创建表并插入数据
create table a_table(
	a_id int,
    a_name varchar(20),
    a_age int
);
create table b_table(
	b_id int,
    b_name varchar(20),
    b_age int
);
insert into a_table values(1,"张大麻子",19),
(2,"张二麻子",18),
(7,"王大壮",19),
(8,"刘铁柱",20);
insert into b_table values(1,"五个核桃",18),
(2,"铁牛",20),
(4,"刘大柱子",19),
(5,"母夜叉子",20);

内连接

# 内连接 
# 关键字  inner join         on
# 其中inner关键字可以省略
# 筛选条件放在where后面,连接条件放在on后面,提高分离性
# 内连接的结果只取两个表的交集部分

外连接

#语法:
# left (outer) join          on
# right (outer) join         on
#外连接中的outer关键字可以省略
#全外连接mysql不支持,暂时不必掌握
#外连接分为左外连接和右外连接,左外连接左边的表是主表,右外连接右边的表是主表
#外连接与内连接不同的是:内连接只会取两个表的交集部分,而外连接会显示出主表中的全部记录,而另外一个非主表只会显示出符合搜索条件的
#						记录,其它的会用null代替

交叉连接

# 语法:
# cross join
#交叉连接其实就是求两个表的笛卡尔积
#如果a表有m条记录,b表有n条记录,那么交叉连接之后,总的记录就有m*n条

子查询

#如果在一个sql查询语句中出现了另外一个sql查询语句,这就叫做子查询
# 子查询出现的位置,记住两个就可以了,一个是where后面,另一个是from后面,其中标量子查询和列子查询都可以在where的后面,而表子查																	询必须是在from的后面,并且需要给这个表起别名
#按结果集的行列数不同,子查询可以分为
#	标量子查询(结果集只有一行一列,其实这个子语句就相当于一个具体的数值)
#	列子查询(结果集有多行一列,其实这个子语句就相当于一个有多个值的集合)
#	行子查询(结果集只有一行多列)
#	表子查询(结果集有多行多列,其实这个子语句就相当于一个表)
#其中列子查询必须要配合操作符使用,都有什么操作符呢?
#	in/not in 等于列表中的任意一个或不等于列表中的任意一个
#	any/some 此操作符必须要结合< > = !=等操作符使用,比如<any(列子查询语句)表示:只要小于列子查询结果的其中一个就行了,也即是																		只要小于最大的就行了
#	all 此操作符也必须要结合< > = !=等操作符使用,比如<all(列子查询语句)表示:必须小于列子查询结果中的所有值,也即是必须要小于																		最小的

标量子查询的例子如下图:

列子查询的例子如下图:

表子查询的例子如下图:

联合查询

# 关键字union
# 联合查询可以将多条查询语句的结果合并成一个结果
# 联合查询要求查询结果的列数以及列的顺序都要保持一致
# 使用union关键字默认去重,如果使用union all则可以包含重复项

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 使用mss2sql工具将SqlServer转换为Mysql全记录

    使用mss2sql工具将SqlServer转换为Mysql全记录

    上篇文章我们讲诉了在mssql数据转换成mysql数据中,用Navicat Premium导入数据很完美,但是创建表的时候数据类型转换不是很完美,本文我们来讲诉下用mss2sql工具来创建表,顺便说下导入数据
    2014-08-08
  • mysql数据库中getshell的方式总结

    mysql数据库中getshell的方式总结

    MySQL版本大于5.0,MySQL 5.0版本以上会创建日志文件,我们通过修改日志文件的全局变量,就可以GetSHELL,下面这篇文章主要给大家介绍了关于mysql数据库中getshell的方式,需要的朋友可以参考下
    2022-07-07
  • MySQL数据脱敏的实现方法

    MySQL数据脱敏的实现方法

    本文主要介绍了MySQL数据脱敏的实现方法,包括字符替换、加密等方法,通过工具类和数据库服务整合,确保敏感信息在查询结果中被掩码处理,感兴趣的可以了解一下
    2025-08-08
  • MySql 修改密码后的错误快速解决方法

    MySql 修改密码后的错误快速解决方法

    今天在MySql5.6操作时报错:You must SET PASSWORD before executing this statement解决方法,需要的朋友可以参考下
    2016-11-11
  • 图文详解Mysql索引的最左前缀原则

    图文详解Mysql索引的最左前缀原则

    最左前缀原则是发生在复合索引上的,只有复合索引才会有所谓的左和右之分,下面这篇文章主要给大家介绍了关于Mysql索引的最左前缀原则的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-03-03
  • 详解MySQL的主键查询为什么这么快

    详解MySQL的主键查询为什么这么快

    这篇文章主要介绍了想借MySQL的主键查询为什么这么快,下面根据主题展开的内容有InnoDB行格式、InnoDB页和InnoDB行格式等详细内容,下面相关介绍需要的小伙伴可以参考一下
    2022-04-04
  • MYSQL中的简单查询

    MYSQL中的简单查询

    这篇文章详细介绍了MySQL中常见的查询语法,包括SELECT语句的简单查询、基于表的查询、基于条件的查询、基于分组的查询等,它还解释了COUNT()、SUM()、AVG()、MAX()和MIN()等聚合函数的使用,以及GROUP BY和HAVING子句在分组查询中的应用
    2025-02-02
  • mysql 连接出现Public Key Retrieval is not allowed的问题解决

    mysql 连接出现Public Key Retrieval is n

    在MySQL连接中出现“Public Key Retrieval is not allowed”错误,通常是因为在使用安全套接字层(SSL)连接时遇到了问题,本文就来介绍一下解决方法,感兴趣的可以了解一下
    2024-03-03
  • 关于MySQL 大批量插入时如何过滤掉重复数据

    关于MySQL 大批量插入时如何过滤掉重复数据

    这篇文章主要介绍关于MySQL 大批量插入时如何过滤重复数据,比如线上库有6个表存在重复数据,其中2个表比较大,96万+和30万+,因为之前处理过相同的问题,就直接拿来了上次的Python去重脚本,脚本很简单,就是连接数据库,查出来重复数据,循环删除,需要的朋友可以参考下
    2021-09-09
  • MySQL允许root远程登录的方式

    MySQL允许root远程登录的方式

    这篇文章主要介绍了MySQL允许root远程登录的方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-06-06

最新评论