MySQL面试题 | 08.精选MySQL面试题

news2024/11/17 14:40:09

在这里插入图片描述

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6
🍨 阿珊和她的猫_CSDN个人主页
🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》
🍚 蓝桥云课签约作者、已在蓝桥云课上架的前后端实战课程《Vue.js 和 Egg.js 开发企业级健康管理项目》、《带你从入门到实战全面掌握 uni-app》

文章目录

    • 什么是内连接、外连接和交叉连接?
    • 在JOIN中,什么情况下使用LIKE操作符,什么情况下使用%通配符?
    • 什么是子查询?如何在 MySQL 中使用子查询?

什么是内连接、外连接和交叉连接?

在数据库中,连接(JOIN)操作用于将两个或多个表中的数据关联起来,基于它们之间的共同列。

以下是内连接、外连接和交叉连接的简要解释:

  1. 内连接(INNER JOIN):内连接返回两个表中匹配的行。它只返回那些在连接条件上匹配的行。内连接基于表之间的共享列值进行匹配,并排除不匹配的行。

    语法示例:

    SELECT * 
    FROM table1
    INNER JOIN table2 ON table1.column = table2.column;
    
  2. 外连接(OUTER JOIN):外连接返回两个表中匹配的行以及一些不匹配的行。根据外连接的类型,可以返回左表(左外连接)或右表(右外连接)的所有行,以及与另一个表匹配的行。外连接可以用于获取关联表中所有的数据,包括那些在另一个表中没有匹配的行。

    • 左外连接(LEFT OUTER JOIN):返回左表的所有行以及与右表匹配的行。如果在右表中没有匹配的行,则右侧列的值将为 NULL。

    语法示例:

    SELECT * 
    FROM table1
    LEFT OUTER JOIN table2 ON table1.column = table2.column;
    
    • 右外连接(RIGHT OUTER JOIN):返回右表的所有行以及与左表匹配的行。如果在左表中没有匹配的行,则左侧列的值将为 NULL。

    语法示例:

    SELECT * 
    FROM table1
    RIGHT OUTER JOIN table2 ON table1.column = table2.column;
    
  3. 交叉连接(CROSS JOIN):交叉连接返回两个表的笛卡尔积,即每个行与另一个表中的所有行组合。

    语法示例:

    SELECT * 
    FROM table1
    CROSS JOIN table2;
    

这些连接类型在查询数据时非常有用,可以根据具体的需求选择适当的连接类型来关联和获取相关联的数据。

在JOIN中,什么情况下使用LIKE操作符,什么情况下使用%通配符?

JOIN中,LIKE操作符用于模糊匹配%通配符用于匹配任意字符序列(包括空字符序列)。通常在以下情况下使用LIKE操作符和%通配符:

  • 想要在关联两个或多个表时,使用模糊匹配来筛选出符合条件的数据。
  • 当进行模糊匹配时,需要匹配任意字符序列或空字符序列。

下面提供一个使用LIKE操作符和%通配符的具体示例:

SELECT * FROM users INNER JOIN orders 
ON users.id = orders.user_id 
WHERE orders.product LIKE '%keyword%';

上述代码将返回在orders表的product字段中包含关键字keyword的结果集。

请注意,在实际应用中请根据自己的场景需求对于示例中的表名及字段名进行修改。

什么是子查询?如何在 MySQL 中使用子查询?

子查询是主查询内部嵌套的查询语句。子查询可以在主查询中作为一个表达式使用,以获取相关的数据来满足主查询的条件。

在 MySQL 中,使用子查询的方式如下:

  1. 在主查询中使用子查询作为条件:可以将子查询的结果作为条件传递给主查询,以便在主查询中进行数据过滤或关联。

  2. 在主查询中使用子查询作为表达式:可以将子查询的结果作为表达式在主查询中进行计算或操作。

以下是一些示例,展示如何在 MySQL 中使用子查询:

-- 选择工资大于部门平均工资的员工
SELECT * FROM employees
WHERE salary > (SELECT AVG(salary) FROM employees GROUP BY department);

-- 选择项目经理的姓名和项目名称
SELECT project_manager, project_name
FROM projects
WHERE project_manager IN (SELECT name FROM employees WHERE role = '项目经理');

-- 选择客户所在城市的订单信息
SELECT * FROM orders
WHERE customer_city = (SELECT city FROM customers WHERE customer_id = orders.customer_id);

这些示例只是子查询的一些常见用法,子查询可以在很多场景中使用,具体取决于你的查询需求。

请注意,子查询的性能可能会受到影响,特别是在涉及大量数据或复杂计算时。在使用子查询时,应尽量优化查询逻辑和索引,以提高查询性能。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1385278.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

OpenGauss源码分析-SQL引擎

所讨论文件大多位于src\common\backend\parser文件夹下 总流程 start_xact_command():开始一个事务。pg_parse_query():对查询语句进行词法和语法分析,生成一个或者多个初始的语法分析树。进入foreach (parsetree_item, parsetree_list)循环…

11-适配器模式(Adapter)

意图 将一个类的接口转换成客户希望的另一个接口。Adapter模式使得原本由于接口不兼容而不能在一起工作的那些类可以一起工作。 适配器模式属于结构模式。 类适配器模式(通过继承的方式实现适配器模式) Adapter类,通过继承src类&#xff0…

逸学Docker【java工程师基础】1.认识docker并且安装

场景问题 在实际开发过程中我们有这样的场景问题 在开发阶段的环境配置到了其他人项目人员那里就不能运行了,尽管配置规格相同,但是在较多的不同的环境情况下还是可能会有错误。 开发:程序员:你那边可以运行了吗 测试&#xf…

线程安全2

文章目录 锁的可重入性死锁内存可见性引起的线程安全 锁的可重入性 直观来看这个代码不能运行 为啥没有出现阻塞? 当前由于是同一个线程,此时的锁对象,就知道了第二次加锁的线程,就是持有锁的线程,第二次操作&#xff…

一天吃透Java并发面试八股文

内容摘自我的学习网站:topjavaer.cn 分享50道Java并发高频面试题。 线程池 线程池:一个管理线程的池子。 为什么平时都是使用线程池创建线程,直接new一个线程不好吗? 嗯,手动创建线程有两个缺点 不受控风险频繁创…

【WPF.NET开发】WPF中的版式

本文内容 改进的文本质量和性能丰富的版式增强的国际文本支持增强的字体支持新的文本应用程序编程接口 (API) 本主题介绍 WPF 的主要版式功能。 这些功能包括改进的文本呈现质量和性能、OpenType 版式支持、增强的国际文本、增强的字体支持和新的文本应用程序编程接口 (API)。…

SpringMVC RESTful案例

文章目录 1、准备工作2、功能清单3、具体功能:访问首页a>配置view-controllerb>创建页面 4、具体功能:查询所有员工数据a>控制器方法b>创建employee_list.html 5、具体功能:删除a>创建处理delete请求方式的表单b>删除超链接…

多元化的App封装打包平台,解锁应用发布效率

在数字化时代,移动应用已成为连接用户与服务的重要桥梁。对于开发者而言,将应用从代码转化为用户可以直接下载安装的产品,这一过程的效率和质量至关重要。App封装打包平台的出现,为开发者提供了便捷的应用构建、测试和分发解决方案…

Robot Framework之python脚本调用

目录 目录结构 ​编辑 Python函数作为关键字 一、通过Import Library关键字在*** Test Cases ***中引用python脚本 ​编辑 二、通过Library关键字在*** Settings ***中引入python脚本 Python类作为测试库 一、通过Library关键字在*** Settings ***引入python脚本中的类 …

机器学习_7、KNN

数据采用:电离层数据 KNN完整的代码电离层数据资源-CSDN文库 代码 import os import csv import numpy as np from sklearn.model_selection import train_test_split from sklearn.neighbors import KNeighborsClassifier from sklearn.model_selection import …

DNS域名解析协议

文章目录 DNS域名解析协议一、DNS系统的作用1、DNS的定义2、DNS域名解析2.1 正向解析2.2 反向解析 3、DNS域名结构 二、DNS服务器类型1、主域名服务器2、从域名服务器3、缓存域名服务器4、权威dns服务器 三、DNS查询类型及原理1、查询方式1.1 递归查询1.2 迭代查询 2、DNS查询原…

墙地砖外形检测的技术方案-图像增强

基础理论 本例中使用漫射场光源,在采集图像的过程中,更容易可能会受环境中光源照射不足的可能性,导致采集的图像对比度不足,图像视觉效果较暗。可通过直方图均衡化或者直方图规定化。利用直方图规定化进行图像增强。 案例图片 如…

实例分割论文精读:Mask R-CNN

1.摘要 本文提出了一种概念简单、灵活、通用的实例分割方法,该方法在有效地检测图像中的物体同时,为每个物体实例生成一个实例分割模板,添加了一个分支,用于预测一个对象遮罩,与现有的分支并行,用于边界框…

node各个版本的下载地址

下载地址: https://nodejs.org/dist/ 可以下载多个版本,使用nvm控制切换(需要先安装nvm再安装node) nvm下载地址(访问的是github,请科学上网,下载后解压安装exe即可):h…

【leetcode题解C++】54.螺旋矩阵I and 59.螺旋矩阵II

54.螺旋矩阵I 给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。 示例 1: 输入:matrix [[1,2,3],[4,5,6],[7,8,9]] 输出:[1,2,3,6,9,8,7,4,5]示例 2: 输入:m…

通俗易懂实现功能强大的实战项目 springboot+java+vue+mysql 汽车租赁管理系统

✍✍计算机编程指导师 ⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流! ⚡⚡ Java实战 |…

如何在免费云Colab上使用扩散模型生成图片?

前言 在人工智能技术的迅猛发展下,内容生成领域也迎来了一系列创新的突破。其中,使用扩散模型(如Stable Diffusion)从文字生成图片的AI技术备受瞩目。这一技术的出现,为我们创造栩栩如生的图像提供了全新的可能性。本…

ceph、gluster、longhorn选型对比

Ceph Ceph是一个分布式的存储系统,可以在统一的系统中提供唯一的对象、块和文件存储。 名词解释: RADOS: 由自我修复、自我管理、智能存储节点组成的可靠、自主、分布式对象存储LIBRADOS: 一个允许应用程序直接访问 RADO 的库&…

机器学习 | 无监督聚类K-means和混合高斯模型

机器学习 | 无监督聚类K-means和混合高斯模型 1. 实验目的 实现一个K-means算法和混合高斯模型,并用EM算法估计模型中的参数。 2. 实验内容 用高斯分布产生 k k k个高斯分布的数据(不同均值和方差)(其中参数自己设定&#xff…

网络分流规则

现在的网络是越来越复杂。 有必要进行分流。 有一些geosite.dat是已经整理好的,包含许多的网站的分类: 分流规则: route规则 主要是: {"type": "field","outboundTag": "direct","domain&quo…