MySQL でよく使われる連結文のまとめ

MySQL でよく使われる連結文のまとめ

はじめに: MySQL では、CONCAT() 関数を使用して複数の文字列を 1 つの文字列に連結します。この関数を使用すると、1 つのステップで取得できなかった SQL を切り出すことができます。作業では非常に便利になる場合があります。以下では、主によく使用されるシナリオをいくつか紹介します。

注: バージョン 5.7 以前のバージョンに適用される場合、若干異なる場合があります。

1. すべてのユーザーに参加してクエリを実行する

選択する
  連結(
    'ユーザー: \'',
    ユーザー、
    '\'@\''、
    ホスト、
    '\';'
  ) クエリとして
から
  mysql.USER;
# 連結文字列に ' が出現する場合は、\ エスケープ文字を使用する必要があります

2. DROPテーブルを結合する

選択
  連結(
    'テーブルを削除'、
    テーブル名、
    ';'
  )
から
  情報スキーマ。テーブル
どこ
  TABLE_SCHEMA = 'テスト';

3. スプライスキル接続

選択
  concat('KILL ', id, ';')
から
  情報スキーマ。PROCESSLIST
どこ
  STATE LIKE 'ソートインデックスを作成しています';

4. ステートメントを結合してデータベースを作成する

選択
  連結(
    'データベースを作成'、
    '`',
  スキーマ名、
  '`',
  「デフォルトの文字セット」、
  デフォルト文字セット名、
    ';'
  ) AS CreateDatabaseQuery
から
  情報スキーマ.SCHEMATA
どこ
  SCHEMA_NAME が (
    '情報スキーマ',
    'パフォーマンススキーマ',
    'mysql',
    'システム'
  );

5. ステートメントを連結してユーザーを作成する

選択
  連結(
    'ユーザーを作成 \'',
  ユーザー、
  '\'@\''、
  ホスト、
  '\''
  ' パスワードで識別 \'',
  認証文字列、
    '\';'
  ) AS CreateUserQuery
から
  mysql.`ユーザー`
どこ
  `User` が ( にありません
    '根'、
    'mysql.セッション',
    'mysql.sys'
  );
# パスワード文字列があります。他のインスタンスで実行することで、このインスタンスと同じパスワードを持つユーザーを直接作成できます。

6. エクスポート許可スクリプト このシェルスクリプトもスプライシングを使用しています

#!/bin/bash 
#関数ユーザー権限のエクスポート 

pwd=あなたのパスワード 
外国人移住者() 
{ 
 mysql -B -u'root' -p${pwd} -N $@ -e "SELECT CONCAT( 'SHOW GRANTS FOR ''', user, '''@'''', host, ''';' ) AS query FROM mysql.user" | \
 mysql -u'root' -p${pwd} $@ | \
 sed 's/\(GRANT .*\)/\1;/;s/^\(.*\ の許可)/-- \1 /;/--/{x;p;x;}' 
} 

expgrants > /tmp/grants.sql
echo "権限をフラッシュします。" >> /tmp/grants.sql

7. ルックアップテーブルの断片化

t.TABLE_SCHEMAを選択します。
    t.テーブル名、
    t.TABLE_ROWS、
    concat(round(t.DATA_LENGTH / 1024 / 1024, 2), 'M') ASサイズ、
    t.インデックス長さ、
    concat(round(t.DATA_FREE / 1024 / 1024, 2), 'M') AS データフリー
information_schema.tables t から
WHERE t.TABLE_SCHEMA = 'test' order by DATA_LENGTH desc;

8. 主キーのないテーブルを探します。これはスプライシングには使用されないので、共有します。

#特定のライブラリ内の主キーのないテーブルを検索するSELECT
テーブルスキーマ、
テーブル名
から
  情報スキーマ.TABLES
どこ
  テーブルスキーマ = 'テスト'
かつ、TABLE_NAME が (
  選択
    テーブル名
  から
    情報スキーマ.テーブル制約
  JOIN information_schema.key_column_usage k USING (
    制約名、
    テーブルスキーマ、
    テーブル名
  )
  どこ
    t.constraint_type = '主キー'
  かつ t.table_schema = 'test'
);

#システムライブラリ以外の主キーのないテーブルを検索するSELECT
  t1.テーブルスキーマ、
  t1.テーブル名
から
  情報スキーマ。テーブル t1
LEFT OUTER JOIN information_schema.TABLE_CONSTRAINTS t2 ON t1.table_schema = t2.TABLE_SCHEMA
かつ t1.table_name = t2.TABLE_NAME
AND t2.CONSTRAINT_NAME IN ('PRIMARY')
どこ
  t2.table_name が NULL です
かつ、t1.TABLE_SCHEMA が (
  '情報スキーマ',
  'パフォーマンススキーマ',
  'mysql',
  'システム'
) ;

上記はMySQLでよく使われる連結文の詳しい内容です。MySQLの連結文についてさらに詳しく知りたい方は、123WORDPRESS.COMの他の関連記事もぜひご覧ください!

以下もご興味があるかもしれません:
  • MySQLはshow statusを使用してMySQLサーバーのステータス情報を表示します。
  • MySQLでテーブル情報を取得する方法 テーブルステータスの表示
  • MySQL テーブルを作成するためによく使用される SQL ステートメントの概要
  • MySQLのUPDATE文の落とし穴を記録する
  • Navicat PremiumはMySQLデータベースを操作します(SQL文を実行します)
  • 2 つの MySQL ユーザー削除ステートメント (delete user と drop user) の違い
  • MySQL データベースのステートメント ワイルドカード ファジー クエリの概要
  • MySQLで判定文を書く方法のまとめ
  • MySQLデータの重複チェックと重複排除の実装ステートメント
  • MySQL SHOW STATUSステートメントの使用

<<:  Linuxはシェルスクリプトを使用して履歴ログファイルを定期的に削除します

>>:  JavaScript の async と await のシンプルで詳細な学習

推薦する

LinuxにMySQLをインストールし、外部ネットワークアクセスを構成する例

設定手順1. DNSが設定されているかどうかを確認するDNSが設定されていない場合は、前の記事を参照...

Flex レイアウトで適応型ページを作成する (構文と例)

Flex レイアウトの紹介英語の Flex はフレキシブル ボックス、つまり伸縮性のあるボックスを...

JavaScript ベースの Web 計算機の実装

この記事では、ウェブ計算機のマインスイーパゲームを実装するためのJavaScriptの具体的なコード...

jQuery を使用してカルーセル効果を実装する

この記事では、jQueryでカルーセルチャートを実装するための具体的なコードを参考までに共有します。...

HTMLタグを閉じるのを忘れないでください

Web 標準に準拠した Web ページの構築は、jb51.net が常に全員と議論しているトピックで...

MySQL infobrightのインストール手順

目次1. 次のように、「rpm -ivh インストール パッケージ」コマンドを使用して rpm パッ...

カルーセルカルーセルケースのJS実装

この記事の例では、カルーセルカルーセルを実装するためのJSの具体的なコードを参考までに共有しています...

html-webpack-plugin の使用方法の詳細な説明

最近、React プロジェクトで初めてhtml-webapck-pluginプラグインを使用しました...

純粋な CSS を使用してユーザーが Web ページのコンテンツをコピーするのを防ぐ方法

序文私自身の個人ブログを入力しているときに、ブログの詳細ページでさまざまなコンテンツをコピーするさま...

Linux環境にDocker環境をインストールする(落とし穴なし)

目次インストールの前提条件ステップ1: システムの残りを確認してクリアし、Dockerの依存関係をイ...

MacにMySQLをインストールするときに忘れたパスワードを変更する方法

1. MacにMySQLデータベースをインストールする1. MySQLデータベースをダウンロードする...

Ubuntu 18.04 は mysql 5.7.23 をインストールします

以前、Ubuntu 16.04 に MySQL をスムーズにインストールしました。今回、Ubuntu...

MySQL 5.7 mysql コマンドラインクライアントの使用コマンドの詳細

MySQL 5.7コマンドを使用するMySQLコマンドラインクライアント1. パスワードを入力してく...

Node.js における npx コマンドの使用法とシナリオ分析

npx 使用チュートリアル今晩、 Vue-Cli勉強していたところ、ふと最新の@4.xxバージョンを...

Vueプラグインの詳しい説明

要約するこの記事はこれで終わりです。皆さんのお役に立てれば幸いです。また、123WORDPRESS....