• <nav id="kggui"></nav>
  • <optgroup id="kggui"></optgroup>
  • <menu id="kggui"></menu><xmp id="kggui"><nav id="kggui"></nav>
    <menu id="kggui"><menu id="kggui"></menu></menu>
    <nav id="kggui"></nav>

    sql存儲語句

    存儲過程與SQL語句是怎樣的

    我的一位朋友說:他從臺灣知名技術作家李維先生的一本書中獲悉,如果用存儲過程封裝SQL語句,系統效率將有極大提升。

    他做過實驗!!! --我相信朋友做過實驗,盡管非親眼所見。不過我估計他的實驗有問題,那樣的實驗不但蒙蔽了他,也蒙蔽了李維先生(如果他的著作中的內容沒有被誤會),甚至更多的人。

    然而我必須拿出證據,方能使人信服。 后來遇到一個具體的問題:客戶端經常要向數據庫插入記錄。

    在J2EE中,一個 Entity Bean Home 的 create 方法調用中,一般就沒用存儲過程。朋友立馬在觀點上持反對意見( 可能是因為他暫時有來得及否決J2EE ),認為要是J2EE能夠將“插入記錄”諸如此類動作改為對存儲過程的調用就好了。

    我們因此再次發生爭論(我僅是反對朋友的看法,但也沒提出任何我自己的看法,因為要下一個結論是很不容易的)。最后我不得已而做了實驗,分別在 Oracle 10g 和 postgreSQL 8。

    0。1 上。

    實驗內容如下: A、建表腳本: create table ztest( fieldA integer primary key, fieldB varchar(128), fieldC varchar(128) ) B、客戶端請求 DBMS 執行的 insert SQL語句: insert into ztest values( ?1, ?2, ?3 ); -- ?1,?2,?3 將在運行時以合理的值替代之 C、客戶端調用的存儲過程(JDBC CallableStatement 調用): Oracle:(調用方式 call up_add(。 。

    。),) create or replace procedure up_add( fieldA integer, fieldB varchar, fieldC varchar ) is begin insert into ztest values( fieldA, fieldB, fieldC); end; postgreSQL:(客戶端調用方式 select uf_add(。

    ) ) CREATE OR REPLACE FUNCTION uf_add (integer, varchar, varchar) RETURNS void AS' begin insert into ztest values($1,$2,$3); return; end; 'LANGUAGE 'plpgsql' VOLATILE RETURNS NULL ON NULL INPUT SECURITY INVOKER; D、環境: postgreSQL:數據庫服務器與客戶端程序“都在本機”并“同時運行” Oracle: 獨立數據庫服務器(測試時始終有人在慢慢打字,應該對機器性能無影響) 測試: 通過不同方式( 即 請求DBMS執行SQL語句 和 調用DBMS邏輯等價的存儲過程)向測試表中連續加入 1024 記錄 經多次反復測試,得結果如下 postgreSQL: 兩種方式下,測試時間均為 21- 24 seconds 之間 (每個結果的測試環境一致) Oracle: 8次 SQL 執行請求分別用時(ms) 5422 4750 3875 3812 5672 3531 3484 3547 6次 存儲過程調用分別用時(ms) 4578 4500 6297 4219 4547 5734 (每個結果的測試環境一致)由此可知,存儲過程封裝簡單的 SQL 語句,效率相當,且可能更低。 但很多朋友的確得出結論:存儲過程的確比SQL快。

    為什么?---- 因為他們測試時寫了一個不具實際意義,同時也與SQL語句的“一次客戶端調用”不具可比性的測試用存儲過程。Oracle PL/SQL 描述方式如下,該方法一次調用就可以向數據表添加 1024 條記錄,連網絡通訊都省了。

    怪不得性能有“千倍差異”! create or replace procedure up_add( ) is declare n:integer; begin n := 0; while( n 它與客戶端一次提交單條 SQL 語句沒有可比性:當一次只需要向DBMS提交一條新記錄,要這個存儲過程干什么呢?。

    sql語句存儲過程

    可以先將多個商品ID拼成一個字符串("3,4,5")再傳進去

    create PROCEDURE pro_deleteProduct

    @Uid int ,

    @Pids varchar(50)

    AS

    declare @sql varchar(200)

    BEGIN

    set @sql= 'delete from Products where ProductId = '+ convert(varchar(20),@Uid) +' and ProductId in ('+@Pids+')'

    --print @sql

    exec (@sql)

    END

    GO

    sql數據庫備份語句

    --完整備份

    Backup Database NorthwindCS

    To disk='G:\Backup\NorthwindCS_Full_*'

    --差異備份

    Backup Database NorthwindCS

    To disk='G:\Backup\NorthwindCS_Diff_*'

    With Differential

    --日志備份,默認截斷日志

    Backup Log NorthwindCS

    To disk='G:\Backup\NorthwindCS_Log_*'

    --日志備份,不截斷日志

    Backup Log NorthwindCS

    To disk='G:\Backup\NorthwindCS_Log_*'

    With No_Truncate

    --截斷日志不保留

    Backup Log NorthwindCS

    With No_Log

    --或者

    Backup Log NorthwindCS

    With Truncate_Only

    --截斷之后日志文件不會變小

    --有必要可以進行收縮

    --文件備份

    Exec Sp_Helpdb NorthwindCS --查看數據文件

    Backup Database NorthwindCS

    File='NorthwindCS' --數據文件的邏輯名

    To disk='G:\Backup\NorthwindCS_File_*'

    --文件組備份

    Exec Sp_Helpdb NorthwindCS --查看數據文件

    Backup Database NorthwindCS

    FileGroup='Primary' --數據文件的邏輯名

    To disk='G:\Backup\NorthwindCS_FileGroup_*'

    With init

    --分割備份到多個目標

    --恢復的時候不允許丟失任何一個目標

    Backup Database NorthwindCS

    To disk='G:\Backup\NorthwindCS_Full_*'

    ,disk='G:\Backup\NorthwindCS_Full_*'

    --鏡像備份

    --每個目標都是相同的

    Backup Database NorthwindCS

    To disk='G:\Backup\NorthwindCS_Mirror_*'

    Mirror

    To disk='G:\Backup\NorthwindCS_Mirror_*'

    With Format --第一次做鏡像備份的時候格式化目標

    --鏡像備份到本地和遠程

    Backup Database NorthwindCS

    To disk='G:\Backup\NorthwindCS_Mirror_*'

    Mirror

    To disk='\\192.168.1.200\Backup\NorthwindCS_Mirror_*'

    With Format

    --每天生成一個備份文件

    Declare @Path Nvarchar(2000)

    Set @Path ='G:\Backup\NorthwindCS

    sql的創建存儲語句怎么寫啊

    --[p2]

    create proc p2 @blh char(6),@odate datetime

    as

    select 病歷號,入院時間 from 診療情況

    where 病歷號=@blh and 入院時間=@odate

    go

    --2.

    create proc 存儲過程名1 @blh char(6),@outdate datetime

    as

    update 診療情況 set 出院時間=getdate() where 病歷號=@blh

    exec p2 @blh,@outdate

    commit

    go

    --修改病歷號為A01101 ,入院時間為'2012-5-1'的病人出院時間

    exec 存儲過程名1 'A01101','2012-5-1'

    go

    --[p3]:

    create proc p3 @dname varchar(10),@avg_age int output

    as

    select @avg_age=avg(病人.年齡)

    from 病人,診療情況,醫生

    where 醫生.醫生號=診療情況.醫生號

    and 診療情況.病歷號=病人.病歷號

    and 醫生.醫生姓名=@dname

    go

    --3.

    create proc 存儲過程名2 @dname varchar(10)

    as

    declare @avgage int

    exec p3 @dname,@avg_age=@avgage output

    select 病人.病人姓名,病人.病人年齡

    from 病人,診療情況,醫生

    where 醫生.醫生號=診療情況.醫生號

    and 診療情況.病歷號=病人.病歷號

    and 醫生.醫生姓名=@dname

    and 病人.病人年齡>@avgage

    go

    sql 存儲過程查詢語句

    在數據庫中先創建存儲過程!具體代碼如下:

    create proc sp_GetTesttableByname --sp_GetTesttableByname代表存儲過程名稱

    as

    begin

    SELECT nickname,email FROM testtable WHERE name='張三' --存數過程的查詢語句

    end

    go

    exec sp_GetTesttableByname; --查詢存儲過程結果

    按下F5執行以上代碼之后 然后再在項目中寫調用存儲過程語句!希望我的回答對你有所幫助,謝謝采納!

    使用SQL語句創建存儲過程

    使用SQL語句創建存儲的具體過程如下:

    1、首先,打開企業管理器,選擇【工具】-【查詢分析器】:

    2、然后,輸入SQL語句。如下:

    CREATE PROCEDURE byroyalty1 @percentage int

    AS

    select au_id from titleauthor

    where *yper = @percentage

    GO

    3、然后,點擊確定之后,命令就會自動添加進查詢中:

    4、然后執行一下剛輸入的命令:

    5、最后,就可以在彈出的小窗口中查看存儲過程了:

    用sql寫一個簡單的存儲過程語句

    CREATE procedure Sp_select_Time

    @Teacher_ID char(12),

    @ReplyTime char(20),

    @returnTimeVal int output

    as

    begin

    if exists(select *

    from

    TeacherReply

    where Teacher_ID=@Teacher_ID and ReplyTime=@ReplyTime)

    set @returnTimeVal=0

    else

    set @returnTimeVal=1

    end

    return

    GO

    轉載請注明出處華閱文章網 » sql存儲語句

    短句

    aspif語句

    閱讀(208)

    在asp中if語句的語法是什么 if語句的語法格式如下(if和else是關鍵字):if ( booleanExpression )statement-1;else statement-2;例如,以下if語句用于遞增一個秒表的秒針(暫時忽略分鐘)。如果seco

    短句

    sql導出語句

    閱讀(266)

    SQL導出數據庫所有表格名稱的語句 --首先創建一個試圖CREATE VIEW dbo.vw_S_SystemObjectASSELECT [Name] AS ObjName, Power(2, SysStat & 0xf) AS ObjType, [ID]

    短句

    if語句顯示

    閱讀(223)

    C語言中if語句的三種形式到底是怎樣的 1)簡化形式if(表達式) 語句塊 如: if(x>y) printf(“%d”,x); 2)一般形式if (表達式) 語句塊1 else 語句塊2例如:if (x>y)printf(“max=%d”,

    短句

    sql語句修改語句

    閱讀(249)

    修改數據庫的一個sql語句 Update 語句Update 語句用于修改表中的數據,語法: update 表名 set 字段名1=值1,。 Where 關鍵字=值1、使用Update語句,如果省略“ Where條件”,將更新數據表內的全部記錄。2、賦值時,注

    短句

    行if語句

    閱讀(287)

    excel if語句 執行真假值判斷,根據邏輯計算的真假值,返回不同結果。可以使用函數 IF 對數值和公式進行條件檢測。語法 IF(logical_test,value_if_true,value_if_false) Logi

    短句

    語句區別

    閱讀(222)

    【請問!句子與短語的區別?有的句子不就是一個短語嗎?除了是否有 句子和短語的區別:(1)句子有特定的語氣、句調,可分為陳述句、疑問句等;短語沒有特定的語氣、句調,因此沒有陳述短語

    短句

    insertinto的語句

    閱讀(222)

    insert into 語句怎么寫 插入書寫方式: 1、 INSERT INTO t1(field1,field2) VALUE('001','002'); 最好的做法明確插入的每一列,列于查錯,而且漏列的幾率會降低。 2、INSERT IN

    短句

    數據庫in查詢語句

    閱讀(229)

    SQL in查詢語句 在數據庫中有一個pzdz 這是個字段嗎?里面的是數字組成的字符串是這種格式嗎?pzdz1,3,5,23,6,15,17select * from table where pzdz like('aa,%') or pzdz li

    短句

    int語句是

    閱讀(287)

    C語言里面的int是什么意思 是定義整數數據的標識符 如 int a;意思是定義a為一個整數C - 計算機語言 :1、C語言是一門通用計算機編程語言,應用廣泛。C語言的設計目標是提供一

    短句

    for語句的特點

    閱讀(463)

    for循環的特點 和while 的區別 其實剛就說了 for循環用于循環數確定的情況下方便 while 在個數不確定的時候方面通過 添加條件判斷 不管是for或者while 都可以做出來各種效果while似乎在很多語言中的運行速度要快于for,比如javas

    短句

    宏的if語句

    閱讀(669)

    excel-excel宏的問題宏里面能否有多個if語句?比如A1至A4四個單 愛問 宏里面當然可以有多個IF語句。 OFFICE中的宏,說白了,就是MICROSOFT在OFFICE中嵌入的自動化編程控制語言VB

    短句

    hql語句=

    閱讀(277)

    hibernate hql語句 你的HQL語句寫的有問題:1、在select PetInfo from PetInfo as p order by (p.petStrength+p.petCute+p.petLove)語句中,PetInfo不知道是什么,如果想查這個

    短句

    存儲過程if語句

    閱讀(390)

    存儲過程 if語句的使用 create proc sp_testasdeclare @_value intselect top 1 @_value = rrrid from readerinfo where readerid='s001'if @value

    短句

    cfor循環語句

    閱讀(262)

    for 循環語句的使用方法 以C語言為例for循環的一般形式為:for(語句1 ; 語句2 ; 語句3 )執行時,先執行一次語句1(注意只執行一次)之后判斷語句2是否成立1、如果成立執行循環體,之后執行語句3。再返回語句2判斷條件是否成立?成立執行循環體后再

    短句

    sql導出語句

    閱讀(266)

    SQL導出數據庫所有表格名稱的語句 --首先創建一個試圖CREATE VIEW dbo.vw_S_SystemObjectASSELECT [Name] AS ObjName, Power(2, SysStat & 0xf) AS ObjType, [ID]

    短句

    aspif語句

    閱讀(208)

    在asp中if語句的語法是什么 if語句的語法格式如下(if和else是關鍵字):if ( booleanExpression )statement-1;else statement-2;例如,以下if語句用于遞增一個秒表的秒針(暫時忽略分鐘)。如果seco

    短句

    if語句顯示

    閱讀(223)

    C語言中if語句的三種形式到底是怎樣的 1)簡化形式if(表達式) 語句塊 如: if(x>y) printf(“%d”,x); 2)一般形式if (表達式) 語句塊1 else 語句塊2例如:if (x>y)printf(“max=%d”,

    短句

    行if語句

    閱讀(287)

    excel if語句 執行真假值判斷,根據邏輯計算的真假值,返回不同結果。可以使用函數 IF 對數值和公式進行條件檢測。語法 IF(logical_test,value_if_true,value_if_false) Logi

    短句

    sql語句修改語句

    閱讀(249)

    修改數據庫的一個sql語句 Update 語句Update 語句用于修改表中的數據,語法: update 表名 set 字段名1=值1,。 Where 關鍵字=值1、使用Update語句,如果省略“ Where條件”,將更新數據表內的全部記錄。2、賦值時,注

    短句

    語句區別

    閱讀(222)

    【請問!句子與短語的區別?有的句子不就是一個短語嗎?除了是否有 句子和短語的區別:(1)句子有特定的語氣、句調,可分為陳述句、疑問句等;短語沒有特定的語氣、句調,因此沒有陳述短語

    短句

    英語句子帶

    閱讀(236)

    經典英語句子 (1) I love you not because of who you are, but because of who I am when I am with you.我愛你,不是因為你是一個怎樣的人,而是因為我喜歡與你在一起時的感覺。(2

    短句

    《家》的經典語句

    閱讀(248)

    寫家的句子 ● 家是什么?是難舍的親情,是溫馨的集體,是親愛的祖國.在這里,父母用慈愛的傘為兒女撐起一方晴空,兒女用孝順的心給父母奉上一縷慰藉;在這里,洋溢著濃濃的師生之情,伙伴之誼 . ● 高山竹林是國寶熊貓的家,原始森林是珍稀植物的家,滔滔

    久久热在线视频