首页
学习
活动
专区
圈层
工具
发布

编写高效SQL的三个基础原则

数据库中的表构成了数据驱动应用程序的基础。处理一个混乱的模式,其中充满了令人困惑的名称和数据缺陷,是一项挑战。在名称清晰且数据干净的表上构建可以简化您的选择。...在本文中,我将通过为表命名并通过规范化和约束避免数据错误,为高效的SQL编写奠定基础。 本系列的第二部分将介绍如何构建SQL以使其更易于阅读和调试。因此,让我们首先了解如何奠定基础。...在大型代码库中,这是不切实际的。 那么,如果您正在使用一个充满神秘名称的模式,该怎么办?您是否永远被困住了? 好消息是有一些技巧可以用来阐明令人困惑的名称: 使用视图进行虚拟重命名。...假设您只在视图中提供新的别名——即,唯一的SQL子句是select和from,并且select没有表达式——访问视图与使用表相同。随着时间的推移,您可以将代码转移到使用名称更好的视图。 但这需要时间。...这些忽略现有数据,并且仅将规则应用于新数据。

1.1K00

编写高效SQL的三个基础原则

数据库中的表构成了数据驱动应用程序的基础。处理一个混乱的模式,其中充满了令人困惑的名称和数据缺陷,是一项挑战。在名称清晰且数据干净的表上构建可以简化您的选择。...在本文中,我将通过为表命名并通过规范化和约束避免数据错误,为高效的SQL编写奠定基础。 本系列的第二部分将介绍如何构建SQL以使其更易于阅读和调试。因此,让我们首先了解如何奠定基础。...在大型代码库中,这是不切实际的。 那么,如果您正在使用一个充满神秘名称的模式,该怎么办?您是否永远被困住了? 好消息是有一些技巧可以用来阐明令人困惑的名称: 使用视图进行虚拟重命名。...假设您只在视图中提供新的别名——即,唯一的SQL子句是select和from,并且select没有表达式——访问视图与使用表相同。随着时间的推移,您可以将代码转移到使用名称更好的视图。 但这需要时间。...这些忽略现有数据,并且仅将规则应用于新数据。

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

    学界 | MIT正式发布编程语言Julia 1.0:Python、R、C++三合一

    除此之外,Julia 语言还可以轻松使用 Python、R、C/C++ 和 Java 中的库,这极大地扩展了 Julia 语言的使用范围。...Julia 程序通过 LLVM 为多个平台编译高效的本地代码。 通用:它使用多分派作为范例,使得表达许多面向对象和函数式的编程模式变得容易。...在 Julia 1.0 中,可以很简单地将广播扩展到自定义类型,并在 GPU 和其它向量化硬件上实现高效的优化计算,为未来更高的性能效益奠定了基础。...现在可以用声明参数类型的构造函数的方式调用它们自己,这消除了语言句法中令人困惑且模糊的地方。 完全重新设计迭代协议,使之更易实现多种可迭代量。...Julia 1.0 没有设计三种不同泛型函数(start、next、done)的方法,而是设计 iterate 函数的一参数和二参数方法。这通常允许在开始状态使用包含默认值的单一定义来便捷地定义迭代。

    1.5K20

    MIT正式发布编程语言Julia 1.0:Python、R、C++三合一

    除此之外,Julia 语言还可以轻松使用 Python、R、C/C++ 和 Java 中的库,这极大地扩展了 Julia 语言的使用范围。...Julia 程序通过 LLVM 为多个平台编译高效的本地代码。 通用:它使用多分派作为范例,使得表达许多面向对象和函数式的编程模式变得容易。...允许表示和处理缺失数据对于统计和数据科学来说是很基础的。在典型的 Julia 编程形式中,新的解决方案是通用的、可组合的和高性能的。...在 Julia 1.0 中,可以很简单地将广播扩展到自定义类型,并在 GPU 和其它向量化硬件上实现高效的优化计算,为未来更高的性能效益奠定了基础。...现在可以用声明参数类型的构造函数的方式调用它们自己,这消除了语言句法中令人困惑且模糊的地方。 完全重新设计迭代协议,使之更易实现多种可迭代量。

    1.4K40

    R语言基础-数据清洗函数pivot_longer

    names_to:一个字符向量,指定要根据存储在 cols 指定的数据的列名中的信息创建一个或多个新列。如果长度为 0,或者如果提供了 NULL,则不会创建任何列。...names_transform, values_transform:(可选)列名-函数对的列表。或者,可以提供一个函数,该函数将应用于所有列。如果您需要更改特定列的类型,请使用这些参数。...如果列重复,默认值“check_unique”会出错。使用“minimal”允许在输出中重复,或“unique”通过添加数字后缀来消除重复。...values_to:一个字符串,指定要从存储在单元格值中的数据创建的列的名称。...values_drop_na:如果为 TRUE,将删除 value_to 列中仅包含 NA 的行。这有效地将显式缺失值转换为隐式缺失值,并且通常仅应在数据中的缺失值由其结构创建时使用。

    7.6K30

    【如何在 Pandas DataFrame 中插入一列】

    前言:解决在Pandas DataFrame中插入一列的问题 Pandas是Python中重要的数据处理和分析库,它提供了强大的数据结构和函数,尤其是DataFrame,使数据处理变得更加高效和便捷。...解决在DataFrame中插入一列的问题是学习和使用Pandas的必要步骤,也是提高数据处理和分析能力的关键所在。 在 Pandas DataFrame 中插入一个新列。...不同的插入方法: 在Pandas中,插入列并不仅仅是简单地将数据赋值给一个新列。...在实际应用中,我们可以根据具体需求使用不同的方法,如直接赋值或使用assign()方法。 Pandas是Python中必备的数据处理和分析库,熟练地使用它能够极大地提高数据处理和分析的效率。...通过本文,我们希望您现在对在 Pandas DataFrame 中插入新列的方法有了更深的了解。这项技能是数据科学和分析工作中的一项基本操作,能够使您更高效地处理和定制您的数据。

    8.4K10

    Pandas 数据类型概述与转换实战

    我们必须手动更正这些数据类型 在 pandas 中转换数据类型,有三个基本选项: 使用 astype() 强制转换数据类型 创建自定义函数来转换数据 使用 pandas 函数,例如 to_numeric...在 sales 列中,数据包括货币符号以及每个值中的逗号;在 Jan Units 列中,最后一个值是“Closed”,它不是数字 我们再来尝试转换 Active 列 df['Active'].astype...但这不是 pandas 中的内置数据类型,所以我们使用 float 方法 现在我们可以使用 pandas 的 apply 函数将其应用于 2016 列中的所有值 df['2016'].apply(convert_currency...Pandas 在 astype() 函数和更复杂的自定义函数之间有一个中间地带,这些辅助函数对于某些数据类型转换非常有用 到目前为止,我们没有对日期列或 Jan Units 列做任何事情。...这两者都可以简单地使用内置的 pandas 函数进行转换,例如 pd.to_numeric() 和 pd.to_datetime() Jan Units 转换存在问题的原因是列中包含非数字值。

    3.2K20

    独家 | 用于数据清理的顶级R包(附资源)

    因为没有它,您将很难看到重要的内容,并可能由于数据重复,数据异常或缺少信息等原因做出错误的决策。 R,作为一种能够应用于统计计算和图形的开源语言,是最常用和最强大的数据编程工具之一。...这是一种快速发现任何潜在数据异常的好方法。 接下来,您可以使用直方图来更好地理解数据的分布。这将可视化显示数据集或您特别希望观察的任何数字列中的任何异常值。...这个函数允许你在R studio中编写SQL代码来选择你的数据元素 Janitor包 该软件包能够通过多个列查找重复项,并轻松地从您的数据框中创建友好列。...它甚至还有一个get_dupes()函数,用于在多行数据中查找重复值。如果您希望以更高级的方式重复数据删除,例如,查找不同的组合或使用模糊逻辑,您可能需要查看重复数据删除工具。...随着新的库一直涌现,在开始任何新项目之前进行研究并获得正确的库是非常重要的。

    1.8K21

    R语言中 apply 函数详解

    因此,在Python和R中都有大量的函数和工具可以帮助我们完成这项任务,这一点也不奇怪。 今天,我们将使用R并学习在R中转换数据时使用最广泛的一组“apply”函数。...这组函数提供了对数据的高效和快速操作。当我们只想处理某些列时,这特别有用。这组函数称为apply()函数。...因此,mapply函数用于对通常不接受多个列表/向量作为参数的数据执行函数。当你要创建新列时,它也很有用。...现在,我们将创建一个新变量,该变量包含V1列和V3列的乘积: mapply(function(x, y) x/y, df$V1, df$V3) ?...我们还可以使用mapply()函数创建一个显示花瓣长度和花瓣宽度之和的新列: iris_df['Sum_Petal'] <- mapply(function(x, y) x+y, iris_df$Petal.Length

    22K40

    R语言第二章数据处理⑤数据框列的转化和计算目录正文

    正文 本篇描述了如何计算R中的数据框并将其添加到数据框中。一般使用dplyr R包中以下R函数: Mutate():计算新变量并将其添加到数据表中。 它保留了现有的变量。...同时还有mutate()和transmutate()的三个变体来一次修改多个列: Mutate_all()/ transmutate_all():将函数应用于数据框中的每个列。...Mutate_at()/ transmutate_at():将函数应用于使用字符向量选择的特定列 Mutate_if()/ transmutate_if():将函数应用于使用返回TRUE的谓词函数选择的列...my_data %>% mutate(sepal_by_petal_l = Sepal.Length/Petal.Length) transmute:通过删除现有变量来创建新变量,删除现有列,添加新列...tbl:一个tbl数据框 funs:由funs()生成的函数调用列表,或函数名称的字符向量,或简称为函数。predicate:要应用于列或逻辑向量的谓词函数。

    5.3K20

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

    ,仅支持一维和二维数据,但数据内部可以是异构数据,仅要求同列数据类型一致即可 numpy的数据结构仅支持数字索引,而pandas数据结构则同时支持数字索引和标签索引 从功能定位上看: numpy虽然也支持字符串等其他数据类型...或字典(用于重命名行标签和列标签) reindex,接收一个新的序列与已有标签列匹配,当原标签列中不存在相应信息时,填充NAN或者可选的填充值 set_index/reset_index,互为逆操作,...ix,可混合使用标签和数字索引,但往往容易混乱,所以现已弃用 05 数据处理 ?...尤为强大的是,除了常用的字符串操作方法,str属性接口中还集成了正则表达式的大部分功能,这使得pandas在处理字符串列时,兼具高效和强力。例如如下代码可用于统计每个句子中单词的个数 ?...apply,既适用于series对象也适用于dataframe对象,但对二者处理的粒度是不一样的:apply应用于series时是逐元素执行函数操作;apply应用于dataframe时是逐行或者逐列执行函数操作

    23.9K32

    Numpy库

    通过这些基础知识和资源,初学者可以逐步掌握NumPy,并应用于实际的科学计算和数据分析任务中。 NumPy中有哪些高级数学函数和统计函数?...NumPy 中可以使用 numpy.linalg.qr () 函数来实现这一分解 。 特征值分解(Eigendecomposition) : 特征值分解是将矩阵分解为其特征值和特征向量的乘积。...Cholesky 分解适用于正定矩阵,将矩阵分解为一个下三角矩阵和其转置的乘积。NumPy 中可以使用 numpy.linalg.cholesky () 函数来实现这一分解 。...在深度学习框架中,NumPy也被广泛应用于神经网络的训练过程中。例如,在训练神经网络时,每轮训练包括前向计算、损失函数(优化目标)和后向传播三个步骤。...通过使用NumPy,可以更高效地实现这些步骤,从而加速整个训练过程。

    3K10

    20个能够有效提高 Pandas数据分析效率的常用函数,附带解释和例子

    本文将介绍20个常用的 Pandas 函数以及具体的示例代码,助力你的数据分析变得更加高效。 ? 首先,我们导入 numpy和 pandas包。...我们也可以使用melt函数的var_name和value_name参数来指定新的列名。 11. Explode 假设数据集在一个观测(行)中包含一个要素的多个条目,但您希望在单独的行中分析它们。...我们要创建一个新列,该列显示“person”列中每个人的得分: df['Person_point'] = df.lookup(df.index, df['Person']) df ? 14....Describe describe函数计算数字列的基本统计信息,这些列包括计数、平均值、标准偏差、最小值和最大值、中值、第一个和第三个四分位数。因此,它提供了dataframe的统计摘要。 ?...例如,如果我们想将每个元素乘以一个数字,我们不需要也不应该使用applymap函数。在这种情况下,简单的矢量化操作(例如df*4)要快得多。 然而,在某些情况下,我们可能无法选择矢量化操作。

    7.3K30

    Python 金融编程第二版(二)

    在这方面最重要的数据结构之一是数组。数组通常以行和列的形式结构化其他(基本)相同数据类型的对象。 暂时假设我们仅使用数字,尽管这个概念也可以推广到其他类型的数据。...② 打开文件以读取二进制数据… ③ …并在b对象中读取五个元素。 ④ 使用类型代码double创建一个新的array对象。 ⑤ 从文件中读取两个元素。 ⑥ 类型代码的差异导致“错误”的数字。...③ 创建新对象。 ④ 新ndarray对象的转置。 在重塑操作期间,ndarray对象中的元素总数保持不变。在调整大小操作期间,此数字会更改,即它要么减少(“向下调整”),要么增加(“向上调整”)。...② 函数f应用于 Python 的float对象。 ③ 同一函数应用于ndarray对象,导致函数的向量化和逐个元素的评估。 NumPy所做的是简单地将函数f逐个元素地应用于对象。...pandas在最近几年已经成为一个强大的工具,不仅提供了强大的类和功能,还很好地封装了来自其他软件包的现有功能。结果是一个用户界面,使得数据分析,特别是金融分析,成为一项便捷和高效的任务。

    92210

    【深度学习基础】预备知识 | 数据操作

    无论使用哪个深度学习框架,它的张量类(在MXNet中为ndarray,在PyTorch和TensorFlow中为Tensor)都与Numpy的ndarray类似。...这个新的张量包含与转换前相同的值,但是它被看成一个3行4列的矩阵。要重点说明一下,虽然张量的形状发生了改变,但其元素值并没有变。注意,通过改变张量的形状,张量的大小不会改变。...有时,我们希望使用全0、全1、其他常量,或者从特定分布中随机采样的数字来初始化矩阵。我们可以创建一个形状为(2,3,4)的张量,其中所有元素都设置为0。...对于将两个数组作为输入的函数,按元素运算将二元运算符应用于两个数组中的每对位置对应的元素。我们可以基于任何从标量到标量的函数来创建按元素函数。   ...为了说明这一点,我们首先创建一个新的矩阵Z,其形状与另一个Y相同,使用zeros_like来分配一个全 0 的块。

    96700

    集 Python、C、R、Ruby 之所长,动态编程语言 Julia 1.0 正式发布

    Julia 程序通过 LLVM 为多个平台编译高效本地代码。 通用:它使用多分派(multiple dispatch)作为范例,使得表达许多面向对象和函数式编程模式变得容易。...Julia 的多分派非常适合定义数字和数组类型的数据类型。 (可选)多样:Julia 具有丰富的描述性数据类型,类型声明可用于阐明和巩固程序。 可组合:Julia 的包可以很好地协同工作。...在 Julia 1.0 中,将广播扩展到自定义类型并在 GPU 和其他矢量化硬件上实现高效优化计算很简单,为将来更高的性能提升铺平了道路。...Julia 的优化器在很多方面远比下面列出来的还要更聪明,但这些亮点仍值得一提。优化器现在可以通过函数调用传播常量,从而允许比以前更好地消除无用代码和静态评估。...现在始终使用与声明相同的语法调用参数类型构造函数,这消除了语言语法中比较模糊且令人困惑的角落。 迭代协议已经完全重新设计,以便更容易实现多种迭代。 作用域规则(scope rule)已经简化。

    1.7K10

    Pandas 秘籍:1~5

    通常,这些新列将从数据集中已有的先前列创建。 Pandas 有几种不同的方法可以向数据帧添加新列。 准备 在此秘籍中,我们通过使用赋值在影片数据集中创建新列,然后使用drop方法删除列。...这在第 3 步中得到确认,在第 3 步中,结果(没有head方法)将返回新的数据列,并且可以根据需要轻松地将其作为列附加到数据帧中。axis等于1/index的其他步骤将返回新的数据行。...您可以使用np.number或字符串number在摘要中包含整数和浮点数。 从技术上讲,数据类型是层次结构的一部分,其中数字位于整数和浮点上方。...这些布尔值通常存储在序列或 NumPy ndarray中,通常是通过将布尔条件应用于数据帧中的一个或多个列来创建的。...该摘要序列用于将第十和九十个百分位存储为它们自己的变量。 步骤 3 使用布尔索引来仅选择分布的高和低十分之一的那些值。 序列和数据帧都具有通过plot方法的直接绘图函数。

    44.3K10

    《DAX进阶指南》-第6章 动态可视化

    绑定数据的两种方式(列和度量值)都需要自己的DAX方法实现。甚至可以将两者结合起来,以创建高度动态的视觉效果。 在本章中,我们将介绍以下主题。 动态度量值。 动态标签和坐标轴。 创建辅助表。...我们可以更进一步,将此选择与类似的方法相结合,以选择销售表中使用的日期。这样,用户可以轻松地在财务视图(发票)、销售视图(订单)和操作视图(交货)之间切换。...图6.8 辅助轴表 在创建此计算表的公式中,定义了三个DAX变量,每个变量创建辅助表的一部分。以下是第一个变量。...在本例中,我们从三个输入表创建一个新表。 ROW("Code", 1)是一个包含一行和一个包含值 1 的 Code 列的表。...再次查看该部分开头的数字,了解视觉对象中DAX度量值的结果。切片器筛选辅助表中的LabelType列,而轴值列用于图表的y轴。 辅助表和DAX度量值已成功实现动态y轴。

    7.4K50

    IT领域常见的加密算法详细解析

    RSA算法不仅用于加密数据,还广泛应用于数字签名,确保信息的完整性和不可否认性。此外,RSA也被用于许多协议中,比如TLS/SSL,用于保护网站之间的通信安全。...散列(哈希)算法 散列算法是单向函数,将任意长度的数据映射为固定长度的输出,通常用于验证数据的完整性和创建数字签名。...SHA-1 SHA-1是SHA算法系列的第一个广泛使用的版本,它产生一个160位(20字节)的散列值。SHA-1曾被广泛应用于多种安全协议,如TLS/SSL和PGP等。...因此,目前不推荐在新的系统设计中使用SHA-1。...定期轮换密钥:定期更换密钥有助于提高系统的整体安全性。 HMAC是一种广泛使用的技术,用于确保数据在传输过程中的完整性和真实性。正确地实现和使用HMAC,可以极大地增强系统的安全性。

    1.1K10

    1.基础知识(1) --Matlab基础知识

    当你使用 MATLAB 时,您可以发出创建变量和调用函数的命令。例如,通过在命令行输入这个语句创建一个名为 a 的变量: a = 1 MATLAB 将变量 a 添加到工作区并在命令窗口中显示结果。...例如,列出 A 的第 1 行和第 2 列的元素: A(1:3,2) ans = 3×1 2 11 7 仅冒号(没有起始值 start 或结束值 end)是指定该维度中的所有元素。...subplot 函数的前两个参数表示每一行和每一列中的图的数量。第三个参数指对应的第几个图处于活动状态,即可编辑的状态。例如,在 figure 窗口内的 2×2 网格中创建四幅图。...注释帮助其他人理解您的代码,并且可以帮助您在以后看到这些代码的时候能快速的回忆起来。在 MATLAB 中使用百分号 (%) 添加注释。 % 创建并绘制一个半径为 r 的球体。...如果要将 monospace 字体应用于文本中的函数名,请点击 Live Editor 选项卡上的 Text 选项中的按钮 M 。

    3.9K20
    领券