国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

使用SQL語(yǔ)句創(chuàng)建存儲(chǔ)過(guò)程

這篇具有很好參考價(jià)值的文章主要介紹了使用SQL語(yǔ)句創(chuàng)建存儲(chǔ)過(guò)程。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

使用SQL語(yǔ)句創(chuàng)建存儲(chǔ)過(guò)程

前言:

本篇文章是記錄學(xué)校學(xué)習(xí)SQL server中知識(shí),可用于復(fù)習(xí)資料.

一、存儲(chǔ)過(guò)程的創(chuàng)建

定義:

存儲(chǔ)過(guò)程是為了完成特定功能的SQL語(yǔ)句集合,存儲(chǔ)在數(shù)據(jù)庫(kù)中,用戶通過(guò)指定存儲(chǔ)過(guò)程的名稱并給出參數(shù)來(lái)執(zhí)行。

優(yōu)點(diǎn):
1、方便修改。
??因?yàn)?mark>存儲(chǔ)過(guò)程是存儲(chǔ)在數(shù)據(jù)庫(kù)中的,如果需要涉及到修改SQL語(yǔ)句,那么數(shù)據(jù)庫(kù)專業(yè)人員只需要去修改數(shù)據(jù)庫(kù)中的存儲(chǔ)過(guò)程就可以,對(duì)程序毫無(wú)影響,如果用SQL語(yǔ)句的話,SQL語(yǔ)句是寫(xiě)在程序中的,如果涉及到修改SQL語(yǔ)句,那么就需要去修改源程序。

2、存儲(chǔ)過(guò)程比SQL語(yǔ)句執(zhí)行更快速:

??存儲(chǔ)過(guò)程是為了完成特定功能的SQL語(yǔ)句的集合,如果為了完成某一功能,使用了大量的SQL語(yǔ)句,那么執(zhí)行存儲(chǔ)過(guò)程只執(zhí)行一次就可以,而SQL語(yǔ)句呢,則是需要執(zhí)行多個(gè)。就類似于c語(yǔ)言中的自定義函數(shù),甚至比自定義函數(shù)還要靈活很多.

1、創(chuàng)建簡(jiǎn)單存儲(chǔ)過(guò)程

(1)創(chuàng)建一個(gè)名為stu_pr存儲(chǔ)過(guò)程,該存儲(chǔ)過(guò)程能查詢出o51班學(xué)生的所有資料,包括學(xué)生的基本信息、學(xué)生的選課信息(含未選課同學(xué)的信息)。要求在創(chuàng)建存儲(chǔ)過(guò)程前請(qǐng)判斷該存儲(chǔ)過(guò)程是否已創(chuàng)建,若已創(chuàng)建則先刪除,并給出“已刪除! p信息,否則就給出“不存在,可創(chuàng)建! ”的信息。

先進(jìn)行判斷是否存在:

if exists (select * from sysobjects where name='stu_pr' and type='P')begin
drop procedure stu_pr print '已刪除! '
end
else
print '不存在,可創(chuàng)建! '

執(zhí)行結(jié)果:
使用SQL語(yǔ)句創(chuàng)建存儲(chǔ)過(guò)程

創(chuàng)建語(yǔ)句:

create procedure stu_pr
as
select distinct * from student s
left join sc on s.sno=sc.sno
left join course c on c.Cno=sc.Cno where classno='051'

使用剛剛創(chuàng)建的存儲(chǔ)過(guò)程:

exec stu_pr

執(zhí)行結(jié)果:
使用SQL語(yǔ)句創(chuàng)建存儲(chǔ)過(guò)程

2、創(chuàng)建帶參數(shù)的存儲(chǔ)過(guò)程

(1)創(chuàng)建一個(gè)名為stu_proc1存儲(chǔ)過(guò)程,查詢某系、某姓名的學(xué)生的學(xué)號(hào)、姓名、年齡,選修課程名、成績(jī)。系名和姓名在調(diào)用該存儲(chǔ)過(guò)程時(shí)輸入,其默認(rèn)值分別為“%”與"林%”。執(zhí)行該存儲(chǔ)過(guò)程,用多種參數(shù)加以測(cè)試。

if exists (select * from sysobjects where name='stu_proc1' and type='P')
begin
drop procedure stu_proc1 print '已冊(cè)刪除!'
end
else
print '不存在,可創(chuàng)建! '

執(zhí)行結(jié)果:
使用SQL語(yǔ)句創(chuàng)建存儲(chǔ)過(guò)程
創(chuàng)建語(yǔ)句:

create procedure stu_proc1
@sdept varchar(10)='%', @sname varchar(10)='林%'
as
select Sname , s.Sno, YEAR(getdate ( ) ) -YEAR(Birth) Age, Cname ,Grade from student 		s, Course c,sc
where s.Sno=sc.sno and c.Cno=sc.Cno
and s.Sname like @sname and s.sdept like @sdept

執(zhí)行結(jié)果:
使用SQL語(yǔ)句創(chuàng)建存儲(chǔ)過(guò)程
執(zhí)行已經(jīng)創(chuàng)建好的存儲(chǔ)過(guò)程

執(zhí)行1:

exec stu_proc1

使用SQL語(yǔ)句創(chuàng)建存儲(chǔ)過(guò)程
執(zhí)行2:

exec stu_proc1 @sdept='%', @sname ='林%'

執(zhí)行結(jié)果:

使用SQL語(yǔ)句創(chuàng)建存儲(chǔ)過(guò)程
(2)創(chuàng)建一個(gè)名為Student_sc存儲(chǔ)過(guò)程,可查詢出某段學(xué)號(hào)的同學(xué)的學(xué)號(hào)、姓名、總成績(jī)。(學(xué)號(hào)起始號(hào)與終止號(hào)在調(diào)用時(shí)輸入,可設(shè)默認(rèn)值)。執(zhí)行該存儲(chǔ)過(guò)程

if exists (select name from sysobjects where name='student_sc' and type='P')
	drop procedure student_sc 
go
create procedure student_sc
	@sno_begin varchar (10)='20110001 ',@sno_end varchar (10)='20110103' 
as
	select s.Sno,Sname , SUM (grade) total_grade from student s,sc
	where s.sno=sc.sno and s.sno between @sno_begin and @sno_end
	group by s.sno ,sname

執(zhí)行:

exec student_sc

3、創(chuàng)建帶輸出參數(shù)的存儲(chǔ)過(guò)程

(1)創(chuàng)建一個(gè)名為Course_sum存儲(chǔ)過(guò)程,可查詢某門課程考試的總成績(jī)。總成績(jī)可以輸出,以便進(jìn)一步調(diào)用。

if exists (select name from sysobjects where name='Course_sum' and type='P ')
drop procedure course_sum

使用SQL語(yǔ)句創(chuàng)建存儲(chǔ)過(guò)程

創(chuàng)建:

create procedure course_sum @cname varchar(10)='告'
as
select SUM(grade) total_grade , COUNT(sno)sno from course c, sc
where c.Cno=sc.Cno and Cname like cname
執(zhí)行:
exec course_sum '高數(shù)'

使用SQL語(yǔ)句創(chuàng)建存儲(chǔ)過(guò)程
(2)創(chuàng)建一執(zhí)行該存儲(chǔ)過(guò)程的批處理,要求當(dāng)總成績(jī)小于100時(shí),顯示信息為:“XXX課程的總.成績(jī)?yōu)?XX,其總分未達(dá)100分”。超過(guò)100時(shí),顯示信息為。“XX課程的總成績(jī)?yōu)?XX”。

create procedure sum_grade2
@cname varchar (10) , @@sum smallint output
as
select @@sum=sum ( grade)from course c , sc
where c.Cno=sc.Cno and Cname like cname

創(chuàng)建:

declare @@sumgrade smallint
exec sum_grade2 '高數(shù)',@@sumgrade output if @@sumgrade<100
begin
print '高數(shù)的總成績(jī)?yōu)?'+CAST(@@sumgrade as varchar(20))+',其總分未達(dá)到分。'
end
else
print '高數(shù)的總成績(jī)?yōu)?'+CAST(@@sumgrade As varchar (20))+'。'

使用SQL語(yǔ)句創(chuàng)建存儲(chǔ)過(guò)程
創(chuàng)建:

create procedure update_sc
@cno varchar(10),@sno varchar (10) , @grade int with recompile,encryption--重編譯,加密
as
update sc
set grade=@grade
where sc.cno=@cno and sc.sno=@sno
exec update_sc '001','20110001','80'

二 、使用T一SQL語(yǔ)句管理和維護(hù)存儲(chǔ)過(guò)程

2.1 使用sp_helptext查看存儲(chǔ)過(guò)程student_sc的定義腳本

語(yǔ)句:

sp_helptext student_sc

使用SQL語(yǔ)句創(chuàng)建存儲(chǔ)過(guò)程

2.2 使用select語(yǔ)句查看student_sc存儲(chǔ)過(guò)程的定義腳本(提示:通過(guò)查詢表sysobjects和表

語(yǔ)句:

syscomments)
select o.id, c.text
from sysobjects o inner join syscomments c
on o.id = c.id
where o.type = 'p' and o.name = 'student_sc'

使用SQL語(yǔ)句創(chuàng)建存儲(chǔ)過(guò)程

2.3 修改存儲(chǔ)過(guò)程

存儲(chǔ)過(guò)程stu_pr改為查詢學(xué)號(hào)為2011001的學(xué)生的詳細(xì)資料。

alter procedure stu_pr
@sno varchar (10)
as
select distinct * from student 
where sno='20110001'

執(zhí)行:

exec stu_pr @sno=2011001

2.4 刪除存儲(chǔ)過(guò)程

drop procedure stu_pr

6、使用sQL Server Management Studi管理存儲(chǔ)過(guò)程
(1)在SQL Server Management Studio中重新創(chuàng)建剛刪除的存儲(chǔ)過(guò)程stu_pr
選擇數(shù)據(jù)庫(kù)student_info→可編程性→存儲(chǔ)過(guò)程,右擊“存儲(chǔ)過(guò)程”→新建存儲(chǔ)過(guò)程
使用SQL語(yǔ)句創(chuàng)建存儲(chǔ)過(guò)程

使用SQL語(yǔ)句創(chuàng)建存儲(chǔ)過(guò)程使用SQL語(yǔ)句創(chuàng)建存儲(chǔ)過(guò)程 (2)查看存儲(chǔ)過(guò)程`stu_pr`,并將該過(guò)程修改為查詢051班女生的所有資料。可編程性→存儲(chǔ)過(guò)程→>stu _pr,右擊stu _pr→>修改.

使用SQL語(yǔ)句創(chuàng)建存儲(chǔ)過(guò)程

(3) 修改sQL語(yǔ)句,使之能查詢051班所有女生的資料的存儲(chǔ)過(guò)程
使用SQL語(yǔ)句創(chuàng)建存儲(chǔ)過(guò)程
(3)刪除存儲(chǔ)過(guò)程stu_pr
選擇存儲(chǔ)過(guò)程stu _pr,右擊,選擇“刪除”

使用SQL語(yǔ)句創(chuàng)建存儲(chǔ)過(guò)程

使用SQL語(yǔ)句創(chuàng)建存儲(chǔ)過(guò)程文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-478762.html

到了這里,關(guān)于使用SQL語(yǔ)句創(chuàng)建存儲(chǔ)過(guò)程的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • GitHub Copilot 使用攻略,本篇文章作者是GPT-3.5

    引言: 在軟件開(kāi)發(fā)領(lǐng)域,編寫(xiě)高質(zhì)量的代碼是開(kāi)發(fā)者們的永恒追求。然而,傳統(tǒng)的編碼過(guò)程常常耗費(fèi)大量時(shí)間和精力,而且在遇到復(fù)雜的問(wèn)題時(shí),開(kāi)發(fā)者可能會(huì)面臨困惑和不確定性。為了解決這些挑戰(zhàn),GitHub推出了一款強(qiáng)大的工具——GitHub Copilot,它利用人工智能技術(shù)提供智

    2024年02月16日
    瀏覽(18)
  • 【SQL Server】數(shù)據(jù)庫(kù)開(kāi)發(fā)指南(七)MS-SQL存儲(chǔ)過(guò)程全面解析:種類、優(yōu)點(diǎn)和創(chuàng)建方法詳解

    本系列博文還在更新中,收錄在專欄:#MS-SQL Server 專欄中。 本系列文章列表如下: 【SQL Server】 Linux 運(yùn)維下對(duì) SQL Server 進(jìn)行安裝、升級(jí)、回滾、卸載操作 【SQL Server】數(shù)據(jù)庫(kù)開(kāi)發(fā)指南(一)數(shù)據(jù)庫(kù)設(shè)計(jì)的核心概念和基本步驟 【SQL Server】數(shù)據(jù)庫(kù)開(kāi)發(fā)指南(二)MSSQL數(shù)據(jù)庫(kù)開(kāi)發(fā)對(duì)

    2024年02月07日
    瀏覽(111)
  • sql sever使用SQL語(yǔ)句創(chuàng)建學(xué)生表

    創(chuàng)建數(shù)據(jù)庫(kù)sql語(yǔ)句 創(chuàng)建學(xué)生表 創(chuàng)建成績(jī)表,成績(jī)表和學(xué)生表有主鍵約束 向score表中添加一條數(shù)據(jù) 修改表的一整列 (將表的一整列修改為數(shù)據(jù)庫(kù)) 修改某一行的某一列 (修改scid為13 所在行的scname列為數(shù)據(jù)庫(kù))

    2024年02月09日
    瀏覽(22)
  • 使用SQL語(yǔ)句創(chuàng)建數(shù)據(jù)庫(kù)與創(chuàng)建表

    使用SQL語(yǔ)句創(chuàng)建數(shù)據(jù)庫(kù)與創(chuàng)建表

    ??個(gè)人主頁(yè):?? :???初階牛??? ??推薦專欄: ?????? c語(yǔ)言初階 ??個(gè)人信條: ??知行合一 ??本篇簡(jiǎn)介:: 本篇記錄一下牛牛在學(xué)校學(xué)習(xí)的sql serve數(shù)據(jù)庫(kù)知識(shí),內(nèi)容比較基礎(chǔ)適合,適合數(shù)據(jù)庫(kù)初學(xué)者學(xué)習(xí),希望對(duì)大家有些幫助,一起加油吧! 創(chuàng)建數(shù)據(jù)庫(kù)模板: 還是范例看的更

    2024年02月03日
    瀏覽(22)
  • SQL 存儲(chǔ)過(guò)程使用

    Transact-SQL中的存儲(chǔ)過(guò)程,非常類似于C#語(yǔ)言中的方法,可以重復(fù)調(diào)用。當(dāng)存儲(chǔ)過(guò)程執(zhí)行一次后,可以將語(yǔ)句存儲(chǔ)到緩存中,這樣下次執(zhí)行的時(shí)候直接使用緩存中的語(yǔ)句。這樣就可以提高存儲(chǔ)過(guò)程的性能。 存儲(chǔ)過(guò)程Procedure是一組為了完成特定功能的SQL語(yǔ)句集合,經(jīng)過(guò)編譯后存儲(chǔ)

    2023年04月08日
    瀏覽(17)
  • 如何使用SQL語(yǔ)句創(chuàng)建觸發(fā)器

    如何使用SQL語(yǔ)句創(chuàng)建觸發(fā)器

    ??個(gè)人主頁(yè):?? :???初階牛??? ??推薦專欄1: ??????C語(yǔ)言初階 ??推薦專欄2: ??????C語(yǔ)言進(jìn)階 ??個(gè)人信條: ??知行合一 ??本篇簡(jiǎn)介:記錄SQL server觸發(fā)器的創(chuàng)建語(yǔ)句,以及簡(jiǎn)單介紹. 觸發(fā)器 是一種特殊類型的 存儲(chǔ)過(guò)程 ,它不同于我們前面介紹過(guò)的存儲(chǔ)過(guò)程。 存儲(chǔ)

    2024年02月10日
    瀏覽(25)
  • SQL語(yǔ)句之表的創(chuàng)建和使用

    SQL語(yǔ)句之表的創(chuàng)建和使用

    create table 表名(字段名1 數(shù)據(jù)類型,字段名2 數(shù)據(jù)類型,字段名3 數(shù)據(jù)類型); 表名建議以 t_ 開(kāi)始,可讀性強(qiáng) 創(chuàng)建一個(gè)學(xué)生表 包括學(xué)號(hào)、姓名、年齡、性別、手機(jī)號(hào)碼、郵箱地址 create table t_student( num int(13), name varchar(255), age int(3), sex char(1), phonenumber char(11), email varchar(255) ); (1)

    2023年04月09日
    瀏覽(16)
  • mysql:存儲(chǔ)過(guò)程的創(chuàng)建與使用

    mysql:存儲(chǔ)過(guò)程的創(chuàng)建與使用

    一、創(chuàng)建存儲(chǔ)過(guò)程 使用MySql Workbench創(chuàng)建存儲(chǔ)過(guò)程,一定要記得使用 delimiter 指明結(jié)束符,否則會(huì)報(bào)錯(cuò):Statement is incomplete, expecting: \\\';’ 錯(cuò)誤示例: 正確示例: 其中,//就是結(jié)束符,可以自行指定,比如一般都用$$。 二、存儲(chǔ)過(guò)程語(yǔ)法 這里就不照搬官方的語(yǔ)法了,按照我的理

    2024年02月09日
    瀏覽(22)
  • MySQL系列(九)存儲(chǔ)過(guò)程的創(chuàng)建和使用

    MySQL系列(九)存儲(chǔ)過(guò)程的創(chuàng)建和使用

    (1)利用預(yù)處理sql語(yǔ)句輸出teacher表中前n行記錄,執(zhí)行預(yù)處理命令時(shí)具體輸出前5行的數(shù)據(jù)。 (2)利用預(yù)處理sql語(yǔ)句,更改course表中課程號(hào)為c05109的課程名稱為“數(shù)據(jù)庫(kù)系統(tǒng)原理”。 (3)創(chuàng)建存儲(chǔ)過(guò)程update_email,修改student表中姓名為‘封月明’的學(xué)生的email為‘feng@qq.com’。

    2024年02月13日
    瀏覽(22)
  • 利用SQL語(yǔ)句創(chuàng)建、修改、刪除、查看與使用數(shù)據(jù)庫(kù)

    利用SQL語(yǔ)句創(chuàng)建、修改、刪除、查看與使用數(shù)據(jù)庫(kù)

    【技術(shù)路線圖】 1、連接Mysql服務(wù):mysql -u root -p 2、創(chuàng)建數(shù)據(jù)庫(kù):create database teacherdb; 注意:數(shù)據(jù)庫(kù)的名字一旦創(chuàng)建后不可更改。 3、查看剛剛創(chuàng)建好的數(shù)據(jù)庫(kù):show databses; 4、刪除數(shù)據(jù)庫(kù)并查看是否刪除掉:drop database teacherdb; 5、輸出創(chuàng)建數(shù)據(jù)庫(kù)時(shí)的SQL語(yǔ)句信息:show create dat

    2023年04月21日
    瀏覽(34)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包