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

MySQL CREATE USER変数を使用しますか?


これには動的クエリを使用できます。まず、ユーザー名に変数名、パスワードに変数名を設定します。構文は次のとおりです-

SET @anyVariableName=’yourUserName’;
SET @anyVariableName1=’yourpassword’;

これで、MySQLのCONCAT()関数を使用できます。構文は次のとおりです-

SET @yourQueryName = CONCAT
('
   CREATE USER "',@anyVariableName,'"@"localhost" IDENTIFIED BY "',@anyVariableName1,'" '
);

プリペアドステートメントPREPAREを使用しましょう。構文は次のとおりです-

PREPARE yourStatementVariableName FROM @yourQueryName;

これで、ステートメントを実行できます。構文は次のとおりです-

EXECUTE yourStatementVariableName;

DEALLOCATE PREPAREを使用して、上記の割り当てを解除します。構文は次のとおりです-

DEALLOCATE PREPARE yourStatementVariableName;

上記の構文を理解するために、すべての手順を実行してみましょう-

ステップ1 −最初に2つの変数を作成します。1つはユーザー名用、もう1つはパスワード用です。

ユーザー名を作成するためのクエリは次のとおりです-

mysql> set @UserName:='John Doe';
Query OK, 0 rows affected (0.00 sec)

パスワードを作成するためのクエリ。

mysql> set @Password:='John Doe 123456';
Query OK, 0 rows affected (0.00 sec)

ステップ2 −ここで、CONCAT()関数を使用してユーザーを作成します。クエリは次のとおりです-

mysql> SET @CreationOfUser = CONCAT('
   '> CREATE USER "',@UserName,'"@"localhost" IDENTIFIED BY "',@Password,'" '
   -> );
Query OK, 0 rows affected (0.02 sec)

上記のクエリでは、@UserName変数名と@Password変数名を使用して名前とパスワードを持つユーザーを作成しました。

ステップ3 −次に、上記のユーザー定義変数@CreationOfUserを使用してステートメントを準備する必要があります。クエリは次のとおりです-

mysql> PREPARE st FROM @CreationOfUser;
Query OK, 0 rows affected (0.00 sec)
Statement prepared

ステップ4 −上記で準備したステートメントを実行します。クエリは次のとおりです-

mysql> EXECUTE st;
Query OK, 0 rows affected (0.37 sec)

ステップ5 −ユーザー「JohnDoe」がMySQL.userテーブルに作成されていることを確認します-

mysql> select user,host from MySQL.user;

以下は出力です-

+------------------+-----------+
| user             | host      |
+------------------+-----------+
| Manish           | %         |
| User2            | %         |
| mysql.infoschema | %         |
| mysql.session    | %         |
| mysql.sys        | %         |
| root             | %         |
| @UserName@       | localhost |
| Adam Smith       | localhost |
| John             | localhost |
| John Doe         | localhost |
| User1            | localhost |
| am               | localhost |
| hbstudent        | localhost |
+------------------+-----------+
13 rows in set (0.00 sec)

はい、JohnDoeのユーザー名があります。

ステップ6 −ここで、準備されたステートメントの割り当てを解除します。クエリは次のとおりです-

mysql> DEALLOCATE PREPARE st;
Query OK, 0 rows affected (0.00 sec)

  1. 数値のユーザー定義変数を使用したMySQLORDERBY?

    まずテーブルを作成しましょう- mysql> create table DemoTable1898    (    Number int    ); Query OK, 0 rows affected (0.00 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable1898 values(10); Query OK, 1 row affected (0.00 sec) mysql> insert into DemoTable1898

  2. ユーザーを作成して権限を付与するMySQLクエリ

    ユーザーを作成して権限を付与するための構文は次のとおりです- create database yourDatabaseName DEFAULT CHARACTER SET utf8; create user `yourUserName` identified by yourPassword; GRANT SELECT ON yourDatabaseName .* TO `yourUserName`; GRANT INSERT ON yourDatabaseName .* TO `yourUserName`; GRANT UPDATE ON yourDatabaseName .* TO `you