-
MySQLでDATETIME列にデフォルト値「0000-00-00」を設定する方法
MySQLでは、DEFAULTキーワードを使うことで、DATETIME型の列にデフォルト値として「0000-00-00 00:00:00」を設定できます。ここでは、実際にテーブルを作成し、動作を確認するまでの手順を解説します。 1. デフォルト値を持つテーブルを作成する まず、DATETIME列にDEFAULT値を指定したテーブルを作成します。 mysql> create table DemoTable -> ( -> EmployeeId int NOT NULL AUTO_INCREMENT PRIMARY KEY, -> Employee
-
MySQLで月ごとにテーブルの合計値を集計する方法
MySQLで日付データを月単位にグループ化して合計値を求めたい場合、GROUP BY句とMONTH()関数を組み合わせることで簡単に実現できます。この記事では、実際のサンプルを使いながら手順を詳しく解説します。1. サンプルテーブルの作成まず、購入日と金額を格納するテーブルを作成します。mysql> create table DemoTable1628 -> ( -> PurchaseDate date, -> Amount int -> ); Query OK, 0 rows affected (1.55 sec)2. テストデー
-
MySQLでカンマ区切りの数値を月名に変換する方法|FIND_IN_SET()とCASE文の活用
MySQLでは、カンマ区切りで保存された数値データ(例:「2,4,6」)を、読みやすい月名の形式(例:「February,April,June」)に変換したいケースがあります。本記事では、FIND_IN_SET()関数とCASE文を組み合わせることで、カンマ区切りの数値を月名に置き換える方法を、サンプルコード付きでわかりやすく解説します。1. サンプルテーブルの作成まず、月の数値をカンマ区切りの文字列として格納するテーブルを作成します。mysql> create table DemoTable1629 -> ( &
-
MySQLで文字列の先頭15文字だけを表示するクエリの書き方
MySQLで文字列の先頭(左側)から指定した文字数だけを取り出すには、LEFT()関数を使用します。第1引数に対象の文字列、第2引数に取得したい文字数を指定するだけで、手軽に部分文字列を抽出できます。 この記事では、テーブルに登録されたタイトルの先頭15文字だけを表示する方法を、実際のSQLと実行結果付きで順を追って解説します。 1. サンプルテーブルを作成する まず、CREATE TABLE文でテーブルを作成します。 mysql> create table DemoTable -> ( &nbs
-
1つのMySQLクエリで2つのテーブルの最大値から最小値を取得する方法
2つのテーブルそれぞれの最大値を比較し、その中から最小値を取得したい場合には、MySQLのUNIONを使用することで実現できます。まずはサンプル用のテーブルを作成しましょう。 最初のテーブルを作成する CREATE TABLE文で最初のテーブルを作成します。 mysql> create table DemoTable1 -> ( -> Value int -> ); Query OK, 0 rows affected (0.48
-
MySQLストアドプロシージャにおけるDELIMITERの正しい使い方を徹底解説
DELIMITERとは?なぜ必要なのかMySQLクライアントは、デフォルトでセミコロン(;)を文の終端記号として扱います。しかし、ストアドプロシージャの本体には複数のSQL文が含まれ、それぞれがセミコロンで終わるため、そのまま定義すると途中で構文解析が中断されてしまいます。そこで、DELIMITERコマンドを使って、一時的に区切り文字を別の記号(例://)に変更する必要があります。これにより、プロシージャ全体をひとつのまとまりとして登録できるようになります。DELIMITERの正しい記述方法基本的な書き方は以下の通りです。DELIMITER //CREATE PROCEDURE yourSto
-
MySQLで重複する値ごとのレコードを別の列に合計して表示する方法
MySQLでは、重複している値(同じ名前など)を持つ複数のレコードの数値を、名前ごとにまとめて合計したいケースがあります。このような場合には、集計関数SUM()とGROUP BY句を組み合わせることで簡単に実現できます。本記事では、実際にサンプルテーブルを作成し、重複する値を持つレコードを別の列(合計列)として集計・表示する手順を解説します。1. サンプルテーブルを作成するまず、CREATE TABLE文を使ってテーブルを作成します。mysql> create table DemoTable -> ( -> Name varchar(20), -> V
-
MySQLでカンマ区切りの値を持つ列から特定のレコードを検索する方法
MySQLでは、カンマ区切りで複数の値が格納された列から特定の値を含むレコードを抽出したいケースがあります。そんなときに便利なのが FIND_IN_SET() 関数です。この関数を使うと、カンマ区切りの文字列の中に指定した値が存在するかどうかを簡単に判定できます。この記事では、実際にテーブルを作成し、FIND_IN_SET() を使って特定のレコードを検索する手順を解説します。1. テーブルの作成まず、カンマ区切りの値を格納するためのテーブルを作成します。mysql> create table DemoTable -> ( -> ListOfValue varch
-
MySQLで2つの異なる列を組み合わせてカスタムソートを行う方法
MySQLで2つの列を使ったカスタムソートの実現方法MySQLでは、ORDER BY句とCASE式を組み合わせることで、複数の列に基づいた柔軟なカスタムソートが可能です。まずはサンプル用のテーブルを作成しましょう。1. テーブルの作成mysql> create table DemoTable1610 -> ( -> Marks int, -> Name varchar(20) -> ) ;Query OK, 0 rows affected (0.51 sec)2. レコードの挿入INSERTコマンドを使ってテーブルにデータを登録します。my
-
MySQLで特定の値を先頭に表示し、残りのレコードを昇順で並べ替える方法
はじめにMySQLでは、ORDER BY句に条件式を組み合わせることで、特定の値を持つ行を最前面に表示し、残りの行を昇順で並べ替えることができます。この記事では、具体的な手順をサンプルコードとともに解説します。テーブルの作成まず、サンプル用のテーブルを作成します。mysql> create table DemoTable -> ( -> MonthNumber int -> );Query OK, 0 rows affected (1.68 sec)レコードの挿入次に、INSERTコマンドを使ってテーブルに複数のレコードを挿入します。mysql>
-
MySQLでGROUP_CONCATを使って複数のテキストレコードを1つに結合する方法
MySQLで複数のテキストレコード(行)を1つの文字列に結合したい場合は、GROUP_CONCAT()関数を使用します。この関数を使うと、複数の行に分かれているテキストデータを、指定した区切り文字で連結し、1つの結果として取得できます。テーブルの作成まず、サンプル用のテーブルを作成しましょう。mysql> create table DemoTable1611 -> ( -> Value text -> );Query OK, 0 rows affected (0.86 sec)レコードの挿入次に、insertコマンドを使ってテーブルにレコードを挿入しま
-
MySQLで選択した行のサイズを取得する方法|CHAR_LENGTH()関数の使い方
MySQLで選択した行のサイズを取得する方法MySQLで選択した行のサイズ(文字数)を取得するには、CHAR_LENGTH()関数を使用します。この関数は文字列の長さを返すため、SUM()関数と組み合わせることで、複数行にわたる合計サイズを簡単に算出できます。ここでは、実際にテーブルを作成しながら手順を詳しく解説していきます。ステップ1:テーブルを作成するまず、サンプル用のテーブルを作成しましょう。mysql> create table DemoTable1612 -> ( -> Fi
-
【MySQL】WHERE句のAND条件を使ってテーブルから特定のレコードを削除する方法
MySQLでWHERE句にAND条件を使って特定のレコードを削除する方法MySQLでは、WHERE句にAND演算子を組み合わせることで、複数の条件をすべて満たすレコードだけを対象に操作できます。本記事では、実際にテーブルを作成し、AND条件を使って特定のレコードを削除するまでの手順を順番に解説します。1. テーブルの作成まず、サンプル用のテーブルを作成します。mysql> create table DemoTable -> ( -> Id int, -> Name varchar(20) -> );Query OK, 0 rows affe
-
MySQLでOracleのTRUNC(SYSDATE)と同等の処理を行う方法|DATE()とCURDATE()の使い方
はい、可能です。MySQLでは DATE() 関数を使えばdatetime型の値から日付部分のみを取り出すことができ、CURDATE() 関数を使えば現在の日付を取得できます。この2つを組み合わせることで、Oracleの TRUNC(SYSDATE) と同様の「本日の日付だけを比較する」処理が実現できます。1. 現在の日付を確認するまず、CURDATE()で現在の日付を取得してみましょう。mysql> select curdate(); +------------+ | curdate() | +------------+ | 2019-10-20 | +----------
-
MySQLのLIKE演算子を使って特定のテーブル名を表示する方法
MySQLでは、information_schema.tablesを参照することで、データベース内のテーブル名一覧を取得できます。さらにLIKE演算子を組み合わせれば、特定のパターンに一致するテーブル名だけを抽出して表示することが可能です。基本の構文LIKE演算子を使用して特定のテーブル名を表示するには、以下の構文を使います。SELECT table_name AS `任意の別名` FROM information_schema.tables WHERE table_name LIKE 検索したい値%;この構文のポイントは以下のとおりです。table_name AS `別名`:出力時の
-
MySQLでドットを含む文字列から特定の番号で始まるレコードを抽出する方法|LIKEが使えない場合のREGEXP活用術
MySQLでは、ドット(ピリオド)を含む文字列を扱いながら「特定の番号で始まるレコード」だけを表示したい場合、LIKE句ではなくREGEXP(正規表現)を使用する必要があります。本記事では、実際にテーブルを作成し、REGEXPを使った抽出クエリの実行手順を具体的に解説します。1. サンプルテーブルの作成まずは、ゲームのリリースバージョンを格納するテーブルを作成します。mysql> create table DemoTable -> ( -> GameReleaseVersion var
-
MySQLでレコード(価格値)を乗算してフォーマット表示する方法
FORMAT()関数で乗算結果をフォーマットするMySQLでレコード(価格などの数値)を乗算した結果を読みやすい形式で表示したい場合は、FORMAT()関数を使用します。FORMAT()関数は、数値を指定した小数点以下の桁数で丸め、3桁ごとにカンマ区切りを自動的に追加してくれるため、金額の表示に非常に便利です。1. テーブルを作成するまず、サンプル用のテーブルを作成しましょう。ここでは、Price(価格)とRate(利率)という2つのdecimal型カラムを持つテーブルを定義します。mysql> create table DemoTable -> ( -> P
-
MySQLでNULLを含む複数の列から最大値を取得する方法(GREATESTとCOALESCE)
MySQLで複数の列の中から最大値を取得したい場合、GREATEST()関数を使うのが一般的です。しかし、GREATEST()には一つ重要な注意点があります。それは、引数のいずれかにNULLが含まれていると、結果もNULLになってしまうという点です。 この問題を回避するには、COALESCE()関数を組み合わせます。COALESCE()は、引数の中で最初に現れたNULL以外の値を返す関数のため、NULLを任意の値(ここでは0)に置き換えることができます。 それでは、実際の手順を順番に見ていきましょう。 1. テーブルを作成する まず、3つの整数型カラムを持つテーブルを作成します。 mysql
-
MySQLでLIKEをIN()のように実装するクエリの書き方
MySQLのIN()のような動作を実現するには、LIKE演算子と組み合わせてCOUNT()関数やIF()関数を使用します。この記事では、具体的な手順をサンプルコード付きで解説します。テーブルの作成まず、サンプル用のテーブルを作成しましょう。mysql> create table DemoTable -> ( -> Subject varchar(80) -> );Query OK, 0 rows affected (0.58 sec)
-
MySQLでWHERE句に複数の条件を指定してデータを更新する方法
MySQLでWHERE句に複数の値を指定して更新する方法MySQLのUPDATE文では、WHERE句に複数の条件を組み合わせることで、より正確に対象のレコードを絞り込んで更新することができます。AND演算子やOR演算子を使うことで、複数のカラムの値を条件として指定可能です。この記事では、実際にテーブルを作成し、WHERE句に複数の条件を指定してデータを更新する手順を具体的な例とともに解説します。まずはテーブルを作成する最初に、サンプル用のテーブルを作成しましょう。mysql> create table DemoTable -> ( -> Id int, -&