データベース - プログラミングの背景

目標

定義およびストアドプロシージャを使用して、マスターは、
マスター2に、ユーザ定義関数を使用して作成された
を使用して定義されたマスタフリップフロップ3
カーソル制御4の定義および使用

基本コンセプト

T-SQL言語を使用してコードを書くときに、コードは2つの方法で格納され実行される
クライアント・コードに格納されている(1)クライアントプログラムまたはDBMS SQLコマンドを介して操作要求を発行し、DBMSはユーザプログラムに結果を返す
(2)実行を繰り返し呼び出すことにより、権限を持つユーザーのために、モジュール内に保存されたサブルーチンプログラムデータの形で

ストアドプロシージャ:すべてのサブルーチンのデータベースに保管し、ユーザプログラムを呼び出し
、ストアドプロシージャは3つのカテゴリに分類される:
システム・メモリと、ユーザ定義のストレージ、拡張ストアドプロシージャ

ユーザ定義ストアド・プロシージャは、ユーザによって作成され、保存された手順(例えば、ユーザによって要求されるクエリデータ情報のような)特定の機能を完了することができます。このセクションでは、ユーザ定義ストアド・プロシージャの詳細

拡張ストアドプロシージャ:SQL Serverが動的に再現し、ダイナミックリンクライブラリ(DLL)を行うことができます。拡張ストアドプロシージャを使用するには、ユーザーに、ストアドプロシージャ、および一般的なストレージ・プロセスを拡張し、メソッドの実装は同じであるCなどのプログラミング言語を使用して独自の外部ルーチンを作成することができます

ストアドプロシージャの利点:
高い効率の
再利用及び拡張コードを共有する
ストアドプロシージャを使用して、ネットワークトラフィックを減らすことができ
、安全性を確保するためのストアドプロシージャを使用して
大規模なデータベースで、主な方法のアプリケーションは、データベースがストアドプロシージャであるアクセス
ストアドプロシージャをすることができあなたが起動時に自動的に実行されるシステム

作成、実行、および削除のストアドプロシージャ
ストアドプロシージャ定義が偶数大部分含む
プロシージャ名の説明とそのパラメータの
ストアドプロシージャを作成する(T-SQLステートメントの動作の実装を含む)被験者2の手順を構文
ここに画像を挿入説明
ここに画像を挿入説明
ここに画像を挿入説明
ここに画像を挿入説明
ここに画像を挿入説明
ストアドプロシージャを削除します。
DROP PROCEDUREの

DROP PROCEDURE p_custbuy

:ユーザ定義関数
余における関数型プログラミングと同様、ストアドプロシージャと同様の構造が、関数の戻り値の戻り句の機能が存在しなければなりません

2つのユーザ定義関数:
単一のデータ値を、テーブル値関数の戻りテーブルスカラー関数と関数値テーブル、前者戻ります

スカラー関数を作成し、呼び出し
のfuctionをCREATE RETURNSがreturn_data_type ...
AS
BEGIN
[関数本体を]
RETURNのscalar_expressionの
ENDが
ここに画像を挿入説明
呼び出されたスカラー関数
注:あなたが呼び出すときに、関数の所有者名や関数名を提供する必要が
任意のSQL文で均一なスカラー関数の種類を呼び出すことができることの表現で発生
ここに画像を挿入説明
作成インラインテーブル値関数を呼び出す
のインラインテーブル値関数を作成するために
、テーブルのfuction ...リターン作成
AS
リターン[(select_stmt)]
パラメータの説明:select_stmt定義は、インラインテーブル値関数では、単一のSELECT文の価値を返し、テーブル値関数は、変数を返さない、ありません関数本体は、唯一のクエリ結果を返します

関連する関数値テーブルを呼び出す
インラインでは、関数値テーブルと同様の図で、パラメータを持つビューとして作用する
ここに画像を挿入説明
作成し、複数ステートメントのテーブル値関数を呼び出す
CREATEのfuction ... @ return_variable RETURNSの
TABLE <table_type_definitionはリターンテーブル構造を定義>
ASは、
BEGIN
[関数本体:SQL文]
戻り
ENDの
通話機能、マルチステートメントテーブル値:FROM句で使用されるSELECT
ここに画像を挿入説明
ここに画像を挿入説明
4削除ユーザ定義関数
DROP機能

DROP機能f_GoodsCount

トリガー

基本的な考え方:特別なメモリ、テーブル内のデータがUPDATE、INSERT、DELETE操作を自動的に実行多くの場合、そのビジネスルールとデータの整合性を確保するために使用、強化されたデータの整合性制約に能力がトリガされた
SQL Server 2008人のサポートトリガの3種類:DML DDLはログインをトリガ

アプリケーション:
完了チェックの1つの比(表の値は、同じ列の制約との間に達成することができる)制約より複雑なデータ制約は、
2保証パフォーマンスデータベースは、データが維持非正規化
複雑なビジネスルールの実装3
4を修飾した後、テーブルステータス評価データを、対策を取ります

创建触发器
TRIGGER TRIGGER_NAMEで作成
{テーブル|ビュー}
[暗号化]
{INSTEAD OF FOR | | AFTER}
{[INSERT] [、] [UPDATE] [、]
[DELETE]を
}
AS
sql_statementは[... n]は

パラメータ:
FORまたはAFTER:トリガー・タイプ、操作、制約出発完了後の検査後
のINSERT:出発式の前に、データ操作文がフリップフロップまで定義、実行原因文の代わりに、フリップフロップ、整合性制約ルールであればニーズを満たすためにこれらのデータ操作を再実行します

注:
表は複数のフリップフロップ構築することができ、3つの動作によってトリガ各フリップフロップ。操作のALTERタイプは、INSTEAD OFトリガービルドが同じタイプで動作し、同じ操作に複数のトリガーを作成するには
、すべての設定と変更データとデータベースが文をオブジェクトは、DROP文がトリガに許可されていない
トリガーは結果を返しません

実施例1:トリガの異なる場合の値の完全性を維持確保するために、テーブルの列の値で商品単価列の値と単価の商品価格の変更は、合意されたここに画像を挿入説明
ここに画像を挿入説明
トリガー削除する
DROPトリガ
として
DROP TRIGGER操作
DROP TRIGGER UnitPriceConsistent
DROP TRIGGER DeleteCustを

カーソル

カーソル:
現在のカーソル行ポインタ(結果セット内の行へのポイント)にカーソル結果セットは、(SELECTが結果セットを返す)
特徴:特定の行を配置するステップと、サーチ線又は線の現在の位置から、ラインデータが変更をサポートし、修飾は、異なる結果を提供他のサポートレベルの可視性

カーソルを使用する:
(1)カーソル宣言
のDECLARE cursor_nameは[1]のカーソル:ISO標準構文 [2] select_statementには
(1)INSENSTITIVE:一時テーブルの一時的なコピーを作成し、さもなければ基本的なテーブルと、SCROLL:パラメータ説明は、範囲そうでなければ次のサポート
(2)カーソル開く
オープンのcursor_nameを

(3)データを抽出
FETCH [1] cursor_nameは[] N- INTO @変数名[、...] FROM
近いカーソル(4)
CLOSEとのcursor_nameを
再び開くことができるが、
(5)パックリリース
curssor_name DEALLOCATE
カーソルに割り当てられたすべてのリソースを解放します
ここに画像を挿入説明
ここに画像を挿入説明

公開された12元の記事 ウォンの賞賛0 ビュー254

おすすめ

転載: blog.csdn.net/inventertom/article/details/104802252