数据库中有A B C三列,用SQL语句实现:当A列大于B列时选择A列否则选择B列,当B列大于C列时选择B列否则选择C列。
结论: binlog2sql对 int类型、char/varchar类型、text 类型 支持完善。 binlog2sql对bit类型支持不太好,后期需要修数据。...binlog2sql对json类型支持的不完善,导出的数据基本上无法使用。...样例: binlog2sql对 int类型、char/varchar类型、text 类型 支持完善,如下案例: CREATE TABLE `sbt_t1` ( `id` int NOT...rows in set (0.00 sec) [root@mxali0027 mysqlBak]# python3.6 binlog2sql-master/binlog2sql/binlog2sql.py...`e`=34 WHERE `id`=3 AND `b`='00' AND `c`='仅供测试' AND `d`='OnlyForTest' AND `e`=123 LIMIT 1; binlog2sql
=False) # 查看Series对象的唯一值和计数 df.apply(pd.Series.value_counts) # 查看DataFrame对象中每一列的唯一值和计数 df.isnull().any...].isin(value_list)] # 选取col_name1等于value1,并且col_name2在value_list中的数据 df.loc[df[‘col_name’] !...= value2] # 选取col_name字段不等于value2的数据 数据清理 df.columns = ['a','b','c'] # 重命名列名(需要将所有列名列出,否则会报错) pd.isnull...() # 检查DataFrame对象中的空值,并返回一个Boolean数组 pd.notnull() # 检查DataFrame对象中的非空值,并返回一个Boolean数组 df.dropna() #...),on=col1,how='inner') # 对df1的列和df2的列执行SQL形式的join,默认按照索引来进行合并,如果df1和df2有共同字段时,会报错,可通过设置lsuffix,rsuffix
SQL语言是每个开发人员必备的一种技能,本文对面试过程中常见的SQL面试题进行分类、汇总,每类题型包括一些例题,希望大家能够举一反三。 01 Case When 是什么?...Mysql数据库中CASE WHEN语句,是用于计算条件列表并返回多个可能结果表达式之一。...有一个表table1(A,B,C),用SQL语句选出两个列,第一列是A、B两列的较大者,第二列是B、C两列的较小者。...有一张表table2(语文成绩、数学成绩、英语成绩),请用一条sql语句按以下显示条件得出结果: 显示条件:大于或等于80显示为优秀,大于或等于60表示及格,小于60分表示不及格。...有如下人口统计数据,要求按照国家和性别进行分组,得出结果如下: ? ?
(data) data[1:5:2,1:5:2] 【例】请使用Python对如下的二维数组进行提取,选择第一行第二列的数据元素并输出。...类似于sql中的on用法。可以不指定,默认以2表中共同字段进行关联。 left_on和right_on:两个表里没有完全一致的列名,但是有信息一致的列,需要指定以哪个表中的字段作为主键。...98是否大于100 2)25*4是否于等于76 56.8是否等于56.8 35是否等于35.0 False是否小于True 关键技术:可以利用Python的比较运算符、==进行判断,程序代码如下所示...非空值计数 【例】对于存储在该Python文件同目录下的某电商平台销售数据product_sales.csv,形式如下所示,请利用Python对数据读取,并计算数据集每列非空值个数情况。...【例】对于例48给定的DataFrame数据,统计数据的算数平均值并输出结果。
http:// df.info() :查看索引、数据类型和内存信息 df.describe():查看数值型列的汇总统计 s.value_counts(dropna=False):查看Series对象的唯一值和计数...df.apply(pd.Series.value_counts):查看DataFrame对象中每一列的唯一值和计数 数据选取 df[col]:根据列名,并以Series的形式返回列 df[[col1,...[df[col] > 0.5]:选择col列的值大于0.5的行 df.sort_values(col1):按照列col1排序数据,默认升序排列 df.sort_values(col2, ascending...col1进行分组后,列col2的均值 df.pivot_table(index=col1, values=[col2,col3], aggfunc=max):创建一个按列col1进行分组,并计算col2...([df1, df2],axis=1):将df2中的列添加到df1的尾部 df1.join(df2,on=col1,how='inner'):对df1的列和df2的列执行SQL形式的join 数据统计
第三范式:要求移除所有可以派生自表中(或其他数据库的其他表中)其他字段包含的数据字段 -2nd- 创建表格 可以手动创建表格,并在Access中手动输入数据,倒是还是建议把原始乱七八糟的Excel表格导入...SQL语句是Access中管理、处理数据的最高效方法,使用:创建选项卡——查询功能块——查询设计(会自动跳出来一个选择表格的窗口,关掉)——选择SQL视图(左上角) *一个表格一共有三个视图,1)数据表视图...:类似Excel的显示界面,用于显示数据;2)设计视图,用于限定、备注、创建、删除字段;3)SQL视图,用于书写SQL查询语句 SQL语句符合英文语言习惯:我要选择什么数据,从哪个表,限定条件是什么,查询结果如何排序...Result可以是包含其他列的表达式,Condition也可以包含其他列 iii 常用函数 1....2)int()/fix() Int(向下取整)和Fix(向上取整)均删除数字的小数部分, 并返回得到的整数值。
缺省插入 insert into 表名(列1,列2..) values(值1,值2..)...update 表名 set 列1 = 值1, 列2 = 值2, ... where 条件4、查 查询表中的全部数据 select * from 表名 五、查...select * from 表名 where 条件 b、比较运算符 等于(=) 大于(>) 小于(=) 小于等于(<=) 不等于(!...逻辑运算符and比or优先级高,同时出现并希望先选or,需要结合括号来使用4、聚合 为了快速得到统计数,提供了5个聚合函数 a、count(*) 表示计算总行数,括号中可以写 * 或列名..., 列2 having 列1, 列2 eg: 查询男女生总数 select gender, count(*) from student group by gender where
() 索引,数据类型和内存信息 df.describe() 数值列的汇总统计信息 s.value_counts(dropna=False) 查看唯一值和计数 df.apply(pd.Series.value_counts...) 所有列的唯一值和计数 选择 df[col] 返回一维数组col的列 df[[col1, col2]] 作为新的数据框返回列 s.iloc[0] 按位置选择 s.loc['index_one'] 按索引选择...(col) 从一列返回一组对象的值 df.groupby([col1,col2]) 从多列返回一组对象的值 df.groupby(col1)[col2] 返回col2中的值的平均值,按col1中的值分组...(平均值可以用统计部分中的几乎任何函数替换) df.pivot_table(index=col1,values=[col2,col3],aggfunc=max) 创建一个数据透视表,按col1分组并计算...1) 将df1中的列添加到df2的末尾(行数应该相同) df1.join(df2,on=col1,how='inner') SQL类型的将df1中的列与df2上的列连接,其中col的行具有相同的值。
Series对象的唯⼀值和计数 df.apply(pd.Series.value_counts) # 查看DataFrame对象中每⼀列的唯⼀值和计数 df.isnull().any() # 查看是否有缺失值...df.at[5,"col1"] # 选择索引名称为5,字段名称为col1的数据 df.iat[5,0] # 选择索引排序为5,字段排序为0的数据 数据处理 这里为大家总结16个常见用法。...() # 检查DataFrame对象中的⾮空值,并返回⼀个Boolean数组 df.dropna() # 删除所有包含空值的⾏ df.dropna(axis=1) # 删除所有包含空值的列 df.dropna...df[column_name].fillna(x) s.astype(float) # 将Series中的数据类型更改为float类型 s.replace(1,'one') # ⽤‘one’代替所有等于...⾏与对应列都不要 df1.join(df2.set_index(col1),on=col1,how='inner') # 对df1的列和df2的列执⾏SQL形式的join,默认按照索引来进⾏合并,如果
对于SQL相信大家都不陌生,可以通过条件进行查询某一值的个数,或者按某一字段进行聚合计数,例如查看某一分类下的数量。...A1:A4, #N/A) 查找空值的个数 COUNTIF(A1:A4, B6) 在范围内查找指定单元格值的个数, COUNTIF(A1:A4, ">3") 在范围内查找大于3的值的个数 不等于使用...通过对单元格范围和单元格行或列对固定,可以对单元格进行拖动填充,增加$符号会固定行或列。 当需要统计的类型过多时,可以通过复制并删除重复值的操作,获取去重后的统计列。...总结: COUNTIF:找出需要计数的数据范围,找出需要计数的值或者需要计算的表达式(例如计数大于60的值),填入函数中即可。...COUNTIFS:找出需要联合计数的所有数据范围,找出需要计数的值或表达式,成对的写入函数中。 小贴士:输入函数时可以使用Tab补齐,输入或选择单元格后可以按F4加行列的锁定。 你学会了吗?
2)两个直方图区别在于equi-height 多了 下限和上限的指标。 ? 3)选择直方图判断逻辑是:如果指定的桶数大于或等于桶数 对于不同的值,创建一个单例直方图。否则创建一个等高直方图。...5)注意事项 直方图限制: 加密表(为了避免在统计数据中暴露数据)或临时表不支持生成直方图。 直方图生成适用于除几何类型(空间数据)和JSON之外的所有数据类型的列。...其他: MySQL 8.0.19中,InnoDB存储引擎为存储在InnoDB表中的数据提供了自己的采样实现。...row *************************** NAME: sampled_pages_skipped COUNT: 0 2 rows in set (0.00 sec) 基于抽样计数器数据的抽样率大致与...备注:mysql服务重新启动之后执行计划不选择直方图,走的是全表扫描,需要官方优化。 总结 按照简单测试用例,大概评估下来,直方图的性能可能提升2倍~3倍。但这对于大数量的访问而言。
2 Estimator 优化程序根据数据字典中的统计信息估算每个计划的成本。 3 Plan Generator 优化器比较计划的成本,并选择最低成本计划(称为执行计划)传递给行源生成器。...当存在可行的替代方案时,数据库将单独计算替代方案的成本,并选择成本最低的替代方案。下图显示了查询转换器将使用OR的输入查询重写为使用UNION ALL的输出查询。...统计数据可用 当统计数据可用时,估算器使用它们来估计选择性。假设有150个不同的员工姓。...在本例中,优化器假设一个统一的分布,并通过将表中的总行数除以WHERE子句谓词中使用的列中不同值的数量来计算查询的基数。...目前的数据库统计数字表明,薪金栏中非重复值的数目为58。因此,优化器使用公式107/58=1.84估计结果集的基数为2。 基数估计必须尽可能准确,因为它们影响执行计划的所有方面。
因此,动态SQL不能使用INSERT或UPDATE来设置%LIST类型的属性值。 插入计数器值 表可以有选择地将一个字段定义为Identity。...,"插入失败,SQLCODE=",SQLCODE } } 要显示数据,请转到管理门户,选择所需命名空间的全局选项。滚动到“SQLUser.MyStudentsD”并单击Data选项。...如果任何数据值与目标数据类型不兼容,插入将失败,并显示SQLCODE-104。 与数据值兼容的数据类型长度:定义的列数据长度不必彼此匹配,只需与实际数据匹配即可。...如果任何FullName值超过40个字符,插入将失败,并显示SQLCODE-104。 兼容的列顺序:这两个表必须具有相同的列顺序。否则将生成SQLCODE-64错误。...兼容列计数:目标表可以具有复制列之外的其他列。
作者: 谢海滨 在 TiDB 里,SQL 优化的过程可以分为逻辑优化和物理优化两个部分,在物理优化阶段需要为逻辑查询计划中的算子估算运行代价,并选择其中代价最低的一条查询路径作为最终的查询计划。...Count-Min Sketch 维护了一个 d*w 的计数数组,对于每一个值,用 d 个独立的 hash 函数映射到每一行的一列中,并对应修改这 d 个位置的计数值。...如果不等于,那么判断当前桶是否已经满,如果不是的话,就直接放入当前桶,否则的话,就放入下一个桶。 2....在这个部分中,我们会先从最简单的单一列上的过滤条件开始,然后考虑如何处理多列的情况。 1. 范围查询 对于某一列上的范围查询,TiDB 选择了常用的等深直方图来进行估算。...不过这里还有一个问题是估算的时候要去算比例,这对于数值类型很简单,对于其他类型,比方说字符串类型怎么办呢?一个方法是把字符串映射成数字,然后计算比例。 2.
SQL查询通常以SELECT语句开始,然后使用其他子句来进一步指定操作。...; 在这个查询中,我们从名为employees的表中选择first_name和last_name列,仅选择department等于’HR’的行,然后按last_name列对结果进行排序。...例如: -- 选择所有列 SELECT * FROM products; -- 选择特定列 SELECT product_name, price FROM products; 2....例如: -- 选择价格大于等于50的产品 SELECT product_name, price FROM products WHERE price >= 50; 3....您可以指定一个或多个列,并指定升序(ASC)或降序(DESC)排序。
SQL语法不区分大小写。...,数据); 2、指定列插入 insert into 表名(列名,列名,...) values (数据,数据,...); (二)列的查询(重点!!)...1、全列查询 select *from 表名; 2、指定列查询 select 列名,列名 from 表名; 3、表达式查询 表达式查询是进行列与列之间的运算,呈现出来的数据是以临时表的形式出现。...对于MySQL,如果一个SQL没有指定order by 列名,此时的查询结果集的数据顺序是不可预期的。 可以指定多个列排序,多个列之间用逗号分隔。...where 列名 like '邹%'; select 列名,列名 as 别名 from 表名 where 列名 like '邹__'; 8、分页查询 limit 声明从哪一条开始查询(从0开始计数
还有就是一些要注意的地方,就是SQL语句对大小写不敏感,语句中列名对应的值要用单引号''括起来不是双引号。 SQL 使用单引号来环绕文本值。...操作符 描述 = 等于 不等于 > 大于 < 小于 >= 大于等于 <= 小于等于...5、and,or and 即条件交集,or 即条件并集; 二、改:Update 语句用于修改表中的数据。...语句:INSERT INTO 表名称 VALUES (值1, 值2,....) 或INSERT INTO table_name (列1, 列2,...)...注意,只能统计数值。
SQL SELECT DISTINCT语句 关键词DISTINCT用于返回唯一不同的值 语法:SELECT DISTINCT 列名称 FORM 表名称 SQL WHERE子句 where子句同于规定选择的标准...= 等于 不等于 !...= 不等于(用于某些版本的SQL中) > 大于 < 小于 >= 大于等于 <= 小于等于 BETWEEN 在某个范围内 LIKE 搜索某种模式 一般的条件值周围都是用的是单引号,SQL使用单引号来环绕文本值...DEFAULT 用于向列中插入默认值,如果没有规定其他的值,就添加默认值。 SQL CREATE INDEX语句 用于在表中创建索引,在不读取整个表的情况下,使用索引可以更快的查找数据。...SQL函数 SQL拥有很多可用于计数和计算的内建函数。
可以看出,没有选择其他三个索引的原因均是因为在其他三个索引上使用range scan的代价均>= IX_name。...3.2 提取关键列名 这一步提取SQL可用来添加索引的候选列名,除了选择给出现在where中的列添加索引,MySQL对排序、聚合、表连接、聚合函数(如max)也支持使用索引来提高查询效率。...值得注意的是,对于某些SQL,还需结合表结构才能准确地提取,比如: select * from tb1, tb2 where a = 1,列a归属tb1还是tb2取决于谁唯一包含列a。...select * from tb1 natural join tb2 where tb1.a = 1,在自然连接中,tb1和tb2默认使用了相同列名进行连接,但SQL中并没有暴露出这些可用于添加索引的列...统计美团线上索引列数分布后,我们发现,95%以上的索引列数都<=3个。同时基于经验考虑,3列索引也可满足绝大部分场景,剩余场景会通过其他方式,如库表拆分来提高查询性能,而不是增加索引列个数。
领取专属 10元无门槛券
手把手带您无忧上云