常见于主键或唯一索引扫描 ref 非唯一性索引扫描,返回匹配某个单独值的所有行,本质上也是一种索引访问,它返回所有匹配某个单独值的行,然而,它可能会找到多个符合条件的行,所以他应该属于查找和扫描的混合体...使用null和任何数值去做比较判断,得到的都是false;只能使用is null和is not null进行操作; 3. datetime的使用 mysql进行日期比较时,日期格式必须是标准的YYYY-MM-DD...,小于10的日期需要加0; 在sql语句中进行时间比较的时候,时间值也需要和字符串一样使用单、双引号包括。...外键创建失败的几种原因 外键的字段与关联的字段的类型不匹配(包括编码格式的不匹配) 外键的名字是一个已经存在的键值,要保证名字的唯一 mysql引擎引起的外键创建不能保存或者不能发挥作用的情况,mysql...不设置此值时,用默认的存储引擎替代,并抛出一个异常 所以需要修改一下这个模式,然后重新导入: [mysqld] sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
这两个值必须用AND关键字 分隔。BETWEEN匹配范围中所有的值,包括指定的开始值和结束值。...soundex('Y Lie'); 使用Soundex()函数进行搜索,它匹配所有发音类似于 Y.Lie的联系名 日期和时间处理函数 常用日期和时间处理函数: 函数 说明 AddDate() 增加一个日期...虽然这样做并非不合法,但使用唯一的名 字会使你的SQL更易于理解和使用。...GROUP BY子句指示MySQL分组数据,然后对每个组而不是 整个结果集进行聚集。 在具体使用GROUP BY子句前,需要知道一些重要的规定。 GROUP BY子句可以包含任意数目的列。...这可能会改变计 算值,从而影响HAVING子句中基于这些值过滤掉的分组。 分组和排序 GROUP BY和ORDER BY经之间的差别: ORDER BY GROUP BY 排序产生的输出 分组行。
11.关于DATETIME与TIMESTAMP两种数据类型的描述,错误的是(B) A、两者值的范围不一样 B、两者值的范围一样 C、两者占用空间不一样 D、TIMESTAMP可以自动记录当前日期时间...SQL语句是(A) A、SELECT语句 B、INSERT语句 C、UPDATE语句 D、DELETE语句 31.在select语句中,可以使用(B)子句,将结果集中的数据行根据选择列的值进行逻辑分组...(A) A、保证各行在该索引上的值都不得重复 B、保证各行在该索引上的值不为NULL C、保证参加唯一索引的各列,不得再参加其他的索引 D、保证唯一索引不能被删除 66.以下哪种操作能够实现实体完整性...(A) A、保证各行在该索引上的值都不得重复 B、保证各行在该索引上的值不为NULL C、保证参加唯一索引的各列,不得再参加其他的索引 D、保证唯一索引不能被删除 133.以下哪种操作能够实现实体完整性...( A ) A、保证各行在该索引上的值都不得重复 B、保证各行在该索引上的值不为NULL C、保证参加唯一索引的各列,不得再参加其他的索引 D、保证唯一索引不能被删除 21、在视图上不能完成的操作是
在使用GROUP BY时需要注意的几点: GROUP BY子句可以包含任意数量的列,因而可以对分组进行多重嵌套,如按照班级和性别进行分组的话,结果中班级A包含男生组和女生组,班级B也包含男生组和女生组;...; 如上,col_1和col_2属于table_1表中,col_3属于table_2表中,而这两个表使用相同的id列进行匹配。...SQL聚合 有时候我们只是需要获取数据的汇总信息,比如说行数啊、平均值啊这种,并不需要吧所有数据都检索出来,为此,SQL提供了专门的函数,这也是SQL最强大功能之一。...(其实这里可以直接无视,筛选出来后在python中再进行处理) SQL中提供了一个替换NULL值的函数COALESCE。...BY 分组数据 仅在按组计算时使用 HAVING 过滤分组 否 ORDER BY 对输出进行排序 否 LIMIT 限制输出的行数 否 附:数据分析师的SQL思维导图 ?
# # # 在写sql代码时,最好先执行“set search_path to mimiciv" 随后的所有操作均不需要指明表格的位置;否则,任何操作都应该在表格名前面加前缀mimiciv# query1...我们简化一下SQL, 只查数据,分组的事情交给python关注公众号【科研收录】, 回复"分组入院人数sql", 获取SQL代码回复"直方图", 获取python代码1.2.1 WIDTH_BUCKET...此表达式的计算结果必须为数值或日期时间值,或者可以隐式转换为数值或日期时间值的值。如果表达式的计算结果为 null,则表达式返回 null。...-- min_value 最小组数: 解析为存储桶 1 的下边界的表达式。还必须计算为数值或日期时间值,并且不能计算为 null。...使用 WIDTH_BUCKET 时请注意最小和最大边界值。每个存储桶包含的值等于或大于该存储桶的基值,因此 0-20、20-40 等年龄范围实际上是 0-19.99 和 20-39.999。
,因为可能还有其它匹配记录,所以 直到扫描到 [不匹配的索引记录] 才能停止,然后上锁也是合理的; 对于 >和>=,因为会包括 索引最大值 后面的间隙,所以 对上界面伪值supremum 上锁也是应该的...对于 <= 在 聚集索引 上来说,我们得出的结果是(实际和 < 一样): 聚集索引上, 所有匹配的 索引记录 上Next-key Lock; 向右扫描聚集索引, 直到找到 [不匹配的索引记录] 上Next-key...对于 > 和 >=,会对supremum (上界限伪值) 上Next-key Lock:锁的是 聚集索引 最大值 后面的 间隙; ---- 唯一索引 小于 我们在Session2 执行SQL如下(按abc_uk...上Record Lock; 对于 < 和 <=,会在该索引上向右扫描, 直到找到 [不匹配的索引记录] 上Next-key Lock,对应的聚集索引 上Record Lock; 对于 > 和 >=,会对...上Record Lock; 对于 < 和 <=,会在该索引上向右扫描, 直到找到 [不匹配的索引记录] 上Next-key Lock,对应的聚集索引 上Record Lock; 对于 > 和 >=,会对
这时,SQL语句变成了获取18期或19期的学员并且要求是女生 IN与NOT IN操作符用来指定条件范围,范围中的每个条件都可以进行匹配。...对于简单的WHERE子句,使用NOT确实没有什么优势。 但在更复杂的子句中,NOT是非常有用的。 例如,在与IN操作符联合使用时,NOT使找出与条件列表不匹配的行非常简单。...但此新计算列的名字是什么呢?实际上它没有名字,它只是一个值。 > >如果仅在SQL查询工具中查看一下结果,这样没有什么不好。...这使我们能够对行进行计数,计算和与平均数,获得最大和最小值而不用检索所有数据 目前为止的所有计算都是在表的所有数据或匹配特定的WHERE子句的数据上进行的。...是 FROM 从中检索数据的表 仅在从表选择数据时使用 WHERE 行级过滤 否 GROUP BY 分组说明 仅在按组计算聚集时使用 HAVING
,表示对表的全部请求都是索引的部分Using temporary 表示需要临时表来存储结果集,常见于排序和分组查询Using join buffer 获取链接条件时候没使用索引,并且需要连接缓冲区存储中间结果...') from_unixtime(unix_timestamp(), '%Y-%m-%d') 截取部分日期,其他部分默认为 01 select trunc('2009-02-12', 'year') 字符串转...基本语法 -- partition by 用于给结果集分组,另外如果不指定那么会默认把整个结果集作为分组 -- partition by 需要分组的列名 -- order by 需要排序的列名 -- rows...缺点是不存在天数的数据则不展示,增量时间不连续,预期可能希望是 0) 实现方式不唯一,这里仅展示一种,可以推敲更简便的方案省去一些查询 -- 思路如下 -- 1. ...数仓建设时候除了一些需要每日/周/月展示的需求可以用一些定时离线任务也搞以外,还会有一些临时查询的需求,快速出数据,其中可能包含一些没有拉取到数仓得数据信息。
导读 pandas是Python数据分析最好用的第三方库,没有之一。——笛卡儿没说过这句话!...pd.Timestamp(),时间戳对象,从其首字母大写的命名方式可以看出这是pandas中的一个类,实际上相当于Python标准库中的datetime的定位,在创建时间对象时可接受日期字符串、时间戳数值或分别指定年月日时分秒等参数三类...当然,虽然同样是执行的模糊匹配,但对于时间序列和字符串序列的匹配策略还是略有不同:时间序列执行的模糊匹配是"截断式",即只要当前匹配,则进行筛选保留;而字符串序列执行的模糊匹配是"比较式",也就是说在执行范围查询时实际上是将各索引逐一与查询范围进行比较字符串大小...,无论是上采样还是下采样,其采样结果范围是输入记录中的最小值和最大值覆盖的范围,所以当输入序列中为两段不连续的时间序列记录时,可能会出现中间大量不需要的结果(笔者亲历天坑),同时在上图中也可发现从4小时上采样为...05 滑动窗口 理解pandas中时间序列滑动窗口的最好方式是类比SQL中的窗口函数。实际上,其与分组聚合函数的联系和SQL中的窗口函数与分组聚合联系是一致的。
考虑series和dataframe兼具numpy数组和字典的特性,那么就不难理解二者的以下属性: ndim/shape/dtypes/size/T,分别表示了数据的维数、形状、数据类型和元素个数以及转置结果...由于该方法默认是按行进行检测,如果存在某个需要需要按列删除,则可以先转置再执行该方法 异常值,判断异常值的标准依赖具体分析数据,所以这里仅给出两种处理异常值的可选方法 删除,drop,接受参数在特定轴线执行删除一条或多条记录...广播机制,即当维度或形状不匹配时,会按一定条件广播后计算。由于pandas是带标签的数组,所以在广播过程中会自动按标签匹配进行广播,而非类似numpy那种纯粹按顺序进行广播。...一般而言,分组的目的是为了后续的聚合统计,所有groupby函数一般不单独使用,而需要级联其他聚合函数共同完成特定需求,例如分组求和、分组求均值等。 ?...由于此时各班的每门课成绩信息不唯一,所以直接用pivot进行重整会报错,此时即需要对各班各门课程成绩进行聚合后重整,比如取平均分。 ? 07 数据可视化 ?
查询结果的不确定性:使用*通配符可能会返回多个不必要的列,包括一些不需要的敏感信息或者关联表中的数据,增加了数据传输的开销,并且也增加了处理结果集的复杂度。 3....维护性和可读性:明确指定需要查询的列名可以使查询语句更易于维护和理解,尤其是在团队协作或者未来需要对查询进行修改和优化的情况下。...不过需要注意的是,过度复杂的子查询可能会影响查询性能和可读性,因此在使用子查询时需要权衡其优劣并谨慎设计。...全连接(Full Outer Join):全连接会返回左表和右表中的所有行,并且对于没有匹配的行会用 NULL 值填充。...ifnull 函数用于将可能的 NULL 值替换为指定的默认值(0 或 '无日期')。 总的来说,这条查询用于获取网站的访问次数以及最近访问日期(如果有的话),并且对可能的 NULL 值进行了处理。
意向锁之间不余互斥。...MODE 排他锁 需要手动在SELECT:之后加LOCK IN SHARE MODE SELECT…FOR UPDATE 排他锁 需要手动在SELECT:之后加FOR UPDATE 默认情况下,InnoDB...1.针对唯一索引进行检索时,对已存在的记录进行等值匹配时,将会自动优化为行锁。...1.索引上的等值查询(唯一索引),给不存在的记录加锁时,优化为间隙锁。 2.索引上的等值查询(普通索引),向右遍历时最后一个值不满足查询需求时,neXt-key lock退化为间隙锁。...3.索引上的范围查询(唯一索)-会访问到不满足条件的第一个值为止。 注意:间隙锁唯一目的是防止其他事务插入间隙。间隙锁可以共存,一个事务采用的间隙锁不会阻止另一个事务在同一间隙上采用间隙锁。
分组后的筛选:分组后的筛选是利用已经重新分配的组内的信息进行筛选,这些信息不直接存储于数据库中。...分组后的筛选:分组后的筛选是利用已经重新分配的组内的信息进行筛选, 这些信息不直接存储于数据库中。...最终得到的结果是表一和表二的完全匹配 例如想要通过boys表和beauty表匹配对象,假如写作下式 SELECT NAME,boyName FROM boys,beauty; 最终得到4*12=48条数据...`department_id`; # 外连接 /* 用于查询一个表中有,另一个表中没有的记录 特点: 外连接的查询结果为主表中的所有记录 如果表中有和它匹配,则显示匹配的值 如果没有匹配值...,一夜显示不全,需要分页提交sql请求 LIMIT 语句放在查询语句的最后 # 分页查询 /* 应用场景: 当要显示的数据,一夜显示不全,需要分页提交sql请求 语法: SELECT 查询列表 FROM
缺失值的处理 pandas pandas使用浮点值NaN(Not a Number)表示浮点数和非浮点数组中的缺失值,同时python内置None值也会被当作是缺失值。...数据质量核查与基本的数据统计 对于多来源场景下的数据,需要敏锐的发现数据的各类特征,为后续机器学习等业务提供充分的理解,以上这些是离不开数据的统计和质量核查工作,也就是业界常说的让数据自己说话。...4.1 统一单位 多来源数据 ,突出存在的一个问题是单位不统一,比如度量衡,国际标准是米,然而很多北美国际习惯使用英尺等单位,这就需要我们使用自定义函数,进行单位的统一换算。...比如,有时候我们使用数据进行用户年龄的计算,有的给出的是出生日期,有的给出的年龄计算单位是周、天,我们为了模型计算方便需要统一进行数据的单位统一,以下给出一个统一根据出生日期计算年龄的函数样例。...都提供了类似sql 中的groupby 以及distinct 等操作的api,使用起来也大同小异,下面是对一些样本数据按照姓名,性别进行聚合操作的代码实例 pyspark sdf.groupBy("
函数,非常适合于数据分析,因此也叫做OLAP函数,其最 大特点是:输入值是从SELECT语句的结果集中的一行或多行的“窗口”中获取的,通过OVER子句,窗口函 数与其他SQL函数有所区别。...日期转UNIX时间戳函数: unix_timestamp 指定格式日期转UNIX时间戳函数: unix_timestamp 抽取日期函数: to_date 日期转年函数: year 日期转月函数: month...日期转天函数: day 日期转小时函数: hour 日期转分钟函数: minute 日期转秒函数: second 日期转周函数: weekofyear 日期比较函数: datediff 日期增加函数:...rank: 在每个分组中,为每行分配一个从1开始的序列号,考虑重复,挤占后续位置; dense_rank: 在每个分组中,为每行分配一个从1开始的序列号,考虑重复,不挤占后续位置; 聚合函数 max(...view侧视图 Lateral View是一种特殊的语法,主要用于搭配UDTF类型功能的函数一起使用,用于解决UDTF函数的 一些查询限制的问题。
表示零个或一个匹配,+表示一个或多个匹配 Like和Regexpde的差别 LIKE匹配整个列。如果被匹配的文本在列值中出现,LIKE将不会找到它,相应的行也不被返回(除非使用通配符)。...如果想要regexp表现出和like一样的特性,可使用定位符 ^ 和 $。 MySQL中的正则表达式匹配(自版本3.23.4后)不区分大小写(即,大写和小写都匹配)。...,在使用第二种方式时,表名后面的列可以任意排列,只需values的值与其一一对应即可,同时,也可以省略一些列值,默认为null或指定的默认值 数据插入可能是比较耗时的操作,特别是当需要对其建立很多索引的时候...下面是关于事务处理需要知道的几个术语: 事务(transaction)指一组SQL语句; 回退(rollback)指撤销指定SQL语句的过程; 提交(commit)指将未存储的SQL语句结果写入数据库表...在不指定用户名时,SET PASSWORD更新当前登录用户的口令。 数据库备份 使用命令行实用程序mysqldump转储所有数据库内容到某个外部文件。
索引上的等值查询 ( 非唯一普通索引 ) ,向右遍历时最后一个值不满足查询需求时, next-key lock 退化为间隙锁。...索引上的范围查询 ( 唯一索引 )-- 会访问到不满足条件的第一个值为止。 注意:间隙锁唯一目的是防止其他事务插入间隙。...索引上的等值查询 ( 非唯一普通索引 ) ,向右遍历时最后一个值不满足查询需求时, next-key lock 退化为间隙锁。...并不是,因为是非唯一索 引,这个结构中可能有多个18 的存在,所以,在加锁时会继续往后找,找到一个不满足条件的值 (当前案例中也就是29 )。...此时会对 18 加临键锁,并对 29 之前的间隙加锁。 C. 索引上的范围查询 ( 唯一索引 )-- 会访问到不满足条件的第一个值为止。
第四章 检索数据 查询 SELECT 使用 SELECT 查数据时要指定查什么(字段),从哪查(库.表) 注意点: SQL 不区分大小写,但是 SQL 关键字尽量大写,这样好阅读和区分 SQL 忽略空格...使用 通配符* 可以表示返回所有列,但是为了检索效率考虑,尽量不要使用 * 去重 DISTINCT 需要检索不同的行数据时需要使用到 DISTINCT 关键字,使得执行 SQL 查询时只返回不同的值。...= < <= > >= BETWEEN 用于范围查询,数字或者日期 空值检查 NULL 表示无值,当要查询值是 NULL 的列时,需要使用 IS NULL 语句判断,而并不是 = NULL SELECT...'; 若要匹配反斜杠,则需要写成 \\\ 匹配多实例 需要对正则匹配的数目控制时,应该使用重复元字符。 常见有 6 种 * 0或多个 + 一个或多个 ?...使用视图的几个场景 重用 SQL 维护数据安全 更改数据格式和展示方式 对应复杂场景的业务处理 使用规则 命名唯一,不能跟已有表名冲突 隐藏复杂的 SQL,查询语句简化 创建视图需要授权 视图不能索引
python中pandas有哪些功能特色 说明 1、按索引匹配的广播机制,这里的广播机制与numpy广播机制还有很大不同。...3、类比SQL的join和groupby功能,pandas可以很容易实现SQL这两个核心功能,实际上,SQL的绝大部分DQL和DML操作在pandas中都可以实现。...常用的数据分析与统计功能,包括基本统计量、分组统计分析等。 集成matplotlib的常用可视化接口,无论是series还是dataframe,均支持面向对象的绘图接口。...=date) # 属性 print(data.shape) print(data.index) print(data.columns) print(data.values) data.T # 行列转置...更多Python学习指路:python基础教程 本文教程操作环境:windows7系统、Python 3.9.1,DELL G3电脑。
领取专属 10元无门槛券
手把手带您无忧上云