当前位置: 首页 > news >正文

MYSQL常见面试题汇总

MYSQL常见面试题汇总

1. 什么是MYSQL?它有哪些特点?

MYSQL是一种开源的关系型数据库管理系统。它具有以下特点:

  • 高性能:MYSQL能够处理大量的并发请求,并提供快速的响应时间。
  • 可靠性:MYSQL具有数据持久化的能力,可以保证数据的安全性和完整性。
  • 可扩展性:MYSQL支持水平和垂直扩展,可以根据需求灵活地增加服务器和存储容量。
  • 兼容性:MYSQL支持多种操作系统和编程语言,并与其他数据库系统兼容。

2. 如何创建数据库和表?

要创建数据库,可以使用以下命令:

CREATE DATABASE database_name;

要创建表,可以使用以下命令:

CREATE TABLE table_name (column1 datatype,column2 datatype,column3 datatype,...
);

3. 如何插入数据到表中?

要插入数据到表中,可以使用以下命令:

INSERT INTO table_name (column1, column2, column3, ...)
VALUES (value1, value2, value3, ...);

4. 如何更新表中的数据?

要更新表中的数据,可以使用以下命令:

UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;

5. 如何删除表中的数据?

要删除表中的数据,可以使用以下命令:

DELETE FROM table_name WHERE condition;

6. 如何查询表中的数据?

要查询表中的数据,可以使用以下命令:

SELECT column1, column2, ...
FROM table_name
WHERE condition;

7. 如何在表中创建索引?

要在表中创建索引,可以使用以下命令:

CREATE INDEX index_name ON table_name (column1, column2, ...);

8. 如何使用JOIN操作连接多个表?

要使用JOIN操作连接多个表,可以使用以下命令:

SELECT column1, column2, ...
FROM table1
JOIN table2 ON table1.column = table2.column;

9. 如何对表中的数据进行排序?

要对表中的数据进行排序,可以使用以下命令:

SELECT column1, column2, ...
FROM table_name
ORDER BY column1 ASC/DESC;

10. 如何计算表中的数据行数?

要计算表中的数据行数,可以使用以下命令:

SELECT COUNT(*) FROM table_name;

11. 如何使用AVG函数计算某列的平均值?

SELECT AVG(column1)
FROM table_name;

12. 如何使用MAX函数找出某列的最大值?

SELECT MAX(column1)
FROM table_name;

13. 如何使用MIN函数找出某列的最小值?

SELECT MIN(column1)
FROM table_name;

14. 如何使用COUNT函数和GROUP BY关键字计算每个分组的数量?

SELECT column1, COUNT(*)
FROM table_name
GROUP BY column1;

15. 如何使用INNER JOIN和LEFT JOIN区别连接多个表?

INNER JOIN只返回两个表中匹配的行,而LEFT JOIN返回左表中的所有行和匹配的右表中的行。

16. 如何使用UNION操作合并多个查询结果?

SELECT column1, column2, ...
FROM table1
UNION
SELECT column1, column2, ...
FROM table2;

17. 如何使用ORDER BY和LIMIT关键字实现分页查询?

SELECT column1, column2, ...
FROM table_name
ORDER BY column1 ASC/DESC
LIMIT offset, count;

其中,offset表示偏移量,count表示每页的数量。

18. 如何使用CASE语句实现条件判断?

SELECT column1, column2, ...
CASEWHEN condition1 THEN value1WHEN condition2 THEN value2ELSE value3
END
FROM table_name;

19. 如何使用TRUNCATE TABLE语句清空表中的数据?

TRUNCATE TABLE table_name;

20. 如何使用DROP TABLE语句删除表?

DROP TABLE table_name;

21. 如何使用DISTINCT关键字去除重复的数据?

SELECT DISTINCT column1, column2, ...
FROM table_name;

22. 如何使用LIMIT关键字限制查询结果的数量?

SELECT column1, column2, ...
FROM table_name
LIMIT number;

23. 如何使用GROUP BY关键字对查询结果进行分组?

SELECT column1, COUNT(column2)
FROM table_name
GROUP BY column1;

24. 如何使用HAVING关键字对分组后的结果进行筛选?

SELECT column1, COUNT(column2)
FROM table_name
GROUP BY column1
HAVING COUNT(column2) > number;

25. 如何使用LIKE关键字进行模糊查询?

SELECT column1, column2, ...
FROM table_name
WHERE column1 LIKE 'pattern';

26. 如何使用IN关键字筛选指定条件的数据?

SELECT column1, column2, ...
FROM table_name
WHERE column1 IN (value1, value2, ...);

27. 如何使用BETWEEN关键字筛选指定范围的数据?

SELECT column1, column2, ...
FROM table_name
WHERE column1 BETWEEN value1 AND value2;

28. 如何使用NULL关键字筛选空值?

SELECT column1, column2, ...
FROM table_name
WHERE column1 IS NULL;

29. 如何使用COUNT函数计算某列的非空值数量?

SELECT COUNT(column1)
FROM table_name;

30. 如何使用SUM函数计算某列的总和?

SELECT SUM(column1)
FROM table_name;
  1. 如何使用JOIN关键字连接多个表?
    使用JOIN关键字可以连接多个表,例如:
SELECT column1, column2, ...
FROM table1
JOIN table2 ON table1.column = table2.column;

32. 如何使用外连接(LEFT JOIN、RIGHT JOIN、FULL JOIN)连接多个表?

外连接可以连接多个表并返回匹配和不匹配的行。例如:

SELECT column1, column2, ...
FROM table1
LEFT JOIN table2 ON table1.column = table2.column;

33. 如何使用子查询在查询中嵌套另一个查询?

可以使用子查询将一个查询嵌套在另一个查询中。例如:

SELECT column1, column2, ...
FROM table1
WHERE column1 IN (SELECT column1 FROM table2);

34. 如何使用LIKE关键字进行通配符查询?

使用LIKE关键字可以进行通配符查询,例如:

SELECT column1, column2, ...
FROM table_name
WHERE column1 LIKE 'pattern%';

35. 如何使用GROUP_CONCAT函数将多行数据合并为一行?

GROUP_CONCAT函数可以将多行数据合并为一行。例如:

SELECT column1, GROUP_CONCAT(column2)
FROM table_name
GROUP BY column1;

36. 如何使用AS关键字给查询结果列起别名?

使用AS关键字可以给查询结果列起别名。例如:

SELECT column1 AS alias1, column2 AS alias2
FROM table_name;

37. 如何使用IF函数进行条件判断?

IF函数可以进行条件判断。例如:

SELECT column1, IF(column2 > 0, 'Positive', 'Negative')
FROM table_name;

38. 如何使用DATE_FORMAT函数格式化日期列?

DATE_FORMAT函数可以格式化日期列。例如:

SELECT column1, DATE_FORMAT(column2, 'YYYY-MM-DD')
FROM table_name;

39. 如何使用GROUP BY和HAVING筛选分组后的数据?

GROUP BY和HAVING可以筛选分组后的数据。例如:

SELECT column1, COUNT(column2)
FROM table_name
GROUP BY column1
HAVING COUNT(column2) > 10;

40. 如何使用INSERT INTO语句向表中插入数据?

使用INSERT INTO语句可以向表中插入数据。例如:

INSERT INTO table_name (column1, column2, ...)
VALUES (value1, value2, ...);

41.三大范式

三大范式是数据库设计中的规范,用于确保数据库的结构合理、无冗余和易于维护。它们分别是:

  1. 第一范式(1NF):要求数据库中的每个列都是不可再分的原子值,即每个列都不能再细分为其他列。

  2. 第二范式(2NF):在满足1NF的基础上,要求数据库中的非主键列完全依赖于主键,而不是依赖于主键的一部分。

  3. 第三范式(3NF):在满足2NF的基础上,要求数据库中的非主键列之间不存在传递依赖关系,即非主键列不能相互依赖。

DML(Data Manipulation Language)是用于操作数据的语言,包括SELECT、INSERT、UPDATE和DELETE等语句。它们用于查询、插入、更新和删除数据库中的数据。

42.DML 语句和 DDL 语句区别

DDL(Data Definition Language)是用于定义数据库结构的语言,包括CREATE、ALTER和DROP等语句。它们用于创建、修改和删除数据库、表、列等对象。

区别:

  • DML语句用于操作数据,DDL语句用于操作数据库结构。
  • DML语句可以回滚(ROLLBACK)操作,而DDL语句不可以回滚。
  • DML语句会自动提交(COMMIT)事务,而DDL语句在执行后需要手动提交事务。

相关文章:

MYSQL常见面试题汇总

MYSQL常见面试题汇总 1. 什么是MYSQL?它有哪些特点? MYSQL是一种开源的关系型数据库管理系统。它具有以下特点: 高性能:MYSQL能够处理大量的并发请求,并提供快速的响应时间。可靠性:MYSQL具有数据持久化…...

Java接口通过token登录实现页面跳转到登录成功后的页面

首先,你需要在接口请求中将token作为参数传递给后端,后端需要对token进行验证并获取登录用户的信息。 在验证通过后,你可以将登录成功后的页面链接返回给前端,前端通过跳转到该链接来实现页面跳转。 以下是一个简单的Java代码演…...

Linux-文件管理

1.文件管理概述 1.Bash Shell对文件进行管理 谈到Linux文件管理,首先我们需要了解的就是,我们要对文件做些什么事情? 其实无非就是对一个文件进行、创建、复制、移动、查看、编辑、压缩、查找、删除、等等 例如 : 当我们想修改系统的主机名…...

Android getevent用法详解

TP驱动调试分享——基于Qualcomm SDM710平台Android9.0,TP 采用I2C方式和CPU进行通信_高通tp驱动_永恒小青青的博客-CSDN博客 手机触摸屏扫描信号实测波形_触摸屏报点率_AirCity123的博客-CSDN博客 如何查看TP报点率?触摸TP查看详细信息 adb shell ge…...

面试题-TS(二):如何定义 TypeScript 中的变量和函数类型?

面试题-TS(二):如何定义 TypeScript 中的变量和函数类型? 一、 变量类型的定义 在TypeScript中,我们可以使用冒号(:)来指定变量的类型。以下是一些常见的变量类型: 布尔类型(boolean):表示tr…...

【4】-多个User执行测试

目录 一个locustfile中有多个User 使用--class-picker指定执行 小结 一个locustfile中有多个User from locust import task, HttpUserclass User01(HttpUser):weight 3 # 权重host https://www.baidu.comtaskdef user_01_task(self):self.client.get(url/, nameuser_01_…...

基于Eisvogel模板的Markdown导出PDF方法

Requirements 模板地址:Wandmalfarbe/pandoc-latex-template Pandoc:Pandoc官网 Latex环境:例如TexLive Pandoc参数 --template"模板存放位置" --listings --pdf-enginexelatex --highlight-style kate -V CJKmainfontSimSun -V C…...

linux服务器安装redis

一、安装下载 下载安装参考文章 下载安装包地址:https://download.redis.io/releases/ 亲测有效,但是启动的步骤有一些问题 安装完成!!! 二、启动 有三种启动方式 默认启动指定配置启动开机自启 说明&#xff1a…...

QT中信号和槽本质

信号 信号的本质就是事件 在QT中信号的发出者是某个实例化的类对象,对象内部可以进行相关事件的检测。 槽 槽函数是一类特殊的功能的函数,也可以作为类的普通成员函数来使用 在Qt中槽函数的所有者也是某个类的实例对象。 信号和槽的关系 在Qt中我…...

layui各种事件无效(例如表格重载或 分页插件按钮失效)的解决方法

下图是我一个系统的操作日志,在分页插件右下角嵌入了一个导出所有数据的按钮 ,代码没有任何问题,点击导出按钮却失效 排查之后,发现表格标签table定义了ID又定义了lay-filter,因我使用的layui从2.7.6升级到2.8.11&…...

flutter开发实战-父子Widget组件调用方法

flutter开发实战-父子Widget组件调用方法 在最近开发中遇到了需要父组件调用子组件方法,子组件调用父组件的方法。这里记录一下方案。 一、使用GlobalKey 父组件使用globalKey.currentState调用子组件具体方法,子组件通过方法回调callback方法调用父组…...

策略模式的实现与应用:掌握灵活算法切换的技巧

文章目录 常用的设计模式有以下几种:一.创建型模式(Creational Patterns):二.结构型模式(Structural Patterns):三.行为型模式(Behavioral Patterns):四.并发…...

当ChatGPT应用在汽车行业,具体有哪些场景?

​ ChatGPT有潜力彻底改变汽车行业并将其提升到新的高度。在ChatGPT的加持下,该行业的多个领域都将取得重大变化。 利用ChatGPT作更高级的虚拟助理 你可能用过现有的虚拟助理,它们一系列的回复有时候让人不得不感叹一句“人工智障”!然而&a…...

行为型-中介者模式(Mediator Pattern)

概述 中介者模式(Mediator Pattern)是一种行为型设计模式,它通过封装一系列对象之间的交互方式,使这些对象能够互相通信而不需要直接相互引用。中介者模式通过集中控制对象的交互,使得对象之间的耦合度降低&#xff0…...

Kibana+Prometheus+node_exporter 监控告警部署

下载好三个软件包 一、prometheus安装部署 1、解压 linxxubuntu:~/module$ tar -xvf prometheus-2.45.0-rc.0.linux-amd64.tar.gz 2、修改配置文件的IP地址 # my global config global:scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is ever…...

【前端知识】JavaScript——设计模式(工厂模式、构造函数模式、原型模式)

【前端知识】JavaScript——设计模式(工厂模式、构造函数模式、原型模式) 一、工厂模式 工厂模式是一种众所周知的设计模式,广泛应用于软件工程领域,用于抽象创建特定对象的过程。 优点:可以解决创建多个类似对象的…...

未来的算法备案法规:创新和安全如何兼顾?

随着科技的快速发展,算法正逐步渗透到我们生活的各个方面,从推荐引擎到自动驾驶,从医疗诊断到金融交易,这一现象既充满希望,也充满了挑战。其中一个关键的挑战就是如何设计和实施有效的算法备案法规,以促进…...

pycharm 使用远程服务器 jupyter (本地jupyter同理)

1. 远程服务器miniconda 环境中创建jupyter环境 # 1. 激活环境 conda activate envname#2. 在环境中安装jupyter pip install jupyter # 或者 conda install jupyter#3. 生成jupyter_notebook_config.py文件 jupyter notebook --generate-config#4. 设置密码 jupyter noteboo…...

leetcode 376. 摆动序列

2023.7.28 本题思路是定义一个 direct变量记录上一次摆动是上坡还是下坡 。 然后在一个for循环中循环判断当前摆动和上一次摆动是否一致,如果不一致则视为一次摆动。 如果前后元素值相等得话,直接continue进入下一次循环。 下面看代码: clas…...

【图像处理】使用自动编码器进行图像降噪(改进版)

阿里雷扎凯沙瓦尔兹 一、说明 自动编码器是一种学习压缩和重建输入数据的神经网络。它由一个将数据压缩为低维表示的编码器和一个从压缩表示中重建原始数据的解码器组成。该模型使用无监督学习进行训练,旨在最小化输入和重建输出之间的差异。自动编码器可用于降维、…...

Qt/C++开发监控GB28181系统/取流协议/同时支持udp/tcp被动/tcp主动

一、前言说明 在2011版本的gb28181协议中,拉取视频流只要求udp方式,从2016开始要求新增支持tcp被动和tcp主动两种方式,udp理论上会丢包的,所以实际使用过程可能会出现画面花屏的情况,而tcp肯定不丢包,起码…...

微软PowerBI考试 PL300-选择 Power BI 模型框架【附练习数据】

微软PowerBI考试 PL300-选择 Power BI 模型框架 20 多年来,Microsoft 持续对企业商业智能 (BI) 进行大量投资。 Azure Analysis Services (AAS) 和 SQL Server Analysis Services (SSAS) 基于无数企业使用的成熟的 BI 数据建模技术。 同样的技术也是 Power BI 数据…...

【JVM】- 内存结构

引言 JVM:Java Virtual Machine 定义:Java虚拟机,Java二进制字节码的运行环境好处: 一次编写,到处运行自动内存管理,垃圾回收的功能数组下标越界检查(会抛异常,不会覆盖到其他代码…...

React Native在HarmonyOS 5.0阅读类应用开发中的实践

一、技术选型背景 随着HarmonyOS 5.0对Web兼容层的增强,React Native作为跨平台框架可通过重新编译ArkTS组件实现85%以上的代码复用率。阅读类应用具有UI复杂度低、数据流清晰的特点。 二、核心实现方案 1. 环境配置 (1)使用React Native…...

c++ 面试题(1)-----深度优先搜索(DFS)实现

操作系统:ubuntu22.04 IDE:Visual Studio Code 编程语言:C11 题目描述 地上有一个 m 行 n 列的方格,从坐标 [0,0] 起始。一个机器人可以从某一格移动到上下左右四个格子,但不能进入行坐标和列坐标的数位之和大于 k 的格子。 例…...

MySQL 8.0 OCP 英文题库解析(十三)

Oracle 为庆祝 MySQL 30 周年,截止到 2025.07.31 之前。所有人均可以免费考取原价245美元的MySQL OCP 认证。 从今天开始,将英文题库免费公布出来,并进行解析,帮助大家在一个月之内轻松通过OCP认证。 本期公布试题111~120 试题1…...

selenium学习实战【Python爬虫】

selenium学习实战【Python爬虫】 文章目录 selenium学习实战【Python爬虫】一、声明二、学习目标三、安装依赖3.1 安装selenium库3.2 安装浏览器驱动3.2.1 查看Edge版本3.2.2 驱动安装 四、代码讲解4.1 配置浏览器4.2 加载更多4.3 寻找内容4.4 完整代码 五、报告文件爬取5.1 提…...

GC1808高性能24位立体声音频ADC芯片解析

1. 芯片概述 GC1808是一款24位立体声音频模数转换器(ADC),支持8kHz~96kHz采样率,集成Δ-Σ调制器、数字抗混叠滤波器和高通滤波器,适用于高保真音频采集场景。 2. 核心特性 高精度:24位分辨率&#xff0c…...

重启Eureka集群中的节点,对已经注册的服务有什么影响

先看答案,如果正确地操作,重启Eureka集群中的节点,对已经注册的服务影响非常小,甚至可以做到无感知。 但如果操作不当,可能会引发短暂的服务发现问题。 下面我们从Eureka的核心工作原理来详细分析这个问题。 Eureka的…...

掌握 HTTP 请求:理解 cURL GET 语法

cURL 是一个强大的命令行工具,用于发送 HTTP 请求和与 Web 服务器交互。在 Web 开发和测试中,cURL 经常用于发送 GET 请求来获取服务器资源。本文将详细介绍 cURL GET 请求的语法和使用方法。 一、cURL 基本概念 cURL 是 "Client URL" 的缩写…...