SQL tips

1、count(*),count(1),count(列)

前两者没区别。

SQL检测count()中的表达式是否为null,如果为null则不计数,非null则计数。

count(列)会计数出不为空的列。

count(*)在执行时会找一个非null列,如果有索引,则使用索引。为了性能,SQL会选择最窄的索引以减少IO。

如果某表count(*)使用很多,考虑在最短的列建立单列索引,会极大的提升性能。

时间: 2024-08-02 06:59:58

SQL tips的相关文章

Oracle SQL Tips

左连接的同时只输出关联表的一条记录 WITH X AS (SELECT 1 ID FROM DUAL UNION SELECT 2 FROM DUAL UNION SELECT 3 FROM DUAL), Y AS (SELECT 1 ID, 1 NR, 'B' CODE FROM DUAL UNION SELECT 1, 2, 'A' FROM DUAL UNION SELECT 2, 2, 'A' FROM DUAL) -- end of test data SELECT * FROM (S

[转]Porting to Oracle with Entity Framework NLog

本文转自:http://izzydev.net/.net/oracle/entityframework/2017/02/01/Porting-to-Oracle-with-Entity-Framework.html We had to port our giant-_ish_, Entity Framework based application to work on Oracle RDBMS (11g, later 12c). We did it. And we learned a lot.

mysqldump详解

Ⅰ.mysqldump的简单使用与注意点 1.1 基本参数 只备份innodb,用不了几个参数,记住下面几个即可,其他的没什么卵用 -A 备份所有的database -B 备份哪几个数据库 -R 备份存储过程(-- routines) -E 备份定时任务(-- events) -d 只备份表结构 -w 备份过滤数据 -t 只备份数据 -q 直接读数据,绕过缓冲池,默认已加 --triggers 备份触发器 --master-data=2 在备份文件中以注释的形式记录备份开始时binlog的pos

《Java程序设计》第十一章 JDBC与MySQL数据库

目录 java.sql Tips java.sql 安装导入方法见娄老师博客Intellj IDEA 简易教程 照惯例给出官方文档Package java.sql,记得熟练使用ctrl+f以及提高英语水平 java数据库操作中经常用到的类或方法:DriverManager.Connection.Statement DriverManager的getConnection方法,用来和数据库建立连接,如果成功建立连接,返回一个Connection对象:如果失败,抛出SQLException,连接超时的

ref:Manual SQL injection discovery tips

ref:https://gerbenjavado.com/manual-sql-injection-discovery-tips/ Manual SQL injection discovery tips August 26, 2017 According to bugbountyforum.com's AMA format one of the most popular questions is How do you test for Server Side vulnerabilities su

关于 SQL Server 数据库批量备份与还原的一些 Tips

一.前提 最近需要将服务器 A 上的数据库全部备份,并在服务器 B 上进行还原,30多个数据库一个一个地用鼠标点,先是 backup,之后时 restore……整个过程实在是太浪费时间了!于是直接写一个小工具来批量备份还原数据库,这里记录一下一些 Tips,方便自己以后查看. 二.写配置文件 首先,我将数据库连接字符串和自动备份的目录路径写在了配置文件里,方便在以后数据库连接或者存储目录变动时,直接修改配置文件里的对应值就可以了. App.config 具体结构如下: <?xml version

sql注入tips

转自http://www.wupco.cn/?p=3764 cuit 首先Web300 山水集团 第一步找到加密接口搭代理就不说了 接下来是注入,filter如下 这里主要的难点在于如何按字节拆解返回的值,以完成按字节爆破盲注,waf拦截了我们常用的substr,like,left等函数,这里我查了一下官方文档,找到position函数. 通过position((str1)IN(str2))绕过空格的拦截,至于=用!(<>)绕过,然后形成最终payload (1)or(!(position((

Tips:SQL server 2012报表服务器error 40报错

在现有的SQL server 2012 SP1数据库上启用reporting services功能后,发现无法配置报表数据库,如下图报错. provider:命名管道提供程序 error:40-无法打开到SQL server的连接 解决方法: 需要打开SQL server配置管理器,找到SQL server网络配置,找到实例项目的TCP/IP协议,把静态端口修改为1433,如图. 然后就可以正常连接到SQL server配置报表数据库了.

SQL Code tips (持续更新)

1.  表存在,查询语句也能执行,但是表名下面总是有条红线,说对象名无效 CTRL + SHIFT +R  刷新本地缓存就可以了 2. IDE (Integrated Development Environment,集成开发环境)下 SQL 2012下,列编辑! 使用ALT 选中某一列或某多列,然后松开就可以在此位置开始进行列删除/列编辑/列插入了