C# 开发必备 SQLServer 全套教程:部署、高级查询、索引、触发器、存储过程,开发电商管理系统
- C#
- -184分钟前
- 16热度
- 0评论
来源: C# 开发必备 SQLServer 全套教程:部署、高级查询、索引、触发器、存储过程,开发电商管理系统
一、SQL Server 部署与基础配置:从安装到能用
很多新手一上来就写 SQL,连安装配置都没搞对,后期各种性能坑。部署这一步,核心就三件事:选对版本、配好参数、做好安全。
1. 版本选择
-
开发学习:SQL Server 2022 Developer 版(免费,功能全) -
生产环境:Enterprise / Standard 按业务规模选 -
轻量部署:Express 版(免费,有 10G 数据库大小限制)
2. 安装关键配置
安装时注意两个选项:
- 身份验证模式
:选「混合模式 (SQL Server 身份验证和 Windows 身份验证)」,设置 sa 强密码 - 数据目录
:别放 C 盘,单独挂数据盘,日志文件和数据文件分盘存放


二、高级查询:告别只会 SELECT * 的水平
普通查询谁都会,真正拉开差距的是复杂业务场景下的高效查询能力。电商系统里最常用的几个高级语法,必须吃透。
1. CTE 公用表表达式:递归查询商品分类
电商的商品分类是典型的树形结构,用 CTE 递归一行代码搞定层级查询。
2. 窗口函数:订单排名与分组统计
这是面试高频考点,也是业务报表的核心。计算每个用户的订单金额排名、累计消费,窗口函数比子查询简洁 10 倍。
3. PIVOT 行转列:销售数据透视
统计每个商品每月销量,行转列直接输出报表格式:

4. MERGE 合并:增量同步数据
商品库存同步、数据归档场景,MERGE 一条语句同时完成增删改:

三、索引优化:查询速度提升 100 倍的核心
慢查询 90% 的问题都出在索引上。但索引不是越多越好,写操作频繁的表索引多了反而拖慢性能。
1. 聚集索引 vs 非聚集索引
- 聚集索引
:表数据物理排序,一张表只能有一个,主键默认就是聚集索引 - 非聚集索引
:单独存储的索引页,叶子节点存主键值,可建多个

-
对索引列使用函数(如 WHERE YEAR(CreateTime) = 2026) -
模糊查询左通配( WHERE ProductName LIKE '%手机%') -
隐式类型转换 -
OR 连接非索引列 -
数据量太小,优化器选择全表扫描
四、触发器:数据变化自动响应
触发器是特殊的存储过程,在表数据发生 INSERT/UPDATE/DELETE 时自动执行。电商里最常用的就是库存扣减、操作日志、数据同步。
1. AFTER 触发器:下单自动扣库存
⚠️ 注意:触发器慎用,能在业务代码做的逻辑尽量别放触发器,调试和维护成本很高。适合强一致性、必须在数据库层保证的场景。
五、存储过程:封装复杂业务逻辑
存储过程把一组 SQL 预编译在数据库里,执行效率高,还能减少网络传输。电商的订单结算、报表生成、批量处理都适合用存储过程实现。
实战:创建订单存储过程
六、电商管理系统:数据库设计全景
最后把上面所有知识点整合起来,给大家一套完整的电商核心表结构设计,直接就能用在项目里。
核心表清单
- 用户表 Users
(用户信息、余额、积分) - 商品分类表 ProductCategories
(树形分类) - 商品表 Products
(SPU 信息) - 商品规格表 ProductSkus
(SKU、库存、价格) - 订单表 Orders
(订单主表) - 订单明细表 OrderDetails
(订单商品明细) - 购物车表 ShoppingCarts
- 收货地址表 UserAddresses
- 支付记录表 Payments
- 库存流水表 StockLogs
(出入库记录)
-
所有业务表都加 IsDeleted逻辑删除字段 -
关键字段加索引,写操作频繁的表控制索引数量 -
订单、支付等核心操作使用事务 + 存储过程保证一致性 -
数据量大的表提前做分区或分表方案
后续还会更新更多.NET 实战干货,包括 EF Core 性能优化、微服务架构、工业上位机开发,想看什么也可以留言告诉我。
觉得有用的话,点个赞和在看,转发给身边做.NET 的朋友,咱们下期见。



