2015-08-21 veryyoung
在开发过程中很容易遇到去多张表查询数组组合成一个对象的场景。 有两种方案: 一条大sql直接搞定 把大sql拆分成多条小sql,在程序代码里面再组装对象 more 下面分别分析下各自的优缺点: 大sql 优点:一目了然,程序代码简洁,只需要建立一个连接,在数据量小的情况下效率会高很多。 缺点:在数据量大的情况下响应慢,可能一条大SQL就把整个数据库堵死。垂直拆分情况下sql改动会很大。 多条小sql 优点:在数据量大的情况下效率高。对垂直拆分友好。 缺点:程序代码会变得异常啰嗦,难以维护。 各有利弊,要权衡使用场景。 如果在表数据量巨大的情况下或者数据字段比较有可能做垂直切分的情况下建议或者在做报表这种耗时操 继续阅读 »
2017-01-11 Kevin
Web 安全 - SQL注入 介绍 SQL注入案例 SQL注入防御 介绍 SQL注入攻击(SQL Injection), 是由于程序没有过滤恶意提交的SQL查询,最终达到欺骗服务器执行恶意的SQL命令 继续阅读 »
2017-03-16 Robin Wen
文/温国兵 0x00 目录 Table of Contents {:toc} | 日期 | 作者 | 文档概要 | 版本 | 更新历史 | |:------------|:---------------|:-----|:-----|:-----|:-----| | 2017/03/14 | 温国兵 | 美团点评开源 SQL 优化工具 SQLAdvisor 测试报告 | v1.0 | 文档初稿 | 0x01 SQLAdvisor 介绍 SQLAdvisor 是由美团点评公司北京 DBA 团队开发维护的 SQL 优化工具:输入 SQL,输出索引优化建议。它基于 MySQL 原生词法解析,再结合 SQL 中的 where 条件 继续阅读 »
2015-01-01 walter lee
sql
在几千条记录里,存在着些相同的记录,如何能用SQL语句,删除掉重复的呢? 1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断 select * from people where peopleId in (select peopleId from people group by peopleId having count(peopleId) > 1) 2、删除表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断,只留有rowid最小的记录 继续阅读 »
2014-03-23 Robin Wen
文/温国兵 本文站在一个初级DBA的角度来讲下我眼里的SQL Server。 最早接触MSSQL是在大二下期,那时有门课叫做《数据库系统概论》,想必只要是计算机相关专业,都会开设这门课程。这门课程使用的教材是王珊、萨师煊主编的《数据库系统概论》,这部书堪称国内经典,相信大多数在校学生最初学习数据库都是接触这本书。同大多数学校讲解数据库理论使用MSSQL一样,我们专业也是如此。至于为什么使用MSSQL想必这道理都懂。这里说个现象,网上充斥的MSSQL问题,基本上都是较简单的,为什么呢?因为大学教这个。 学习数据库理论时就会了基本的SQL查询,MSSQL安装和简单使用,比如登录数据库、程序使用ODBC连接数据库、SQL查询分析器的 继续阅读 »
2014-03-15 Robin Wen
文/温国兵 环境 SQL Server 2012 + CentOS 6.3 问题描述 只具有生产库的登录、查询、创建临时表权限,缺失导入数据(比如Excel文件、txt文档、sql脚本等等)权限,需要创建临时表,插入测试数据。 问题模拟 由于生产库的数据是敏感数据,并且数据量非常大,当然不能提供出来。这里只是对这个问题进行一个模拟。数据量少和数据量大操作方法是一样的。 问题解决 我们可以这样: 这是Excel中的源数据,如图1: 图1 Excel 源数据 Step 1,首先把源数据(Excel中的数据)拷贝出来,或者另存为csv文件(以逗号作为分隔),然后重命名后缀为txt。这里的文件名假设为source.tx 继续阅读 »
2017-03-28 Jamling
Web系统非常容易受到攻击,SQL注入做为一个常用的攻击方式,常见于一些老的系统。危害相当大。在这里讲一个SQL注入相关的例子。 more 那是多年以前的事,再次见到她,不禁怦然心动,几年不见,她已是亭亭玉立,作为一枚单身狗,当然会有一些想法。在得知她仍单身的情况后,心中狂喜,满以为能通过这次的邂逅,拉近双方的距离,或许能终结我的单身生活也说不定,哈哈。不过,接下来的事却令我失望,漂亮的女生总是高冷的,但这并没有让我退却。我想方设法得到她的更多信息,如此才好展开攻势。不过她好像觉察到了我的意图,或是之前也有人使用过相同的伎俩,她拒绝向我透漏更多的个人信息。不过,这难不倒我这个技术出身的,我相信在网络的时代,我终会找到一丝蛛丝马 继续阅读 »
2014-02-07 Kun Ren
In both research and application, we need to manipulate data frames by selecting desired columns, filtering records, transforming and aggregating data. 继续阅读 »
2014-04-26 Robin Wen
目录 Table of Contents {:toc} 文/温国兵 SQL Server快速导入数据,可以尝试的方法如下:CTE、OpenRowSet/OpenDataSource、BULK INSERT、bcp、Shell。 下面依次介绍这几种办法。 1.CTE 首先,我们看看什么是CTE。公用表表达式(Common Table Expression)是SQL SERVER 2005版本之后引入的一个特性。CTE可以看作是一个临时的结果集,可以在接下来的一个SELECT,INSERT,UPDATE,DELETE,MERGE语句中被多次引用。使用公用表达式可以让语句更加清晰简练。CTE 与派生表类似,具体表现在不存储为对象 继续阅读 »
2017-12-30 Vaniot
sql