我想知道PostgreSQL的功能是什么。
我什么时候写他们?
我该怎么写?
我该怎么称呼他们?什么是PostgreSQL函数,什么时候我必须使用它们?
回答
定义,from wikipedia:
的一般存储过程存储过程是提供给应用程序 访问关系数据库系统的子程序。
优势,from wikipedia:
开销:由于存储过程中的语句直接存储在 数据库中,他们可能会删除编译开销 的全部或部分是在软件应用程序 将内联(动态)SQL查询发送到数据库的情况下通常需要使用。 (...)
避免网络流量:主要优势在存储过程中 是,他们可以在数据库引擎中直接运行。在 生产系统中,这通常意味着程序完全在专门的数据库服务器上运行 ,该服务器可直接访问要访问的数据。这样做的好处是可以完全避免网络通信成本。这对于复杂的一系列SQL语句尤其重要。
业务逻辑封装:存储过程允许程序员 嵌入业务逻辑数据库中的API,它可以简化 数据管理,减少需要的逻辑 客户端程序的其他地方进行编码。 (...)
代表团访问权限:在许多系统中,存储过程可以 授予访问权限给谁执行这些程序 用户不直接对数据库。
SQL注入攻击的一些保护:用于防止注入攻击的存储过程可以是 。即使攻击者插入SQL命令,存储过程参数 也将被视为数据。 (...)
在PostgresSQL存储过程被称为用户定义函数。 定义例如:
CREATE FUNCTION somefunc(quantity integer) RETURNS integer AS $$
DECLARE
myvariable integer := 2;
BEGIN
RETURN quantity * myvariable;
END;
$$ LANGUAGE plpgsql;
(您可以使用其他语言PostgreSQL中定义存储功能)
调用例如:
SELECT somefunc(100);
更多信息:http://www.postgresql.org/docs/9.1/static/server-programming.html
PostgreSQL的运行存储过程以十几种编程语言,包括Jav a,Perl,Python,Ruby,Tcl,C/C++和它自己的 PL/pgSQL,它类似于Oracle的PL/SQL。
使用存储过程的取决于你的需求和依赖于你的程序的逻辑,在我看来,存储过程只是在某些情况下非常有用,而不是以往任何时候都...
我用存储已经过程在多数据库服务器应用程序中,在这种情况下,使用存储过程可能非常有用,例如,如果您有一个查询需要修改以便在另一个数据库服务器类型中运行,那么您可以编写一个存储过程,并从程序中调用它,确保它运行并检索想要的结果集,而不会对客户端代码进行任何更改。
要了解如何在PostgreSQL中创建存储过程,请参阅文档this page。
主要优点是减少网络流量开销。存储过程与业务逻辑或逻辑轮胎几乎相同(不完全)。它的主要优势在于制定动态的企业应用程序。仅仅因为缺乏动态的数据库结构,您可以发现100多件好的产品失败。存储过程,函数,触发器,数据库的序列,索引和关系性质是创建优秀应用程序的真正关键。我公司一直试图通过存储过程来减少客户端逻辑层。大多数关键逻辑都存储在存储过程中,这使得程序员和测试人员感到高兴并满足他们的时间表。
- 1. 什么是BigInteger,我们什么时候可以使用它?
- 2. 什么是SWC,什么时候/我们在Flash中使用SWC
- 3. 什么样的代码我必须在OnCreate()和什么时候我必须把它放在OnCreateView()?
- 4. 什么是JavaScript对象,它们什么时候有用?
- 5. 什么时候必须围绕try/catch?
- 6. 什么是切换按钮以及我们什么时候可以使用它?
- 7. 什么是仿函数,为什么我们需要它们?
- 8. 什么是MvcHtmlString,我应该什么时候使用它?
- 9. CourseCompletions是什么?它们是什么时候创建的?
- 10. intn_t什么时候使用它,什么时候不使用
- 11. 我什么时候必须使用scikit的fit方法学习?
- 12. 什么时候我必须使用boost :: asio:strand
- 13. 什么时候我们使用let rec?
- 14. Android:我们什么时候使用getIntent()?
- 15. 我们什么时候使用XMLSerialization?
- 16. 什么时候必须要在C++类中定义析构函数,为什么?
- 17. 函数ggplot:什么时候它不识别参数,什么时候它?
- 18. 什么时候我们必须在C#中使用extern别名关键字?
- 19. 什么时候我们必须在C#中使用checked运算符?
- 20. 什么时候注入构造函数,什么时候是CDI
- 21. EGL_KHR_IMAGE < - 它是什么,什么时候应该使用它
- 22. 什么是序列(数据库)?我们什么时候需要它?
- 23. 什么是http标题,什么时候需要指定它们
- 24. 我们什么时候需要在codeIgniter中使用base_url()函数?
- 25. MSBuild:它是什么,我什么时候需要它?
- 26. R的class.ind()函数做什么?我什么时候可以使用它?
- 27. 为什么我们必须综合?
- 28. 为什么使用form_for时它必须是current_user而不是@user
- 29. 我们必须在函数“return”的末尾写什么?在C++
- 30. 数学:我们什么时候使用对数,它是如何工作的?
在PostgreSQL存储过程被称为“用户定义的函数”。 – filiprem