SQL的前世今生
前言里,我谈到了一些FORTRAN程序员和一名LISP程序员的事,前者只会使用循环来解决问题,后者只会使用递归方式解决问题。这种情况并不
少见,因为人们都喜欢使用自己了解的工具。下面讲一个笑话,不是真事:有人给一个数学家、一个物理学家和一个数据库程序员各发了一个橡皮球,并且让他们确
定球的体积。
数学家认真地测量了直径,然后用球体积公式计算出了球的体积,或者认为这个球不很圆,就用三重积分计算了球的体积。
物理学家则在一个大烧杯中接满了水,把球放入水中,测量出排水量。他并不关心这个球是什么形状。
数据库程序员呢,他到橡皮球生产商的在线数据库里查了这个球的型号和产品序列号,根本不关心这是不是球。他获得了这个球的制造公差、设计形状和尺寸以及其他许多与整个橡皮球生产过程有关的参数。
这个故事说明:数学家知道如何计算,物理学家知道如何测量,而数据库技术人员知道如何查找数据。每个人都采用自己的工具来解决问题。
现在我们把问题扩展到仓库中成千上万个橡皮球。 数学家和物理学家因此会花费大量的手工劳动完成任务,而数据库技术员只要下载一些信息,就能够得出橡皮球的工业标准(假设有这种标准)以及详尽得可以用于法庭辩论的文档。
不同的编程模型
自我完善的过程就是在学习新知识的同时,忘记老的习惯。
——Edsgar Dijkstra
编程模型有多种。过程式编程语言使用的是由流控制语句(WHILE-DO、IF-THEN-ELSE和BEGIN-END)控制的一系列过程步骤,借此把输入数据转换成输出数据。这是对编程的一种传统认识,因为这是著名的数学家约翰·冯·诺伊曼归纳出来的,后来也常被称为冯·诺伊曼模型。
同样的源代码经相同的编译器编译之后,每次都生成相同的可执行模块。该程序在每次调用时都以完全相同的方式工作。这种模型中的关键字是可以预测和确定的。 由于这种模型具有可确定性,所以主要用于一些数学分析。
函数式编程语言的基础是用一系列嵌套的函数调用来解决问题。在这些语言中,高阶函数可以转换自身的功能,这个概念非常重要。导数变换和积分变换就是这种高阶函数在数学上应用的实例。这种语言的目标之一是避免在程序中出现副作用,保证它们能够以代数的方式进行优化。特别是,一旦某个表达式与另一个表达式相等(某种意义上的相等) ,它们就可以替换,而不会影响整个运算结果。
APL是最成功的函数式编程语言。自从1962年Ken Iverson的A Program
相关文档:
create PROCEDURE pagelist
@tablename nvarchar(50),
@fieldname nvarchar(50)='*',
@pagesize int output,--每页显示记录条数
@currentpage int output,--第几页
@orderid nvarchar(50),--主键排序
@sort int,--排序方式,1表示升序,0表示降序排列
......
系统环境:Windows 7
软件环境:Visual C++ 2008 SP1 +SQL Server 2005
本次目的:编写一个航空管理系统
这是数据库课程设计的成果,虽然成绩不佳,但是作为我用VC++ 以来编写的最大程序还是传到网上,以供参考。用VC++ 做数据库设计并不容易,但也不是不可能。以下是我的程序界面,后面 ......
存储过程getRecordfromPage的内容
//getRecordfromPage.sql
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[getRecordfromPage]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[getRecordfromPage]
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS OFF
G ......
create PROCEDURE [dbo].[AllDnn_NewsPublish_DeleteArticleByArticle]
@ArticleID nvarchar(200)
AS
declare @sql nvarchar(1000)
set @sql='DELETE dbo.Site_News_Article where ArticleID in ('+@ArticleID+')'
exec (@sql)
--[AllDnn_NewsPublish_DeleteArticleByArticle] '50,51' ......
曾经有想通过创建sql server视图调整应用性能的想法,不过后来证明这个想法是行不通的。
做了个实验,在对原来的sql语句调整之后创建了两个视图,把原来的sql转换为视图了,通过视图来读取数据。最终的比较结果是通过视图比直接使用sql语句要慢,通过视图来提高sql的性能看来是不行 ......