一般的な MySQL 関数の例の概要 [集計関数、文字列、数値、時刻と日付の処理など]

一般的な MySQL 関数の例の概要 [集計関数、文字列、数値、時刻と日付の処理など]

この記事では、よく使用される MySQL 関数について説明します。ご参考までに、詳細は以下の通りです。

この記事の内容:

  • MySQL関数の紹介
  • 集計関数
    • 平均
    • カウント
    • 最大
  • 文字列を操作する関数
    • 文字列結合関数: concat(str1,str2,str3…)
    • 文字列サイズを比較する関数: strcmp(str1,str2)
    • 文字列のバイト数を取得します: length(str)
    • 文字列内の文字数を取得します: char_length(str)
    • 大文字と小文字の変換関数: 大文字: upper(x),ucase(x); 小文字: lower(x),lcase(x)
    • 文字列検索関数
    • 指定された位置にある部分文字列を取得する
    • 文字列削除機能
    • 文字列置換機能:
  • 数値を操作する関数
    • 絶対値関数: abs(x)
    • 天井関数: ceil(x)
    • 床関数: floor(x)
    • モジュロ関数: mod(x,y)
    • 乱数関数: rand()
    • 丸め関数: round(x,y)
    • 数値切り捨て関数: truncate(x,y)
  • 時間と日付を処理する関数
    • 現在の日付を取得します: curdate(), current_date()
    • 現在の時刻を取得します: curtime(), current_time()
    • 現在の日付と時刻を取得します: now()
    • 日付から月を選択します: month(date), monthname(date)
    • 日付から週番号を選択します: week(date)
    • 日付から週番号を選択します: 年(日付)
    • 時刻から時間を選択します: hour(time)
    • 時刻から分を選択します: minute(time)
    • 時間から曜日を選択します: weekday(date), dayname(date)

リリース日: 2018-04-14


mysql 関数の紹介:

  • 操作を簡素化するために、 MySQL はプログラマーが使用できる多数の関数を提供しています(たとえば、現在の時刻を入力したい場合は、now() 関数を呼び出すことができます)。
  • 関数は、挿入ステートメント、更新ステートメント、削除ステートメント、クエリ ステートメント、およびそれらの句の values() に使用できます。

集計関数:

  • 集計関数はレコードを集計するために使用されます (たとえば、各学生レコードの正確な情報を知りたいのではなく、学生レコードの数だけを知りたい場合は、count() を使用できます)。
  • 集計関数は「集計データ」を処理するために使用され、詳細なレコード情報は必要ありません。
  • 集計関数 行のグループを操作し、単一の値を計算して返す関数。

実験テーブルデータ (以下の実行データはこのテーブルに基づいています):

テーブル学生を作成(
名前varchar(15),
性別varchar(15),
年齢 int
);
学生の値に挿入します("lilei","male",18);
学生の値に挿入します("alex","male",17);
学生の値に挿入します("jack","male",20);
学生の値に挿入します("john","male",19);
学生の値に挿入します("nullpeople","male",null);

avg(フィールド)関数:

  • 指定されたフィールドのデータの平均値を返します
  • avg() は、テーブル内の行数をカウントし、そのフィールドのデータを合計して、指定されたフィールドの平均値を求めます。
  • image
  • avg() 関数は、NULL 列値を持つ行を無視します。行の指定されたフィールドが NULL の場合、この行はカウントされません。

count(フィールド)関数:

  • 指定されたフィールドのデータの行数(レコード数)を返します。
  • フィールドには、すべてのレコードの数を表す「*」を指定できます。フィールド数と異なる場合、レコード数にはフィールドが null のレコードが含まれますが、フィールド数にはフィールドが null のレコードは含まれません。
  • image
  • image

max(フィールド)関数:

  • 指定されたフィールドのデータの最大値を返します
  • image
  • 指定されたフィールドのデータ型が文字列型の場合、まず文字列として比較し、最大値を返します。
  • max()関数は列値がnullの行を無視します

min(フィールド)関数:

  • 指定されたフィールドのデータの最小値を返します
  • image
  • 指定されたフィールドのデータ型が文字列型の場合、まず文字列として比較し、最小値を返します。
  • min()関数は列値がnullの行を無視します

sum(フィールド)関数:

  • 指定されたフィールドのデータの合計を返します
  • image
  • sum()関数は列の値がnullの行を無視します

補充:

  • 集計関数のフィールドのデータが null の場合、null 値を持つレコードは無視されます。
    • たとえば、avg: には 5 行ありますが、年齢データが含まれるのは 4 行だけなので、計算結果には 4 行のみがカウントされます。
    • ただし、フィールドでない場合は計算されます。たとえば、count(x) はレコードの数を計算し、null 値は結果に影響しません。
  • 他にも標準偏差の集計関数はいくつかありますが、ここでは説明しません。詳しく知りたい場合は、Baidu で検索してください。
  • 集計関数にはバージョン 5.0 以降で DISTINCT オプションもあります。これは select に似ており、同じフィールドを無視します。 [count(x)には適用されません]
    • image

文字列を処理する関数:

文字列結合関数: concat(str1,str2,str3…)

  • 複数の文字列を 1 つの文字列に結合するために使用されます。渡された値に null が含まれている場合、最終結果は null になります。
  • 複数の文字列を結合した結果の各文字列を分離したい場合は、 concat_ws(delimiter, str1, str2, str3...) を使用します。渡された delimiter が null の場合、最終結果は null になります (ただし、この時点で str が null の場合、結果には影響しません) image

文字列サイズを比較する関数: strcmp(str1,str2)

  • 2 つの文字列のサイズを比較するために使用されます。左が右より大きい場合は 1 を返し、左が右と等しい場合は 0 を返し、左が右より小さい場合は -1 を返します。
  • strcmp はプログラミング言語の比較文字列関数 (ASCII コードに基づく?) に似ており、等しくなくなるまで左から右へ 1 つずつ比較して結果を返し、等しくない場合は最後まで比較します。
  • image

文字列のバイト数を取得します: length(str)

  • 文字列のバイト長を取得するために使用されます(バイト数を返すので、文字セットに注意してください)
  • image

文字列内の文字数を取得します: char_length(str)

  • 文字列の長さを取得するには
  • image

大文字と小文字の変換関数: 大文字: upper(x),ucase(x); 小文字: lower(x),lcase(x)

  • upper(x),ucase(x)は文字を大文字に変換するために使用されます。xは単一の文字または文字列です。 image
  • lower(x)、lcase(x) は文字を小文字に変換するために使用されます。x は単一の文字または文字列です。 image
  • すでに大文字と小文字が区別されている場合は、大文字と小文字の変換は実行されません。

文字列検索関数:

  • find_in_set(文字列1、文字列2)
    • 文字列 str1 の str2 内の位置を返します。str2 には、コンマで区切られた複数の文字列が含まれます (str2 は、複数の文字列を要素とするリストとして表示され、検索結果は、リスト str2 内の str1 のインデックス位置 (1 から始まる) になります)。
    • image
  • フィールド(str,str1,str2,str3…)
    • find_in_set と似ていますが、str2 はリストのような文字列から複数の文字列に変更され、str1、str2、str3... 内の str の位置が返されます。
    • image
  • 位置(str1,str2):
    • 文字列str2内の部分文字列str1の位置を返します。
    • image
  • 位置(文字列1 IN 文字列2)
    • 文字列str2内の部分文字列str1の位置を返します。
    • image
  • 文字列1、文字列2
    • 文字列 str1 内の部分文字列 str2 の位置を返します [ここでは逆になっていることに注意してください]
    • image

指定された位置にある部分文字列を取得します。

  • elt(インデックス,文字列1,文字列2,文字列3…)
    • 指定されたインデックス位置の文字列を返します
    • image
  • 左(文字列,n)
    • str の左から n 文字を取得します。
    • image
  • 右(文字列,n)
    • str の右から n 文字をインターセプトします。
    • image
  • 部分文字列(文字列,インデックス,長さ)
    • strのインデックス位置からlen文字を抽出します
    • image

文字列削除機能:

  • ltrim(文字列):
    • 文字列strの左側からスペースを削除します
    • image
  • rtrim(文字列)
    • 文字列strの右側からスペースを削除します
    • image
  • トリム()
    • 文字列strの両側からスペースを削除します
    • image

文字列置換機能:

  • 挿入(文字列1、インデックス、長さ、文字列2)
    • str2を使用して、str1のインデックス位置から始まるlen個の要素を置き換えます。
    • image
  • 置換(文字列,文字列1,文字列2)
    • str 内のすべての部分文字列 str1 を str2 に置き換えます。
    • image

数値を操作する関数:

絶対値関数: abs(x)

  • xの絶対値を返す

天井関数: ceil(x)

  • x を切り上げた整数値を返します。

床関数: floor(x)

  • x の下限値を返します。

モジュロ関数: mod(x,y)

  • x mod yの結果を返します

乱数関数: rand()

  • 0から1までの乱数を返します
  • 特定の状況で同じランダム値を使用する場合は、rand(x) を使用できます。これは、x が同じ場合に同じランダム結果を返します。 image

丸め関数: round(x,y)

  • 値 x を小数値 y (丸め) で返します。
  • image

数値切り捨て関数: truncate(x,y)

  • x の値を y 桁に切り捨てて返します (四捨五入は行いません)
  • image

時間と日付を処理する関数:

現在の日付を取得します: curdate(), current_date()

  • 戻り値の形式は次のとおりです。 image

現在の時刻を取得します: curtime(), current_time()

  • 戻り値の形式は次のとおりです。 image

現在の日付と時刻を取得します: now()

  • 戻り値の形式は次のとおりです。 image

日付から月を選択します: month(date), monthname(date)

  • image

日付から週番号を選択します: week(date)

  • 戻り値の形式は次のとおりです。 image

日付から週番号を選択します: 年(日付)

  • 戻り値の形式は次のとおりです。 image

時刻から時間を選択します: hour(time)

  • 戻り値の形式は次のとおりです。 image

時刻から分を選択します: minute(time)

  • 戻り値の形式は次のとおりです。 image

時間から曜日を選択します: weekday(date), dayname(date)

  • 戻り値の形式は次のとおりです。 image

日付関数はまだ比較的一般的です。詳細を知りたい場合は、公式ドキュメントを参照してください。

https://dev.mysql.com/doc/refman/5.7/en/日付と時刻関数.html


その他の機能については、公式ドキュメントを参照してください (以下は 5.7 用です)。

参考文献

MySQL 関連のコンテンツに興味のある読者は、次のトピックを確認してください: 「MySQL 共通関数の概要」、「MySQL ログ操作スキルの概要」、「MySQL トランザクション操作スキルの概要」、「MySQL ストアド プロシージャ スキルの概要」、および「MySQL データベース ロック関連スキルの概要」。

この記事が皆様のMySQLデータベース設計に役立つことを願っています。

以下もご興味があるかもしれません:
  • MySQLにおける時刻日付型と文字列型の選択について

<<:  Vueグローバルカスタム命令の実践 モーダルドラッグ

>>:  Centos7 構成 fastdfs および nginx 分散ファイル ストレージ システムの実装プロセス分析

推薦する

Linux での vi (vim) の新しい使い方のまとめ

私は数年間 vi エディタを使ってきましたが、実用的な用途で使ったことはありませんでした。今日 Py...

Vueはel-tableを使用して列と行を動的に結合します

この記事の例では、el-tableを使用して列と行を動的にマージするVueの具体的なコードを参考まで...

Node.jsとDenoの比較

目次序文Denoとは何ですか? Node.jsとの比較建築ESモジュール依存関係の管理TypeScr...

Alibaba Cloud Ubuntu 16.04 が IPSec サービスを構築

IPSec の概要IPSec (インターネット プロトコル セキュリティ): ネットワーク層と適用さ...

Vueはアンカー配置機能を実装します

この記事では、アンカー配置を実装するためのVueの具体的なコードを例として紹介します。具体的な内容は...

UbuntuはSSHサービスのリモートログイン操作を開始します

ssh-secure シェルは、安全なリモート ログインを提供します。組み込みシステムを開発し、Li...

Vueバスの簡単な使い方

Vueバスの簡単な使い方シナリオの説明:コンポーネント A にはコンポーネント B と C が含まれ...

MySQLトリガーの使用

目次1. トリガーの紹介1. トリガーとは何ですか? 2. トリガーの特徴2. トリガーを作成する1...

前後の秒、分、時間、日数を取得するMySQLデータベース

現在の時刻を取得します: current_timestamp を選択します。出力: 2016-06-...

Linux カーネル デバイス ドライバー キャラクタ デバイス ドライバー ノート

/******************** * キャラクターデバイスドライバー**********...

チェックボックスの選択またはキャンセルを実装するJavaScript

この記事では、すべてのチェックボックスを選択または解除するためのJavaScriptの具体的なコード...

Javascriptのクロージャとアプリケーションの詳細な説明

目次序文1. クロージャとは何ですか? 1.1 クロージャは条件コードを満たす1.2 クロージャ生成...

docker のインストールが完了し、bridge-nf-call-iptables が無効であると報告される問題を解決します

Centos マシンで docker のインストールが完了したら、docker info コマンドを...

入力できない無効な値はアクションレイヤーに渡すことができません

フォームを入力不可にしたい場合は、フォームを次のように設定します。コードをコピーコードは次のとおりで...

MySQL 5.6.36 Windows x64 バージョンのインストールチュートリアルの詳細

1. 対象環境Windows 7 64ビット2. 材料(1)VC++2010リリースパッケージ(64...