ホームページ php教程 PHP开发 SQL ストアド プロシージャの使用を開始するための基本について

SQL ストアド プロシージャの使用を開始するための基本について

Dec 14, 2016 pm 01:44 PM

大学ではストアドプロシージャについて何も言及されていません。しばらく働いても、ストアドプロシージャをまったく使用する必要がありません。これは、ソフトウェアの方向性によるものかもしれません。今後の発展のために、一から勉強することにしました。

ストアド プロシージャの定義は次のとおりです。ストアド プロシージャ (ストアド プロシージャ) は、特定の関数を実行するための一連の SQL ステートメントであり、ユーザーがストアド プロシージャの名前を指定してデータベースに保存します。パラメーター。ストアド プロシージャがパラメーターを使用して実行される場合。

SQL Server のシリーズ バージョンでは、ストアド プロシージャは、システム提供のストアド プロシージャとユーザー定義のストアド プロシージャの 2 つのカテゴリに分類されます。

システム SP は主にマスター データベースに格納され、接頭辞として sp_ が付けられます。システム ストアド プロシージャは主にシステム テーブルから情報を取得し、システム管理者向けに SQL Server を管理します。

一般的に使用されるシステム ストアド プロシージャは次のとおりです。

exec sp_databases; --查看数据库
exec sp_tables;        --查看表
exec sp_columns student;--查看列
exec sp_helpIndex student;--查看索引
exec sp_helpConstraint student;--约束
exec sp_stored_procedures;
exec sp_helptext 'sp_stored_procedures';--查看存储过程创建、定义语句
exec sp_rename student, stuInfo;--修改表、索引、列的名称
exec sp_renamedb myTempDB, myDB;--更改数据库名称
exec sp_defaultdb 'master', 'myDB';--更改登录名的默认数据库
exec sp_helpdb;--数据库帮助,查询数据库信息
exec sp_helpdb master;
ログイン後にコピー

ユーザー定義ストアド プロシージャはユーザーによって作成され、ユーザーが必要とするデータ情報をクエリするストアド プロシージャなどの特定の機能を実行できます。

ここでは、ストアド プロシージャの利点を見ていきます

(1) 再利用。ストアド プロシージャは再利用できるため、データベース開発者の作業負荷が軽減されます。

(2) パフォーマンスを向上させます。ストアド プロシージャは作成時にコンパイルされ、将来使用するときに再コンパイルする必要はありません。一般的な SQL ステートメントは実行するたびにコンパイルする必要があるため、ストアド プロシージャを使用すると効率が向上します。

(3) ネットワークトラフィックを削減します。ストアド プロシージャはサーバー上に配置されているため、呼び出すときはストアド プロシージャの名前とパラメータを渡すだけで済むため、ネットワーク上で送信されるデータの量が削減されます。

(4) 安全性。パラメーター化されたストアド プロシージャは SQL インジェクション攻撃を防ぐことができ、ストアド プロシージャにアクセス許可の付与、拒否、取り消しを適用できます。

それでは、作成の基本的な構文を見てみましょう

定义存储过程的语法
    CREATE  PROC[EDURE]  存储过程名
              @参数1  数据类型 = 默认值,
               …… ,
              @参数n  数据类型 OUTPUT
            AS
            SQL语句
    GO
,参数是可选的
,参数分为输入参数、输出参数
,输入参数允许有默认值
  这里来创建一个简单的存储过程
 
CREATE PROCEDURE UserLogin
@name varchar(20),
@password varchar(20)
AS
-- 定义一个临时用来保存密码的变量
--DECLARE @strPwd NVARCHAR(20) 这里先不介绍变量。稍后的文章会详细讲到
BEGIN
select * from userinfo where userName=@name and userPass=@password
END
GO
首先我们用简单的sql查询
select * from userinfo where userName='admin'
查询结果:
---------------------
UserName  UserPass
Admin      Admin
现在我们来执行我们的存储过程
exec UserLogin admin,admin
--或这样调用:
EXEC UserLogin @name='admin',@password='admin'
查询结果:
---------------------
UserName  UserPass
Admin      Admin
ログイン後にコピー

SQL SERVER では、すべてのユーザー定義変数は "@" で始まり、OUTPUT キーワードは、このパラメーターが出力、AS に使用されることを示します。その後にストアド プロシージャの内容が続きます。上記のコードが「クエリ アナライザー」で一度実行される限り、SQL SERVER は現在のデータベースに「UserLogin」という名前のストアド プロシージャを作成します。 「Enterprise Manager」を開き、現在操作しているデータベースを選択し、左側のツリーリストで「Programmability -> Stored Procedures」を選択すると、リストに先ほど作成したデータベースが表示されます。右側にストアド プロシージャがあります (ない場合は更新してください)。

データ内のストアド プロシージャを呼び出すには 2 つの方法があることがわかりました (ここでは EXEC と EXECUTE は同等です)。 1 = パラメータ値 1、パラメータ 2 = パラメータ値 2....

上でも見ました。

ストアド プロシージャを削除したい場合は、次のように Drop

を使用します

drop PROCEDURE UserLogin
ログイン後にコピー

このようなストアド プロシージャを作成するのは、データを表示するだけではありません。

Web または winform プログラムを作成しているとします。ログインが必要だとします。ログインするには、このストアド プロシージャを呼び出します。渡されたパラメーターに従って、クエリにレコードが存在することになります。データベースはログイン成功を示し、そうでない場合は失敗を示します。

これはより安全であり、SQL インジェクションを防ぐことができます。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)