儲存過程和檢視的區別
SQL裡面不帶引數的儲存過程與檢視的區別
1、儲存過程是程式化的sql可以實現一般sql不能實現的功能。 如:先檢索一個表得到一些資料,經過一定的編輯後更新到另外一個表中、這就可以用不帶引數的儲存過程實現。 2、檢視是虛擬表,不儲存資料,儲存的是sql,檢索他的時候實際上是執行定義它的sql語句。
說明:從你的問題上可以看出,你使用儲存過程僅僅是用它檢索資料,所以你會產生這樣的疑問,一定要記住,儲存過程理解的簡單一點就是“資料庫中的程式”,
可以在不需要外部程式(如C,java,vb等)的情況下,讓資料庫自己解決複雜的、用一般sql不能實現的功能,而檢視則不然。
檢視和儲存過程比是沒什麼意義的檢視就是虛擬表,把檢視和表比較還有點意思
檢視不佔實際空間,可以對任意的表進行疊加和剪裁,利用分割槽檢視的功能,能加快表的I/O讀取時間(需要2塊以上硬碟)
檢視只不過是儲存在sql server上的select語句罷了,當對檢視請求時,sql server會像執行一句普通的select語句那樣的執行檢視的select語句,它的效能並不像人們想象得那麼出色。
而儲存過程在編譯後可以生成執行計劃,這使得每次執行儲存過程的時候效率將會更高,這是儲存過程,另外臺提交引數的時候,使用儲存過程將會減少網路頻寬流量,這是儲存過程相對於普通的sql語句在效能上的最大的優勢。
檢視可以被看成是虛擬表或儲存查詢。可通過檢視訪問的資料不作為獨特的物件儲存在資料庫內。資料庫記憶體儲的是 SELECT 語句。SELECT 語句的結果集構成檢視所返回的虛擬表。使用者可以用引用表時所使用的方法,在 Transact-SQL 語句中通過引用檢視名稱來使用虛擬表。使用檢視可以實現下列任一或所有功能:將使用者限定在表中的特定行上。
例如,只允許僱員看見工作跟蹤表內記錄其工作的行。
將使用者限定在特定列上。
例如,對於那些不負責處理工資單的僱員,只允許他們看見僱員表中的姓名列、辦公室列、工作電話列和部門列,而不能看見任何包含工資資訊或個人資訊的列。
將多個表中的列聯接起來,使它們看起來象一個表。
聚合資訊而非提供詳細資訊。
例如,顯示一個列的和,或列的最大值和最小值。
------------------
資料庫中的索引與書籍中的索引類似。在一本書中,利用索引可以快速查詢所需資訊,無須閱讀整本書。在資料庫中,索引使資料庫程式無須對整個表進行掃描,就可以在其中找到所需資料。
------------------
儲存過程可以使得對資料庫的管理、以及顯示關於資料庫及其使用者資訊的工作容易得多。儲存過程是 SQL 語句和可選控制流語句的預編譯集合,以一個名稱儲存並作為一個單元處理。儲存過程儲存在資料庫內,可由應用程式通過一個呼叫執行,而且允許使用者宣告變數、 有條件執行以及其它強大的程式設計功能。
儲存過程可包含程式流、邏輯以及對資料庫的查詢。它們可以接受引數、輸出引數、返回單個或多個結果集以及返回值。
可以出於任何使用 SQL 語句的目的來使用儲存過程,它具有以下優點:
可以在單個儲存過程中執行一系列 SQL 語句。
可以從自己的儲存過程內引用其它儲存過程,這可以簡化一系列複雜語句。
儲存過程在建立時即在伺服器上進行編譯,所以執行起來比單個 SQL 語句快。
1、執行速度比普通的baiSQL語句快
再執行儲存過程du前,資料庫已對其進行了語法和句法分析,並給出了優化執行方案。這種已經編譯好的過程可極大地改善SQL語句的效能。 由於執行SQL語句的大部分工作已經完成,所以儲存過程能以極快的速度執行。
2、便於集中控制
當企業規則變化時,只需要在資料庫的伺服器中修改相應的儲存過程,而不需要逐個的在應用程式中修改,應用程式保持不變即可,這樣就省去了修改應用程式工作量。
3、可以降低網路的通訊量
4、保證資料庫的安全性和完整性
通過儲存過程不僅可以使沒有許可權的使用者在控制之下間接地存取資料庫,保證資料的安全;而且可以使相關的動作在一起發生,從而可以維護資料庫的完整性。
5、靈活性
儲存過程可以用流控制語句編寫,具有很強的靈活性,可以完成複雜的判斷和運算,可以根據條件執行不通SQL語句。
相關推薦
儲存過程和檢視的區別
SQL裡面不帶引數的儲存過程與檢視的區別1、儲存過程是程式化的sql可以實現一般sql不能實現的功能。
MySQL資料庫儲存過程和事務的區別講解
事務是保證多個SQL語句的原子型的,也就是要麼一起完成,要麼一起不完成 儲存過程是把一批SQL語句預編譯後放在伺服器上,然後可以遠端呼叫
Oracle 查詢使用者所有表、表的索引、儲存過程、儲存函式和檢視資訊
https://www.cnblogs.com/wsy0202/p/12496708.html 1.查詢某個使用者的所有表 select * from all_tables where owner=\'SCOTT\';--SCOTT為使用者名稱,使用者名稱必須是大寫
SQLSERVER對加密的儲存過程、檢視、觸發器進行解密(推薦)
加密測試的儲存過程 IF EXISTS(SELECT 1 FROM SYSOBJECTS WHERE TYPE=\'P\' AND NAME=\'P_TEST\') DROP PROCEDURE P_TEST
細談Mysql的儲存過程和儲存函式
1 儲存過程 1.1 什麼是儲存過程 儲存過程是一組為了完成某項特定功能的sql語句集,其實質上就是一段儲存在資料庫中的程式碼,他可以由宣告式的sql語句(如CREATE,UPDATE,SELECT等語句)和過程式sql語句(如IF...TH
MYSQL的儲存過程和函式簡單寫法
什麼是儲存過程 簡單的說,就是一組SQL語句集,功能強大,可以實現一些比較複雜的邏輯功能,類似於JAVA語言中的方法;
MySQL學習筆記(11):儲存過程和函式
本文更新於2019-06-23,使用MySQL 5.7,作業系統為Deepin 15.4。 目錄SQL語句建立儲存過程或函式修改儲存過程或函式刪除儲存過程或函式呼叫儲存過程或函式變數、條件、處理、遊標變數條件處理遊標流程控制IFCASELEAV
MySQL基礎-22儲存過程和函式
宣告:此MySQL基礎學習源自尚矽谷。(推薦)b站官方連結:https://www.bilibili.com/video/BV1xW411u7ax?p=1
7.mysql儲存過程和函式
4.1 儲存過程和函式概述 儲存過程和函式是 事先經過編譯並存儲在資料庫中的一段 SQL 語句的集合,呼叫儲存過程和函式可以簡化應用開發人員的很多工作,減少資料在資料庫和應用伺服器之間的傳輸,對於提高資料處理的
mysql8學習筆記18--儲存過程和函式
•create procedure用來建立儲存過程,create function用來建立函式 • 函式與儲存過程最大的區別就是函式呼叫有返回值,呼叫儲存過程用call語句,而呼叫函式就直接引用函式名+引數即可
MySQL教程109-MySQL呼叫儲存過程和函式
儲存過程和儲存函式都是儲存在伺服器端的 SQL 語句集合。要想使用這些已經定義好的儲存過程和儲存函式就必須要通過呼叫的方式來實現。
9. 儲存過程和函式
建立儲存過程 delimiter && create procedure pro_name (in id int, out count_num int) reads sql date
12. 儲存過程和函式
MySQL官方文件有儲存例程(Store routines)一說,它的兩種型別就是儲存過程和函式。
MySQL儲存過程和遊標
一、儲存過程什麼是儲存過程,為什麼要使用儲存過程以及如何使用儲存過程,並且介紹建立和使用儲存過程的基本語法。什麼是儲存過程:儲存過程可以說是一個記錄集,它是由一些T-SQL語句組成的程式碼塊,這些T-SQL語
MySQL - 儲存過程和函式
MySQL - 儲存過程和函式 建立和呼叫儲存過程 -- 建立stu_group()儲存過程,封裝 分組查詢總成績,並按照總成績升序排序的功能
MySQL基礎—儲存過程和函式
儲存過程和函式 含義:儲存過程和函式:類似於java中的方法。 好處:1、提高程式碼的重用性
尚矽谷MySQL學習筆記(Day_6)-儲存過程和函式介紹 - 函式
技術標籤:MySQL筆記mysql 儲存過程和函式 儲存過程和函式:類似於java中的方法 好處: 1.提高程式碼的重用性 2.簡化操作 區別: 儲存過程:可以有0個返回,也可以有多個返回,適合做批量插入、批量更新 函式:
【MySQL基礎】之儲存過程和函式
儲存過程 事先經過編譯並存儲在資料庫中的一段sql語句的集合。 簡化應用開發人員的很多工作減少資料在資料庫和應用伺服器之間的傳輸提高了資料處理的效率
MySQL儲存過程和定時任務
什麼是儲存過程 儲存例程是儲存在資料庫伺服器上的一組sql語句,這些語句通過在查詢中呼叫指定的名稱來執行。
關於Oracle儲存過程和排程器實現自動對資料庫過期資料清除的問題
簡介 資料庫中的某些資料不一定要長期儲存,例如:日誌等資料、當儲存一定時間後,系統允許刪除所以系統需要定期刪除那些已經過期的資料。