この記事では、よく使用される 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() は、テーブル内の行数をカウントし、そのフィールドのデータを合計して、指定されたフィールドの平均値を求めます。
 - avg() 関数は、NULL 列値を持つ行を無視します。行の指定されたフィールドが NULL の場合、この行はカウントされません。
count(フィールド)関数:- 指定されたフィールドのデータの行数(レコード数)を返します。
- フィールドには、すべてのレコードの数を表す「*」を指定できます。フィールド数と異なる場合、レコード数にはフィールドが null のレコードが含まれますが、フィールド数にはフィールドが null のレコードは含まれません。
 
max(フィールド)関数:- 指定されたフィールドのデータの最大値を返します
 - 指定されたフィールドのデータ型が文字列型の場合、まず文字列として比較し、最大値を返します。
- max()関数は列値がnullの行を無視します
min(フィールド)関数:- 指定されたフィールドのデータの最小値を返します
 - 指定されたフィールドのデータ型が文字列型の場合、まず文字列として比較し、最小値を返します。
- min()関数は列値がnullの行を無視します
sum(フィールド)関数:- 指定されたフィールドのデータの合計を返します
 - sum()関数は列の値がnullの行を無視します
補充:- 集計関数のフィールドのデータが null の場合、null 値を持つレコードは無視されます。
- たとえば、avg: には 5 行ありますが、年齢データが含まれるのは 4 行だけなので、計算結果には 4 行のみがカウントされます。
- ただし、フィールドでない場合は計算されます。たとえば、count(x) はレコードの数を計算し、null 値は結果に影響しません。
- 他にも標準偏差の集計関数はいくつかありますが、ここでは説明しません。詳しく知りたい場合は、Baidu で検索してください。
- 集計関数にはバージョン 5.0 以降で DISTINCT オプションもあります。これは select に似ており、同じフィールドを無視します。 [count(x)には適用されません]
文字列を処理する関数:文字列結合関数: concat(str1,str2,str3…)- 複数の文字列を 1 つの文字列に結合するために使用されます。渡された値に null が含まれている場合、最終結果は null になります。
- 複数の文字列を結合した結果の各文字列を分離したい場合は、 concat_ws(delimiter, str1, str2, str3...) を使用します。渡された delimiter が null の場合、最終結果は null になります (ただし、この時点で str が null の場合、結果には影響しません)

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

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

文字列内の文字数を取得します: char_length(str)- 文字列の長さを取得するには

大文字と小文字の変換関数: 大文字: upper(x),ucase(x); 小文字: lower(x),lcase(x)- upper(x),ucase(x)は文字を大文字に変換するために使用されます。xは単一の文字または文字列です。
 - lower(x)、lcase(x) は文字を小文字に変換するために使用されます。x は単一の文字または文字列です。
 - すでに大文字と小文字が区別されている場合は、大文字と小文字の変換は実行されません。
文字列検索関数:- find_in_set(文字列1、文字列2)
- 文字列 str1 の str2 内の位置を返します。str2 には、コンマで区切られた複数の文字列が含まれます (str2 は、複数の文字列を要素とするリストとして表示され、検索結果は、リスト str2 内の str1 のインデックス位置 (1 から始まる) になります)。

- フィールド(str,str1,str2,str3…)
- find_in_set と似ていますが、str2 はリストのような文字列から複数の文字列に変更され、str1、str2、str3... 内の str の位置が返されます。

- 位置(str1,str2):
- 文字列str2内の部分文字列str1の位置を返します。

- 位置(文字列1 IN 文字列2)
- 文字列str2内の部分文字列str1の位置を返します。

- 文字列1、文字列2
- 文字列 str1 内の部分文字列 str2 の位置を返します [ここでは逆になっていることに注意してください]

指定された位置にある部分文字列を取得します。- elt(インデックス,文字列1,文字列2,文字列3…)
- 指定されたインデックス位置の文字列を返します

- 左(文字列,n)
- str の左から n 文字を取得します。

- 右(文字列,n)
- str の右から n 文字をインターセプトします。

- 部分文字列(文字列,インデックス,長さ)
- strのインデックス位置からlen文字を抽出します

文字列削除機能:- ltrim(文字列):
- 文字列strの左側からスペースを削除します

- rtrim(文字列)
- 文字列strの右側からスペースを削除します

- トリム()
- 文字列strの両側からスペースを削除します

文字列置換機能:- 挿入(文字列1、インデックス、長さ、文字列2)
- str2を使用して、str1のインデックス位置から始まるlen個の要素を置き換えます。

- 置換(文字列,文字列1,文字列2)
- str 内のすべての部分文字列 str1 を str2 に置き換えます。

数値を操作する関数:絶対値関数: abs(x)天井関数: ceil(x)床関数: floor(x)モジュロ関数: mod(x,y)乱数関数: rand()- 0から1までの乱数を返します
- 特定の状況で同じランダム値を使用する場合は、rand(x) を使用できます。これは、x が同じ場合に同じランダム結果を返します。

丸め関数: round(x,y)- 値 x を小数値 y (丸め) で返します。

数値切り捨て関数: truncate(x,y)- x の値を y 桁に切り捨てて返します (四捨五入は行いません)

時間と日付を処理する関数:現在の日付を取得します: curdate(), current_date()- 戻り値の形式は次のとおりです。

現在の時刻を取得します: curtime(), current_time()- 戻り値の形式は次のとおりです。

現在の日付と時刻を取得します: now()- 戻り値の形式は次のとおりです。

日付から月を選択します: month(date), monthname(date) 日付から週番号を選択します: week(date)- 戻り値の形式は次のとおりです。

日付から週番号を選択します: 年(日付)- 戻り値の形式は次のとおりです。

時刻から時間を選択します: hour(time)- 戻り値の形式は次のとおりです。

時刻から分を選択します: minute(time)- 戻り値の形式は次のとおりです。

時間から曜日を選択します: weekday(date), dayname(date)- 戻り値の形式は次のとおりです。

日付関数はまだ比較的一般的です。詳細を知りたい場合は、公式ドキュメントを参照してください。 https://dev.mysql.com/doc/refman/5.7/en/日付と時刻関数.html
その他の機能については、公式ドキュメントを参照してください (以下は 5.7 用です)。 参考文献 MySQL 関連のコンテンツに興味のある読者は、次のトピックを確認してください: 「MySQL 共通関数の概要」、「MySQL ログ操作スキルの概要」、「MySQL トランザクション操作スキルの概要」、「MySQL ストアド プロシージャ スキルの概要」、および「MySQL データベース ロック関連スキルの概要」。 この記事が皆様のMySQLデータベース設計に役立つことを願っています。 以下もご興味があるかもしれません:- MySQLにおける時刻日付型と文字列型の選択について
|