-
MySQLでテーブルのカラム名(列名)を取得する構文とは?
MySQLでは、information_schema.columns テーブルを参照することで、指定したテーブルのカラム名(列名)を簡単に取得できます。データベースの構造を確認したい場合や、動的にカラム情報を取得したいアプリケーションを開発する際に非常に便利な方法です。カラム名を取得する基本構文テーブルのカラム名を取得するには、以下の構文を使用します。SELECT column_name FROM information_schema.columns WHERE table_schema = データベース名 AND table_name = テーブル名;table_schema にはデータベー
-
MySQLで日付型カラムにNULLを挿入する方法|ALTER TABLEによるカラム定義の変更手順
日付型(DATE)カラムにNULLを挿入したい場合、ALTER TABLE文とMODIFY句を使って、カラム定義をNULL許可に変更する必要があります。基本の構文alter table テーブル名 modify column カラム名 date NULL;既存のテーブル構造はそのままに、指定したカラムだけをNULLを許容する形へ変更できます。検証用テーブルを作成するまず、日付カラムをNOT NULLとして定義したテーブルを作成します。mysql> create table DemoTable ( ShippingDate date NOT NULL ); Query OK, 0
-
MySQLのPREPAREステートメントでテーブル名にユーザー定義変数を設定する方法
はじめにMySQLのPREPAREステートメント(プリペアドステートメント)では、「?」プレースホルダはデータ値にのみ使用でき、テーブル名やカラム名を直接指定することはできません。しかし、ユーザー定義変数とCONCAT関数を組み合わせることで、テーブル名を動的に組み込んだクエリを準備・実行できます。この記事では、その具体的な手順をサンプルコード付きで解説します。サンプルテーブルの作成まず、テーブルを作成します。mysql> create table DemoTable( StudentId int NOT NULL AUTO_INCREMEN
-
MySQLトリガーで1つ目のテーブルへのINSERT時に2つ目のテーブルへレコードを自動挿入する方法
MySQLでは、トリガー(TRIGGER)を活用することで、あるテーブルにレコードが挿入されたタイミングで、別のテーブルにも自動的にデータを登録できます。本記事では、「BEFORE INSERT」トリガーを使用し、1つ目のテーブルへの挿入をきっかけに2つ目のテーブルへレコードを追加する手順を解説します。基本構文トリガーを作成する際の基本的な構文は以下のとおりです。DELIMITER //create trigger yourTriggerName before insert on yourTableName1 for each row &
-
MySQLでfloat型の列の値を丸めて新しい列に表示する方法
MySQLでは、ROUND()関数を使うことで、float型の数値を任意の桁数で丸め、その結果をAS句で名前を付けた新しい列として表示できます。この記事では、テーブルの作成から結果の確認まで、具体的な手順をサンプル付きで解説します。 1. サンプルテーブルを作成する まず、float型の「Value」列を持つテーブルを作成します。 mysql> create table DemoTable ( Value float ); Query OK, 0 rows affected (0.95 sec) 2. レコードを挿入する 次に、INSERT
-
MySQLで文字列フィールドの数値部分を抽出して行をグループ化する方法
MySQLでは、文字列型のフィールドに「+」演算子を使って数値の0を加算することで、文字列の先頭にある数字部分だけを数値として取り出すことができます。例えば、「9844Bob」のような文字列から、数値部分である「9844」を取得したいケースがこれに該当します。サンプルテーブルの作成まずはテーブルを作成しましょう。mysql> create table DemoTable ( StudentId varchar(100) ); Query OK, 0 rows affected (0.92 sec)テストデータの挿入INSERTコマンドを使って、いくつかのレコードを挿入します。my
-
MySQLで特定の文字を無視してパターン検索!Chris.Brownのような名前も一致させる方法
概要:区切り文字の違いを無視して名前を検索するには? 「Chris Brown」(スペース区切り)と「Chris.Brown」(ピリオド区切り)のように、区切り文字が違うだけで実質的に同じ名前を指すデータがテーブル内に混在していることがあります。単純な完全一致検索では、こうした表記ゆらぎを持つレコードを取得できません。本記事では、MySQLでピリオドなどの特定の文字を無視して検索を実行する方法を、実際のSQL例とともにわかりやすく解説します。 サンプルテーブルを作成する まず、動作確認用のテーブルを作成します。 mysql> create table DemoTable ( Na
-
MySQLでAND演算子とOR演算子を組み合わせたSELECTクエリの使い方
MySQLでは、WHERE句の中でAND演算子とOR演算子を組み合わせることで、複数の条件に基づいた柔軟なデータ抽出が可能になります。この記事では、実際にテーブルを作成し、ANDとORを組み合わせたSELECTクエリの実行方法を手順を追って解説します。1. サンプルテーブルの作成まず、CREATE TABLE文を使用してテーブルを作成します。mysql> create table DemoTable ( StudentId int, StudentName varchar(20), StudentSubject varchar(20) ); Query OK, 0
-
Javaを使ってMySQLテーブルにレコードを挿入する方法
はじめに本記事では、JavaのJDBC(Java Database Connectivity)を使用して、MySQLデータベースのテーブルにレコードを挿入する手順を解説します。まずテーブルを作成し、その後Javaプログラムからデータを登録するまでの一連の流れを見ていきましょう。1. MySQLでテーブルを作成するまず、データを挿入するためのテーブルを作成します。以下はMySQLでテーブルを作成するクエリです。mysql> create table DemoTable( Id int, Name varchar(30),&
-
MySQLで複数テーブルのレコードを削除する方法(DELETE文の使い方)
MySQLでは、DELETE文を使用して、条件に一致するレコードをテーブルから削除できます。本記事では、2つのサンプルテーブルを作成し、それぞれから特定のデータを削除する手順を順番に解説します。 サンプルテーブル(DemoTable1)の作成 まず、最初のテーブルを作成しましょう。 mysql> create table DemoTable1 ( Id int, Name varchar(20) ); Query OK, 0 rows affected (0.63 sec) レコードの挿入
-
MySQLのCASE WHENとSELECTでIDが奇数か偶数かを判定して表示する方法
MySQLでは、SELECT文の中でCASE WHEN句を組み合わせることで、数値の奇数・偶数を簡単に判定し、結果として表示できます。この記事では、実際にテーブルを作成し、PageId(ページID)が奇数か偶数かを判定するクエリの書き方を順を追って解説します。 1. サンプルテーブルを作成する まず、判定対象となるカラムを持つテーブルを作成しましょう。ここでは整数型の「PageId」カラムを持つテーブルを用意します。 mysql> create table DemoTable ( PageId int ); Query OK, 0 rows affected (0.85 sec)
-
MySQLでSELECT文を使ったネストされたINSERT(INSERT ... SELECT)は可能?使い方を実例付きで解説
MySQLでINSERT ... SELECTは使えるのか はい、MySQLではINSERT INTO ... SELECT構文を使用することで、SELECT文で取得した結果をそのまま別のテーブルへ挿入できます。これにより、テーブル間のデータコピーや、条件を付けたデータ移行を1つのSQL文で簡単に実現できます。 基本構文 insert into yourTableName2(yourColumnName1,yourColumnName2,.....N) select yourColumnName1,yourColumnName2,....N from yourTableName1 where
-
【MySQL】STR_TO_DATEを使ってAdmissionDateが現在の日付より前のレコードを比較・抽出する方法
はじめに MySQLでは、文字列として保存された日付データと現在の日付を比較したいケースがあります。本記事では、STR_TO_DATE()関数を使って文字列形式の日付を日付型に変換し、CURDATE()で取得した現在の日付と比較する方法を、具体的なサンプルコードとともに解説します。 テーブルの作成 まず、サンプル用のテーブルを作成します。ここでは、AdmissionDate列をvarchar(50)型として定義しています。 mysql> create table DemoTable ( AdmissionDate varchar(50) ); Query OK, 0 rows
-
MySQLのGROUP_CONCAT()とGROUP BYで重複データを検索し、1行にまとめて表示する方法
MySQLで重複しているデータを検索し、その結果を1行にまとめて表示したい場合は、GROUP_CONCAT()関数とGROUP BY句を組み合わせるのが効果的です。この2つを併用することで、重複する値ごとに関連するレコードをグループ化し、カンマ区切りの文字列として1行に連結して表示できます。 サンプルテーブルの作成 まずは、動作確認用のデモテーブルを作成しましょう。 mysql> create table DemoTable ( StudentFavouriteSubject varchar(40),
-
【MySQL】日付がVARCHAR形式のカラムから特定のレコードを抽出する方法|STR_TO_DATE()の使い方
テーブルのカラムに保存されている日付がVARCHAR型(文字列)の場合、そのままでは日付として比較することができません。このようなケースでは、STR_TO_DATE()関数を使って文字列を日付値に変換してから比較することで、特定のレコードを正確に抽出できます。 1. テーブルの作成 まず、日付をVARCHAR型で格納するサンプルテーブルを作成しましょう。 mysql> create table DemoTable ( DueDate varchar(60) ); Query OK, 0 rows affected (0.71 sec) 2. サンプルデータの挿入 INSERTコマ
-
【MySQL】COUNT()とCASE文を使って、特定の数値より大きい値と小さい値を別々の列でカウントする方法
はじめにMySQLでは、COUNT()関数とCASE文を組み合わせることで、特定の数値よりも大きい値と小さい(以下の)値の件数を、1つのクエリで別々の列として集計できます。条件分岐を活用したこのテクニックは、レポート作成やデータ分析の場面で非常に便利です。この記事では、サンプルテーブルを使いながら、具体的な手順をわかりやすく解説します。サンプルテーブルの作成まず、スコアを格納するためのテーブルを作成します。mysql> create table DemoTable ( Score int ); Query OK, 0 rows affected (0.71 sec)テストデータの
-
MySQLで文字列内の特定の文字を検索する方法|REGEXPの使い方を解説
MySQLで文字列内の特定の文字を検索するにはMySQLで文字列の中に特定の文字が含まれているかどうかを調べたい場合は、REGEXP(正規表現)を使用します。ここでは、「J」「A」「V」「A」という4文字が文字列内にこの順番で含まれているレコードを検索する例を紹介します。1. サンプルテーブルの作成まず、検索対象となるテーブルを作成します。mysql> create table DemoTable ( Value varchar(50) ); Query OK, 0 rows affected (3.92 sec)2. レコードの挿入INSERTコマンドを使って、テーブルにサンプ
-
MySQLのIN句で一致するレコードを取得する方法
テーブル内のレコードから特定の値に一致するデータを取得したい場合、MySQLのIN()演算子を使用すると便利です。IN()を使うことで、複数の条件値を1つのクエリで簡潔に指定できます。この記事では、実際にテーブルを作成し、IN()を使ってIdが1と11のレコードを取得する手順を解説します。サンプルテーブルの作成まず、CREATE TABLE文でテーブルを作成します。GenderカラムにはENUM型を使用しています。mysql> create table DemoTable ( Id int, FirstName varchar(20), Gender ENUM(M
-
MySQLの1つのクエリで特定のレコード(重複データ)の出現回数をカウントする方法
はじめにMySQLでテーブル内の特定のレコード(重複データ)が何回出現するかを調べたい場合、集計関数の COUNT() と GROUP BY 句を組み合わせることで、1つのクエリで簡単に実現できます。この記事では、実際にサンプルテーブルを作成し、重複データの出現回数をカウントする手順をわかりやすく解説します。サンプルテーブルの作成まず、以下のコマンドでテーブルを作成します。mysql> create table DemoTable ( StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
-
MySQLの単一クエリで列全体を更新せずに範囲内の特定レコードのみを更新する方法
はじめに MySQLでは、UPDATE文とWHERE句を組み合わせることで、列全体を一括更新するのではなく、条件に一致する特定のレコードだけを選択的に更新できます。本記事では、「Position(順位)」カラムの値が指定した範囲内にあるレコードのみを、単一のクエリで更新する方法を、具体的なサンプルコードとともに解説します。 サンプルテーブルの作成 まず、以下のコマンドでテーブルを作成します。 mysql> create table DemoTable ( Name varchar(40), Position int ); Query OK, 0 rows affecte