例如,举例如果启用级联删除并且从客户表中删除某个顾客,则任何关联的订单行也会被自动删除。 唯一约束 唯一约束用来保证一列(或一组列)中的数据是唯一的。它们类似于主键,但存在以下重要区别。...唯一约束既可以用 UNIQUE 关键字在表定义中定义,也可以用单独的 CONSTRAINT 定义。 检查约束 检查约束用来保证一列(或一组列)中的数据满足一组指定的条件。...❑ 只允许特定的值。例如,在性别字段中只允许 M 或 F。检查约束可以在数据类型内又做了进一步的限制,这些限制极其重要,可以确保插入数据库的数据正是你想要的数据。...找出书中词汇的困难不在于必须进行多少搜索,而在于书的内容没有按词汇排序。如果书的内容像字典一样排序,则索引没有必要(因此字典就没有索引)。数据库索引的作用也一样。...取值不多的数据(如州)不如具有更多可能值的数据(如姓或名),能通过索引得到那么多的好处。 ❑ 索引用于数据过滤和数据排序。如果你经常以某种特定的顺序排序数据,则该数据可能适合做索引。
PostgreSQL与标准SQL密切配合,尽管它还包括其他关系数据库系统中没有的一些功能。 准备 通常,本指南中提供的命令和概念可用于任何运行任何SQL数据库软件的基于Linux的操作系统。...如果您尝试在表中查找特定条目,但不确定该条目是什么,则这些条目很有用。为了说明,让我们说你已经忘记了几个朋友最喜欢的主菜,但你确定这个特别的主菜以“t”开头。...到目前为止,我们经历过的示例包括SQL查询中一些更常用的关键字和子句。这些对于基本查询很有用,但如果您尝试执行计算或根据数据导出标量值(单个值,而不是一组多个不同的值),则它们无用。...子句没有任何其他参数,是一个内部 JOIN子句。...一个LEFT JOIN条款从“左”表,只有右表的匹配记录返回的所有记录。在外连接的上下文中,左表是FROM子句引用的表,右表是JOIN语句后引用的任何其他表。
np.array会尝试为每一个新建的数组推断出适合它的数据类型。 arange是Python内置函数range的数组版。 2、数据类型 dtype是一个用来说明数组的数据类型的对象。...当我们没有为数据指定索引时,Series会自动创建一个0到N-1(N为数据的长度)的整数型索引。可以通过Series的values和index属性获取其数组的值和对应的属性。...也可以在创建Series的时候为值直接创建索引。 b、通过字典的形式来创建Series。 (3)获取Series中的值 通过索引的方式选取Series中的单个或一组值。...(3)获取DataFrame的值(行或列) 通过查找columns值获取对应的列。(下面两种方法) 通过索引字段ix查找相应的行。 (4)对列进行赋值处理。 对某一列可以赋一个标量值也可以是一组值。...相当于Excel中vlookup函数的多条件查找中的多条件。 对于层次化索引对象,选取数据的方式可以通过内层索引,也可以通过外层索引来选取,选取方式和单层索引选取的方式一致。
而在前期,通过关系代数和逻辑方式(关系演算)表示对关系操作的能力,而后出现了 SQL 语言,其吸纳了关系代数的概念,和关系演算的逻辑思想 虽然进行了一定的解释,但是光看图上的这些名词,还是很懵,没关系,...有效、相容 数据模型应该反映和规定本数据模型必须遵守的基本的通用的完整性约束条件,还应该提供定义完整性约束条件的机制,以反映具体应用所涉及的数据必须遵守的特定的语义约束条件 关系的完整性约束 关系模型的完整性约束是关系模型对于存储在数据库中的数据具有的约束能力...,也就是关系的值随着时间变化应该满足的一些约束条件 这些约束条件实际上是现实世界的对关系数据的语义要求。...关系数据库中的任何关系在任何时刻都需要满足这些语义。...这段理解有点麻烦,我也没想到什么好的例子,所以引用了慕课中,中国人民解放军陆军工程大学的一个例子 首先有这么两组关系,一张含有学号、姓名、课程属性,另一组的属性就只有课程 ?
持久性也称永久性(permanence),指一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。接下来的其他操作或故障不应该对其有任何影响。...commit操作,数据其实都没有真正刷新到硬盘 commit 开启事务检测操作是否完整,不完整主动回滚到上一个状态,如果完整就应该执行commit操作 存储过程 一组可编程的函数,是为了完成特定功能的SQL...存储过程优点 对于一些复用性高或者业务复杂的一些操作,封装到一个存储过程中,避免了重复编写SQL造成漏写或错写操作,简化了SQL的调用 批量处理:SQL + 循环,减少流量 数据迁移,数据备份 统一接口...,它可以指定按某列/某几列预先排序,从而大大提高查询速度(类似于汉语词典中按照拼音或者笔画查找)。...就需要给其他字段建立索引,这些索引就叫辅助索引 **特点:**叶子结点存放的是辅助索引字段对应的那条记录的主键的值(比如:按照name字段创建索引,那么叶子节点存放的是:{name对应的值:name所在的那条记录的主键值
在本指南中,给出的示例数据值都包含在撇号(')中。在SQL中,必须在撇号中包装由字符串组成的任何数据值。数字数据不需要这样做,但如果包含撇号,也不会导致任何问题。...如果您尝试在表中查找特定条目,但不确定该条目是什么,则这些条目很有用。...COUNT(column) FROM table WHERE column=value; 查找列中的平均值 AVG函数用于查找特定列中保留的值的平均值(在本例中为平均值)。...INNER JOIN将返回两个表中具有匹配值的所有记录,但不会显示任何没有匹配值的记录。 通过使用外部 JOIN子句,可以从两个表中的一个表中返回所有记录,包括在另一个表中没有相应匹配的值。...一个LEFT JOIN条款从“左”表,只有匹配的记录从“右”表返回所有记录。在外部JOIN子句的上下文中,左表是FROM子句中引用的表,右表是JOIN语句后引用的任何其他表。
为了处理像本例中的查询,你可能在 fact_sales.date_key、fact_sales.product_sk 上有索引,它们告诉存储引擎在哪里查找特定日期或特定产品的所有销售情况。...这将有助于需要在特定日期范围内按产品对销售进行分组或过滤的查询。 按顺序排序的另一个好处是它可以帮助压缩列。如果主要排序列没有太多个不同的值,那么在排序之后,将会得到一个相同的值连续重复多次的序列。...但最大的区别在于面向行的存储将每一行保存在一个地方(在堆文件或聚集索引中),次级索引只包含指向匹配行的指针。在列式存储中,通常在其他地方没有任何指向数据的指针,只有包含值的列。...当读取数据时,LSM树会先从内存表中查找,如果内存表中没有找到数据,就会从磁盘表中查找。由于每一层结构都是有序的,所以在查找数据时可以利用这个特点进行优化,比如可以使用二分查找等算法。...要想象一个五维超立方体是什么样子是很困难的,但是原理是一样的:每个单元格都包含特定日期 - 产品 - 商店 - 促销 - 客户组合的销售额。这些值可以在每个维度上求和汇总。
什么是SQL注入SQL注入是一种针对数据库的攻击技术,攻击者通过在应用程序的输入字段中插入或“注入”恶意的SQL代码,从而在数据库服务器上执行非授权的SQL查询。...绕过过滤:如果应用程序有过滤机制,攻击者会尝试绕过这些过滤,使得恶意SQL语句能够成功执行。...注意事项避免使用${}:尽可能避免使用${},除非你确定输入是安全的或者没有其他选择。验证和清理输入:即使使用#{},也应该对用户输入进行验证和清理,确保它符合预期的格式。...注意事项:存储过程应该在数据库中具有最少的权限,以限制攻击者利用存储过程执行非授权操作的能力。白名单输入验证实施方法:定义一组允许的输入值或模式,并确保用户输入与这些值或模式匹配。...示例:如果应用程序只需要读取特定表的数据,那么数据库账户应该只有读取该表的权限。其他措施错误处理:确保应用程序不会泄露数据库错误信息给用户,这可能会给攻击者提供有关数据库结构的信息。
所以转战其他页面寻找注入点,在之前的预览中,三个热点貌似都没有什么需要提交的表单,因此 F12 看看后台的请求。...图片 接下来判断回显位,即测试有几列数据可以回显至浏览器中,构造 payload 如下: id=-1 union select 1,2--+ 其中 id 赋值为 -1是为了使当前查询语句前半句查找失败...当然,后面的数字序列可以为任意数字,因为该查询语句并没有向任何数据块查询,而是直接返回后方的数字序列。因此我们可以利用此来判断几列数据可用于回显。...接下来就可以正式查找数据库中藏着的用户名与密码了!...勿喷,下面我就会知道根本不用查询这些数据库,因为完全没用…… 理论上接下来查询这三个数据库中的数据即可,首先查询 ctftraining 数据库中又哪些表,构造 payload 如下: id=-1 union
同时,博主也想通过此次尝试打造一个完善的技术图书馆,任何与文章技术点有关的异常、错误、注意事项均会在末尾列出,欢迎大家通过各种方式提供素材。 对于文章中出现的任何错误请大家批评指出,一定及时修改。...部分列查询 部分列查询指的是只需要显示表中的某几列,此时需要罗列出每个列的名称,用逗号隔开,所声明的列的名称必须与表中已经定义的列名相同。...空值判断 在数据库中存在一个特殊的数据类型,用于标记未存入任何数据,用NULL表示。需要注意的是空字符串并不等同于NULL。...查询多列 如果查询的列有多个,将会显示这两个列的唯一组合,也就是说如果单独看某一列数据,很有可能会有重复数据,但这些列的数据的组合一定是唯一的。...多值匹配 如果想要表达某个值可能是一组值中的一个,这样的逻辑,可以使用关键字IN。在IN之后使用一对括号,其中罗列多个值,如果列中的数据在这些值中出现,则代表匹配。
比如说,在人员管理系统中,你删除一个人员,你即需要删除人员的基本资料,也要删除和该人员相关的信息,如信箱,文章等等,这样,这些数据库操作语句就构成一个事务!...一个事务是一个连续的一组数据库操作,就好像它是一个单一的工作单元进行。换言之,永远不会是完整的事务,除非该组内的每个单独的操作是成功的。如果在事务的任何操作失败,则整个事务将失败。...如果AUTOCOMMIT设置为1(默认值),然后每一个SQL语句(在事务与否)被认为是一个完整的事务,并承诺在默认情况下,当它完成。...排他锁:如果事务T对数据A加上排他锁后,则其他事务不能再对A加任任何类型的封锁。获准排他锁的事务既能读数据,又能修改数据。...幻读(Phantom Read):在一个事务的两次查询中数据笔数不一致,例如有一个事务查询了几列(Row)数据,而另一个事务却在此时插入了新的几列数据,先前的事务在接下来的查询中,就会发现有几列数据是它先前所没有的
当有多张表时,如何将一个excel表格的数据匹配到另一个表中?这时候就需要使用vlookup函数。它可以按条件查找出数据。...如果查收的姓名只有1个,我们当然可以按照前面的步骤手动查找来操作,但是当这样查找的姓名有几万个的时候,那这种手动查找是效率很低的。...image.png 第3个参数是:第几列。表示要查找的值在前面选定的查找范围里第几列。 因为我们要返回的是表2中的班级信息,这在选定的查找范围里是第4列。...vlookup的弱点是:当有多个查找值满足条件时,只会返回从上往下找到的第一个值。比如我们前面的例子中查找2个姓名是猴子的学生,只返回查到的第一个值。那么遇到这种重复值,怎么办呢?...第1步,我们在表的右边建立一个分组定义。确定3组消费类型各自的区间范围,将每一组区间范围的最小值作为阈值。
当有多张表时,如何将一个excel表格的数据匹配到另一个表中?这时候就需要使用vlookup函数。它可以按条件查找出数据。...如果查收的姓名只有1个,我们当然可以按照前面的步骤手动查找来操作,但是当这样查找的姓名有几万个的时候,那这种手动查找是效率很低的。...我们返回到第2张表里,选中全部数据。 这里需要特别注意的是,选中的查找范围里第一列的值必须是要查找的值,不然会报错。比如这个案例里选中范围里第一列是姓名,是要查找值的列。 第3个参数是:第几列。...表示要查找的值在前面选定的查找范围里第几列。 因为我们要返回的是表2中的班级信息,这在选定的查找范围里是第4列。这里所的查找范围是前面参数2选定的范围,从选中查找范围的姓名那一列开始算起。...第1步,我们在表的右边建立一个分组定义。确定3组消费类型各自的区间范围,将每一组区间范围的最小值作为阈值。
它对数据库中数据的改变是持久的,即使数据库发生故障也不应该对其有任何影响。 什么是脏读?幻读?不可重复读?...幻读(Phantom Read):在一个事务的两次查询中数据笔数不一致,例如有一个事务查询了几列(Row)数据,而另一个事务却在此时插入了新的几列数据,先前的事务在接下来的查询中,就会发现有几列数据是它先前所没有的...就像酒店的房间,如果大家随意进出,就会出现多人抢夺同一个房间的情况,而在房间上装上锁,申请到钥匙的人才可以入住并且将房间锁起来,其他人只有等他使用完毕才可以再次使用。...视图使开发者只关心感兴趣的某些特定数据和所负责的特定任务,只能看到视图中所定义的数据,而不是视图所引用表中的数据,从而提高了数据库中数据的安全性。 视图有哪些特点?...一个数据列只能有一个主键,且主键的取值不能缺失,即不能为空值(Null)。 外键:在一个表中存在的另一个表的主键称此表的外键。 SQL 约束有哪几种?
它对数据库中数据的改变是持久的,即使数据库发生故障也不应该对其有任何影响。 什么是脏读?幻读?不可重复读?...幻读(Phantom Read):在一个事务的两次查询中数据笔数不一致,例如有一个事务查询了几列(Row)数据,而另一个事务却在此时插入了新的几列数据,先前的事务在接下来的查询中,就会发现有几列数据是它先前所没有的...就像酒店的房间,如果大家随意进出,就会出现多人抢夺同一个房间的情况,而在房间上装上锁,申请到钥匙的人才可以入住并且将房间锁起来,其他人只有等他使用完毕才可以再次使用。...视图使开发者只关心感兴趣的某些特定数据和所负责的特定任务,只能看到视图中所定义的数据,而不是视图所引用表中的数据,从而提高了数据库中数据的安全性。 视图有哪些特点?...FOREIGN KEY: 用于预防破坏表之间连接的动作,也能防止非法数据插入外键列,因为它必须是它指向的那个表中的值之一。 CHECK: 用于控制字段的值范围
连接表时的SQL的工作原理 SQL 连接子句类似于关系代数中的连接操作。它将关系数据库中一个或多个表中的列组合起来,创建一组可以保存为表或按原样使用的集合。...主键 主键是表中的一列(有时是一组列),是每行的唯一标识符。数据库通常有一个名为 id 的列(customerID、emailID、EmployeeID)作为每个表的主键。...如果可能,内联接将组合公共维度(前 N 列)上的列,并且仅包含公共 N 列中共享相同值的列的数据。在上面的示例中,User_ID 将是用于内连接的公共维度。...现在,如果您想要一个包含所有用户数据并且仅包含这些用户已执行的操作的表,该怎么办?不在用户表中的其他用户执行的操作不应包含在内? 您可以使用左连接将表连接在一起。...如果可能,左连接会组合公共维度上的列(前 N 列),返回第一个表中的所有行以及连续表中的匹配行。当没有匹配时,连续表中的结果为 NULL。
1.是一种用于执行SQL语句的Java API 2.它由一组用Java语言编写的类和接口组成 3.JDBC提供了一种操作数据的标准 4.JDBC的目标是使Java程序员使用JDBC可以连接任何提供了JDBC...DML、查询操作 执行DML操作和执行DDL操作是一样,只有sql语句发生了变量 结果集 ResultSet:表示数据库查询的结果的集合,在执行查询语句时就会得到一个这样的结果 常用方法 boolean...next():判断是否有下一行数据,若有,则向下移动一行指针. getXxx(int columnIndex):获取当前行中,第几列....(从1开始):不推荐 getXxx(String columnName):获取当前行中的,指定列名的列的值.columnName是列名/列的别名 若列的类型是VARCHAR/CHAR/TEXT,都使用getString...来获取列的值.
而在SQL中,需要执行的语句是select * from t_order;表示从t_order表中查询全部的数据,*号表示查询所有的字段。结果如下:(点击图片可以查看大图) ?...2.查询特定列的数据 有的时候我们只想查看某几列的数据。在pandas里可以使用中括号或者loc,iloc等多种方式进行列选择,可以选择一列或多列。...3.查询特定列去重后的数据 例如我们想查看一共有多少人(去重过的)下过单。pandas里有unique方法,SQL里有distinct关键字。如下面图左侧代码所示。...具体代码如下所示,由于我们的数据没有空值,所以体现不出左连接的特点,感兴趣的读者可以自己尝试下。(点击图片可以查看大图) ?...10.case when 操作 相比于其他操作,case when 操作可能不是那么“通用”。它更常见于SQL场景中,可能会用于分组,可能会用于赋值,也可能用于其他场景。
简单查询中没有意义,因为在这种类型的嵌入式SQL中,SELECT始终只返回一行数据。...此优化利用选定字段的索引。因此,只有在一个或多个选定字段存在索引时才有意义。它对存储在索引中的字段值进行排序;字母字符串以全部大写字母返回。...DISTINCT的其他用法 流字段:DISTINCT对流字段的OID进行操作,而不是对其实际数据进行操作。因为所有流字段OID都是唯一值,所以DISTINCT对实际流字段重复数据值没有影响。...不同于(*)的语法不合法。 子查询:在子查询中使用DISTINCT子句是合法的,但没有意义,因为子查询返回单个值。 未选择行数据:DISTINCT子句可以与不访问任何表数据的SELECT一起使用。...请注意,MAX和MIN聚合函数分析DISTINCT子句语法没有错误,但此语法不执行任何操作。
领取专属 10元无门槛券
手把手带您无忧上云