首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【21】进大厂必须掌握的面试题-65个SQL面试

可以修改,检索和删除存储在数据库中的数据,并且可以是任何类型,例如字符串,数字,图像等。 DBMS有两种类型: 关系数据库管理系统:数据存储在关系(表)中。示例– MySQL。...第三范式(3NF) –仅取决于主键,而没有其他非键(支持)列值。 Q23。数据库中的ACID属性是什么? ACID代表原子性,一致性,隔离性,耐久性。它用于确保在数据库系统中可靠地处理数据事务。...交叉联接产生两个表的叉积或笛卡尔积,而自然联接基于两个表中具有相同名称和数据类型的所有列。 Q28。什么是SQL中的子查询? 子查询是另一个查询中的查询,其中定义了查询以从数据库中检索数据或信息。...BETWEEN”和” IN”条件运算符之间的主要区别是什么? BETWEEN运算符用于根据一行中的值范围显示行,而IN条件运算符用于检查特定值集中包含的值。...什么是合计和标量函数? 聚合函数用于评估数学计算并返回单个值。这些计算是从表中的列进行的。例如-max(),count()是针对数字计算的。 标量函数根据输入值返回单个值。

6.9K22

【重学 MySQL】十七、比较运算符的使用

在编写SQL查询时,选择还是!=主要取决于个人偏好和团队的编码规范。然而,需要注意的是,在某些情况下(特别是在与其他编程语言或框架的集成中),这两个运算符的可用性可能会有所不同。...这意味着,如果你混合了数字和字符串作为参数,结果可能会与你期望的不同,特别是当字符串看起来像数字时。...BETWEEN AND 在MySQL中,BETWEEN AND是一个在查询中指定范围搜索的条件。它允许你选择一个字段的值在指定的两个值之间的所有记录(包括边界值)。...注意,由于%在SQL字符串中也是特殊字符(用于表示字符串的结束),所以你可能需要使用两个%字符来表示一个文字%字符(取决于你的SQL客户端或应用程序如何处理字符串)。...因此,如果你想要匹配文字.字符,你需要使用反斜杠\来对其进行转义。同样,$是一个特殊字符,它匹配字符串的末尾。 正则表达式功能 MySQL的正则表达式功能相当强大,支持多种元字符和模式修饰符。

20410
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    高性能 MySQL 第四版(GPT 重译)(二)

    但是,如果你在数值上下文中检索值,结果将是位字符串转换为的数字。如果你将值b'00111001'(这是 57 的二进制等价值)存储到一个BIT(8)列中并检索它,你将得到包含字符代码 57 的字符串。...存储引擎无法优化访问第一个范围条件右侧的任何列。...在这种情况下,设计索引以尽快过滤出行可能确实有效,因此对于只在WHERE子句中指定索引前缀的查询,它更具选择性。然而,这不仅取决于列的选择性(总体基数),还取决于您用于查找行的实际值-值的分布。...¹⁰ 如果查询连接多个表,则仅当ORDER BY子句中的所有列都引用第一个表时才有效。ORDER BY子句也具有与查找查询相同的限制:它需要形成索引的最左前缀。...如果一个索引包含查询所需的所有列,存储引擎就不需要通过查找表中的行来找到其他列。这避免了大量的单行访问,正如我们从第一点所知道的那样,这是缓慢的。

    33020

    如何用 Python 执行常见的 Excel 和 SQL 任务

    在 Python 中,不需要知道很多关于正则表达式的知识,但它们是一个强大的工具,可用于匹配和替换某些字符串或子字符串。如果你想了解更多,请参考以下教程。 ? 信任这个网站的一些代码。...请注意,Python 索引从0开始,而不是1,这样,如果要调用 dataframe 中的第一个值,则使用0而不是1!你可以通过在圆括号内添加你选择的数字来更改显示的行数。试试看!...你可以复制一组由公式呈现的单元格,并将其粘贴为值,你可以使用格式选项快速切换数字,日期和字符串。 有时候,在 Python 中切换一种数据类型为其他数据类型并不容易,但当然有可能。...数据可视化(图表/图形) 数据可视化是一个非常强大的工具 - 它允许你以可理解的格式与其他人分享你获得的见解。毕竟,一张照片值得一千字。SQL 和 Excel 都具有将查询转换为图表和图形的功能。...这应该让你了解 Python 中数据可视化的强大功能。如果你感到不知所措,你可以使用一些解决方案,如Plot.ly,这可能更直观地掌握。

    10.8K60

    用Python执行SQL、Excel常见任务?10个方法全搞定!

    最后,需要 Python(re)的正则表达式库来更改在处理数据时将出现的某些字符串。...在 Python 中,不需要知道很多关于正则表达式的知识,但它们是一个强大的工具,可用于匹配和替换某些字符串或子字符串。如果你想了解更多,请参考以下内容。 ?...请注意,Python 索引从0开始,而不是1,这样,如果要调用 dataframe 中的第一个值,则使用0而不是1!你可以通过在圆括号内添加你选择的数字来更改显示的行数。试试看!...你可以复制一组由公式呈现的单元格,并将其粘贴为值,你可以使用格式选项快速切换数字,日期和字符串。 有时候,在 Python 中切换一种数据类型为其他数据类型并不容易,但当然有可能。...这应该让你了解 Python 中数据可视化的强大功能。如果你感到不知所措,你可以使用一些解决方案,如Plot.ly,这可能更直观地掌握。

    8.3K20

    SQL Server 2005 正则表达式使模式匹配和数据提取变得更容易

    $' ) = 1) ) AccountNumber 列是按照满足以下条件的任意约定来验证的,即以三到五个字母开始,后跟五个数字,然后是一个破折号,最后又是三个数字。...然而,Match 对象并非用于测试匹配而是为在输入字符串中找到的第一个匹配项创建的。Match 对象用于检索指定的组。如果在输入中未找到匹配项,则返回空值。...现在的问题是如何在 SQL 构造中返回全部所需的数据。表值函数可以解决这个问题。 表值函数有点类似先前的函数,但在两个方面有所不同。首先,应用到方法的属性必须完全声明返回的表结构。其次,涉及两个方法。...正则表达式是一个非常强大的工具,但一定要确保有充分理由应用它们。可能存在用于特定情况的更简单且性能更佳的工具。 我经常查看 MSDN® 论坛中有关如何将一列值传递到存储过程的问题。...鉴于 SQL Server 中的隐式转换功能,这样会更有用。同一查询还可用于整数、日期/时间、GUID 或浮点数据类型。处理一列值的其他方法需要使用多个函数或存储过程才能达到这种灵活程度。

    6.4K60

    PortSwigger之SQL注入实验室笔记

    下一步是确定与字符串数据兼容的列。 实验室将提供您需要在查询结果中显示的随机值。为了解决实验室问题,请执行SQL 注入 UNION攻击,该攻击会返回包含所提供值的附加行。...我们使用union空查询来做到这一点,我们已经知道有两个列,我们要做的是将int值或字符串测试每一列 ' UNION SELECT 'aa', NULL-- 如果该列的数据类型不兼容对于使用过滤类别的列的数据类型...,它应该抛出一个错误,告诉我们该列不是字符串类型。...如果我们没有收到错误,这意味着该列现在是字符串类型。 在此实验环境中,我们可以看到两列都包含字母,所以他们都是字符串类型(还是要进一步测试确认)。...验证查询是否返回两列,这两列都包含文本,在category参数中使用如下所示的有效负载:'+UNION+SELECT+'abc','def'--。

    2.2K10

    【MySQL】MySQL数据库的进阶使用

    实际中非常不建议使用全列查询,因为这需要显示表的所有数据,而部分的数据可能此时并不在内存中,则mysqld服务还需要磁盘IO来加载表的剩余数据,降低MySQL查询的性能,同时全列查询还无法使用索引来优化查询过程...count函数除外,count括号内的字段可以是数字,列字段名,通配符等等,因为count只负责统计表中记录(表中的一行数据成为记录)的个数,所以count比较特殊,其他的四个聚合函数括号内的字段只能是值为数字的列字段名...下面这样的sql语句是不符合语法支持的,如果最小成绩可能出现多个的话,则name列字段也会有多个,但min作聚合后的列字段只能有一个值,这明显就会有问题,select无法显示出二维的行列式结构了就,所以这样的语法...如果要一长串的显示信息,则可以使用concat将列字段和其他字符串连接在一起,然后进行select显示 replace可以在第一个参数中查找第二个参数的位置,查找到后用第三个参数进行替换。...如果是这样的话,效率肯定要低,因为需要先连接,然后再筛选,这需要两步,而先on再join的话,只需要一步即可,直接带着筛选条件进行连接即可。

    35220

    如何在Ubuntu 16.04上使用MySQL全文搜索提高搜索效果

    它们也仅限于精确匹配用户的输入,这意味着即使存在包含相关信息的文档,查询也可能不会产生任何结果。 使用FTS,您可以构建更强大的文本搜索引擎,而无需在更高级的工具上引入额外的依赖关系。...news 是表的名称。 title、content和author是具有无限长度的文本列。 NOT NULL是一个声明,用于标记不能具有空值的列(尽管它们可能包含空字符串)。...您可以通过更改关键字来查看结果来尝试其他搜索。 现在您可以在SQL查询中使用FTS函数来查找与搜索输入相关的行,您可以使这些结果更具相关性。...您可以更改截止值以继续微调结果。例如,如果您使用0.1 而不是0截止,则仅返回第2行。 使用IN BOOLEAN 在第二步中,您在指定查询字词时使用了默认的IN NATURAL LANGUAGE模式。...例如,一组科学论文可以很好地使用3的小字间隙,但搜索论坛帖子可能会有8或更高的差距,这取决于您希望结果的宽度或范围。 结论 在本指南中,您使用了MySQL中的全文搜索功能。

    2.4K40

    C# .NET面试系列十:数据库概念知识

    这有助于维护与其他表的关联性。主键可以由单个列或多个列组成,这取决于表的设计。当一个表有多个列组成主键时,这被称为复合主键(Composite Primary Key)。...2、连接条件的列如果某个列用于连接多个表,那么在这个列上建立索引可以加速连接操作。这通常用于连接操作中的 JOIN 条件列。...最左前缀原则是在数据库中建立复合索引(Composite Index)时的一个原则。它指的是在查询时,索引的第一个列(最左边的列)需要被用于查询条件,而后续列只能按照索引的顺序依次使用。...NULL 不等同于空字符串、零或任何其他值,它是一种表示数据缺失或未知的占位符。当某一列的值为 NULL 时,这意味着这一列的数据是未知或不存在的。...2、可应用于多种数据类型NULL 可以应用于各种数据类型,包括数字、字符串、日期等。3、在比较中的特殊性与其他值的比较时,NULL 具有一些特殊的性质。

    1.1K10

    表格控件:计算引擎、报表、集算表

    可以通过将排列选项的allowDragHeaderToMove枚举设置为行、列或两者都设置来启用。...这允许用户指定行或列的大小是否应根据其中的文本进行更改。...列类型如下: 列类型 数据类型 描述 数值 数值 用于大多数具有指定格式的数值 文本 文本 用于常见文本 公式 取决于结果 根据记录中的其他字段计算值 查找 取决于相关字段 查找相关记录中的特定字段 日期...允许直接在记录上附加文件 条码 取决于输入 从字段生成指定的条形码 撤销重做支持 新版本集算表添加了撤消和重做支持,允许用户撤消/重做以下类别的操作: 配置更改:过滤、排序和其他配置设置 运行时 UI...在此版本中,我们已将该选项添加到表格编辑器: 条件格式规则管理器支持当前选择区域 在某些情况下,工作簿可能具有大量条件格式,这可能会使查找特定格式变得复杂。

    13710

    SQL聚合函数 AVG

    返回值的比例取决于表达式的精度和比例:AVG返回值的比例等于18减去表达式的精度,加上表达式的比例(as=ap-ep+es)。 对于DOUBLE表达式值,精度为0。...因为没有执行类型检查,所以可以(尽管很少有意义)对非数字字段调用类型检查; AVG计算非数值,包括空字符串(")为零(0)。...如果查询没有返回行,或者返回的所有行的数据字段值为NULL, AVG返回NULL。 对单个值求平均值 如果提供给AVG的所有表达式值都是相同的,那么结果的平均值取决于访问表中的行数(除数)。...例如,如果表中的所有行对某个特定列具有相同的值,那么该列的平均值就是一个计算值,它可能与个别列中的值略有不同。 为了避免这种差异,可以使用DISTINCT关键字。...下面的例子展示了计算平均值如何产生轻微的不平等。 第一个查询不引用表行,所以AVG通过除以1进行计算。 第二个查询引用表的行,因此AVG通过除以表中的行数进行计算。

    3.3K51

    python数据科学系列:pandas入门详细教程

    ,仅支持一维和二维数据,但数据内部可以是异构数据,仅要求同列数据类型一致即可 numpy的数据结构仅支持数字索引,而pandas数据结构则同时支持数字索引和标签索引 从功能定位上看: numpy虽然也支持字符串等其他数据类型...切片形式访问时按行进行查询,又区分数字切片和标签切片两种情况:当输入数字索引切片时,类似于普通列表切片;当输入标签切片时,执行范围查询(即无需切片首末值存在于标签列中),包含两端标签结果,无匹配行时返回为空...切片类型与索引列类型不一致时,引发报错 loc/iloc,最为常用的两种数据访问方法,其中loc按标签值访问、iloc按数字索引访问,均支持单值访问或切片查询。...isin/notin,条件范围查询,即根据特定列值是否存在于指定列表返回相应的结果 where,仍然是执行条件查询,但会返回全部结果,只是将不满足匹配条件的结果赋值为NaN或其他指定值,可用于筛选或屏蔽值...query,按列对dataframe执行条件查询,一般可用常规的条件查询替代 ?

    15.1K20

    缓存查询(一)

    如果类查询是在持久类中定义的,则缓存的查询也会列在该类的Catalog Details缓存查询中。它没有列在正在访问的表的目录详细信息中。它没有列在SQL语句清单中。...如果查询与现有的缓存查询仅在文字值上不同,则查询与现有的缓存查询匹配-这取决于某些其他注意事项:隐藏的文本替换、不同的注释选项或“单独的缓存查询”中描述的情况。...这最小化了查询高速缓存的大小,并且意味着不需要对仅在字面值上不同的查询执行查询优化。 使用输入主机变量(例如:myvar)和? 输入参数也在相应的缓存查询中用“?” ”字符。...例如,增加或减少文字字符串的长度,使其落入不同的范围。 文字替换和性能 SQL引擎对IN谓词的每个值执行文字替换。大量IN谓词值可能会对缓存查询性能产生负面影响。...在上面的示例中,指定不同的TOP值不会生成单独的缓存查询。 要取消有符号数字的文字替换,请指定诸如 ABS(-((7)))之类的语法。 注意:在某些情况下,不同数量的括号也可能会抑制文字替换。

    1.2K20

    第11章、数据类型

    当指定的列中没有值时,使用当前时间作为默认时间。 当该行中任何其他列的值从其当前值更改时,自动更新的列会自动更新为当前时间戳。...以下是使用这两者的限制点: 使用临时表处理的查询结果中的 实例BLOB或 TEXT列导致服务器在磁盘上而不是在内存中使用表,因为 MEMORY存储引擎不支持这些数据类型(请参见 第8.4.4节“内部临时在...使用磁盘会导致性能损失,因此只有在确实需要时才在查询结果中包含 BLOB或TEXT列。例如,避免使用 SELECT *,它会选择所有列。...对于除了枚举类型之外的字符串值,其默认值是空字符串;对于枚举类型,其默认值则是枚举类型中的第一个值。...数据类型存储要求 磁盘上表数据的存储要求取决于几个因素。不同的存储引擎以不同方式存储原始数据。表格数据可能会被压缩,无论是列还是整行,都会使表或列的存储需求计算复杂化。

    1.7K20

    Java 中文官方教程 2022 版(三十五)

    当使用字符串调用获取器方法时,如果有多个列具有与字符串相同的别名或名称,则返回第一个匹配列的值。使用字符串而不是整数的选项设计用于在生成结果集的 SQL 查询中使用列别名和名称。...这告诉你批处理中有多少个命令成功执行以及它们是哪些。例如,如果五个命令成功执行,数组将包含五个数字:第一个是第一个命令的更新计数,第二个是第二个命令的更新计数,依此类推。...第一个值使ResultSet对象的游标能够向前和向后移动。第二个值,ResultSet.CONCUR_UPDATABLE,如果要向ResultSet对象插入行,则需要它;它指定它可以被更新。...以下代码片段尝试向frs对象插入两行新行,其中一个行中的STORE_ID和CITY列的值都符合条件,另一个行中的STORE_ID的值不符合过滤条件,但CITY列的值符合: frs.moveToInsertRow...和PRICE列的数据,以及关于这两列的元数据。

    22500

    全栈必备之SQL简明手册

    关于JOIN JOIN用于根据两个或多个表之间的列之间的关系,从这些表中查询数据。它允许用户将不同表中的相关数据连接起来,从而形成一个更完整和有意义的数据集。 JOIN基于表之间的关联键进行连接操作。...在使用JOIN时,用户可以指定需要选择的列,并应用筛选条件,以进一步细化查询结果。这样可以确保只返回感兴趣的数据,并提高查询效率。其操作可能会涉及大量的数据,因此在使用时需要考虑性能因素。...重复值处理:UNION操作中,默认会删除重复的结果行,只保留唯一的行。如果需要包含重复的行,可以使用UNION ALL操作。...这将使事务中的所有更改永久生效。 例如: COMMIT TRANSACTION; 需要注意的是,事务的使用取决于数据库管理系统(DBMS)的支持和具体的SQL方言。...上述步骤提供了一般的指导,但具体的语法和机制可能会因不同的DBMS而有所差异。 8.小结 SQL是处理数据的强大工具,可以创建有效的查询来检索所需的数据。

    33810

    SQL命令 UPDATE(二)

    例如,日期存储为整数天数,时间存储为从午夜开始的秒数,%List存储为编码字符串。 大多数其他数据,如字符串和数字,不需要转换; 无论当前模式如何,它们都以相同的格式输入、更新和存储。...这防止更新操作直接更改一个值,该值是涉及其他字段值的计算结果。 在本例中,试图使用UPDATE覆盖计算字段的值将导致SQLCODE -138错误。...FROM Retirees AS Rt WHERE Emp.EmpId = Rt.EmpId 如果UPDATE TABLE-REF和FROM子句引用同一个表,则这些引用可能是引用同一个表,也可能是引用该表的两个实例的联接...这取决于如何使用表别名: 如果两个表引用都没有别名,则两者都引用同一个表: UPDATE table1 value-assignment FROM table1,table2 /* join of...也不执行针对数据类型、最大长度、数据约束和其他验证条件的列数据验证。通过视图执行更新时,不执行视图的WITH CHECK选项验证。

    1.8K30

    Transact-SQL基础

    以一个数字符号开头的标识符表示临时表或过程。以两个数字符号 (##) 开头的标识符表示全局临时对象。虽然数字符号或两个数字符号字符可用作其他类型对象名的开头,但是不建议这样做。...在很多应用程序中,指定值与存储的近似值之间的微小差异并不明显。但有时这些差异也较明显。 在 WHERE 子句搜索条件(特别是 = 和 运算符)中,应避免使用 float 列或 real 列。...2.3.9 数据类型转换 可以按以下方案转换数据类型: 当一个对象的数据移到另一个对象,或两个对象之间的数据进行比较或组合时,数据可能需要从一个对象的数据类型转换为另一个对象的数据类型。...对行的任何更新都会更改行版本值,从而更改键值。如果该列属于主键,那么旧的键值将无效,进而引用该旧值的外键也将不再有效。如果该表在动态游标中引用,则所有更新均会更改游标中行的位置。...这包括基类型信息和基类型值。实际基类型值的最大长度是 8,000 个字节。 2.3.16 Transact-SQL 常量 常量是表示特定数据值的符号。常量的格式取决于它所表示的值的数据类型。

    3.4K20

    Power Query 真经 - 第 3 章 - 数据类型与错误

    这里需要认识到的关键区别是,“Whole(整数)” 列中的第一个值是【整数】数据类型,其值为 9553 ,已被格式化显示为 9,553.000000 。 为什么这很重要?...Power Query 有五种主要的数据类型,如下所示。 数值型。 日期和时间。 文本。 布尔型(True/False)。 二进制(文件)。 但在前两个类别中,还存在其他数据子类型。...图 3-6【小数】数据类型保留了所有的十进制值 这里需要注意的一件重要的事情是,数据类型和格式完全不是一回事。 格式:控制一个数字的显示方式,而不以任何方式影响基础精度。...更改完成后,现在应该可以看到预览区域填充了值。 【警告】 前两种方法只更新所选查询的数据源,而最后一种方法有一个好处,它将更改数据源的所有实例,即使它被用于多个查询中。...在这种情况下,可以选择删除前 3,880 行,这意味着第一个错误会出现在第 2 行中。请确保在完成查询之前删除这个步骤。 此时,要确保这些更改是有效的。

    5.8K20
    领券