(因为见过都设成字符类型的表,所以就简单提一下)分析数据 ★★★业务场景该部分可谓是数据分析师的核心工作面对复杂的业务问题,重点在于将其拆解、转译成简单的SQL问题「案例」例如教育行业中某领导要求你“分析某课程的效果如何...”→ 翻译:课程效果可通过学生成绩反映,即是要计算成绩最大值、最小值、学生成绩分布 → SQL语句必备知识汇总分析即GROUP BY关键字解决业务问题:如计算每个课程学生的平均成绩:SELECT avg...必备知识存储过程即PROCEDURE,可以将某业务需求,或者数据产品中的报表对应的所有SQL语句放在一起,方便一键执行,如RFM模型里的语句可以写成存储过程,计算结果实时同步到前端「SQL SERVER...必备知识数据库设计与「SQL三范式」SQL三范式的目的在于解决数据冗余、计算效率低等问题,另一方面对数据增加、修改更友好。...---这部分从业务场景出发,讨论业务问题的解决方案与SQL知识点的关系,帮助答主解决学习了SQL之后可以做什么的问题。实战如何分析用户?——用SQL做一份数据分析报告涉及什么哪些知识点?
我们在【重磅来袭】在Power BI 中使用Python(4)——PQ数据导出&写回SQL 讲过如何在Power BI中调用Python实现powerquery获取和处理的数据回写到MySQL中。...有不少朋友提问,能否回写到SQL SERVER中呢? 答案是肯定的。有两个大的解决方案: 第一个,由于本质上我们调用的是Python脚本,所以回写入哪个数据库由Python来决定。...但是修改后的代码意义却变了: [Query="select * from Sheet1"] 这实现了在PowerQuery中直接输入SQL Server代码并运行: 这就代表着我们可以通过编写SQL语句向...那么重要的就来了: 如果我们能够将PQ返回的表按行转换为一条条的record记录,再逐条导入SQL Server,那么我们的需求就得到了解决。...: 好在这并不是什么大问题,在SQL中设置一下datevalue字段的格式为date就可以搞定: 至于刷新时重复导入或者每日刷新多次的问题,大家结合上一篇文章自己就可以解决,无非就是用DELETE函数
相信很多人在笔试或面试的时候被问到如何通过SQL实现行转列或列转行的问题,可能很多人当时懵逼了,没关系,下面我们通过例子来理解。 ...需要注意的是:它不是一个标准的SQL语句(即不是ANSI SQL标准的一部分),不能用这个语句向已经存在的表中插入数据。...再来看一个栗子,假设我们要实现两个数的交换该怎么做?我们可能迫不及待的说出临时变量。然而,在SQL中所有赋值表达式好像都是同时计算的,解决这个问题就不需要临时变量了。...: (1)Jackson,《30分钟全面解析-SQL事务+隔离级别+阻塞+死锁》 (2)BIWork,《SQL Server 中的事务与事务隔离级别以及如何理解脏读, 未提交读,不可重复读和幻读产生的过程和原因...,在SQL Server 2005中引入的。
选项开启,用完后记得关闭 SET IDENTITY_INSERT ON; INSERT SELECT 把select 语句的查询结果插入到表中,这个中方法要比上面的INSERT VALUES...Sales.MyOrders OFF; INSERT EXEC 该语句可以让你把动态语句或者存储过程的结果插入表格。...SET IDENTITY_INSERT Sales.MyOrders OFF; 对于动态SQL,或者类似DBCC这种非常规的SQL语句,都可以通过这种方式来保存结果集。...INTO test_dbcc EXEC ( 'DBCC TRACESTATUS' ) 注:不能嵌套使用insert exec语句 ,可以用以下方式变动(这里直接拷贝参考文章中的内容。...,也可以避免insert exec 无法嵌套的问题。
另一个例子: ' UNION SELECT 1, 'anotheruser', 'doesnt matter', 1-- UNION – 解决语言设置的问题 虽然利用 Union 注入有时会因为不同的语言设置...(表设置,字段设置,组合表/数据库设置等)而出错,下面的这些功能可以解决这个问题,经常会在处理日语、俄语、西班牙语等应用程序时遇到。...EXEC master.dbo.xp_cmdshell 'cmd.exe dir c:' 在SQL Server 中的一些关键表(S) 错误信息:master..sysmessages 连接的服务器:...OSQL /Q"DBCC SHOWCONTIG" 你不能在 SQL Server 的插入语句中使用子查询 SQL 中使用 LIMIT (M) 或 ORDER (MSO) SELECT id, product...开启 xp_cmdshell 在 SQL Server 2005 中 EXEC sp_configure 'show advanced options',1 RECONFIGURE EXEC sp_configure
添加数据, 补录数据 网上提供的解决方案是用一个工具生成差异的SQL数据然后给订阅库执行,但看了下觉得不是很方便,想起来SqlServer还提供一个 insert...from....语句,那么是否可以直接从发布数据库查询数据然后插入给订阅数据库呢...但是此时同义词还不能直接使用,还需要建立“链接服务器”,具体过程如下: EXEC sp_addlinkedserver @server='192.168.7.4',--被访问的服务器别名(习惯上直接使用目标服务器...此时,只需要在insert 和 select 语句上,指定相同顺序的列就可以了。那么如何获取表所有的列名称? 很简单,直接选择某个表,新建查询,生成的SQL语句就包含表所有的字段了。...,但是如果系统的表很多,目前还没有做到批量的全部修改这些订阅存储过程,如果有一种方法及时通知DBA 哪些订阅数据出现了问题,然后再按照前面的方法解决问题,就很方便了。...最后,在Sql Server 代理-作业节点,选择用于订阅的作业名称,然后打开属性窗口,进行如下设置: ?
如果 stmt 中包含的 Transact-SQL 语句或批处理没有参数,则不需要值。 n 附加参数的值的占位符。这些值只能是常量或变量,而不能是更复杂的表达式,例如函数或使用运算符生成的表达式。...sp_executesql 批处理不能引用调用 sp_executesql 的批处理中声明的变量。...因为 Transact-SQL 语句本身保持不变仅参数值变化,所以 Microsoft® SQL Server™ 查询优化器可能重复使用首次执行时所生成的执行计划。...,与使用 EXECUTE 语句执行字符串相比,有下列优点: 因为在 sp_executesql 中,Transact-SQL 语句的实际文本在两次执行之间未改变,所以查询优化器应该能将第二次执行中的 Transact-SQL...sqls) —如何将exec执行结果放入变量中?
简介 对于数据库运维人员来说创建session或者查询时产生问题是常规情况,下面介绍一种很有效且不借助第三方工具的方式来解决类似问题。...阻塞理解 在Sql Server 中当一个数据库会话中的事务正锁定一个或多个其他会话事务想要读取或修改的资源时,会产生阻塞(Blocking)。通常短时间的阻塞没有问题,且是较忙的应用程序所需要的。...这里会看到系统正在运行后没有完成语句的状态(因为上一个事务没有关闭导致表锁,这个不能插入),现在可以在另外的窗口查询一下阻塞的情况,如下检查阻塞的session。 ?...万变不离其宗,归根结底还是因为代码甚至数据库设计上存在很多问题才导致的阻塞,比如缺失索引、事务中的查询性能和逻辑顺序存在问题、T-SQL语句性能引起的等等不一而足。...对于一些常年解决类似问题的DBA人员来说没啥价值,但是对于不太理解数据库的人来说还是能暂时解决一些紧急问题,当然最后还是要把理论基础打好才能尽可能的杜绝类似情况。
因此它们位于从属于数据库服务器的数据库外面; #sysadmin: 执行SQL Server中的任何动作比如sa,只有这个角色中的成员(或一个被这个角色中的成员赋予了CREATE DATABASE权限的用户...BACKUP DATABASE和BACKUP LOG语句 - 2.用CHECKPOINT语句显式地启动检查点进程 #db_denydatareader:不能看到数据库中任何数据的用户,对数据库中的数据库对象...(表或视图)没有SELECT权限 #db_denydatawriter:不能改变数据库中任何数据的用户,对数据库中的任何数据库对象(表或视图)没有INSERT、UPDATE和DELETE权限。...另外,只有固定服务器角色的成员才能执行上述两个系统过程来从角色中添加或删除登录账户。 在以前的SQL Server版本中不存在角色,sa登录具有所有可能的关于系统管理工作的权限。...在SQL Server 2005中sa登录保持了向后兼容性是固定服务器角色sysadmin中的成员,并且不能从该角色中删除。
2)隐式定义 如果不显示定义事务的边界,则SQL Server会默认把每个单独的语句作为一个事务,即在执行完每个语句之后就会自动提交事务。...二、锁 1.事务中的锁 (1)SQL Server使用锁来实现事务的隔离。 (2)事务获取锁这种控制资源,用于保护数据资源,防止其他事务对数据进行冲突的或不兼容的访问。...c.排他锁和其他任何类型的锁在多事务中不能在同一阶段作用于同一个资源。 如:当前事务获得了某个资源的排他锁,则其他事务不能获得该资源的任何其他类型的锁。...,分别按顺序执行表格中的执行语句。...(2)阻塞进程在不断地运行,所以在代码中看到的最后一个操作不一定是导致问题的语句。在本例中最后一条执行语句是导致阻塞的语句。
@str-1)+’Rid from T where Rid>-1)’ exec sp_executesql @sql 注意:在top后不能直接跟一个变量,所以在实际应用中只有这样的进行特殊的处理。...解决方案 1,用order by select top 30 recid from A order by ricid 如果该字段不是自增长,就会出现问题 2,在那个子查询中也加条件:select top...nocount {on|off} 使返回的结果中不包含有关受 Transact-SQL 语句影响的行数的信息。...--属性--登陆--选择"此账户" --输入或者选择第一步中创建的windows登录用户名(SynUser) --"密码"中输入该用户的密码 4.设置SQL Server身份验证模式,解决连接时的权限问题...SQL Server组,也可以创建一个新组 --下一步--完成 6.对于只能用IP,不能用计算机名的,为其注册服务器别名(此步在实施中没用到) (在连接端配置,比如,在订阅服务器上配置的话,服务器名称中输入的是发布服务器的
,不能和普通的字段放在一起; 13、对数据库进行操作: 分离数据库: sp_detach_db;附加数据库:sp_attach_db 后接表明,附加需要完整的路径名 14.如何修改数据库的名称: sp_renamedb...@str-1)+’Rid from T where Rid>-1)’ exec sp_executesql @sql 注意:在top后不能直接跟一个变量,所以在实际应用中只有这样的进行特殊的处理。...nocount {on|off} 使返回的结果中不包含有关受 Transact-SQL 语句影响的行数的信息。...--属性--登陆--选择"此账户" --输入或者选择第一步中创建的windows登录用户名(SynUser) --"密码"中输入该用户的密码 4.设置SQL Server身份验证模式,解决连接时的权限问题...SQL Server组,也可以创建一个新组 --下一步--完成 6.对于只能用IP,不能用计算机名的,为其注册服务器别名(此步在实施中没用到) (在连接端配置,比如,在订阅服务器上配置的话,服务器名称中输入的是发布服务器的
,与innodb引擎中的redo/undo log是完全不同的日志;其主要是用来记录对mysql数据更新或潜在发生更新的SQL语句,并以"事务"的形式保存在磁盘中。...在 statement 中,目前已经发现的就有不少情况会造成 MySQL 的复制出现问题,主要是修改数据的时候使用了某些特定的函数或者功能的时候会出现,比如:sleep() 函数在有些版本中就不能被正确复制...; statement 缺点: 不是所有的 UPDATE 语句都能被复制,尤其是包含不确定操作的时候; 调用具有不确定因素的函数时复制也可能出现问题; 运用以下函数的语句也不能被复制: 1、LOAD_FILE...值会导致复制变慢; 不能从 binlog 中看到都复制了写什么语句(加密过的); 当在非事务表上执行一段堆积的 SQL 语句时,最好采用 statement 模式,否则很容易导致主从服务器的数据不一致情况发生...如果是采用 GRANT,REVOKE,SET PASSWORD 等管理语句来做的话,那么无论如何都要使用 statement 模式记录; 使用 statement 模式后,能处理很多原先出现的主键重复问题
统计函数中的字段,不能和普通的字段放在一起; 13、对数据库进行操作: 分离数据库: sp_detach_db;附加数据库:sp_attach_db 后接表明,附加需要完整的路径名 14.如何修改数据库的名称...@str-1)+’Rid from T where Rid>-1)’ exec sp_executesql @sql 注意:在top后不能直接跟一个变量,所以在实际应用中只有这样的进行特殊的处理。...nocount {on|off} 使返回的结果中不包含有关受 Transact-SQL 语句影响的行数的信息。..."此账户"--输入或者选择第一步中创建的windows登录用户名(SynUser)--"密码"中输入该用户的密码4.设置SQL Server身份验证模式,解决连接时的权限问题(发布/订阅服务器均做此设置...Server组,也可以创建一个新组--下一步--完成6.对于只能用IP,不能用计算机名的,为其注册服务器别名(此步在实施中没用到) (在连接端配置,比如,在订阅服务器上配置的话,服务器名称中输入的是发布服务器的
统计函数中的字段,不能和普通的字段放在一起; 13、对数据库进行操作: 分离数据库: sp_detach_db; 附加数据库:sp_attach_db 后接表明,附加需要完整的路径名 14.如何修改数据库的名称...@str-1)+’Rid from T where Rid>-1)’ exec sp_executesql @sql 注意:在top后不能直接跟一个变量,所以在实际应用中只有这样的进行特殊的处理。...--属性--登陆--选择"此账户" --输入或者选择第一步中创建的windows登录用户名(SynUser) --"密码"中输入该用户的密码 4.设置SQL Server身份验证模式,解决连接时的权限问题...SQL Server组,也可以创建一个新组 --下一步--完成 6.对于只能用IP,不能用计算机名的,为其注册服务器别名(此步在实施中没用到) (在连接端配置,比如,在订阅服务器上配置的话,服务器名称中输入的是发布服务器的..."Transact-SQL 脚本(TSQL)" --"数据库"选择执行命令的数据库 --"命令"中输入要执行的语句: exec p_process --确定 --"调度"项 --新建调度 -
统计函数中的字段,不能和普通的字段放在一起; 13、对数据库进行操作: 分离数据库: sp_detach_db;附加数据库:sp_attach_db 后接表明,附加需要完整的路径名 14.如何修改数据库的名称...@str-1)+’Rid from T where Rid>-1)’ exec sp_executesql @sql 注意:在top后不能直接跟一个变量,所以在实际应用中只有这样的进行特殊的处理。...解决方案 1,用order by select top 30 recid from A order by ricid 如果该字段不是自增长,就会出现问题 2,在那个子查询中也加条件:select top...此账户"--输入或者选择第一步中创建的windows登录用户名(SynUser)--"密码"中输入该用户的密码4.设置SQL Server身份验证模式,解决连接时的权限问题(发布/订阅服务器均做此设置)...Server组,也可以创建一个新组--下一步--完成6.对于只能用IP,不能用计算机名的,为其注册服务器别名(此步在实施中没用到) (在连接端配置,比如,在订阅服务器上配置的话,服务器名称中输入的是发布服务器的
SQL语句参考,包含Access、MySQL 以及 SQL Server ---- 基础 创建数据库 CREATE DATABASE database-name 删除数据库 drop database...DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。...统计函数中的字段,不能和普通的字段放在一起; 对数据库进行操作 分离数据库: sp_detach_db; 附加数据库:sp_attach_db 后接表明,附加需要完整的路径名 如何修改数据库的名称...解决方案 1, 用order by select top 30 recid from A order by ricid 如果该字段不是自增长,就会出现问题 2, 在那个子查询中也加条件:select...nocount {on|off} 使返回的结果中不包含有关受 Transact-SQL 语句影响的行数的信息。
TEXT column PG 的所有类型都是可以索引的,MySQL 不能索引 text 类型,解决办法是,索引的时候指定长度: t.index ["error"], name: "index_incoming_emails_on_error...data migration pg2mysql 可以把 pgdump 出来的 insert 语句转换成兼容 MySQL 语法的形式,但只限于简单的形式,一些带有 array 和 json 的格式会乱掉,...UPDATE、DELETE、INSERT 语句都可以带一个 returning 关键词,用来返回修改/插入之后的结果。..., :msecs ON CONFLICT DO NOTHING SQL # MySQL DB.exec(<<~SQL, args) INSERT IGNORE INTO post_timings.../docs-cn/stable/reference/mysql-compatibility/,接下来我们主要看一下本次迁移中涉及到的一些小问题。
领取专属 10元无门槛券
手把手带您无忧上云