存儲過程視圖創建
⑴ 如何創建基於視圖的存儲過程
如果可以對這個視圖進行增刪該,那麼創建基於視圖和基於表的的存儲過程是一樣的。
⑵ 資料庫中創建視圖和索引還有存儲過程起什麼作用
視圖可以被看成是虛擬表或存儲查詢。可通過視圖訪問的數據不作為獨特的對象存儲在資料庫內。資料庫內存儲的是 SELECT 語句。SELECT 語句的結果集構成視圖所返回的虛擬表。用戶可以用引用表時所使用的方法,在 Transact-sql 語句中通過引用視圖名稱來使用虛擬表。使用視圖可以實現下列任一或所有功能:
將用戶限定在表中的特定行上。
例如,只允許雇員看見工作跟蹤表內記錄其工作的行。
將用戶限定在特定列上。
例如,對於那些不負責處理工資單的雇員,只允許他們看見雇員表中的姓名列、辦公室列、工作電話列和部門列,而不能看見任何包含工資信息或個人信息的列。
將多個表中的列聯接起來,使它們看起來象一個表。
聚合信息而非提供詳細信息。
例如,顯示一個列的和,或列的最大值和最小值。
------------------
資料庫中的索引與書籍中的索引類似。在一本書中,利用索引可以快速查找所需信息,無須閱讀整本書。在資料庫中,索引使資料庫程序無須對整個表進行掃描,就可以在其中找到所需數據。
------------------
存儲過程可以使得對資料庫的管理、以及顯示關於資料庫及其用戶信息的工作容易得多。存儲過程是 SQL 語句和可選控制流語句的預編譯集合,以一個名稱存儲並作為一個單元處理。存儲過程存儲在資料庫內,可由應用程序通過一個調用執行,而且允許用戶聲明變數、有條件執行以及其它強大的編程功能。
存儲過程可包含程序流、邏輯以及對資料庫的查詢。它們可以接受參數、輸出參數、返回單個或多個結果集以及返回值。
可以出於任何使用 SQL 語句的目的來使用存儲過程,它具有以下優點:
可以在單個存儲過程中執行一系列 SQL 語句。
可以從自己的存儲過程內引用其它存儲過程,這可以簡化一系列復雜語句。
存儲過程在創建時即在伺服器上進行編譯,所以執行起來比單個 SQL 語句快。
⑶ 資料庫中創建視圖和索引還有存儲過程起什麼作用
視圖就是為了方便查看數據,比如說一個表有幾千個欄位,但常用的就那麼十來個,我就可以把那十來個歸集未一個視圖,省得查詢表要找來找去的麻煩,再比如說學生表和教師表,我要知道哪個學生是由那個教師教的,就要兩個表關聯起來看,為了方便我可以直接把他們做成一張視圖,查詢視圖就都出來了。索引就相當於給數據打個編號,用來提高效率的,當然要用對才有效果。存儲過程就是用來處理數據,事物等的一個邏輯集合,比如一個存儲過程接收到一個參數用戶出生時間20020601,但在表中要存注冊時間,用戶年齡,用戶生日,就可以在存儲過程中將注冊時間:當前時間,用戶年齡 :當前時間-出生時間,用戶生日:截取月份和號數這些數據處理後再存入到表
⑷ 存儲過程里 可以定義視圖嗎
不可以。
存儲過程裡面不可以有create view、create database、create table 等等。總之基本上帶create的都不可以有。
⑸ sql2000 的存儲過程 視圖 怎麼創建 語法有哪些
創建視圖
select view [view_name]as
select column_name
from table_name where 條件
創建存儲過程
create procere 名稱
begin
···
end
⑹ oracle中如何在存儲過程里創建視圖
首先需要授權
sqlplus / as sysdba
grantcreateviewtoyour_user;
然後創建表和存儲過程
droptabletable1;
createtableTABLE1
(
user_idVARCHAR2(10),
user_nameVARCHAR2(10),
user_mailVARCHAR2(10),
user_mobileVARCHAR2(10),
user_telephoneVARCHAR2(10)
);
V_SQLVARCHAR2(10240);
BEGIN
V_SQL:='CREATEORREPLACEVIEWV_TESTAS
SELECTT1.USER_ID,
T1.USER_NAME,--用戶姓名
T1.USER_MAIL,--用戶MAIL
T1.USER_MOBILE,--用戶手機
T1.USER_TELEPHONE--用戶電話
FROMTABLE1T1';
EXECUTEIMMEDIATEV_SQL;
ENDCREATEVIEWS;
/
執行,OK
SQL>execcreateviews;
PL/
⑺ sql資料庫的視圖和 存儲過程怎麼建
建議你的資料庫建立部門表的信息
在你的員工基本信息表裡加一個
alter table 員工基本信息表
add column 部門編號 char(10)
建立部門表
create table 部門表
(
部門編號 char(10),
部門名稱 char(10)
)
create view ccc
as
select max(d.基本工資-c.扣除工資) as 部門最高工資,min(d.基本工資-c.扣除工資) as 部門最低工資,avg(d.基本工資-c.扣除工資) as 部門平均工資,sum(d.基本工資-c.扣除工資) as部門工資總和
from 部門表 as b,員工基本信息表 as a,員工考勤情況表 as c,員工工情況表 as d
where a.員工號=c.員工號 and a.工種號=d.工種號 and a.部門編號=b.部門編號
group by b.部門名稱
具體可以在改改
存儲過程
create proc 過程名 @變數
as
begin
過程體
end
⑻ 求幫助,mysql 存儲過程中建立視圖的問題
mysql 存儲過程中建立視圖的問題
定義視圖,方便快捷查詢
create view v_user
as
select * from table_user
定義過程,定義好業務邏輯 一次編譯,反復執行,效率高,速度快
create procere p_find_user( sname varchar)
as
begin
select pss from table_user where name =sname;
end ;
定義觸發器,方便對插入數據的整理,約束,或建議其他關聯關系。
create trigger tri_table
before insert on table_name
for each row
begin
:new.id:=seq_table_name.nextval;
end ;
⑼ mysql 存儲過程 根據查詢表創建視圖 跪求大神
首先要明確你的目的是什麼?
我猜是不是你想select出所有表名為test的數據,這樣的話方案如下:
如果非要按照你說的視圖的話、我不知道mysql能不能動態創建執行創建語句、如果可以的話、你可以執行在存儲過程裡面動態執行這樣的語句、CREATE OR REPLACE testView as 這里寫你的select語句用union all連接,至於怎麼取到這些類似的表然後怎麼拼接成sql你知道怎麼操作吧?
第二種方法比較通用、肯定行、存儲過程你們做一件事情、select出所有test的表、然後把記錄插入到一張臨時表中,這個操作會把?但是這種方法數據量大的話有速度影響
⑽ 2008SQL 存儲過程中可以創建視圖嗎
存儲過程中可以創建視圖,但在創建之前先要判斷該視圖是否已經存在,如果存在的話需要先刪除再創建。
