一般的な 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 分散ファイル ストレージ システムの実装プロセス分析

推薦する

JS 9 Promise 面接の質問

目次1. 複数の .catch 2. 複数の .catch 3. .then と .catch の連...

Windows Server 2008 R2 リモート デスクトップのポート 3389 を変更する方法

Windows サーバー リモート デスクトップのデフォルトのポート番号は 3389 です。職場でサ...

MySQLとRedisでセカンダリキャッシュを実装する方法の詳細な説明

Redis の紹介Redis は完全にオープンソースで無料であり、BSD プロトコルに準拠しており、...

ウェブページレイアウトデザインのシンプルな原則

この記事では、Web ページ レイアウト デザインのいくつかの簡単な原則をまとめ、Web ページ デ...

CentOS 8が利用可能になりました

CentOS 8 が利用可能になりました! CentOS 8 と RedHat Enterprise...

HTML チュートリアル、optgroup 要素の理解

カテゴリ選択を選択します。テストの結果、IE と FF はこの要素を適切にサポートできることがわかり...

PCとモバイルの適応の問題に対する迅速な解決策

Web ページを作成する場合、通常、コンピューターの画面サイズと携帯電話の画面サイズの違いなどの問題...

Vue Element フロントエンドアプリケーション開発の動的メニューとルーティングの関連付け処理

目次概要1. メニューとルーティング処理2. メニューとルートリスト3. ログインプロセスの処理概要...

Linux でユーザー アカウントをロックおよびロック解除する 3 つの方法

組織内で何らかのパスワード ポリシーがすでに実装されている場合は、この記事を読む必要はありません。た...

Js でオブジェクトのディープ オブジェクトを安全に取得するメソッドの例

目次序文文章パラメータ例Lodash 実装:トーキー機能: castPath関数: stringTo...

Ubuntu 20.04 に Xrdp サーバー (リモート デスクトップ) をインストールする方法

Xrdp は、グラフィカル インターフェイスを通じてリモート システムを制御できる Microsof...

カルーセルの制作方法を実現するjs

この記事では、カルーセル画像の表示を実現するためのjsの具体的なコードを参考までに共有します。具体的...

MySQLの指定順序ソートクエリについての簡単な説明

最近、空港や駅でフライト情報を表示するものと似た大型スクリーンディスプレイのプロジェクトに取り組んで...

HTML スペースコードの簡単な分析

HTML についてどれくらい知っていますか? 現在、基本的な HTML コードを学習している場合は、...

JavaScript でモバイル モーダル ボックスの効果を実現

この記事では、モバイルモーダルボックス効果を実現するためのJavaScriptの具体的なコードを参考...