闲话 SQL

[本文非正论,编写中,望阅者留言。]

标准答案似乎是 Structured Query Language .  其核心是: 运用各种逻辑条件, 从大量的数据中提取所需. 既:
select ... from ... where ...
各位同学: 这句会了? OK, 你了解SQL了.
其他的 create table, create view, create index ... insert / update / delete ... / trans等等,以及各种SQL提供的内置函数、存储过程什么的,都只是为了保障数据的可靠、准确,方便使用、易于管理维护而提供的工具。
各位同学: 这些都会了? OK, 你懂SQL了.
那位同学: 什么? 您精通SQL? 您会什么?
这位同学: 什么? 您擅长SQL? 那么您一定是个逻辑学的专家. 请告诉我: 您大姑的二舅妈的三姨的四女婿的丈母娘的五大爷家小六子的七闺女的第八个儿子的第九个兄弟.. 和您老是什么关系? :p

sorry, 上面的那句话有点儿伤人. 我这里道歉了先。

SQL的基本功能: 登记数据、修改数据、查询数据、统计数据
登记数据的方法主要是Insert, 如果了解BCP/bulk insert则可以快速地从外部文本文件导入数据。
修改数据的主要方法是Update/Delete, 一定要注意修改的是哪一条或哪些数据. 这个时候主键、或条件逻辑就非常重要了。
查询数据的关键是需求: 你要哪些数据。将这个需求转化为逻辑语句--你的Where条件就有了。
统计数据的方法: SUM(), AVG(), COUNT(), ... 要进阶的话,了解一下Having, Grouping, ..
修改数据、查询数据、统计数据这些处理通常均需要Where., 这样您需要常常练习各种逻辑的表达。
熟练掌握了需求到逻辑表达的转换、逻辑表达到SQL语句的转换您就会用SQL处理常见的问题了。
这些就是学SQL要先学的一点东西。

在应用系统中SQL是个什么样的地位呢?
“核心”, “基础” -- 正确, 计算机就是数据输入、处理、输出的工具。作为数据存储、提取的管理工具,在应用系统中自然地处在核心或曰基础地位。但是这个答案不得分。
能够得分的答案是"应用系统的配角"。应用系统的业务逻辑才是系统的核心、基础,SQL所处理的数据为应用系统所使用,且为其所依赖的部分可以称为其核心、基础。但SQL部分仅仅是为了配合应用系统,使其更专业、更优良而存在的。
那个SQL狂人: 别不服气。给你个数据表,将其中的5个字段,按其枚举值输出10种二维表,每个表的表头包括...
一分钟时间计时,开始...

现在,大家统一了SQL在应用系统中的地位问题的意识。那么我们在应用系统开发的过程中应该采用什么样的态度呢?积极的态度。在项目小组的成员内部,我们应该活跃于什么位置呢?主力的位置。
应用系统的核心由我们提供存储、提取的界面,我们当然应该和系统需求者、设计者一起探讨数据如何存储更准确、可靠、有效率,更便于系统运营维护,更有利于代码开发者的使用...
既然由我们为前台或中间件的coder提供数据IO, 那么, 他们所设计的类、对象、枚举、字典应该统统地让我们知道,他们索取数据的作用、存储过程接口规范..统统应该纳入到我们与他们之间的沟通文档或备忘录上。
..

谁在用SQL呢?应用系统设计者,开发人员,系统运营维护人员。
作为系统设计者其实并不用太关注SQL,他们关心的是对象、关系、核心数据模型、信息流、系统搭建、开发、学习、维护的成本,只不过这些和常见的SQL服务或他们所熟悉的SQL服务紧密相关(若非如此,设计师可能在一开始的时候就强制指定使用XML作为数据存储方式)。
而开发者通常考虑的是数据的存储、提取,通常而言,他们的视角在于如何使代码更容易编写、逻辑更为清晰、问题更容易定位追踪。一些资深开发者会多考虑一些数据完整性一致性以及效率的问题。
而维护人员考虑的多在于系统安全维护、性能提升、故障处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值