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

【呕心总结】python如何与mysql实现交互及常用sql语句

# 插入一行数据;该数据与表格已有数据不重复才插入,否则就不会插入 sql_insert = 'INSERT INTO `topic_monitor`(question_id,is_title...在最初一个月的实践,最常出现的错误有: 的引用没有加上引号; 符号错乱:多一个符号,少一个符号; 的类型不符合:不管 mysql 表格是数,还是文本,在定义 sql 语句的字符串,对每个都需要转化为字符串...二、sql语句:搜索查询 搜索是指在数据库的某个表格查询符合特定条件的数据,并返回查询结果。...返回符合条件的数据个数: SELECT count(*) FROM table_name ; ? 变量B:条件是指,期望返回的数据满足哪些条件。...三、sql语句:修改表属性 横向的一整条数据,叫做行;竖向的一整条数据,叫作的名字,叫做 column,这是通用的知识点。 这段时间的实战完全没有用到修改表的名称、重设index等知识点。

2.9K20

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

自然毫无悬念 dataframe:无法访问单个元素,只能返回、多或多行:单或多值(多个列名组成的列表)访问进行查询,单访问不存在列名歧义还可直接用属性符号" ....切片形式访问按行进行查询,又区分数字切片和标签切片两种情况:输入数字索引切片时,类似于普通列表切片;输入标签切片时,执行范围查询(即无需切片首末存在于标签),包含两端标签结果,无匹配行时返回为空...isin/notin,条件范围查询,即根据特定是否存在于指定列表返回相应的结果 where,仍然是执行条件查询,但会返回全部结果,只是将不满足匹配条件的结果赋值为NaN或其他指定,可用于筛选或屏蔽...如下实现对数据表逐元素求平方 ? 广播机制,即维度或形状不匹配,会按一定条件广播后计算。...,要求每个df内部列名是唯一的,但两个df间可以重复,毕竟有相同才有拼接的实际意义) merge,完全类似于SQL的join语法,支持横向拼接,通过设置连接字段,实现对同一记录的不同信息连接,支持

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

sql基础之多表查询?嵌套查询?

连接表SQL的工作原理 SQL 连接子句类似于关系代数的连接操作。它将关系数据库中一个或多个表组合起来,创建一组可以保存为表或按原样使用的集合。...外键 外键是表,指定到另一个表主键的链接。例如,在上图中,albums 表的artist_id 是artists 表id 的外键。...如果可能,内联接将组合公共维度(前 N )上的,并且包含公共 N 中共享相同的数据。在上面的示例,User_ID 将是用于内连接的公共维度。...如果可能,左连接会组合公共维度上的(前 N ),返回第一个表的所有行以及连续表的匹配行。没有匹配,连续表的结果为 NULL。...在左连接,表 1(左表)被视为基础,而在右连接,表 2(右表)将被视为基础。右连接尽可能组合公共维度上的(前 N ),返回第二个/右表的所有行以及第一个/左表的匹配行。

17910

必知必会——关于SQL的NOT IN优化

在开始之前,我们需要记住另外两个SQL细节: WHERE针对行测试条件,并且当此条件为TRUE才让行通过(拒绝FALSE和UNKNOWN)。...例如,有些人震惊看到IN和NOT IN都错过了A房屋,就像A不在两组(“coal”, “wood”和另一组)中一样;似乎是看不见的,有点像幽灵…… 问题的关键是当我设计房屋表的意思是NULL为“...只需要用SQL更好地表达想要的内容即可。 可以将NOT IN更改为IN NOT TRUE: ? 这将让IN返回FALSE或UNKNOWN的房屋通过;因此,A和B会如我所愿通过。...>没有结果。 再次缺少A。同样,解决方案是: ? 现在得到A。将其重写为IN IS NOT TRUE效果很好。 可以改写为NOT EXISTS,但这是需要更多的编辑工作: ? 这也返回A。...NOT IN的任何一侧是可为空的(此处是我们的情况), SELECT … WHERE heating NOT IN (SELECT name …) 不能转换为反联接(MySQL 8.0.17的新功能

4.4K40

这是见过最有用的Mysql面试题,面试了无数公司总结的(内附答案)

索引有三种类型 1.唯一索引:唯一索引通过确保表没有两行数据具有相同的键值来帮助维护数据完整性。定义主键,可以自动应用唯一索引。它确保索引键是唯一的。...内部联接:正在比较的两个(或多个)表之间至少有一些匹配数据,内部联接将返回行。 外部联接:外部联接从两个表返回行,这些行包括与一个或两个表不匹配的记录。 36.什么是SQL约束?...如果在插入记录未提供任何,则DEFAULT约束用于在包括默认。 51.什么是标准化? 规范化是表设计的过程,以最大程度减少数据冗余。 53.什么是非正规化?...在SQL Server,数据库表的每一都有一个名称和一种数据类型。 在创建SQL,我们需要决定在表的每一存储哪种数据类型。 57.可以在BOOLEAN数据字段存储哪些可能的?...SQL的聚合函数是什么? SQL聚合函数返回单个,该是根据计算得出的。

27K20

T-SQL进阶:超越基础 Level 2:编写子查询

许多子查询返回单个,因为它们与比较运算符(=,!=,,> =)或表达式结合使用。子查询不用作表达式或使用比较运算符,它可以返回多个。...子查询的另一个特点是可以独立于外部查询运行,并且将无错误运行,并且可能返回一组行或空行集。 子查询的另一种形式是相关子查询。但是相关的子查询不能独立于外部的Transact SQL语句运行。...返回多个的子查询的示例 迄今为止的所有示例都包含仅在单个返回单个的子查询。 并不是所有的子查询都有这个要求。 接下来的几个例子将使用返回多个和/或多个的子查询。...使用具有IN关键字的子查询的示例 您可以编写一个返回的多个的子查询的地方是您的子查询生成与IN关键字一起使用的记录集。 清单9的代码演示了如何使用子查询将传递给IN关键字。...当用作表达式或在比较操作,子查询需要返回一个子查询与IN关键字一起使用时,它可以返回的单个或多个。如果在FROM子句中使用子查询,它只能返回和一个,但也可以返回多个

6K10

SQL 数据操作技巧:SELECT INTO、INSERT INTO SELECT 和 CASE 语句详解

INSERT INTO SELECT 语法 将一个表的所有复制到另一个表: INSERT INTO table2 SELECT * FROM table1 WHERE condition; 将一个表的某些复制到另一个表...CASE 表达式 SQL CASE 表达式遍历条件并在满足第一个条件返回一个(类似于 if-then-else 语句)。...因此,一旦条件为真,它将停止阅读并返回结果。如果没有条件为真,它将返回 ELSE 子句中的。 如果没有 ELSE 部分并且没有条件为真,它将返回 NULL。...1 10248 11 12 2 10248 42 10 3 10248 72 5 4 10249 14 9 5 10249 51 40 SQL CASE 示例 以下 SQL 遍历条件并在满足第一个条件返回一个...Server SQL Server 的 ISNULL() 函数允许您在表达式为 NULL 返回替代: SELECT ProductName, UnitPrice * (UnitsInStock +

35810

SQL优化篇:如何成为一位写优质SQL语句的绝顶高手!

,这时编写SQL就会出现“卡壳”情况,包括在内也不例外,日常开发也会遇到这类情况。...因为有些情况下,一个查询条件会依赖于另一SQL的执行结果来决定,很多人在这种情况下会直接组合起来一起写,但这会导致编写SQL的复杂度再次提升,因此在这种情况下,可以先用指定作为条件去查询,例如xx...使用*,查询每条数据会返回所有字段,然后这些查询出的数据会先被放到结果集中,最终查询完成后会统一返回给客户端,但线上Java程序和MySQL都是分机器部署的,所以返回数据需要经过网络传输,而由于返回的是所有字段数据...Mediumint通常比int好,因为Mediumint使用的空间少25%。 ②如果可能的话,声明该不为空。它可以通过更好使用索引和消除测试每个是否为空的开销而使SQL操作更快。...MySQL从行检索任何,它读取一个包含该行所有(可能还有其他相邻行)的数据块。保持每一行的大小并只包含最常用的,使每个数据块可以容纳更多的行。

53540

MySQL 查询专题

也可能会使用完全限定的名字来引用。 WHERE 过滤数据 MySQL可根据需要使用很多条件操作符和操作符的组合。为了检查某个范围的,可使用BETWEEN操作符。 注意:是!=还是?!...NULL 与不匹配 在通过过滤选择出不具有特定的行时,你可能希望返回具有 NULL 的行。但是,不行。因为未知具有特殊的含义,数据库不知道它们是否匹配,所以在匹配过滤或不匹配过滤返回它们。...因此,在过滤数据,一定要验证返回数据确实给出了被过滤具有 NULL 的行。 计算次序 WHERE 可包含任意数目的 AND 和 OR 操作符。允许两者结合以进行复杂和高级的过滤。...❑ 如果分组包含具有 NULL 的行,则 NULL 将作为一个分组返回。如果中有多行NULL,它们将分为一组。...下标从 0 开始,根据不出现在 SELECT 清单进行排序时,不能采用这项技术 如果想在多个列上进行降序排序,必须对每一指定 DESC 关键字。

5K30

mysql数据库关键字及用法_mysql唯一索引关键字

利用mysql explain来对sql语句进行优化,你需要懂这些关键字各表示的含义,这样优化才有的放矢。...ref_or_null:类似于ref,但是查询语句的连接条件或者查询条件包含的列有NULL,MySQL会进行额外查询,经常被用于解析子查询。...range:查询语句的查询条件为某个范围的记录,type的取值为range。key会显示使用的索引,key_len显示使用索引的最长键长。...(8)key_len:执行查询语句实际用到的索引按照字节计算的长度,可以通过此字段计算MySQL实际上使用了复合索引的多少字段。如果key为NULL,则key_len也为NULL。...(9)ref:数据表的哪个或者哪个常量用来和key的索引做比较来检索数据。如果此列的为func,则说明使用了某些函数的结果数据与key的索引做比较来检索数据。

1.8K70

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

非关系数据库管理系统:没有关系,元组和属性的概念。示例– Mongo Q4。SQL的表和字段是什么意思? 表是指以行和的形式组织的数据集合。字段是指表数。...左连接: MySQL的左连接用于返回左表的所有行,但返回右表满足连接条件的匹配行。 右连接: MySQL的右连接用于返回右表的所有行,但返回满足连接条件的左表的匹配行。...完全联接: 任何表中都存在匹配项,完全联接将返回所有记录。因此,它将返回左侧表的所有行和右侧表的所有行。 Q16。您所说的非规范化是什么意思?...第一范式(1NF) –行内没有重复的组 第二范式(2NF) –每个非键(支持)都取决于整个主键。 第三范式(3NF) –取决于主键,而没有其他非键(支持)。 Q23。...插入数据如何在插入NULL? 可以通过以下方式插入NULL: 隐式通过从列表中省略。 通过在VALUES子句中指定NULL关键字来显式 Q36。”

6.4K22

Oracle数据库学习

在students表,通过class_id的字段,可以把数据与另一张表关联起来,这种称为外键。...反过来,如果记录的存在大量相同的,例如gender,大约一半的记录是M,另一半是F,因此,对该创建索引就没有意义。 可以对一张表创建多个索引。...如果我们只希望返回某些的数据,而不是所有的数据,我们可以用SELECT 1, 2, 3 FROM ...,让结果集包含指定。这种操作称为投影查询。...1, 2, 3则可以返回指定,这种操作称为投影。...步骤: 2、显式游标属性 %FOUND 布尔属性,最近一次读记录成功返回,则返回TURE %NOTFOUND 布尔属性,与%FOUND相反 %ISOPEN 布尔属性,游标已打开返回TURE

1.8K40

SQL 简易教程

确保某(或两个多个的结合)有唯一标识,有助于更容易更快速找到表的一个特定的记录。 FOREIGN KEY - 保证一个表的数据匹配另一个表的参照完整性。...CHECK - 保证符合指定的条件。 DEFAULT - 规定没有赋值的默认。 NOT NULL 约束 强制不接受 NULL 。 建表的时候指定 NOT NULL ......SQL CHECK 约束 ALTER TABLE SQL CHECK 约束 表已被创建,如需在 "alexa" 创建 CHECK 约束,请使用下面的 SQL: MySQL / SQL Server...如需撤销 DEFAULT 约束,请使用下面的 SQL ALTER TABLE SQL DEFAULT 约束 表已被创建,如需在 "City" 创建 DEFAULT 约束,请使用下面的 SQL...默认,表的可以存放 NULL 。 如果表的某个是可选的,那么我们可以在不向该添加值的情况下插入新记录或更新已有的记录。这意味着该字段将以 NULL 保存。

2.8K10

sql学习

SQL,可使用以下通配符: 通配符 描述 % 替代一个或多个字符 _ 代替一个字符 [charlist} 字符的任何单一字符 [^charlist]或者[!...SQL INNER JOIN关键字 在表至少有一个匹配,INNER JOIN关键字返回行。 SQL LEFT JOIN关键字 LEFT JOIN会从左表那里返回所有行,即使在右表没有匹配的行。...FOREIGN KEY约束 一个表的FOREIGN KEY指向另一个表的PRIMARY KEY CHECK 限制的范围。...DEFAULT 用于向插入默认,如果没有规定其他的,就添加默认SQL CREATE INDEX语句 用于在表创建索引,在不读取整个表的情况下,使用索引可以更快的查找数据。...MAX()和MIN() 返回的最大和最小,NULL不包括在计算,可以用于文本,获得按照字母顺序排列的最高或最低。 SUM()函数 返回数值的总数。

4.6K30

数据库查询优化

8.4 EXISTS和IN的使用: 在许多基于基础表的查询,为了满足一个条件,往往需要对另一个表进行联接。   在这种情况下,使用EXISTS(或NOT EXISTS)通常将提高查询的效率。...因为空不存在于索引,所以WHERE子句中对索引进行空比较将使SQLSERVER停用该索引。...另一方面,在应用程序里,从视图选择数据没有好的理由,相反,绕过视图直接从需要的表里获取数据。原因是许多视图(当然不是全部)返回比SELECT语句所需更多的数据,增加不必要的开销。...既然你需要7,而不是视图返回的10,更多不必要的数据被返回。浪费SQLServer的资源。...每次执行SQL,都会执行解析SQL语句、估算索引的利用率、绑定变量、读数据块等等工作。 * 存储过程执行计划能够重用,驻留在SQLServer内存的缓存里,减少服务器开销。

4.3K20

MySQL的优化利器⭐️索引条件下推,千万数据下性能提升273%🚀

,并且以索引、主键值的先后顺序有序二级索引为(age,student_name)联合索引整体上age有序,age相等,student_name有序,student_name相等,主键有序发生多条件查询...二级索引只存储需要的和主键,聚簇(主键)索引存储所有数据由于我们使用的索引没有存储查询列表需要的,于是需要去聚簇(主键)索引再次查询获取其他在这个过程主键值可能是乱序的,因此回表查询聚簇索引...,会出现随机IO(开销大)server层与存储引擎层交互的单位是记录server层优化器根据索引生成执行计划,执行器调用存储引擎层存储引擎层在联合索引寻找满足 age=18的记录每次找到记录回表查询聚簇索引获取其他然后返回给...,根据索引上现有判断其他查询条件,不满足则跳过该记录满足则回表查询聚簇索引其他获取需要查询的后,返回server层进行where过滤2-5步骤为循环执行,直到找到第一条不满足条件的记录测试开启函数创建...,并以索引、主键进行排序,有多个索引,前一个索引相等当前索引才有序;聚簇索引存储整条记录的,并以主键有序使用二级索引并且二级索引上的不满足查询条件,需要回表查询聚簇索引获取其他

27521

SQL 语法速成手册

查询 - 基于特定条件检索数据。这是 SQL 的一个重要组成部分。 语句 - 可以持久影响纲要和数据,也可以控制数据库事务、程序流程、连接、会话或诊断。...内连接 vs 自然连接 内连接提供连接的,而自然连接自动连接所有同名列。 外连接返回一个表的所有行,并且返回来自次表满足连接条件的那些行,即两个表是相等的。...确保某(或两个多个的结合)有唯一标识,有助于更容易更快速找到表的一个特定的记录。 FOREIGN KEY - 保证一个表的数据匹配另一个表的参照完整性。...CHECK - 保证符合指定的条件。 DEFAULT - 规定没有赋值的默认。...BEGIN 和 END 触发器的触发条件满足,将会执行 BEGIN 和 END 之间的触发器执行动作。 ?

17.1K40

SQL 优化必懂知识点

2,说明 gender 里面有大量重复,phone 的基数等于总行数,说明 phone 没有重复,相当于主键。...查询结果返回 30% 内的数据,应该走索引(表数据量小,其实 phone 的等值查询也是);查询结果返回的是超过表 30% 数据,基本会走全表扫描。...在进行 SQL 优化的时候,单独看的基数是没有任何意义的,基数相对于总行数才有实际意义,正是这个原因,我们才引出选择性这个概念。 请思考,什么样的必须建立索引?...有人说基数高的,有人说在 where 条件。这些答案并不完美。基数高究竟多高?没有和总行数对比,始终不知道有多高。比如一个的基数是几万行,但是总数是十几亿行,那么这个的基数还高?...一个列出现在 where 条件,该没有创建索引并且选择性大于 20% ,那么该必须创建索引,从而提升 SQL 查询性能。当然了,如果表只有几百条数据,那我们就不用创建索引了。

67020

SQL 语法速成手册

查询 - 基于特定条件检索数据。这是 SQL 的一个重要组成部分。 语句 - 可以持久影响纲要和数据,也可以控制数据库事务、程序流程、连接、会话或诊断。...内连接 vs 自然连接 内连接提供连接的,而自然连接自动连接所有同名列。 外连接返回一个表的所有行,并且返回来自次表满足连接条件的那些行,即两个表是相等的。...确保某(或两个多个的结合)有唯一标识,有助于更容易更快速找到表的一个特定的记录。 FOREIGN KEY - 保证一个表的数据匹配另一个表的参照完整性。...CHECK - 保证符合指定的条件。 DEFAULT - 规定没有赋值的默认。...BEGIN 和 END 触发器的触发条件满足,将会执行 BEGIN 和 END 之间的触发器执行动作。 ?

16.8K20

SQL 性能调优

如果你没有COMMIT事务,ORACLE会将数据恢复到删除之前的状态(准确说是恢复到执行删除命令之前的状况) 而运用TRUNCATE, 回滚段不再存放任何可被恢复的信息.命令运行后,数据不能被恢复...这也是一条简单而重要的规则,引用索引的第二个,优化器使用了全表扫描而忽略了索引 回到顶部 (28) 用UNION-ALL 替换UNION ( 如果有可能的话) SQL 语句需要UNION两个查询结果集合时...比较不同数据类型的数据, ORACLE自动对进行简单的类型转换....对应所有行,返回的永远只有一个,即常量 。所以正常只会用来判断是否有还是没有(比如exists子句)。而select * from ... 是返回所有行的所有。...select count(*)返回所有满足条件的记录数,此时同select sum(1) 但是sum()可以传任意数字,负数、浮点数都可以,返回是传入n*满足条件记录数m 回到顶部 (36) IS

3.2K10
领券