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

SQL笔试面试

  1. SELECT 查询中常见语句的出现顺序是什么?
    SELECT – FROM – JOIN – ON – WHERE – GROUP BY – HAVING – ORDER BY - LIMIT

2.解释器执行 SELECT 查询语句的顺序是什么?
FROM – JOIN – ON – WHERE – GROUP BY – HAVING – SELECT – ORDER BY – LIMIT
3. 什么是大小写处理函数?举一些例子。
大小写处理函数是文本函数,用于更改文本数据的大小写,可以将数据转换为大写、小写或首字母大写。

UCASE()(或 UPPER()) – 返回转换为大写的字符串。

LCASE()(或 LOWER()) – 返回转换为小写的字符串。

  1. ORDER BY 语句的默认排序是什么??如何更改?
    ORDER BY 语句的默认排序是升序。要改为降序,需要添加 DESC 关键字,示例如下。
SELECT * FROM table_name
ORDER BY col_1 DESC;

5.你知道哪些标量函数?
LEN()(或LENGTH()) – 返回字符串的长度,包括空格。

UCASE()(或 UPPER()) – 返回转换为大写的字符串。

LCASE()(或 LOWER()) – 返回转换为小写的字符串。

MID()(或 SUBSTR()) – 从字符串中提取子字符串。

6.你知道哪些聚合函数?
AVG() – 返回平均值。

SUM() – 返回值的和。

MIN() – 返回最小值。

MAX() – 返回最大值。

COUNT() – 返回行数,包括具有空值的行数。

7.查询中使用什么运算符进行模式匹配?
LIKE 运算符与 % 和 _ 通配符结合使用。通配符 % 代表任意数量的字符,包括 0 个字符;_ 严格来说是一个字符。

8.SQL 中的范式(normalization )是什么,为什么要使用范式?
范式是数据库的设计过程,旨在减少数据冗余、提高数据一致性和完整性,让查询效率更高,也更灵活,常用的范式有第一范式(1NF)、第二范式(2NF)和第三范式(3NF)。

8.2.SQL 中的非范式(denormalization )是什么,为什么要使用非范式?
非范式是与范式相反的过程:它引入数据冗余,并组合来自多个表的数据。在读操作比写操作更重要的情况下,非范式可以优化数据库基础设施的性能,有助于避免复杂的连接,并减少查询运行的时间。

(说两句,一般来说,都是逻辑外键,也就是自己知道哪个字段是外键(避免需要删除数据的时候因为强逻辑删不掉),需要除非是数据一定要强逻辑的系统)

9.重命名列与列的别名有什么区别?
重命名列意味着永久更改其在原始表中的实际名称。
为列指定别名意味着在执行 SQL 查询时为其指定一个临时名称,使代码更易读,更简洁。

10.如何向表中添加记录?
INSERT INTO 与 VALUES 结合使用。

INSERT INTO students (id, name, score, class)
VALUES (101, '张三', 89, 'A班'),(102, '李四', 92, 'B班'),(103, '王五', 76, 'A班');

11.如何删除表中的记录?
使用 DELETE 语句删除记录,可以搭配 WHERE 一起使用。

DELETE FROM table_name
WHERE condition;

12.查询时如何防止重复记录?
在 SELECT 语句中使用 DISTINCT,或为该表创建唯一键。

-- 使用 DISTINCT 去重
SELECT DISTINCT department FROM employees;
  1. 如何选择表中的所有偶数或奇数的记录?
SELECT * FROM employees WHERE emp_no % 2 = 0;  -- 偶数记录
SELECT * FROM employees WHERE emp_no % 2 = 1;  -- 奇数记录

13.如何找到表中某一列的第 n(n>=1) 个最高值?
使用 OFFSET 子句。查找某列中的第 6 个最高值的示例如下。

1SELECT * FROM table_name
2ORDER BY column_name DESC
3LIMIT 1
4OFFSET 5;

14.如何查找表格文本列中以某个字母开头的值?

1SELECT * FROM table_name
2WHERE surname LIKE 'A_';--下划线 _‌:精确匹配 ‌单个任意字符‌
--示例匹配结果‌:
--'Al'、'Ax'、'A1'(仅匹配 ‌两个字符‌ 且首字母为 A 的字符串)1SELECT * FROM table_name
2WHERE surname LIKE 'A%';--百分号 %‌:匹配 ‌零个或多个任意字符‌--示例匹配结果‌:
--'A'、'Al'、'Anna'、'Alexander'(只要以 A 开头,长度不限)‌

15.如何查找表中最后一个 id?

1SELECT id
2FROM table_name
3ORDER BY id DESC
4LIMIT 1;

16.如何从表中随机选择行?
假设随机选择5行

1SELECT * FROM table_name
2ORDER BY RAND()
3LIMIT 5;

17.DELETE 和 TRUNCATE 的区别是什么?
DELETE 根据 WHERE 子句中的条件从表中删除一行或多行记录。

TRUNCATE 是用于删除表中的所有行,但包含外键的表不能使用 TRUNCATE 语句。

DELETE 的速度比 TRUNCATE 慢。

18.什么是复合主键?
表的主键,基于多个列。

19.主键和唯一键有什么区别.设计目的
‌主键‌:唯一标识表中的每一行记录(如用户ID、订单号)
‌唯一键‌:确保业务关键字段的唯一性(如身份证号、邮箱、手机号)

20.如何更新表?
使用 UPDATE 语句。

CREATE TABLE table_name (col_1 datatype,col_2 datatype,col_3 datatype);

21.如何从两个表中选取共同的记录?
使用 INTERSECT语句,示例如下。

1    SELECT * FROM table_1
2    INTERSECT
3    SELECT * FROM table_1;

21.你知道哪些类型的 SQL 运算符?
算术运算符:+、-、*、/

比较运算符:>、<=>=

复合运算符:+=、-=、*=、/=

逻辑运算符:AND、OR、NOT、BETWEEN

字符串运算符:%、_、+、^

集合运算符:UNION、UNION ALL、INTERSECT、MINUS 或 EXCEPT

22.join 的类型都有哪些?
(INNER) JOIN – 只返回满足两个(或所有)表中定义的 join 条件的记录。这是默认的 SQL 连接。

LEFT (OUTER) JOIN – 返回左表中的所有记录及右表中满足定义的 join 条件的记录。

RIGHT (OUTER) JOIN – 返回右表中的所有记录及左表中满足定义的 join 条件的记录。

FULL (OUTER) JOIN – 返回两个(或所有)表中的所有记录。它是左连接和右连接的组合。

23.什么是子查询?
子查询也称为内部查询,是在一个查询或外部查询中的查询。子查询可能出现在 SELECT、FROM、WHERE 和 UPDATE 等子句中。

子查询中还可以包含子查询。最里面的子查询首先运行,并将结果传递给它的外部查询。

24.你知道哪些类型的 SQL 子查询?
单行子查询 – 最多返回一行。

多行子查询 – 返回至少两行。

多列子查询 – 返回至少两列。

相关子查询 - 与外部查询的信息相关的子查询。

嵌套子查询 – 子查询嵌套在另一个子查询中。


N-1.49. 你知道哪些集合运算符?
UNION – 返回多个查询语句的结果合并后的唯一记录集(不包括重复项)。

UNION ALL – 返回多个查询语句的结果合并后的记录集(包括重复项)。

INTERSECT – 返回多个查询语句的结果交集的记录集。

EXCEPT(MySQL 和 Oracle 中为 MINUS) – 仅返回第一个语句查询的结果,不返回第二个查询的结果。

N.什么是字符操作函数?举一些例子。
CONCAT() – 连接多个字符串值,将后一个字符串附加到前一个字符串的末尾。

SUBSTR() – 返回满足所提供的起点和终点的字符串的一部分。

LENGTH()(或 LEN()) – 返回字符串的长度,包括空格。

REPLACE() – 用一个子字符串替换提供的字符串中所有出现的已定义子字符串。

INSTR() – 返回给定字符串中定义的子字符串的数字位置。

LPAD()/RPAD() – 返回右对齐/左对齐值的左侧/右侧字符的填充。

TRIM() – 从提供的字符串的左侧、右侧或两端删除所有定义的字符及空格。

http://www.dtcms.com/a/303474.html

相关文章:

  • 深入理解 Qt 信号与槽机制的底层逻辑
  • AUTOSAR Mcal SPI - EB工具配置介绍
  • Android Handler 完全指南
  • 手游遇攻击为何要用游戏盾SDK?
  • Linux学习--C语言(指针3)
  • 第三阶段—8天Python从入门到精通【itheima】-139节(pysqark实战-前言介绍)
  • linux du、df命令使用教程
  • AWS Bedrock Claude 3 API的完整指南
  • 基于STM32设计的智慧果园云监测系统_256
  • 从像素到频率:OpenCV傅里叶变换
  • 扑克洗牌
  • NVMe高速传输之摆脱XDMA设计18:PRP控制模块设计
  • NVMe高速传输之摆脱XDMA设计21:PCIe请求模块设计(下)
  • 机器学习基础-matplotlib
  • clock_nanosleep系统调用及示例
  • node后端-JWT认证
  • Excel VBA宏的使用
  • 大模型应用班-第3课 从Excel到大屏:AI编程实战全解析 HW3 从零到一:香港疫情数据看板开发实战指南
  • 【GoLang #4】:Go 语言 函数详述(定义调用 | 匿名函数 闭包 | defer)
  • windows clion远程连接ubuntu运行调试nginx-1.22.1版本
  • 【优先级高,先补充】基于文本增强跨模态特征交互注意网络的多模态情感分析
  • SVN与GIT的区别,分别使用与哪些管理场景?
  • 《汇编语言:基于X86处理器》第10章 结构和宏(2)
  • Linux——线程池的模拟实现
  • 解决c++静态成员编译报错:‘xxx‘ is not a member of ‘xxx‘ 问题
  • 第五届先进算法与神经网络国际学术会议(AANN 2025)
  • vue项目进首页不加载全部资源
  • 【数据结构初阶】--二叉树(三)
  • ICDC自动化部署方案概述
  • 如何规范化项目执行