T-SQL Recipes------Select

本文介绍了SQL Server中的多种查询技巧,包括NOT操作符的使用、保证WHERE子句的非二义性、OrderBy默认升序规则、Top子句支持百分比类型、GroupByAll包括不符合条件的行、Having对聚合结果过滤、使用Select动态生成脚本、INTO子句创建表并插入数据、子查询、Join、Derived表、Apply操作、TABLESAMPLE返回随机行、PIVOT/UNPIVOT行列转换、EXCEPT/INTERSECT记录集计算、WithCube/WithRollup统计计算、JoinHints、QueryHints、TableHints的应用、公用表表达式的使用。

 

1. NOT操作符
     SELECT Title, FirstName,LastName
     FROM Person.Contact
     WHERE NOT Title = 'Ms.'

2. 保证WHERE字句的非二义性
     当存在多个操作符,如NOT,AND,OR的时候,实用括号分开各个逻辑条件。

3. Order By
     默认是升序,默认情况下,采用聚簇索引的物理记录顺序作为升序。

4. Top
     SQL Server 2005支持百分比类型的Top子句
      DECLARE @Percentage float
      SET @Percentage = 1
      SELECT TOP (@Percentage) PERCENT
      Name
      FROM Production.Product
      ORDER BY Name

5. Group By All
     即使不符合Where条件的行,也会被Group By语句包括。不同的聚集函数对NULL的处理是不同的,比如AVG忽略NULL记录,但
是COUNT不会。

6. Having
     对经过Group或者聚簇后的结果数据进行条件Filter。

7. 采用Select动态生成脚本
    SELECT column_name + ' IS NULL AND '
    FROM INFORMATION_SCHEMA.columns
    WHERE table_name = 'Employee'
    ORDER BY ORDINAL_POSITION

8. INTO子句
    实现表的创建和数据插入
        SELECT select_list
        [INTO new_table_name]
        FROM table_list
    只实现表的创建,不包含数据
        SELECT CustomerID,Name,SalesPersonID,Demographics
        INTO Store_Archive
        FROM Sales.Store
        WHERE 1=0
     拷贝过程不包含触发器,索引等对象。

9. 子查询
    查询结果依赖与子查询的返回集,类似与函数调用。

10. Join
    可以把一个物理表看作两个逻辑表,进行自连接查询。

11. Derived表
     Derived表是用Select的结果充当From子句的内容,有时性能比使用临时表要好。

12. Apply操作
     使用 APPLY 运算符可以为实现查询操作的外部表表达式返回的每个行调用表值函数。表值函数作为右输入,外部表表达式作为
左输入。通过对右输入求值来获得左输入每一行的计算结果,生成的行被组合起来作为最终输出。APPLY 运算符生成的列的列表是左输入中的列集,后跟右输入返回的列的列表。

13. TABLESAMPLE
     SQL Server 2005新特性,基于页面数按照百分比,返回随机行。
         SELECT FirstName,LastName
         FROM Person.Contact TABLESAMPLE SYSTEM (1 PERCENT)

14. PIVOT/UNPIVOT
     对记录实现行列转换。

15. EXCEPT, INTERSECT
     SQL Server 2005新特性,对记录集进行差集和交集计算。

16. With Cube
     基于Group By中的各种列组合去进行统计计算。

17. With Rollup
     基于Group By中的各种列值的层次去进行统计计算。

18. 使用Join Hints
      如SET SHOWPLAN_TEXT ON,返回执行计划信息。

19. 使用Query Hints
      如Recompile,不使用旧的查询计划,重新进行编译。

20. 使用Table Hints
      如Rowlock,Index等强制实用某种锁类型和特殊索引。

21. 公用表表达式
     用表表达式 (CTE) 可以认为是在单个 SELECT、INSERT、UPDATE、DELETE 或 CREATE VIEW 语句的执行范围内定义的临
时结果集。CTE 与派生表类似,具体表现在不存储为对象,并且只在查询期间有效。与派生表的不同之处在于,CTE 可自引用,还可在同一查询中引用多次。使用 CTE 可以获得提高可读性和轻松维护复杂查询的优点。查询可以分为单独块、简单块、逻辑生成块。之后,这些简单块可用于生成更复杂的临时 CTE,直到生成最终结果集。 可以在用户定义的例程(如函数、存储过程、触发器或视图)中定义 CTE。

内容概要:本文详细介绍了“秒杀商城”微服务架构的设计与实战全过程,涵盖系统从需求分析、服务拆分、技术选型到核心功能开发、分布式事务处理、容器化部署及监控链路追踪的完整流程。重点解决了高并发场景下的超卖问题,采用Redis预减库存、消息队列削峰、数据库乐观锁等手段保障数据一致性,并通过Nacos实现服务注册发现与配置管理,利用Seata处理跨服务分布式事务,结合RabbitMQ实现异步下单,提升系统吞吐能力。同时,项目支持Docker Compose快速部署和Kubernetes生产级编排,集成Sleuth+Zipkin链路追踪与Prometheus+Grafana监控体系,构建可观测性强的微服务系统。; 适合人群:具备Java基础和Spring Boot开发经验,熟悉微服务基本概念的中高级研发人员,尤其是希望深入理解高并发系统设计、分布式事务、服务治理等核心技术的开发者;适合工作2-5年、有志于转型微服务或提升架构能力的工程师; 使用场景及目标:①学习如何基于Spring Cloud Alibaba构建完整的微服务项目;②掌握秒杀场景下高并发、超卖控制、异步化、削峰填谷等关键技术方案;③实践分布式事务(Seata)、服务熔断降级、链路追踪、统一配置中心等企业级中间件的应用;④完成从本地开发到容器化部署的全流程落地; 阅读建议:建议按照文档提供的七个阶段循序渐进地动手实践,重点关注秒杀流程设计、服务间通信机制、分布式事务实现和系统性能优化部分,结合代码调试与监控工具深入理解各组件协作原理,真正掌握高并发微服务系统的构建能力。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值