ホームページ  >  記事  >  データベース  >  MySQL がシステム情報機能を導入

MySQL がシステム情報機能を導入

coldplay.xixi
coldplay.xixi転載
2021-03-04 09:17:182233ブラウズ

MySQL がシステム情報機能を導入

システム情報関数

(1) MySQLのバージョン番号、接続数、データベース名を取得する関数
(2) ユーザー名を取得する関数
(3) 文字列の文字セットとソート方法を取得する関数
(4) 最後に自動生成された ID 値を取得する関数

(関連する無料学習の推奨事項: mysql ビデオチュートリアル)

(1)、MySQLのバージョン番号、接続数、データベース名を取得する関数

1.version()

  • version () は文字列の MySQL Server バージョンの命令を返します。この文字列は utf8 文字セットを使用します。

[例] 現在の MySQL バージョン番号を表示します。SQL ステートメントは次のとおりです:

mysql> select version();+-----------+| version() |+-----------+| 8.0.16    |+-----------+1 row in set (0.05 sec)

2.connection_id()

  • connection_id()現在の MySQL サーバーの接続数を返します。各接続には独自の一意の ID があります。

[例] 現在のユーザーの接続数を確認する SQL ステートメントは次のとおりです。

mysql> select connection_id();+-----------------+| connection_id() |+-----------------+|              18 |+-----------------+1 row in set (0.05 sec)

3.show processlist および show full processlist

  • processlist コマンド 出力結果には、実行中のスレッドが表示されます。現在の接続数を表示するだけでなく、問題のあるクエリ ステートメントなどを特定するのに役立つ現在の接続ステータスも表示できます。
  • root アカウントをお持ちの場合は、すべてのユーザーの現在の接続を確認できますが、他の通常のアカウントをお持ちの場合は、自分が占有している接続のみを確認できます。 show processlist では最初の 100 エントリのみがリストされます。すべてをリストするには、show full processlist コマンドを使用します。

【例】showprocesslistコマンドを使用して現在のユーザーの接続情報を出力する SQL文は以下の通りです:

mysql> show processlist;+----+-----------------+-----------------+---------+---------+--------+------------------------+------------------+| Id | User            | Host            | db      | Command | Time   | State                  | Info             |+----+-----------------+-----------------+---------+---------+--------+------------------------+------------------+|  4 | event_scheduler | localhost       | NULL    | Daemon  | 381487 | Waiting on empty queue | NULL             || 18 | root            | localhost:60272 | company | Query   |      0 | starting               | show processlist |+----+-----------------+-----------------+---------+---------+--------+------------------------+------------------+2 rows in set (0.05 sec)

各列の意味:

##Command 現在の接続の実行コマンドを表示します一般的な値は、sleep、query、connectTimeこの状態の継続時間を表示します。単位は秒です。State 現在の使用状況を表示します。接続された SQL ステートメントの状態です。State は、ステートメントの実行における特定の状態です。情報この SQL 文の表示は、問題文を判断するための重要な文です#4.database() と schema()
意味
id列 「接続ID」ユーザーが MySQL にログインするときにシステムによって割り当てられます
User 現在のユーザーを表示します。root でない場合は、ユーザーの権限内の MySQL ステートメントを表示します
Host このステートメントが発行された IP とポートを表示します。これは、問題のあるステートメントを発行したユーザーを追跡するために使用できます
db このプロセスの現在のステータスを表示します。 どのデータベースが接続されているかを表示します。
[例]現在使用しているデータベースの SQL ステートメントは次のとおりです:

mysql> select database(),schema();+------------+----------+| database() | schema() |+------------+----------+| company    | company  |+------------+----------+1 row in set (0.00 sec)

(2 )、ユーザー名を取得する関数
user()、current_user()、system_user() session_user() 関数は、MySQL サーバーによって現在検証されているユーザー名とホスト名の組み合わせを返します。この値は、現在ログインしているユーザーのアクセス権を決定する MySQL アカウントに対応します。
  • [例] 現在のログイン ユーザー名を取得する SQL ステートメントは次のとおりです。

戻り結果の値は、現在のアカウントが接続したときのユーザー名を示します。サーバーと接続されたクライアント host 、root は現在ログインしているユーザー名、localhost はログインしているホスト名です。
  • mysql> select user(),current_user,system_user();+----------------+----------------+----------------+| user()         | current_user   | system_user()  |+----------------+----------------+----------------+| root@localhost | root@localhost | root@localhost |+----------------+----------------+----------------+1 row in set (0.05 sec)
(3)、文字列の文字セットとソート方法を取得する関数
1.
charset(str)

[例] charset() 関数を使用して、文字列で使用されている文字セットを取得する SQL 文は次のとおりです。

#[例]collat​​ion()関数を使用して文字列の並びを返す SQL文は次のとおりです:

mysql> select charset('abc'),
    -> charset(convert('abc' USING latin1 ) ),
    -> charset(version());+----------------+----------------------------------------+--------------------+| charset('abc') | charset(convert('abc' USING latin1 ) ) | charset(version()) |+----------------+----------------------------------------+--------------------+| gbk            | latin1                                 | utf8               |+----------------+----------------------------------------+--------------------+1 row in set (0.00 sec)

(4)、最後に自動生成されたID値を取得する関数[例] select last_insetr_id を使用して、最後に自動生成された列の値を確認します 実行プロセスは次のとおりです:

①一度に 1 つのレコードを挿入します

まず、id フィールドを含むテーブル ワーカーを作成しますauto_increment 制約があり、SQL ステートメントは次のとおりです:
mysql> select collation('abc'),collation(convert('abc' USING utf8 ));+------------------+---------------------------------------+| collation('abc') | collation(convert('abc' USING utf8 )) |+------------------+---------------------------------------+| gbk_chinese_ci   | utf8_general_ci                       |+------------------+---------------------------------------+1 row in set, 1 warning (0.05 sec)
2 つのレコードをテーブル ワーカーに個別に挿入します:
mysql> create table worker    -> (
    -> id int auto_increment not null primary key,
    -> Name varchar(30)
    -> );Query OK, 0 rows affected (0.21 sec)

挿入されたデータをチェックし、最後に挿入されたデータの id フィールド値を確認します。レコードは 2 です。最後に自動的に生成された ID 値を表示するには、last_insert_id() を使用します。:

mysql> insert into worker values(null,'jimy');Query OK, 1 row affected (0.07 sec)mysql> insert into worker values(null,'Tom');Query OK, 1 row affected (0.05 sec)mysql> select * from worker;+----+------+| id | Name |+----+------+|  1 | jimy ||  2 | Tom  |+----+------+2 rows in set (0.00 sec)


一度に 1 つのレコードを挿入すると、戻り値が最後の ID 値であることがわかります。挿入されたレコード。

②複数のレコードを一度に挿入

複数のレコードをテーブルに挿入します:

mysql> select last_insert_id();+------------------+| last_insert_id() |+------------------+|                2 |+------------------+1 row in set (0.05 sec)

last_insert_id を使用して、最後に自動的に生成された ID 値を表示します:

mysql> insert into worker values
    -> (null,'Kevin'),
    -> (null,'Michal'),
    -> (null,'NICK');Query OK, 3 rows affected (0.05 sec)Records: 3  Duplicates: 0  Warnings: 0mysql> SELECT * FROM WORKER;+----+--------+| id | Name   |+----+--------+|  1 | jimy   ||  2 | Tom    ||  3 | Kevin  ||  4 | Michal ||  5 | NICK   |+----+--------+5 rows in set (0.00 sec)
When insert ステートメントを使用して複数の行を挿入すると、

last_insert_id()

は、データの最初の行が挿入されたときに生成された値のみを返します (ここでは 3 番目のレコードが挿入されています)。その理由は、他のサーバーに依存して同じ挿入ステートメントを複製することが容易になるためです。

ヒント:

last_insert_id はテーブルから独立しています。最初にテーブル a にデータを挿入し、次にテーブル b にデータを挿入します (

last_insert_id##) #テーブル b の ID 値を返します。

  • 関連する無料学習の推奨事項: mysql データベース(ビデオ)

以上がMySQL がシステム情報機能を導入の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcsdn.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。