MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

簡単なMySQL関数を作成するにはどうすればよいですか?


createfunctionコマンドを使用して関数を作成できます。構文は次のとおりです-

delimiter //
DROP FUNCTION if exists yourFunctionName;
CREATE FUNCTION yourFunctionName(Parameter1,...N) returns type
BEGIN
# declaring variables;
# MySQL statementns
END //
delimiter ;

まず、ここでテーブルを作成し、テーブルにいくつかのレコードを追加します。その後、簡単な関数が作成されます。以下は、テーブルを作成するためのクエリです-

mysql> create table ViewDemo
   −> (
   −> Id int,
   −> Name varchar(200),
   −> Age int
   −> );
Query OK, 0 rows affected (0.58 sec)

挿入コマンドを使用して、テーブルにレコードを挿入します。クエリは次のとおりです-

mysql> insert into ViewDemo values(1,'John',23);
Query OK, 1 row affected (0.15 sec)

mysql> insert into ViewDemo values(2,'Sam',24);
Query OK, 1 row affected (0.15 sec)

selectステートメントを使用して、テーブルのすべてのレコードを表示します。クエリは次のとおりです-

mysql> select *from ViewDemo;

以下は出力です-

+------+------+------+
| Id   | Name | Age  |
+------+------+------+
|    1 | John | 23   |
|    2 | Sam  | 24   |
+------+------+------+
2 rows in set (0.00 sec)

次に、整数パラメーターを受け取り、文字列を返す関数を作成します。この関数の目的は、指定されたIDのレコードを検索することです。指定されたIDがテーブルIDと一致する場合は名前を返し、そうでない場合は「見つかりません」などのエラーメッセージを表示します。

機能は次のとおりです-

mysql> SET GLOBAL log_bin_trust_function_creators = 1;
Query OK, 0 rows affected (0.00 sec)
mysql> drop function if exists searchRecord;
   ->
   -> create function searchRecord(yourId int) returns char(100)
   -> begin
   -> declare Name1 char(100) default "No Name Found For This Id";
   -> select Name into Name1 from ViewDemo where Id =yourId;
   -> return Name1;
   -> end //
Query OK, 0 rows affected (0.21 sec)
Query OK, 0 rows affected (0.33 sec)
mysql> delimiter ;

次に、関数が指定されたIDで機能していることを確認します。

ケース1 −指定されたIDが存在する場合。

クエリは次のとおりです-

mysql> select searchRecord(2) as Found;

以下は出力です-

+-------+
| Found |
+-------+
| Sam   |
+-------+
1 row in set (0.00 sec)

ケース2 −指定されたIDが存在しない場合。

クエリは次のとおりです-

mysql> select searchRecord(100) as Found;

以下は、レコードが存在しないことを示す出力です-

+---------------------------+
| Found                     |
+---------------------------+
| No Name Found For This Id |
+---------------------------+
1 row in set (0.00 sec)

  1. MySQLのコマンドラインでデータベースを作成するにはどうすればよいですか?

    まず、コマンドプロンプトを開く必要があります。ショートカットウィンドウ+Rキーを使用して開くことができます。 スクリーンショットは次のとおりです- ここでCMDと入力し、[OK]ボタンを押します- これで、次のコマンドプロンプトが表示されます- 次に、MySQLbinディレクトリにアクセスします。スクリーンショットは次のとおりです- 以下は、データベースを作成するためにコマンドラインでMySQLを実行するためのクエリです- これで、SHOWDATABASESコマンドを使用してデータベースが作成されているかどうかを確認できます- mysql> SH

  2. MySQLシーケンスを作成する方法は?

    MySQLのシーケンスとは何ですか? MySQLでは、シーケンスとは、指定されている場合は1または0から昇順で生成される整数のリストを指します。多くのアプリケーションでは、特に識別のために一意の番号を生成するために使用されるシーケンスが必要です。 例 例としては、CRMの顧客ID、HRの従業員番号、サービス管理システムの機器番号などがあります。 MySQLでシーケンスを自動的に作成するには、列のAUTO_INCREMENT属性を設定する必要があります。これは通常、主キー列になります。 ルール AUTO_INCREMENT属性を使用するときは、次のルールに従う必要があります- すべての