Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【ITニュース解説】Useful MYSQL functions

2025年09月26日に「Dev.to」が公開したITニュース「Useful MYSQL functions」について初心者にもわかりやすく解説しています。

作成日: 更新日:

ITニュース概要

MySQLの便利な関数として、日付・時刻、文字列、数値、集計、条件分岐など多数紹介。これらを活用すれば、データ取得や加工が効率化でき、初心者も実践的なデータ操作を学べる。

出典: Useful MYSQL functions | Dev.to公開日:

ITニュース解説

MySQLのデータベースを操作する際、ただデータを保存したり取り出したりするだけでなく、保存されたデータを加工したり、特定の条件で絞り込んだり、計算したりする場面が多く存在する。このような高度なデータ操作を可能にするのが「関数」である。関数を使いこなすことで、システムエンジニアはデータベースから必要な情報を効率的かつ正確に引き出し、アプリケーションの要求に応じた形でデータを提供できるようになる。ここでは、システムエンジニアを目指す初心者が知っておくべき、MySQLの代表的な関数群について解説する。

まず、日付・時刻関数は、システムにおいて最も頻繁に扱われるデータの一つである日付や時刻を操作するための機能を提供する。たとえば、現在の年月日や時間を取得したい場合、NOW()で現在の日時(タイムスタンプ)を、CURDATE()で現在の日付を、CURTIME()で現在の時刻を取得できる。データベースに保存されている日時データから、日付部分だけを取り出したいならDATE(datetime)を、時刻部分だけならTIME(datetime)を使う。日付の特定の部分、例えば年だけ、月だけ、日だけを取り出すにはYEAR(date)MONTH(date)DAY(date)といった関数が役立つ。さらに、「今日は何曜日か」を知りたい場合はDAYNAME(date)を、年間の何週目かを知るにはWEEK(date)を利用できる。 日付や時刻の計算も非常に重要だ。ある日付から数日後や数週間後の日付を計算するにはDATE_ADD(date, INTERVAL n unit)を、逆に過去の日付を計算するにはDATE_SUB(date, INTERVAL n unit)を使う。二つの日付の間の日数を計算するにはDATEDIFF(d1, d2)が、年、月、時間といったより細かい単位での差を計算するにはTIMESTAMPDIFF(unit, d1, d2)が便利だ。また、ユーザーが入力した文字列形式の日付をデータベースが認識できる日付形式に変換するにはSTR_TO_DATE(str, format)を、逆にデータベース内の日付を特定の書式の文字列として表示したい場合はDATE_FORMAT(date, format)を利用する。これらの関数は、例えばイベントのスケジュール管理や、特定の期間内の注文データを抽出する際などに不可欠となる。

次に、文字列関数は、テキストデータを扱う上で欠かせない機能を提供する。氏名や住所、商品名など、データベースには多様な文字列データが保存されている。複数の文字列を結合して一つの情報として表示したい場合、CONCAT(s1, s2, ...)や、区切り文字を指定して結合するCONCAT_WS(sep, s1, s2, ...)が役立つ。文字列の一部を抜き出したい場合はSUBSTRING(str, pos, len)を、文字列の左右から指定した文字数を取り出すにはLEFT(str, len)RIGHT(str, len)を使用する。また、入力された文字列の大文字・小文字を変換したい時にはUPPER(str)LOWER(str)、文字列の前後の不要な空白を取り除きたい時にはTRIM(str)が利用できる。特定の文字や単語を別のものに置き換えたい場合はREPLACE(str, from, to)が便利だ。文字列中の特定のサブストリングがどこにあるかを検索するにはINSTR(str, substr)LOCATE(substr, str)が使われる。これらの関数は、例えばユーザーが入力した検索キーワードの正規化や、住所データから都道府県名だけを抽出する際などに活用される。

数値・算術関数は、数値データを計算したり整形したりするための基本的な機能を提供する。絶対値を求めるABS(x)、小数点以下を切り上げるCEIL(x)CEILING(x)、切り捨てるFLOOR(x)、特定の小数点以下で四捨五入するROUND(x, d)、切り詰めるTRUNCATE(x, d)などがある。割り算の余りを求めるMOD(x, y)や、べき乗を計算するPOWER(x, y)、平方根を求めるSQRT(x)も用意されている。これらの関数は、商品の価格計算、在庫数の管理、統計データの加工といった様々な場面で利用される。

集計関数は、複数の行のデータから要約された一つの結果を計算するために使われる。例えば、テーブル内の行数を数えるCOUNT(*)、特定の列の合計値を計算するSUM(col)、平均値を求めるAVG(col)、最小値を取り出すMIN(col)、最大値を取り出すMAX(col)などがある。これらの関数は、日ごとの売上合計、平均顧客単価、最も売れた商品、在庫が最も少ない商品といった、ビジネス上の重要なレポートや分析に不可欠である。

条件・ユーティリティ関数は、データベース内のデータに対して条件分岐のロジックを適用したり、NULL値(データがない状態)を扱ったりするための機能である。例えば、特定の条件が真であればAの値を、偽であればBの値を返すIF(expr, true_val, false_val)、NULL値を別のデフォルト値で置き換えるIFNULL(expr, alt)、複数の条件に基づいて異なる処理を行うCASE WHEN ... THEN ... ELSE ... ENDなどがある。また、複数の値の中から最初にNULLでない値を見つけるCOALESCE(v1, v2, ...)も便利だ。これらは、ユーザーのステータスに応じて異なるメッセージを表示したり、欠損しているデータをデフォルト値で補完したりする際に利用され、アプリケーションの柔軟性を高めるのに役立つ。

最後に、特別な関数として、データベースのパフォーマンスや管理効率を向上させる目的で利用されるものがある。例えば、TO_DAYS(date)は日付を整数に変換し、大規模なテーブルを分割して管理する「パーティショニング」のキーとして利用されることがある。また、UNIX_TIMESTAMP()は、日付を1970年1月1日からの秒数(Unixエポックタイム)に変換し、これもデータの分散や高速な検索(シャーディングやパーティショニング)に活用されることがある。これらの関数は、データの規模が大きくなった際に、データベースの応答速度を維持するために重要な役割を果たす。

これらのMySQL関数は、データベースを扱うシステムエンジニアにとって、データを効率的に操作し、アプリケーションの要求に応えるための強力なツールとなる。各関数の機能と用途を理解し、適切に使いこなすことで、より堅牢で高性能なシステムを構築する基礎が築かれる。データベースからただ情報を取得するだけでなく、目的に応じてデータを加工し、活用する能力は、システムエンジニアとして成長する上で不可欠なスキルだ。

関連コンテンツ

関連IT用語