• <em id="6vhwh"><rt id="6vhwh"></rt></em>

    <style id="6vhwh"></style>

    <style id="6vhwh"></style>
    1. <style id="6vhwh"></style>
        <sub id="6vhwh"><p id="6vhwh"></p></sub>
        <p id="6vhwh"></p>
          1. 国产亚洲欧洲av综合一区二区三区 ,色爱综合另类图片av,亚洲av免费成人在线,久久热在线视频精品视频,成在人线av无码免费,国产精品一区二区久久毛片,亚洲精品成人片在线观看精品字幕 ,久久亚洲精品成人av秋霞

            quoted

            更新時間:2023-03-02 07:52:43 閱讀: 評論:0

            ??本文介紹基于Microsoft SQL Server軟件,實現數據庫用戶自定義數據類型的創建、使用與刪除,以及標量值、內嵌表值、多語句表值函數等用戶定義函數的創建、使用、刪除方法。

            ??數據庫系列文章請見專欄:數據庫基礎_瘋狂學習GIS的博客-CSDN博客。

            ??系列文章中示例數據來源于《SQL Server實驗指導(2005版)》一書。尊重版權,因此遺憾不能將相關示例數據一并提供給大家;但是依據本系列文章的思想與對操作步驟、代碼的詳細解釋,大家用自己手頭的數據,可以將相關操作與分析過程加以完整重現。

            1 用SQL語句創建一個用戶定義的數據類型Idnum

            (1) 啟動Microsoft SQL Server 2008 R2軟件;

            (2) 在“對象資源管理器”窗格中,在“數據庫”處右鍵,在彈出的菜單中選擇“附加”選項;

            (3) 選擇需要加以附加的jxsk數據庫物理文件,選擇定位文件夾“G:sqlchutianjia sql”并選擇對應數據庫jxsk的物理文件并選擇“確定”按鈕,再次選擇“確定”即可;

            (4) 單擊屏幕上方 “工具欄”菜單中的“新建查詢”按鈕,打開“查詢編輯器”窗口,并在“查詢編輯器”窗口中輸入以下T-SQL語句:

            USE jxskGOEXEC sp_addtype Idnum,'CHAR(6)','NOT NULL'GO

            (5) 單擊“工具欄”中的“執行(x)”按鈕,即可執行上述T-SQL語句,如下圖;

            (6) 在“對象資源管理器”中選擇“數據庫”→“jxsk”→“可編程性”→“類型”→“用戶定義數據類型”,可在其中看到數據類型Idnum已經存在,如下圖;

            2 使用Idnum創建學生表STUDENT與教師表TEACHER

            (1) 單擊屏幕上方 “工具欄”菜單中的“新建查詢”按鈕,打開“查詢編輯器”窗口,并在“查詢編輯器”窗口中輸入以下T-SQL語句:

            USE jxskGOCREATE TABLE STUDENT(SNO IDNUM,SN CHAR(11),SSEX CHAR(2),SAGE TINYINT)GOCREATE TABLE TEACHER(TNO IDNUM,TN CHAR(11),TSEX CHAR(2),TAGE TINYINT,TPROF CHAR(11))GO

            (2) 單擊 “工具欄”中的“執行(x)”按鈕,即可執行上述T-SQL語句,如下圖;

            (3) 在“對象資源管理器”中選擇“數據庫”→“jxsk”→“表”,選擇學生表STUDENT與教師表TEACHER,看到相應字段及其定義Idnum,如下圖;

            3 交互式創建一個用戶定義的數據類型Nameperson

            (1) 在“對象資源管理器”中選擇“數據庫”→“jxsk”→“可編程性”→“類型”,右擊“用戶定義數據類型”,在彈出的窗口中選擇“新建用戶定義數據類型”,如下圖;

            (2) 正確配置相關選項,選擇正確的名稱、數據類型與長度,點擊“確定”;

            (3) 在“對象資源管理器”中選擇“數據庫”→“jxsk”→“可編程性”→“類型”→“用戶定義數據類型”,可看到數據類型Nameperson的定義;

            4 使用數據類型Nameperson修改數據庫表數據類型

            (1) 單擊屏幕上方 “工具欄”菜單中的“新建查詢”按鈕,打開“查詢編輯器”窗口,并在“查詢編輯器”窗口中輸入以下T-SQL語句:

            USE jxskGOALTER TABLE STUDENT ALTER COLUMN SN NAMEPERSONGOALTER TABLE TEACHER ALTER COLUMN TN NAMEPERSONGO

            (2) 單擊 “工具欄”中的“執行(x)”按鈕,即可執行上述T-SQL語句,如下圖;

            (3) 在“對象資源管理器”中選擇“數據庫”→“jxsk”→“表”,查看數據庫表學生表STUDENT與教師表TEACHER相關列的定義已隨之改變;

            5 使用系統存儲過程刪除數據類型Nameperson

            (1) 單擊屏幕上方 “工具欄”菜單中的“新建查詢”按鈕,打開“查詢編輯器”窗口,并在“查詢編輯器”窗口中輸入以下T-SQL語句:

            USE jxskGOALTER TABLE STUDENT ALTER COLUMN SN CHAR(10) NOT NULLGOALTER TABLE TEACHER ALTER COLUMN TN CHAR(10) NOT NULLGOEXEC sp_droptype NAMEPERSONGO

            (2) 單擊 “工具欄”中的“執行(x)”按鈕,即可執行上述T-SQL語句,如下圖;

            (3) 在“對象資源管理器”中選擇“數據庫”→“jxsk”→“可編程性”→“類型”→“用戶定義數據類型”,可看到數據類型Nameperson已經不存在;

            6 交互式刪除數據類型Idnum

            (1) 在“對象資源管理器”中選擇“數據庫”→“jxsk”→“可編程性”→“類型”→“用戶定義數據類型”,右擊后選擇“刪除”,選擇“確定”;

            (2) 發現刪除出現問題,認為是由于數據庫表中有列仍然在使用這一數據結構,故需先將上述數據結構從表中移除再進行刪除操作,輸入的SQL語言為:

            USE jxskGOALTER TABLE STUDENT ALTER COLUMN SNO CHAR(10) NOT NULLGOALTER TABLE TEACHER ALTER COLUMN TNO CHAR(10) NOT NULLGO

            結果如下;

            (3) 在“對象資源管理器”中選擇“數據庫”→“jxsk”→“可編程性”→“類型”→“用戶定義數據類型”,發現數據類型Idnum已不再存在;

            7 交互式創建標量函數Score_FUN

            (1) 在“對象資源管理器”中選擇“數據庫”→“jxsk”→“可編程性”→“函數”→“標量值函數”,右擊并在彈出的窗口中選擇“新建標量值函數”,打開的窗口包含模板語句如下:

            -- ================================================-- Template generated from Template Explorer using:-- Create Scalar Function (New Menu).SQL---- U the Specify Values for Template Parameters -- command (Ctrl-Shift-M) to fill in the parameter -- values below.---- This block of comments will not be included in-- the definition of the function.-- ================================================SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGO-- =============================================-- Author: <Author,,Name>-- Create date: <Create Date, ,>-- Description: <Description, ,>-- =============================================CREATE FUNCTION <Scalar_Function_Name, sysname, FunctionName> ( -- Add the parameters for the function here <@Param1, sysname, @p1> <Data_Type_For_Param1, , int>)RETURNS <Function_Data_Type, ,int>ASBEGIN -- Declare the return variable here DECLARE <@ResultVar, sysname, @Result> <Function_Data_Type, ,int> -- Add the T-SQL statements to compute the return value here SELECT <@ResultVar, sysname, @Result> = <@Param1, sysname, @p1> -- Return the result of the function RETURN <@ResultVar, sysname, @Result>ENDGO

            (2) 將上述語句改為:

            CREATE FUNCTION SCORE_FUN(@SNAME_IN CHAR(8),@CNAME_IN CHAR(10))RETURNS TINYINTASBEGINDECLARE @SCORE_OUT TINYINTSELECT @SCORE_OUT=SCORE FROM SC,S,CWHERE S.SNO=SC.SNO AND C.CNO=SC.CNO AND SN=@SNAME_IN AND CN=@CNAME_INRETURN(@score_out)END

            (3) 單擊“分析”對語句加以語法檢查,如下圖;單擊 “工具欄”中的“執行(x)”按鈕,即可執行上述T-SQL語句,如下圖;

            (4) 第一次輸入語句有誤,更正后如下;

            (5) 在“對象資源管理器”中選擇“數據庫”→“jxsk”→“可編程性”→“函數”→“標量值函數”,可看到已建立的標量函數Score_FUN;

            8 使用標量函數Score_FUN查詢數據庫表中信息

            (1) 單擊屏幕上方 “工具欄”菜單中的“新建查詢”按鈕,打開“查詢編輯器”窗口,并在“查詢編輯器”窗口中輸入以下T-SQL語句:

            USE jxskGODECLARE @S_SCORE TINYINTEXEC @S_SCORE=DBO.SCORE_FUN '錢爾','編譯原理'PRINT'錢爾的編譯原理成績是'+STR(@S_SCORE)GO

            (2) 單擊 “工具欄”中的“執行(x)”按鈕,即可執行上述T-SQL語句,如下圖;

            (3) 第一次語句輸入有誤,沒有將漢語語句輸入進去,從而在最終結果出現錯誤;

            (4) 隨后對語句加以更正,結果恢復正常;

            9 用SQL創建內嵌表值函數S_Score_FUN

            (1) 單擊屏幕上方 “工具欄”菜單中的“新建查詢”按鈕,打開“查詢編輯器”窗口,并在“查詢編輯器”窗口中輸入以下T-SQL語句:

            USE jxskGOCREATE FUNCTION S_SCORE_FUN(@SNAME_IN CHAR(8))RETURNS TABLEASRETURN (SELECT CN,SCORE FROM S,SC,CWHERE S.SNO=SC.SNO AND C.CNO=SC.CNO AND SN=@SNAME_IN)GO

            (2) 單擊 “工具欄”中的“執行(x)”按鈕,即可執行上述T-SQL語句,如下圖;

            (3) 在“對象資源管理器”中選擇“數據庫”→“jxsk”→“可編程性”→“函數”→“表值函數”,可看到已建立的內嵌表值函數S_Score_FUN;

            10 使用內嵌表值函數S_Score_FUN查詢數據庫表中信息

            (1) 單擊屏幕上方 “工具欄”菜單中的“新建查詢”按鈕,打開“查詢編輯器”窗口,并在“查詢編輯器”窗口中輸入以下T-SQL語句:

            USE jxskGOSELECT*FROM S_SCORE_FUN('錢爾')GO

            (2) 單擊 “工具欄”中的“執行(x)”按鈕,即可執行上述T-SQL語句,如下圖;

            11 用SQL創建多語句函數ALL_Score_FUN

            (1) 單擊屏幕上方 “工具欄”菜單中的“新建查詢”按鈕,打開“查詢編輯器”窗口,并在“查詢編輯器”窗口中輸入以下T-SQL語句:

            USE jxskGOCREATE FUNCTION ALL_SCORE_FUN(@CNAME_IN CHAR(10))RETURNS @ALL_SCORE_TAB TABLE(SNO CHAR(2) PRIMARY KEY,SN CHAR(8) NOT NULL,SEX CHAR(2),SCORE TINYINT)ASBEGININSERT @ALL_SCORE_TABSELECT S.SNO,SN,SEX,SCOREFROM S,SC,CWHERE S.SNO=SC.SNO AND C.CNO=SC.CNO AND CN=@CNAME_INRETURNENDGO

            (2) 單擊 “工具欄”中的“執行(x)”按鈕,即可執行上述T-SQL語句,如下圖;

            (3) 在“對象資源管理器”中選擇“數據庫”→“jxsk”→“可編程性”→“函數”→“表值函數”,可看到已建立的多語句函數ALL_Score_FUN;

            12 使用多語句函數ALL_Score_FUN查詢數據庫表中信息

            (1) 單擊屏幕上方 “工具欄”菜單中的“新建查詢”按鈕,打開“查詢編輯器”窗口,并在“查詢編輯器”窗口中輸入以下T-SQL語句:

            USE jxskGOSELECT*FROM ALL_SCORE_FUN('微機原理')GO

            (2) 單擊 “工具欄”中的“執行(x)”按鈕,即可執行上述T-SQL語句,如下圖;

            (3) 能看到我的結果是空白。檢查語句發現并沒有錯誤,則返回原有數據庫表對數據加以檢查,發現我的數據庫表中確實沒有微機原理的相關數據,所以考慮更換語句為

            USE jxskGOSELECT*FROM ALL_SCORE_FUN('數據庫')GO

            (4) 單擊 “工具欄”中的“執行(x)”按鈕,即可執行上述T-SQL語句,如下圖;

            13 交互式修改函數Score_FUN

            (1) 在“對象資源管理器”中選擇“數據庫”→“jxsk”→“可編程性”→“函數”→“標量值函數”,右擊并在彈出的窗口中選擇“新建標量值函數”,打開的窗口包含模板語句如下:

            USE [jxsk]GO/****** Object: UrDefinedFunction [dbo].[SCORE_FUN] Script Date: 05/21/2019 19:34:43 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOALTER FUNCTION [dbo].[SCORE_FUN](@SNAME_IN CHAR(8),@CNAME_IN CHAR(10))RETURNS TINYINTASBEGINDECLARE @SCORE_OUT TINYINTSELECT @SCORE_OUT=SCORE FROM SC,S,CWHERE S.SNO=SC.SNO AND C.CNO=SC.CNO AND SN=@SNAME_IN AND CN=@CNAME_INRETURN(@score_out)END

            (2) 將上述語句改為

            ALTER FUNCTION SCORE_FUN(@SNAME_IN CHAR(10),@CNAME_IN CHAR(10))RETURNS CHAR(8)ASBEGINDECLARE @SCORE_OUT CHAR(8)SELECT @SCORE_OUT=CASEWHEN SCORE IS NULL THEN '未考'WHEN SCORE<60 THEN '不及格'WHEN SCORE>=60 AND SCORE<70 THEN '及格'WHEN SCORE>=70 AND SCORE<80 THEN '中'WHEN SCORE>=80 AND SCORE<90 THEN '良好'WHEN SCORE>=90 THEN '優秀'ENDFROM SC,S,CWHERE S.SNO=SC.SNO AND C.CNO=SC.CNO AND SN=@SNAME_IN AND CN=@CNAME_INRETURN(@SCORE_OUT)END

            (3) 單擊“分析”對語句加以語法檢查,如下圖; 檢查后發現語句輸入有誤,對其加以回顧找出所存在錯誤并加以修改,再次進行語法檢查如下下圖; 單擊 “工具欄”中的“執行(x)”按鈕,即可執行上述T-SQL語句,如下下下圖;

            (4) 在“對象資源管理器”中選擇“數據庫”→“jxsk”→“可編程性”→“函數”→“標量值函數”→“dbo.Score_FUN”→“參數”節點,查看其參數變化;

            14 使用函數Score_FUN查詢數據庫表中信息

            (1) 單擊屏幕上方 “工具欄”菜單中的“新建查詢”按鈕,打開“查詢編輯器”窗口,并在“查詢編輯器”窗口中輸入以下T-SQL語句:

            USE jxskGODECLARE @S_SCORE CHAR(8)EXEC @S_SCORE=DBO.SCORE_FUN '錢爾','編譯原理'PRINT'錢爾的編譯原理成績是'+@S_SCOREGO

            (2) 單擊 “工具欄”中的“執行(x)”按鈕,即可執行上述T-SQL語句,如下圖;

            15 用SQL修改函數S_Score_FUN

            (1) 單擊屏幕上方 “工具欄”菜單中的“新建查詢”按鈕,打開“查詢編輯器”窗口,并在“查詢編輯器”窗口中輸入以下T-SQL語句:

            USE JXSKGOALTER FUNCTION S_SCORE_FUN(@SNAME_IN CHAR(8))RETURNS TABLEASRETURN (SELECT CN,SCORE,LEVER=CASEWHEN SCORE IS NULL THEN '未考'WHEN SCORE<60 THEN '不及格'WHEN SCORE>=60 AND SCORE<70 THEN '及格'WHEN SCORE>=70 AND SCORE<80 THEN '中'WHEN SCORE>=80 AND SCORE<90 THEN '良好'WHEN SCORE>=90 THEN '優秀'ENDFROM S,SC,CWHERE S.SNO=SC.SNO AND C.CNO=SC.CNO AND SN=@SNAME_IN)GO

            (2) 單擊 “工具欄”中的“執行(x)”按鈕,即可執行上述T-SQL語句,如下圖;

            16 使用函數S_Score_FUN查詢數據庫表中信息

            (1) 單擊屏幕上方 “工具欄”菜單中的“新建查詢”按鈕,打開“查詢編輯器”窗口,并在“查詢編輯器”窗口中輸入以下T-SQL語句:

            USE jxskGOSELECT*FROM S_SCORE_FUN('錢爾')GO

            (2) 單擊 “工具欄”中的“執行(x)”按鈕,即可執行上述T-SQL語句,如下圖;

            17 交互式刪除函數Score_FUN

            (1) 在“對象資源管理器”中選擇“數據庫”→“jxsk”→“可編程性”→“函數”→“標量值函數”→“dbo.Score_FUN”并右擊,在彈出的窗口中選擇“刪除”選項;

            (2) 在彈出的“刪除對象”窗口中選擇“確定”選項,函數Score_FUN即被刪除;

            18 用SQL刪除函數S_Score_FUN

            (1) 單擊屏幕上方 “工具欄”菜單中的“新建查詢”按鈕,打開“查詢編輯器”窗口,并在“查詢編輯器”窗口中輸入以下T-SQL語句:

            USE jxskDROP FUNCTION S_SCORE_FUNGO

            (2) 單擊 “工具欄”中的“執行(x)”按鈕,即可執行上述T-SQL語句,如下圖;

            (3) 在“對象資源管理器”中選擇“數據庫”→“jxsk”→“可編程性”→“函數”→“表值函數”節點可看到函數S_Score_FUN已被刪除;

            本文發布于:2023-02-28 21:00:00,感謝您對本站的認可!

            本文鏈接:http://www.newhan.cn/zhishi/a/167771476399869.html

            版權聲明:本站內容均來自互聯網,僅供演示用,請勿用于商業和其他非法用途。如果侵犯了您的權益請與我們聯系,我們將在24小時內刪除。

            本文word下載地址:quoted.doc

            本文 PDF 下載地址:quoted.pdf

            標簽:quoted
            相關文章
            留言與評論(共有 0 條評論)
               
            驗證碼:
            推薦文章
            排行榜
            Copyright ?2019-2022 Comsenz Inc.Powered by ? 實用文體寫作網旗下知識大全大全欄目是一個全百科類寶庫! 優秀范文|法律文書|專利查詢|
            主站蜘蛛池模板: 国产91成人亚洲综合在线| 久久人人妻人人爽人人爽| 欧美日韩精品一区二区三区| 亚洲午夜精品毛片成人播放| 青青青青国产免费线在线观看| 欧美丰满熟妇hdxx| 国产午夜精品在人线播放| 91福利国产成人精品导航| 无码专区中文字幕无码| 亚洲人成网线在线播放VA| 他掀开裙子把舌头伸进去添视频 | 少妇脱了内裤在客厅被| 国产高清乱码又大又圆| 亚洲熟妇自偷自拍另欧美| 成人免费777777| 亚洲天堂一区二区三区三州| 久久96热在精品国产高清| 精品www日韩熟女人妻| 国产亚洲亚洲国产一二区| 欧美人成在线播放网站免费| 国产精品无码a∨麻豆| 秋霞鲁丝片成人无码| 高清熟女国产一区二区三区| 欧美性猛交xxxx免费看| 无码一区二区波多野结衣播放搜索| 亚洲爆乳www无码专区| 国产一区二区三区在线看| 国产精品美女自慰喷水| 欧美熟妇乱子伦XX视频| 日本福利一区二区精品| 香蕉人妻av久久久久天天| 亚洲产在线精品亚洲第一站一| 亚洲色大成永久WW网站| 久久无码精品一一区二区三区| 玩弄放荡人妻少妇系列 | 国产一区| 成 人 色 网 站免费观看| 亚洲日本中文字幕乱码在线电影| 亚洲欧美日韩在线码| 国产精品无码免费播放| 免费人成在线观看网站|