Mysql 存储过程_MySQL
转换结束符:
delimiter /
存储过程:
create procedure test
()#或者是(a int,b int,out b int)
begin
#这里写你的操作
end /
调用:call test()/
存储函数:
create function test
()#或者是(a int,b int)
returns int #函数体必须包含一个RETURN value语句
begin
#这里写你的操作
return 1;
end/
调用:select test()/
备注:存储函数内不能查表(不能使用select 语句)储过程可以
语法:
- 存储过程中的局部变量前面无@符号用declare定义,且只能在begin end块中,全局变量为@var,前面带有@符号
begin
declare ab int default 1;
set a=100;
set a=ab;
enddeclare 定义的变量的优先级最高,所有当out a 等变量和局部变量相同名的时候,该变量只在该begin块中有效
SELECT id,data INTO x,y FROM test.t1 通过查询赋值变量
begin不能并列使用
2.返回值通过OUT参数得到
3.判断
if条件 then
操作
end if;
case 值 (可选)
when 条件 then 操作
when 条件 then 操作
end
4.循环
while 条件 do … end while
loop … end loop
repeat … end repeat
goto
while … end while 例
CREATE PROCEDURE p14 ()
BEGIN
DECLARE v INT;
SET v = 0;
WHILE v
INSERT INTO t VALUES (v);
SET v = v + 1;
END WHILE;
END; //
labels 使用
lab1 :begin
操作
end lab1;
lab2:while 条件 do
#操作
#可以使用leave lab2;跳出循环
#可以使用iterate lab2;跳过当次循环
end while lab2
GOTO 使用
b1:begin
declare i int;
set i=1;
label lab1;
select 'hi';
set i=i+1;
if(i
goto lab1;
end b1;
5.错误处理
declare continue handler for sqlstate 'error number' 操作 end;
declare exit handler for sqlstate 'error number' 操作 end;
sqlstate 'error number' 还可以是
not found #空行
sqlexception #发生错误
sqlwarning #发生警告
以上语句均在发送错误的时候才触发
6.光标
只读的及不滚动, 声明处理程序之前被声明, SELECT语句不能有INTO子句。
例:
CREATE PROCEDURE curdemo()
BEGIN
declare a,b,done int;
DECLARE cur1 CURSOR FOR SELECT id,data FROM test.t1;
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;#声明错误处理
OPEN cur1;#打开光标
while done!=1 do
fetch cur1 into a,b;
if a>b then select 'a';
else select 'b';
end if ;
end while;
close cur1;
end ;
备注:取得最后插入的ID 函数为last_insert_id();所有的存储过程等信息都在INFORMATION_SCHEMA库中
查询存储过程
show create procedure test/ #查询存储过程详细
show create function test/
触发器: TRIGGER
类型:
INSERT:将新行插入表时激活触发程序,例如,通过INSERT、LOAD DATA和REPLACE语句。
UPDATE:更改某一行时激活触发程序,例如,通过UPDATE语句。
DELETE:从表中删除某一行时激活触发程序,例如,通过DELETE和REPLACE语句。
使用OLD.col_name来引用更新前的某一行的列,也能使用NEW.col_name来引用更新后的行中的列
时间: BEFORE AFTER
例:
CREATE TRIGGER testtrio BEFORE INSERT ON test1
FOR EACH ROW BEGIN
#操作
END
动态SQL:
语法:
PREPARE stmt_name FROM preparable_stmt;
EXECUTE stmt_name [USING @var_name [, @var_name] ...];
{DEALLOCATE | DROP} PREPARE stmt_name;
实例:
mysql> SET @a=1;
mysql> PREPARE STMT FROM "SELECT * FROM tbl LIMIT ?";
mysql> EXECUTE STMT USING @a;
mysql> SET @skip=1; SET @numrows=5;
mysql> PREPARE STMT FROM "SELECT * FROM tbl LIMIT ?, ?";
mysql> EXECUTE STMT USING @skip, @numrows;

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック











Vue3+TS+Vite 開発のヒント: データを暗号化して保存する方法 インターネット技術の急速な発展に伴い、データ セキュリティとプライバシー保護がますます重要になっています。 Vue3+TS+Vite 開発環境では、データをどのように暗号化して保存するかが、すべての開発者が直面する必要がある問題です。この記事では、開発者がアプリケーションのセキュリティとユーザー エクスペリエンスを向上させるのに役立つ、一般的なデータ暗号化とストレージのテクニックをいくつか紹介します。 1. データ暗号化 フロントエンド データ暗号化 フロントエンド暗号化は、データ セキュリティを保護するための重要な部分です。よく使われる

このウェブサイトは3月7日、ファーウェイのデータストレージ製品ラインの社長である周岳峰博士が最近MWC2024カンファレンスに出席し、特にウォームデータ(WarmData)とコールドデータ(ColdData)用に設計された新世代のOceanStorArctic磁電ストレージソリューションをデモンストレーションしたと報じた。ファーウェイのデータストレージ製品ラインの社長である周岳峰氏は、一連の革新的なソリューションをリリースした 画像出典: このサイトに添付されているファーウェイの公式プレスリリースは次のとおりです: このソリューションのコストは磁気テープのコストより 20% 低く、そのコストは磁気テープのコストよりも 20% 低くなります。消費電力はハードディスクよりも90%低いです。外国のテクノロジーメディアのblocksandfilesによると、ファーウェイの広報担当者も磁気電子ストレージソリューションに関する情報を明らかにした:ファーウェイの磁気電子ディスク(MED)は磁気ストレージメディアの主要な革新である。初代ME

キャッシュとは何ですか?キャッシュ (カシェイと発音) は、頻繁に要求されるデータや命令を保存するために使用される特殊な高速ハードウェアまたはソフトウェア コンポーネントであり、Web サイト、アプリケーション、サービス、およびシステムのその他の側面をより高速に読み込むために使用できます。 。キャッシュにより、最も頻繁にアクセスされるデータがすぐに利用できるようになります。キャッシュ ファイルはキャッシュ メモリとは異なります。キャッシュ ファイルとは、複数のプログラムで必要になる可能性がある、PNG、アイコン、ロゴ、シェーダーなどの頻繁に必要なファイルを指します。これらのファイルは物理ドライブ領域に保存され、通常は隠されています。一方、キャッシュ メモリは、メイン メモリや RAM よりも高速なメモリのタイプです。 CPUに近く、RAMに比べて高速なため、データアクセス時間が大幅に短縮されます。

Git は、高速で信頼性が高く、適応性に優れた分散バージョン管理システムです。分散型の非線形ワークフローをサポートするように設計されており、あらゆる規模のソフトウェア開発チームに最適です。各 Git 作業ディレクトリは、すべての変更の完全な履歴を備えた独立したリポジトリであり、ネットワーク アクセスや中央サーバーがなくてもバージョンを追跡できます。 GitHub は、分散リビジョン管理のすべての機能を提供する、クラウド上でホストされる Git リポジトリです。 GitHub は、クラウド上でホストされる Git リポジトリです。 CLI ツールである Git とは異なり、GitHub には Web ベースのグラフィカル ユーザー インターフェイスがあります。これは、他の開発者との共同作業や、スクリプトへの変更の追跡などのバージョン管理に使用されます。

PHP と swoole はどのようにして効率的なデータのキャッシュとストレージを実現するのでしょうか?概要: Web アプリケーション開発では、データのキャッシュとストレージは非常に重要な部分です。 PHP と swoole は、データをキャッシュして保存するための効率的な方法を提供します。この記事では、PHP と swoole を使用して効率的なデータ キャッシュとストレージを実現する方法を紹介し、対応するコード例を示します。 1. swoole の紹介: swoole は、PHP 言語用に開発された高性能の非同期ネットワーク通信エンジンです。

sessionStorage を正しく使用して機密情報を保存する方法には、特定のコード サンプルが必要です。Web 開発でもモバイル アプリケーション開発でも、ユーザーのログイン資格情報や ID 番号などの機密情報を保存して処理する必要があることがよくあります。フロントエンド開発では、sessionStorage の使用が一般的なストレージ ソリューションです。ただし、sessionStorage はブラウザベースのストレージであるため、保存されている機密情報が悪意を持ってアクセスされ、使用されないように、いくつかのセキュリティ問題に注意を払う必要があります。

この記事は WeChat 公開アカウント「情報時代に生きる」から転載したものであり、著者は情報時代に生きています。この記事を転載するには、情報時代の暮らしの公開アカウントまでご連絡ください。データベース操作に慣れている学生にとって、美しい SQL ステートメントを作成し、データベースから必要なデータを見つける方法を見つけることは日常的な操作です。機械学習に精通している学生にとって、データの取得、データの前処理、モデルの構築、トレーニング セットとテスト セットの決定、トレーニングされたモデルを使用して将来についての一連の予測を行うことは、日常的な操作でもあります。では、2 つのテクノロジーを組み合わせることはできるでしょうか?データはデータベースに保存されており、予測は過去のデータに基づく必要があることがわかります。データベース内の既存のデータを通じて将来のデータをクエリすると、次のようになります。

Java コレクション フレームワークの概要 Java コレクション フレームワークは Java プログラミング言語の重要な部分であり、データを保存および管理できる一連のコンテナ クラス ライブラリを提供します。これらのコンテナ クラス ライブラリには、さまざまなシナリオでのデータ ストレージと処理のニーズを満たすために、さまざまなデータ構造があります。コレクション フレームワークの利点は、統一されたインターフェイスが提供され、開発者が異なるコンテナ クラス ライブラリを同じ方法で操作できるため、開発の困難さが軽減されることです。 Java コレクション フレームワークのデータ構造 Java コレクション フレームワークにはさまざまなデータ構造が含まれており、それぞれに独自の特性と適用可能なシナリオがあります。以下に、一般的な Java コレクション フレームワークのデータ構造をいくつか示します。 1. リスト: リストは、要素を繰り返すことができる順序付けされたコレクションです。李
