SQL的函数和过程正确的描述是
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL的函数和过程正确的描述是相关的知识,希望对你有一定的参考价值。
SQL的函数和过程正确的描述是
SQL允许定义函数、过程和方法。定义可通过SQL的有关过程的组件,也可以通过外部的程序设计语言,如Java,C或C++。SQL标准所定义的语法,与大多数数据库实现的自身的非标准版本的语法不同。函数和过程允许“业务逻辑”作为存储过程记录在数据库中,并在数据库中执行。
业务逻辑能够被写成程序设计语言过程并完全存储在数据库之外,但把它们定义成数据库中的存储过程有几个优点:
1 允许多个应用访问这些过程。
2.允许当业务规则发生改变时进行单个点的改变,而不变改变应用系统的其他部分。
3.应用代码可以调用存储过程,而不是直接更新数据库关系。
具体操作如下:
1. 声明方式。
2.调用函数和过程可以在过程或者嵌入式SQL语言中使用call语句调用。
3. 函数与过程的语言构造
SQL所支持的构造赋予了它与通用编程语言相当的几乎所有的功能。SQL标准中处理这些构造的部分称为持久存储模块(Persistent Storage Module, PSM)。 变量通过declare语句进行声明,可以是任意的合法SQL类型。使用set语句进行赋值。一个复合语句有begin……end的形式,在begin和end之间会包含复杂的SQL语句。一个形如begin atomic……end的语句可以确保其中包含的所有语句作为单一的事务来执行。
(1)while语句。
(2)repeat语句。
(3)for循环(类似于for……in语句)。
(4)if-then-else。
(4)case语句。
在begin……end之间的语句可以执行signal out_of_classrome_seats来引发异常。这个句柄说明如果条件发生,将会采取动作终止begin end中的语句。另一个可选的动作是continue,它继续从引发异常的语句的下一条语句开始执行。
聚合函数在数据库数据的查询分析中,应用十分广泛。本节将分别对各聚合函数的应用进行说明。
8.2.1 求和函数——SUM()
求和函数SUM( )用于对数据求和,返回选取结果集中所有值的总和。语法如下。
SELECT SUM(column_name)
FROM table_name
说明:SUM()函数只能作用于数值型数据,即列column_name中的数据必须是数值型的。
实例1 SUM函数的使用
从TEACHER表中查询所有男教师的工资总数。TEACHER表的结构和数据可参见5.2.1节的表5-1,下同。实例代码:
SELECT SUM(SAL) AS BOYSAL
FROM TEACHER
WHERE TSEX='男'
运行结果如图8.1所示。
图8.1 TEACHER表中所有男教师的工资总数
实例2 SUM函数对NULL值的处理
从TEACHER表中查询年龄大于40岁的教师的工资总数。实例代码:
SELECT SUM(SAL) AS OLDSAL
FROM TEACHER
WHERE AGE>=40
mssql sql server 系统更新,如何正确的增加表字段
转自: http://www.maomao365.com/?p=5277
摘要:
下文主要讲述,如何对"已上线的系统"中的表,增加新的字段。
系统部署脚本,增加列的方法:
在系统脚本发布中,如何是存储过程 自定义函数 视图的修改和新增,我们通常采用以下步骤来编写此类脚本
1 判断对象(存储过程 自定义函数 视图)是否存在,如何存在我们就删除对象(存储过程 自定义函数 视图)
2 新建对象
<hr />
但是增加系统字段(列)时,我们不能采用删除表,然后重新的方式进行脚本处理,
那么我们通常采用 先判断列是否存在,如果不存在就创建列,如果存在就修改列属性<span style="color:red;font-weight:bold;">(修改列属性--请注意是否会影响历史数据)</span>
例:
IF NOT EXISTS(SELECT * FROM SYS.COLUMNS WHERE OBJECT_ID = OBJECT_ID(N‘表名‘) AND NAME = ‘列名‘) ---判断列是否存在 begin ---增加列 alter table [表名] add column [列名] [列类型] end else begin ---修改列属性 alter table [表名] add column [列名] [列类型] end
采用以上方式编写sql部署脚本的优点为,sql脚本可以执行多次,不会出现报错信息,可以避免已经手动增加列的数据库产生部署错误提示信息
以上是关于SQL的函数和过程正确的描述是的主要内容,如果未能解决你的问题,请参考以下文章