-
MySQLでテーブルの日時(DATETIME)列から重複のない日付を抽出する方法
MySQLのテーブルに保存された日時(DATETIME)型のデータから、重複のない日付だけを取り出したいケースはよくあります。そんなときはDISTINCTキーワードを使うことで、簡単に一意な日付の一覧を取得できます。この記事では、実際にテーブルを作成しながら、日時列から個別の日付を抽出する手順をわかりやすく解説します。1. サンプルテーブルの作成まずは、投稿メッセージを管理するためのテーブルを作成しましょう。次のSQLを実行します。mysql> create table PostMesssageDemo -> ( -> UserId int NOT NULL
-
MySQLで現在日付から過去2日間のレコードを取得する方法
MySQLにおいて、現在の日付を基準に過去2日間のレコードを抽出したい場合、DATE_SUB()関数を使用します。さらに、NOW()関数を組み合わせることで、現在の日付・時刻を動的に取得できます。基本構文過去2日間のレコードを取得するための基本的なSQL構文は以下の通りです。SELECT * FROM yourTableNameWHERE yourDateTimeColumnName BETWEEN DATE_SUB(DATE(NOW()), INTERVAL 2 DAY)AND DATE_SUB(DATE(NOW()), INTERVAL 1 DAY);実例で確認しようここからは、実際にテー
-
MySQLで特定の月番号を条件にテーブルからレコードを抽出する方法:MONTH()関数の使い方
MySQLでは、MONTH()関数を使うことで、日付データから月の番号(1〜12)を取得し、特定の月に該当するレコードだけを簡単に抽出できます。ログ履歴や売上データなど、月単位での集計・検索を行いたい場面で非常に便利な関数です。MONTH()関数を使った基本構文SELECT yourColumnName FROM yourTableName WHERE MONTH(yourColumnName) = yourValue;この構文では、WHERE句の中でMONTH()関数を適用し、指定した月番号と一致する行のみを取得します。サンプルテーブルの作成それでは、実際に動きを確認するためにテーブルを作成
-
MySQLで最初と最後のデータ行を取得する方法|MIN()・MAX()を使った実践テクニック
MySQLでは、MIN()関数とMAX()関数を組み合わせることで、テーブル内の最初と最後のデータ行を簡単に取得できます。これらの関数は指定したカラムの最小値・最大値を返すため、AUTO_INCREMENTで採番されるIDカラムなどに対して適用すれば、先頭行と最終行を正確に特定できるのです。基本構文最初の行と最後の行を同時に取得するための基本的な構文は以下の通りです。SELECT * FROM yourTableName WHERE yourColumnName = (SELECT MIN(yourColumnName) FROM yourTableName) UNION SELECT * F
-
MySQLでクエリに存在しない列を追加する方法|ASキーワードの使い方
クエリに存在しない列を追加するには?SELECT文を実行する際、テーブルには実際に存在しない列を結果に含めたいケースがあります。そんなときに役立つのがASキーワードです。ASキーワードを使えば、固定値や式に対して別名(エイリアス)を付与でき、あたかも新しい列が存在するかのように出力できます。基本となる構文は以下の通りです。SELECT yourColumnName1,yourColumnName2,....N,yourValue AS yourColumnName,....N FROM yourTableName;サンプルテーブルの作成まず、動作を確認するためのテーブルを作成しましょう。テーブ
-
MySQLでテーブルに存在しない列(カラム)を複数追加して取得する方法
MySQLでは、SELECT文とASキーワードを組み合わせることで、テーブルに実際には存在しない列(カラム)を仮想的に追加できます。さらに、ASキーワードを複数回使用すれば、存在しない列を一度に複数個追加することも可能です。本記事では、具体的なサンプルコードとともに、その手順をわかりやすく解説します。 サンプルテーブルの作成 まず、動作確認用のテーブルを作成します。以下がテーブル作成用のクエリです。 mysql> create table ColumnDoesNotExists -> ( -> UserId int, -> UserNam
-
【MySQL】データベースが空かどうかを確認するクエリの書き方
INFORMATION_SCHEMA.COLUMNSを使ってデータベースが空かどうかを確認する方法MySQLでデータベースが空(テーブルが1つも存在しない状態)かどうかを調べたい場合、INFORMATION_SCHEMA.COLUMNSテーブルを利用すると簡単に確認できます。基本構文データベースが空かどうかをチェックするための基本構文は以下の通りです。SELECT COUNT(DISTINCT `TABLE_NAME`) AS 任意の別名 FROM `INFORMATION_SCHEMA`.`COLUMNS` WHERE `table_schema` = データベース名;このクエリは、指定した
-
MySQLで特定のカラムの文字数が5文字未満の行を取得する方法
MySQLであるフィールド(カラム)の値が5文字未満の行だけを抽出したい場合、LENGTH()関数を使用します。LENGTH()関数は文字列の長さをバイト数で返すため、WHERE句と組み合わせることで、指定した文字数より短いレコードを簡単に絞り込むことができます。基本構文SELECT * FROM テーブル名 WHERE LENGTH(カラム名) < 5;サンプルテーブルの作成それでは、実際に動きを確認するためにテーブルを作成してみましょう。以下のクエリで「fieldLessThan5Chars」というテーブルを作成します。mysql> create table fieldLess
-
MySQLでクエリ結果の最後の行に合計を表示する方法
MySQLの検索結果の最終行に各列の合計値を表示したい場合、UNIONを使うのが定番のテクニックです。通常のSELECT文と、SUM関数で合計を計算するSELECT文を結合することで、データ行の直後に合計行を追加できます。基本構文( SELECT yourColumnName1, yourColumnName2, yourColumnName3, ... FROM yourTableName ) UNION ( SELECT yourMessage AS anyAliasName1, SUM(yourColumnName1) AS any
-
MySQLで異なる列の日付と時刻を組み合わせてDateTime値と比較する方法
MySQLでは、別々の列に保存された日付(DATE型)と時刻(TIME型)をCONCAT()関数で連結することで、1つの日時(DateTime)値として扱い、比較することができます。基本構文以下が基本的な構文です。 yourDateTimeValue;CONCAT()関数で日付列と時刻列を連結すると、「YYYY-MM-DD HH:MM:SS」という形式の日時文字列が生成され、これを指定した日時値と比較できます。サンプルテーブルの作成実際に動作を確認するため、テーブルを作成してみましょう。以下のクエリを実行します。 ); Query OK, 0 rows affected (1.53 sec)こ
-
MySQLで予約語「order」をテーブル名として作成・使用する方法
MySQLでは「order」は予約語(キーワード)として登録されているため、テーブル名としてそのまま使用することはできません。予約語をテーブル名やカラム名として扱いたい場合は、バッククォート(`)で名前を囲む必要があります。バッククォートで囲むことで、MySQLはそのキーワードを通常のテーブル名やカラム名として正しく解釈してくれます。基本構文予約語をテーブル名として使う場合の基本的な構文は以下の通りです。CREATE TABLE `order` ( yourColumnName1 dataType, yourColumnName2 dataType, yourColum
-
PHPのdeg2rad()関数とMySQLのradians()関数は同じ結果を返す?徹底検証
deg2rad()とradians()は同じ機能を持つ関数 結論から言うと、はい、どちらも度(degree)の値をラジアン(radian)に変換する関数であり、同じ結果を返します。 本記事では、MySQLのradians()関数の動作を実際にテーブルを作成して確認し、PHPのdeg2rad()関数との出力結果を比較していきます。 1. 検証用テーブルの作成 まず、MySQLでradians()関数の動きを確認するために、以下のクエリでテーブルを作成します。 mysql> create table RadiansDemo - > ( - > Id int NO
-
MySQLのEXISTSを使ってテーブルが空かどうかを確認する方法
MySQLでは、EXISTSを使うことで、テーブルが空かどうか(レコードが1件でも存在するかどうか)を簡単に確認できます。本記事では、テーブルの作成から確認クエリの実行まで、具体的なサンプルコードとともにその方法を解説します。基本構文テーブルが空かどうかを確認するための基本構文は以下のとおりです。SELECT EXISTS(SELECT 1 FROM テーブル名);サブクエリ内でレコードが1件でも見つかれば EXISTS は 1(真)を返し、テーブルが空であれば 0(偽)を返します。なお、SELECT 1 の部分は SELECT * でも動作しますが、存在確認だけが目的であれば 1 を指定する
-
MySQLで大文字小文字を区別する一意性と、区別しない検索を両立させる方法
MySQLでは、カラムの値に対して「大文字と小文字を区別する一意性(ユニーク制約)」を持たせながら、検索時には「大文字と小文字を区別しない」動作を実現できます。主な方法は次の2つです。VARBINARYデータ型を使う_bin照合順序(COLLATE)を使う方法1:VARBINARYデータ型を使用するまずは、VARBINARY型を使ったテーブル作成の例から見ていきましょう。mysql> create table SearchingDemo2 -> ( -> UserId VARBINARY(128) NOT NULL, -> UNIQUE KEY ind
-
MySQLでNULLとIS NOT NULLを使いこなす方法を実例付きで解説
MySQLでは、NULL値を扱うために2つの重要な演算子が用意されています。IS NULL:値がNULLである行を抽出するIS NOT NULL:値がNULLではない行を抽出するNULLは「空の値」や「0」とは異なり、「値が存在しないこと」を表す特別な状態です。そのため、通常の比較演算子(= や !=)では判定できず、必ず IS NULL / IS NOT NULL を使う必要があります。本記事では、実際にテーブルを作成しながら、これらの演算子の基本的な使い方を解説します。サンプルテーブルの作成まず、動作確認用のテーブルを作成しましょう。テーブル作成のクエリは以下の通りです。mysql>
-
MySQLでCROSS JOINを正しく使う方法をわかりやすく解説!実例付き
MySQLにおけるCROSS JOIN(クロス結合)は、結合対象のテーブル同士のすべての行の組み合わせ、つまりデカルト積(直積)を返す結合方法です。本記事では、実際にテーブルを作成しながら、CROSS JOINの基本的な仕組みと実践的な使い方を具体的な例を通じて解説します。 サンプルテーブルの作成 まずは、ユーザーとその関係者の情報を管理する「PairDemo」というテーブルを作成します。UserIdを主キーとして自動採番する構成です。 mysql> create table PairDemo -> ( -> UserId int NOT NULL AUT
-
MySQLでストアドプロシージャの存在を確認するには?SHOW CREATE PROCEDUREの使い方
まず、動作確認用のサンプルとしてストアドプロシージャを作成しましょう。ここでは、指定した日付に任意の月数を加算した日付を返す「ExtenddatesWithMonthdemo」というプロシージャを作成します。 mysql> DELIMITER // mysql> CREATE PROCEDURE ExtenddatesWithMonthdemo(IN date1 datetime, IN NumberOfMonth int ) -> BEGIN -> SELECT DATE_
-
MySQLデータベース内のテーブル数とカラム数を正確に取得する方法
MySQLデータベースに含まれるテーブル数とカラム(列)数を正確に把握したい場合は、COUNT()関数の中でDISTINCTを使用するのが効果的です。INFORMATION_SCHEMA.COLUMNSとはINFORMATION_SCHEMA.COLUMNSは、MySQLサーバーが管理するすべてのデータベースのカラム情報を格納しているシステムビューです。このビューを参照することで、SQLクエリだけでスキーマ全体の構成を集計できます。実行手順ここでは、「sample」というデータベースを例に、テーブル数とカラム数の合計を取得してみましょう。実行するクエリは以下のとおりです。mysql> S
-
コマンドラインからMySQLサーバーをアップグレードする方法【手順を画像付きで解説】
MySQLサーバーは、コマンドプロンプト(CMD)からmysql_upgradeコマンドを実行するだけで、簡単にアップグレードできます。この記事では、Windows環境を例に、データディレクトリの確認からアップグレードの実行、サーバーの再起動までの一連の手順をわかりやすく解説します。 手順1:コマンドプロンプトを起動する まず、ショートカットキー「Windows + R」を押して「ファイル名を指定して実行」ダイアログを開きます。 「cmd」と入力して「OK」ボタンをクリックすると、コマンドプロンプトが起動します。以下はその画面の例です。 手順2:MySQLのデータディレクトリを確認する
-
MySQLで別のテーブルのデータを元にテーブルへ列を追加する方法
MySQLで別のテーブルから列を追加することは可能? はい、MySQLでは別のテーブルのデータを参照しながら、テーブルに新しい列を追加することができます。この記事では、実際に2つのテーブルを作成し、片方のテーブルの列データをもう片方のテーブルに反映させる手順を解説します。 手順1:最初のテーブル(FirstTable)を作成する まず、以下のクエリで最初のテーブルを作成します。 mysql> create table FirstTable -> ( -> UserId int, -> UserName varchar(20) ->