SQL相关常见的面试题

SQL(Structured Query Language)是数据库管理中不可或缺的一部分,因此在技术面试中经常会被问到与 SQL 相关的问题。以下是一些常见的 SQL 面试题及其答案。

基础概念

  1. 什么是 SQL?

    • SQL 是一种用于管理和处理关系型数据库的标准语言。它用于查询、更新、插入和删除数据库记录。
  2. SQL 的主要命令类型有哪些?

    • DDL(Data Definition Language):用于定义数据库结构,如 CREATE, ALTER, DROP
    • DML(Data Manipulation Language):用于操作数据库中的数据,如 SELECT, INSERT, UPDATE, DELETE
    • DCL(Data Control Language):用于控制权限和访问,如 GRANT, REVOKE
    • TCL(Transaction Control Language):用于管理事务,如 COMMIT, ROLLBACK, SAVEPOINT
  3. 什么是主键和外键?

    • 主键(Primary Key):唯一标识表中每一行的字段,不允许为空且必须唯一。
    • 外键(Foreign Key):用于建立和加强两个表数据之间的链接,通常引用另一个表的主键。

常见查询

  1. 如何查询表中的所有记录?

    SELECT * FROM table_name;
    
  2. 如何查询表中的特定列?

    SELECT column1, column2 FROM table_name;
    
  3. 如何对查询结果进行排序?

    SELECT * FROM table_name ORDER BY column1 ASC;  -- 升序
    SELECT * FROM table_name ORDER BY column1 DESC; -- 降序
    
  4. 如何使用条件查询?

    SELECT * FROM table_name WHERE condition;
    
  5. 如何使用 LIKE 进行模糊查询?

    SELECT * FROM table_name WHERE column LIKE '%pattern%';
    

聚合函数

  1. 常见的聚合函数有哪些?

    • COUNT(): 计算行数。
    • SUM(): 计算总和。
    • AVG(): 计算平均值。
    • MAX(): 返回最大值。
    • MIN(): 返回最小值。
  2. 如何使用 GROUP BYHAVING

    SELECT department, COUNT(*) AS num_employees
    FROM employees
    GROUP BY department
    HAVING COUNT(*) > 5;
    

子查询

  1. 什么是子查询?

    • 子查询是在另一个查询语句内部的查询语句。子查询可以嵌套在 SELECT, INSERT, UPDATE, DELETE 语句中。
  2. 如何使用子查询?

    SELECT * FROM employees
    WHERE salary > (SELECT AVG(salary) FROM employees);
    

连接(JOIN)

  1. 常见的连接类型有哪些?

    • 内连接(INNER JOIN):返回两个表中匹配的记录。
    • 左连接(LEFT JOIN):返回左表中的所有记录,以及右表中匹配的记录。如果右表中没有匹配的记录,则返回 NULL。
    • 右连接(RIGHT JOIN):返回右表中的所有记录,以及左表中匹配的记录。如果左表中没有匹配的记录,则返回 NULL。
    • 全连接(FULL JOIN):返回两个表中的所有记录,如果没有匹配的记录,则返回 NULL。
  2. 如何使用 INNER JOIN?

    SELECT * FROM employees
    INNER JOIN departments ON employees.department_id = departments.department_id;
    
  3. 如何使用 LEFT JOIN?

    SELECT * FROM employees
    LEFT JOIN departments ON employees.department_id = departments.department_id;
    

索引

  1. 什么是索引?

    • 索引是一种数据库结构,用于加快数据检索的速度。索引可以基于一个或多个列创建。
  2. 如何创建索引?

    CREATE INDEX index_name ON table_name (column1, column2);
    

事务

  1. 什么是事务?

    • 事务是一组 SQL 语句,作为一个整体一起执行。事务具有 ACID 特性:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)。
  2. 如何使用事务?

    BEGIN TRANSACTION;
    UPDATE accounts SET balance = balance - 100 WHERE account_id = 1;
    UPDATE accounts SET balance = balance + 100 WHERE account_id = 2;
    COMMIT;
    

视图

  1. 什么是视图?

    • 视图是一个虚拟表,其内容由查询定义。视图可以简化复杂的查询,提高数据的安全性。
  2. 如何创建视图?

    CREATE VIEW view_name AS
    SELECT column1, column2
    FROM table_name
    WHERE condition;
    

高级查询

  1. 如何使用 UNION 合并查询结果?

    SELECT column1 FROM table1
    UNION
    SELECT column1 FROM table2;
    
  2. 如何使用 CASE 语句进行条件判断?

    SELECT column1,CASEWHEN column2 > 10 THEN 'High'WHEN column2 <= 10 THEN 'Low'ELSE 'Unknown'END AS status
    FROM table_name;
    

示例问题

  1. 如何查询每个部门的员工数量?

    SELECT department, COUNT(*) AS num_employees
    FROM employees
    GROUP BY department;
    
  2. 如何查询工资最高的前 5 名员工?

    SELECT * FROM employees
    ORDER BY salary DESC
    LIMIT 5;
    
  3. 如何查询每个部门的平均工资?

    SELECT department, AVG(salary) AS avg_salary
    FROM employees
    GROUP BY department;
    

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

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

相关文章

InnoDB 存储引擎<六> Redo log

目录 关于Redo Log 的一些其余问题 小结 本篇承接自InnoDB存储引擎<五>的内容 InnoDB 存储引擎&#xff1c;五&#xff1e; 关于Redo Log 的一些其余问题 4.不同⽇志类型对应了哪些操作&#xff1f; 分析过程&#xff1a; 1.⽇志类型总体可以分为三⼤类&#xff0c;…

Linux挖矿病毒(kswapd0进程使cpu爆满)

一、摘要 事情起因:有台测试服务器很久没用了&#xff0c;突然监控到CPU飙到了95以上&#xff0c;并且阿里云服务器厂商还发送了通知消息&#xff0c;【阿里云】尊敬的xxh: 经检测您的阿里云服务&#xff08;ECS实例&#xff09;i-xxx存在挖矿活动。因此很明确服务器中挖矿病毒…

变电站接地电阻监测装置-输电铁塔接地电阻监测装置:实时监测,预防故障

变电站接地电阻监测装置 接地电阻对电力系统的安全和稳定性至关重要&#xff0c;但在高压环境和极端气候下&#xff0c;接地系统可能出现性能下降&#xff0c;增加故障和跳闸的风险。传统的人工检测方法常常无法及时发现这些问题&#xff0c;并且操作繁琐。为此&#xff0c;我…

练习LabVIEW第四十三题

学习目标&#xff1a; 模拟红绿灯&#xff0c;红灯亮十秒&#xff0c;绿灯亮五秒&#xff0c;交替&#xff0c;并用波形图将波形显示 开始编写&#xff1a; 前面板 两个指示灯&#xff0c;一个红色&#xff0c;一个绿色&#xff0c;一个波形图&#xff1b; 程序框图 创建…

MySQL45讲 第十一讲 怎么给字符串字段加索引?

文章目录 MySQL45讲 第十一讲 怎么给字符串字段加索引&#xff1f;一、引言二、前缀索引&#xff08;一&#xff09;概念与创建方式&#xff08;二&#xff09;数据结构与存储差异&#xff08;三&#xff09;确定前缀长度的方法 三、前缀索引对覆盖索引的影响四、其他索引创建方…

STM32CUBEIDE FreeRTOS操作教程(八):queues多队列

STM32CUBEIDE FreeRTOS操作教程&#xff08;八&#xff09;&#xff1a;queues多队列 STM32CUBE开发环境集成了STM32 HAL库进行FreeRTOS配置和开发的组件&#xff0c;不需要用户自己进行FreeRTOS的移植。这里介绍最简化的用户操作类应用教程。以STM32F401RCT6开发板为例&#…

2.Python解释器

python解释器程序&#xff0c;用来翻译python代码&#xff0c;并提交给计算机执行。 上一篇博客就是安装了python解释器程序 写一个python文件&#xff0c;在文件中写入多行代码并执行&#xff1a; 进入python后&#xff0c;输入exit()命令退出

JAVA笔记 | ResponseBodyEmitter等异步流式接口快速学习

先简单记录下简单使用跟测试&#xff0c;后续再补充具体&#xff0c;最近有用到&#xff0c;简单来说就是后端(服务端)编写个发射器&#xff0c;实现一次请求&#xff0c;一直向前端客户端发射数据&#xff0c;直到发射器执行完毕&#xff0c;模拟ai一句一句回复的效果 Respon…

Liunx:文件fd、重定向、管道

文件fd&#xff1a; 操作系统运行中一定存在着许多被打开的文件&#xff0c;这些文件需要被管理。一个进程会打开若干个文件。一个文件如果在操作系统中被打开&#xff0c;那么必须给该文件创建一个文件对象&#xff0c;包含被打开文件的各种属性。那么进程与文件的关系就变成…

linux笔记(DNS)

一、概念 DNS&#xff08;Domain Name System&#xff09;DNS 是一种分布式网络目录服务&#xff0c;主要用于将人类易于记忆的域名&#xff08;如 www.example.com&#xff09;转换为计算机可识别的 IP 地址&#xff08;如 192.168.1.1&#xff09;。它就像是互联网的电话簿&a…

优衣库在淘宝平台的全方位竞品分析与店铺表现研究:市场定位与竞争策略透视

优衣库品牌在淘宝平台的全方位竞品与店铺表现分析 一、品牌商品分析 1.商品列表与分类分析&#xff08;数据来源&#xff1a;关键词商品搜索接口&#xff1b;获取时间&#xff1a;2024.08.30&#xff09; 商品类别分布柱状图&#xff1a; 根据关键词商品搜索接口获取到的优衣…

RocketMQ 自动注入消费者

目录 前言一、情景介绍二、问题分析三、代码实现 前言 之前接到一个需求&#xff0c;我们项目的技术负责人希望通过配置的形式&#xff0c;在项目启动的时候自动根据配置生成对应的消费者 觉得还有点意思&#xff0c;随即记录一下~ 一、情景介绍 比如我这里有一个消费者 Mes…

数据结构(C语言版)(第2版) 课后习题答案 李冬梅

数据结构(C语言版)(第2版) 第1章 绪论 1.简述下列概念:数据、数据元素、数据项、数据对象、数据结构、逻辑结构、存储结构、抽象数据类型。 答案: 数据:是客观事物的符号表示,指所有能输入到计算机中并被计算机程序处理的符号的总称。如数学计算中用到的整数和实数…

Vue 自定义icon组件封装SVG图标

通过自定义子组件CustomIcon.vue使用SVG图标&#xff0c;相比iconfont下载文件、重新替换更节省时间。 子组件包括&#xff1a; 1. Icons.vue 存放所有SVG图标的path 2. CustomIcon.vue 通过icon的id索引对应的图标 使用的时候需要将 <Icons></Icons> 引到使用的…

吴恩达深度学习笔记:卷积神经网络(Foundations of Convolutional Neural Networks)4.9-4.10

目录 第四门课 卷积神经网络&#xff08;Convolutional Neural Networks&#xff09;第四周 特殊应用&#xff1a;人脸识别和神经风格转换&#xff08;Special applications: Face recognition &Neural style transfer&#xff09;4.9 内容代价函数&#xff08;Content cos…

界面控件DevExpress WPF中文教程:Data Grid——卡片视图设置

DevExpress WPF拥有120个控件和库&#xff0c;将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpress WPF能创建有着强大互动功能的XAML基础应用程序&#xff0c;这些应用程序专注于当代客户的需求和构建未来新一代支持触摸的解决方案。 无论是Office办公软件…

LLM训练”中的“分布式训练并行技术;分布式训练并行技术

目录 “LLM训练”中的“分布式训练并行技术” 分布式训练并行技术 数据并行 流水线并行:按阶段(stage)进行切分 张量并行 序列并行 多维混合并行 自动并行 MOE并行 重要的分布式AI框架 “LLM训练”中的“分布式训练并行技术” 随着深度学习技术的不断发展,特别是…

Ubuntu开启FTP与SSH服务

在配置开发环境时&#xff0c;这两个配置感觉是最有用的&#xff0c;开启FTP服务可以将远程linux上的文件映射到Windows上&#xff0c;不管是使用虚拟机还是嵌入式linux设备&#xff0c;特别在开发写代码的时候&#xff0c;映射到Windows上使用VS code打开编写比在linux上编写舒…

虚拟现实技术及其在教育领域的应用

&#x1f493; 博客主页&#xff1a;瑕疵的CSDN主页 &#x1f4dd; Gitee主页&#xff1a;瑕疵的gitee主页 ⏩ 文章专栏&#xff1a;《热点资讯》 虚拟现实技术及其在教育领域的应用 虚拟现实技术及其在教育领域的应用 虚拟现实技术及其在教育领域的应用 引言 虚拟现实技术概述…

搜维尔科技:Varjo XR-4在教育科研领域应用

医学教育与培训&#xff1a; • 解剖学教学&#xff1a;传统的解剖学教学依赖于教科书、图片或实体标本&#xff0c;学生对于人体结构的空间关系理解存在一定难度。而使用Varjo头显&#xff0c;学生可以沉浸在虚拟的人体解剖环境中&#xff0c;全方位、多角度地观察人体的各个…