SQL語言基礎(7)

2021-05-12 13:41:19 字數 2236 閱讀 6927

使用者自定義函式:不能用於執行一系列改變資料庫狀態的操作,但可以像系統函式一樣在查詢或儲存過程 等程式段中使用,也可以像儲存過程一樣通過execute命令執行。sql server2000中根據函式返回值的不同將使用者定義函式分為3種型別:1 標量型函式 不能返回text、ntext、image、cursor、timestamp、table型別,函式體語句定義在begin-end語句內,其中包含了可以返回值的t-sql命令。 2 內嵌錶值函式:以表的形式返回值。沒有begin-end擴起來的函式體,返回的表由位於return子句中的select命令字段從資料庫篩選,功能相當於乙個引數化的檢視。 3 多語句錶值型函式,可以看成以上兩種函式的結合體,返回的是乙個表,但有begin-end語句括起來的函式體。 標量型自定義函式的建立:create function [owner_name] function_name (@parameter_name [as] scalar_parameter_date_type[default] [...n] ) returns scalar_return_date_type [with

[...n] ] [as] begin function_body return scalar_expression end 引數說明:owner_name:指定自定義使用者的所有者 function:函式名 database_name.owner_name.function_name應該是唯一的 @parameter_name:定義乙個或多個引數名稱,乙個名稱最多定義1024個引數,每個引數前用@符號宣告。引數作用範圍是整個函式,引數只能替代常量,不能替代表名,列名或其他資料庫物件名稱,使用者自定義函式不支援輸出引數。 scalar_parameter_data_type:標量型引數的資料型別。(不能用和返回值禁止使用的標量名稱) scalar_return_data_type:標量型返回值的資料型別。(除text、ntext等) scalar_expression:標量型使用者自定義函式返回的標量值表示式。 function_body:指定一系列t—sql語句,決定了函式的返回值。 encryption:加密選項。對function的宣告加密,防止使用者自定義函式作為sql server複製的一部分而被發布。 schemabinding:函式繫結到它所引用的資料庫物件。函式涉及的資料庫物件從此將不能被刪除或修改。要繫結的資料庫物件必須與函式在同乙個資料庫裡面。 內嵌錶值的使用者自定義函式建立:create function [owner_name.] function_name (@parameter_name [as] scalar_parameter_date_type[default] [...n] ) returns table [with

[...n] ] [as] return [(] select-stmt [)] table:指定返回值為乙個表 select-stmt:單個select語句,確定返回表的資料。 其他和標量型的引數相似。 多語句錶值使用者自定義函式:create function [owner_name.] function_name (@parameter_name [as] scalar_parameter_date_type[default] [...n] ) returns @return_variable table

[with

[...n]] as begin function_body return end 還可以通過企業管理器建立使用者自定義函式 在建立的模板語句中把相應的項替換。 修改和刪除使用者自定義函式:drop function [...n] 修改時基本上相當於重建乙個同名函式。一般直接在函式當中進行修改。 流程控制語句 begin end語句,將多個t-sql語句組成乙個語句塊,作為乙個單元處理。相當於{},可巢狀。 if else語句:功能同程式語言,也可巢狀。 if exists語句:返回值不止乙個為真 不要把if exists和聚合函式一起使用,因為聚合函式總是返回資料,即使資料是0。比如返回值的個數,就算為零,if exists語句也算為真,所以恆真。 while語句:迴圈語句,continue和break,如果select用於while語句的條件,select語句必須包含在英文括號當中。 case表示式:case 欄位名或變數名 when 邏輯表示式1 then 結果表示式1 when 邏輯表示式2 then 結果表示式2 else 結果表示式 end 比如:use 工資庫 update employee set e_wage= case when job_level="1" then e_wage*1.08 when job_level="2" then e_wage*1.07 when job_level="3" then e_wage*1.06 else e_wage*1.05 end return語句:無條件終止乙個查詢,儲存過程或批處理。

SQL語言基礎

1.集合的操作 union 將多個查詢結果相加形成乙個結果集。將第乙個查詢中的所有行與第2個查詢中的所有行相加,並消除其中相同的行形成乙個集合。intersect 處理多個查詢結果的交集。2.新增 刪除字段 alter table user add pwd varchar2 10 alter tab...

SQL語言基礎

sql語言基礎 一 sql語言概述 sql語言 是一種結構化查詢語言,是一種用於關係式資料庫中定義和操縱資料的語言。也可以形象的 理解為使用者和資料庫進行交流的語言。被大多數關係式資料庫,如oracle,mysql資料庫所採用。二 sql語言的模式與物件 1 模式 模式是資料庫物件的集合,是資料庫中...

SQL語言基礎

create database student drop database student rename database student to student1 已棄用 此語句僅曾在乙個版本的mysql中可用資料型別 用途integer size int size smallint size ti...