SQL小结(二)

对查询分组后,使用聚集函数COUNT(*),以统计每个分组的行数目。星号表示对分组的所有列计数。

当需要过滤结果集中的数据group by语句在where语句之后运行,所以用having过滤条件。

AVG()返回集合中的平均值;SUM()返回集合中的所有值的和;COUNT()返回集合中的个数;MIN()返回集合中的最小值;MAX()返回集合中的最大值。

当使用not in或<>运算符比较时,必须确保值集中不包含null值,(使用WHERE``` IS NOT NULL)否则将返回空集。

对于隐式分组,当SELECT语句中只包含聚集函数时,无需指定group by语句。当不只有聚集函数时,应指定group by语句。、

EXISTS语句用于简单查询子查询能否返回至少一行,而子查询一般只需用select 1或select *语句输入。

合理运用select语句和集合语句可以建立一个临时结果集。再将其运用到复合查询中。

date_add()函数将括号中的数字加上日期。

例:date_add('2009-01-01', INTERVAL (ones.num +```) DAY)

SET AUTOCOMMIT = 0(Mysql关闭自动提交单个语句模式),一旦离开了自动提交模式,所有的SQL命令都会发生在同一个事务的范围,并且必须显示地对事务进行提交或者回滚。(每次登陆时关闭自动提交模式,并养成在事务内运行SQL语句的习惯)MYSQL使用start transaction启动事务commit结束事务,rollback回滚事务。

对于mysql和sql server,数据库的修改,无论是增加一个新表或新索引还是删除某表中的一列,都不能被回滚。

创建事务保存点,SAVEPOINT name,并且回滚ROLLBACK TO SAVEPOINT name;COMMIT;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SQL Server 存储过程是一组 SQL 语句的集合,可以被编译并保存在数据库中,以便重复使用。存储过程可以提高查询性能,减少网络流量,简化复杂的查询过程,使代码更容易维护。然而,存储过程的性能也可能受到许多因素的影响,包括查询语句的复杂性、索引的使用、参数的传递方式等等。下面是一些 SQL Server 存储过程调优的小结: 1.使用 SET NOCOUNT ON 语句:这个语句可以关闭每条 SQL 语句返回的行数,减少网络流量。 2.使用 WITH RECOMPILE 选项:这个选项可以在每次执行存储过程时重新编译查询计划,确保每次都使用最优的执行计划。 3.使用 OUTPUT 参数代替 SELECT 语句:在存储过程中,使用 OUTPUT 参数可以避免使用 SELECT 语句来返回结果集,从而减少网络流量。 4.使用适当的索引:为存储过程中的查询语句创建适当的索引可以大大提高查询性能。 5.避免使用函数:存储过程中使用函数会导致查询计划的重新编译,影响性能。 6.使用临时表:在存储过程中使用临时表可以减少查询语句的复杂性,提高查询性能。 7.使用参数化查询:使用参数化查询可以避免 SQL 注入攻击,同时可以提高查询性能。 8.避免使用大量的 IF 语句:使用大量的 IF 语句会导致存储过程的复杂性增加,影响性能。 9.使用 TRY/CATCH 语句:在存储过程中使用 TRY/CATCH 语句可以处理异常,保证代码的健壮性。 10.使用 SET ANSI_NULLS 和 SET QUOTED_IDENTIFIER 选项:在存储过程中使用这两个选项可以确保查询语句的正确性和可靠性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值