mysql理解

简介: 本文介绍了MySQL查询语句的书写顺序与执行顺序的区别,多表查询的实现方式,包括内连接、外连接的使用与差异,以及CHAR与VARCHAR字段类型的异同点,帮助开发者更好地理解和优化SQL查询。

Mysql查询语句的书写顺序

Select [distinct ] <字段名称> from 表1 [ <join类型> join 表2 on <join条件> ] where <where条件> group by <字段>

having <having条件> order by <排序字段> limit <起始偏移量,行数>

Mysql查询语句的执行顺序

(8)Select(9)distinct 字段名1,字段名2,(7)[fun(字段名)](1)from 表1(3)<join类型>join 表2 (2)on <join条件> (4)where <where条件> (5)group by <字段> (6)having <having条件> (10)order by <排序字段> (11)limit <起始偏移量,行数>

Mysql 如何实现多表查询

MYSQL多表查询主要使用连接查询 , 连接查询的方式主要有 :

  • 内连接
  • 隐式内连接 : Select 字段 From 表A , 表B where 连接条件
  • 显式内连接 : Select 字段 From 表A inner join 表B on 连接条件
  • 外连接
  • 左外连接 : Select 字段 From 表A left join 表B on 连接条件
  • 右外连接 : Select 字段 From 表A right join 表B on 连接条件
  • 全外连接:(很少用)
  • 交叉连接 : (很少用)

MYSQL内连接和外连接的区别 ?

  • 内连接:只有两个元素表相匹配的才能在结果集中显示。
  • 外连接:左外连接: 左边为驱动表,驱动表的数据全部显示,匹配表的不匹配的不会显示。
  • 右外连接:右边为驱动表,驱动表的数据全部显示,匹配表的不匹配的不会显示。
  • 全外连接:连接的表中不匹配的数据全部会显示出来。
  • 交叉连接:笛卡尔效应,显示的结果是链接表数的乘积。

CHAR和VARCHAR的区别?

  1. char的长度是不可变的,用空格填充到指定长度大小,而varchar的长度是可变的。
  2. char的存取速度比varchar要快得多
  3. char的存储方式是:对英文字符(ASCII)占用1个字节,对一个汉字占用两个字节。varchar的存储方式是:对每个英文字符占用2个字节,汉字也占用2个字节。
相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
相关文章
|
4月前
|
消息中间件 存储 缓存
再次了解kafka
Kafka通过offset机制解决消息重复消费问题,支持手动提交偏移量及唯一ID去重。它保证分区内的消息顺序消费,结合集群、副本与重平衡实现高可用。高性能设计包括顺序读写、分区、页缓存、零拷贝等。数据清理依赖保留时间或大小策略,点对点和发布订阅模式则通过消费者组实现。
|
4月前
|
消息中间件 NoSQL Java
延时实现
本节介绍了多种关闭过期订单的实现方案,包括定时任务、JDK延迟队列、Redis过期监听、Redisson延迟队列、RocketMQ延迟消息及RabbitMQ死信队列。各自优缺点明显,适用于不同业务场景,如定时任务适合小数据量,RocketMQ适合高并发解耦场景,而Redisson则使用简单且高效。选择时需综合考虑系统复杂度、数据量及可靠性要求。
|
4月前
|
存储 缓存 Linux
CPU上下文切换的原理及其在系统调用和进程切换中的应用
本内容深入解析了CPU上下文切换的原理及其在系统调用和进程切换中的应用。详细说明了CPU寄存器、程序计数器在任务切换中的作用,以及系统调用与进程上下文切换的区别。同时探讨了上下文切换带来的性能开销,涉及TLB和虚拟内存管理机制,帮助理解操作系统如何高效调度进程。
|
4月前
|
存储 算法 Sentinel
熔断降级
本内容介绍了微服务中熔断降级的实现原理及Sentinel的底层机制。通过OpenFeign集成Sentinel,利用断路器统计异常和慢请求比例,触发熔断并降级,提升系统稳定性。还讲解了Sentinel使用的限流算法,如滑动窗口、令牌桶和漏桶算法,以应对不同场景下的流量控制需求。
|
4月前
|
负载均衡 网络性能优化
了解EMQ
EMQ通过MQTT协议的QoS机制保障消息可靠传输,支持QoS 0、1、2三个等级,分别实现消息最多一次、至少一次和恰好一次传递。对于延迟消息,EMQ X支持通过特殊主题前缀`$delayed/{DelayInterval}`实现延迟发布。点对点通信可通过不带群组的共享订阅(如`$queue/t/1`)实现,结合负载均衡策略如随机、轮询等,确保消息仅由一个订阅者接收;发布订阅模式则通过带群组的共享订阅(如`$share/组名称/t/1`)实现,确保每组一个订阅者收取消息。
|
4月前
|
负载均衡 Java Nacos
微服务架构中的服务注册与发现流程
本内容介绍了微服务架构中的服务注册与发现流程,包括服务注册中心(如Nacos)、服务提供者和调用者的角色分工。服务启动时自动注册信息至注册中心,调用者通过客户端负载均衡(如Spring Cloud Loadbalancer)选取服务实例进行远程调用。同时,内容还讲解了OpenFeign的工作原理,其作为HTTP客户端集成负载均衡,通过接口定义、代理生成、请求发送与结果解析,实现服务间的高效通信。
|
4月前
|
存储 NoSQL 算法
Redis的集群架构与使用经验
本文介绍了Redis的集群架构与使用经验,包括主从复制、哨兵集群及Cluster分片集群的应用场景与实现原理。内容涵盖Redis主从同步机制、数据分片存储方式、事务支持及与Memcached的区别,并讨论了Redis内存用尽时的处理策略。适用于了解Redis高可用与性能优化方案。
|
4月前
|
负载均衡 Java 应用服务中间件
杂项10
Spring Cloud Alibaba 与 Spring Cloud 均基于 Spring Boot 构建微服务,遵循相同规范且组件可协同使用。区别在于,Spring Cloud Alibaba 使用 Nacos 实现服务发现与配置管理,推荐 Sentinel 作为断路器,并支持 Dubbo 与 Feign 远程调用。Nginx 可通过配置 upstream 实现负载均衡,作为反向代理,其“反向”体现在外网通过 Nginx 访问内部服务器。
|
4月前
|
存储 SQL 关系型数据库
mysql杂项
MySQL常用存储引擎包括InnoDB和MyISAM,InnoDB支持事务和行锁,适合高并发写入;MyISAM不支持事务,仅支持表锁,适合只读场景。InnoDB支持64TB存储,MyISAM支持256TB。索引结构主要包括B+树、Hash和跳表,用于优化查询性能,减少磁盘I/O。InnoDB使用聚簇索引,MyISAM使用非聚簇索引。联合索引需遵循最左前缀原则,否则可能导致索引失效。常见索引失效原因包括使用函数、隐式转换、模糊查询前缀使用“%”等。可通过EXPLAIN命令分析SQL执行情况。MySQL性能优化包括表结构设计、SQL优化、主从复制、读写分离及分库分表。
|
4月前
|
存储 关系型数据库 MySQL
杂项9
行锁在数据库中用于并发控制,当更新操作能通过索引精确定位到具体行时生效,如 MySQL InnoDB。若未使用索引,可能升级为表锁,影响并发性能。更新操作优先使用行锁以保证数据一致性和高效并发。