-
MySQLで既存のテーブルから特定の行を選択して新しいテーブルを作成する方法
すでに作成済みのテーブルを元に新しいテーブルを作成するには、CREATE TABLE AS SELECT文(CTAS)を使用します。この構文では、SELECT句とWHERE句を組み合わせることで、条件に一致するレコードだけを格納したテーブルを簡単に複製できます。ここでは、実際のコード例をもとに手順を詳しく解説します。 手順1:元となるテーブルを作成する まずはサンプルとして、Id、FirstName、LastName、Ageの4つのカラムを持つテーブルを定義します。 mysql> create table DemoTable1318 -> ( -> Id int, -&
-
MySQLで月番号ではなく月名だけを出力する方法
文字列として保存された日付データから、「10」のような月番号ではなく「October」のような月名だけを取り出したい場合は、STR_TO_DATE()とDATE_FORMAT()を組み合わせることで簡単に実現できます。まずはサンプル用のテーブルを作成しましょう。mysql> create table DemoTable1320 -> ( -> MonthName varchar(20) -> ); Query OK, 0 rows affected (0.43 sec)レコードの挿入例INSERTコマンドを使って、テーブルに「dd/mm/yyyy」形式の日付文字列をいく
-
MySQLで日付ごとの件数をカウントし、重複する日付も取得する方法
はじめにMySQLで日付データの件数を集計し、同じ日付が複数存在する場合もまとめて取得したい場面はよくあります。件数を表示するには、集計関数 COUNT(*) を使用します。本記事では、実際にテーブルを作成し、日付ごとにレコード数をカウントするクエリを解説します。テーブルの作成まず、TIMESTAMP型のカラムを持つテーブルを作成します。mysql> create table DemoTable1321-> (-> ArrivalDatetime timestamp-> );Query OK, 0 rows affected (0.50 sec)レコードの挿入INSER
-
【MySQL】単一のUPDATE文でテーブルのすべての列を特定の値に一括設定する方法
MySQLでは、UPDATE文のSET句に「列名=値」をカンマ区切りで並べることで、単一のクエリだけでテーブルの複数の列(実質的にすべての列)を特定の値に同時に設定できます。この記事では、サンプルテーブルを使いながら具体的な手順を解説します。 1. サンプルテーブルの作成 まず、動作確認用のテーブルを作成しましょう。 mysql> create table DemoTable ( ClientId int NOT NULL AUTO_INCREMENT PRIMARY KEY, ClientName varchar(40), ClientAge int,
-
【MySQL】SUBSTRING_INDEX()で文字列を分割し最後の単語を取得する方法
MySQLで「Learn With Ease」のような複数単語の文字列を分割し、最後の単語だけを取り出したい場合には、SUBSTRING_INDEX()関数が便利です。この記事では、テーブル作成からデータ挿入、実際に文字列を分割するクエリの実行まで、サンプルコード付きで順番に解説します。 SUBSTRING_INDEX()関数とは SUBSTRING_INDEX()は、指定した区切り文字を基準に文字列を分割し、一部を取得できる関数です。「SUBSTRING_INDEX(対象文字列, 区切り文字, 取得位置)」という形式で使い、第3引数に負の値を指定すると文字列の末尾から数えて取得できます。今
-
MySQLでsp_helpのようにフィールド型や制約を表示するには?SHOW CREATEコマンドの使い方
MySQLでsp_help相当の情報を取得するには? SQL Serverのsp_helpに相当する機能は、MySQLではSHOW CREATEコマンドで実現できます。このコマンドを使えば、テーブルのフィールド(カラム)のデータ型や、主キー・一意キーなどの制約情報をまとめて確認できます。 ケース1:テーブルの場合 テーブルの定義を表示する基本構文は次の通りです。 SHOW CREATE TABLE テーブル名; ケース2:ストアドプロシージャの場合 ストアドプロシージャの定義を表示する基本構文は次の通りです。 SHOW CREATE PROCEDURE プロシージャ名; サンプルテーブル
-
MySQLの単一クエリで複数行をカンマ区切りのリストにまとめる方法
GROUP_CONCAT()関数を使った行の結合MySQLで複数の行を1つのカンマ区切りのリストにまとめるには、GROUP_CONCAT()関数を使用します。この記事では、実際にテーブルを作成し、サンプルデータを挿入して、GROUP_CONCAT()の使い方を具体的に解説します。1. サンプルテーブルの作成まず、以下のようにテーブルを作成します。mysql> create table DemoTable( Id int, Name varchar(40));Query OK, 0 rows aff
-
MySQLで1つの条件を使って空白文字列と0の両方をチェックする方法
はい、IN句を使えば、1つの条件で空白文字列(空文字)と「0」の両方を同時にチェックすることができます。ここでは、その具体的な手順をサンプルコードとともに解説します。サンプルテーブルの作成まず、テスト用のテーブルを作成します。mysql> create table DemoTable ( ClientId varchar(40) ); Query OK, 0 rows affected (1.01 sec)テストデータの挿入次に、INSERTコマンドを使ってサンプルデータを登録します。ここには通常の文字列だけでなく、「0」という文字列や空文字も含めています。mysql> i
-
MySQLで列内の文字列を検索して置換する方法|REPLACE関数の使い方を解説
MySQLでテーブルの列に保存されたファイルパスなど、特定の文字列をまとめて検索・置換したい場合は、REPLACE() 関数を使用します。この記事では、実際にサンプルテーブルを作成し、UPDATE文と組み合わせて一括置換を行う手順をわかりやすく解説します。REPLACE() 関数とはREPLACE() は、指定した文字列の中から検索対象の文字列をすべて見つけ、別の文字列に置き換えるための関数です。基本的な構文は以下のとおりです。REPLACE(対象の列名, 検索する文字列, 置換後の文字列)この関数を UPDATE 文と組み合わせることで、テーブル内のデータを一括で書き換えられます。1. サン
-
MySQLで区切り文字とその後の数字を削除し、現在の値の部分文字列で値を更新する方法
MySQLで区切り文字以降の数字を削除して値を更新する方法ここでは、「文字列/数字」という形式(例:John/56989)の文字列がカラムに格納されている場合を想定します。区切り文字「/」の後ろにある数字を削除したい場合は、SUBSTRING_INDEX() 関数を使用します。実際の手順を順番に見ていきましょう。まず、テーブルを作成します。mysql> create table DemoTable ( StudentName varchar(100) ); Query OK, 0 rows affected (1.05 sec)続いて、insertコマンドでいくつかのレコードを挿
-
MySQLで列内のすべての値の下3桁の合計を取得する方法
はじめにMySQLである列に格納されたすべての値について、下3桁(末尾3桁)を抽出し、その合計を求めたい場合があります。このような処理を実現するには、集計関数SUM()と文字列関数RIGHT()を組み合わせて使用します。RIGHT()関数は文字列の右端から指定した文字数を取り出す関数で、RIGHT(列名, 3)と記述することで各値の末尾3桁を取得できます。さらにSUM()で包むことで、それらを一括して合計できる仕組みです。本記事では、実際にサンプルテーブルを作成し、データを挿入したうえで、下3桁の合計を取得するクエリの実行方法を順を追って解説します。サンプルテーブルの作成まず、CREATE T
-
MySQLで個別の値の出現回数をカウントし、結果を新しい列として表示する方法
MySQLでは、GROUP BY句とCOUNT()関数を組み合わせることで、各値が何回出現したかを簡単に集計できます。この記事では、実際にテーブルを作成し、重複する値の出現回数をカウントして結果を表示する手順を解説します。 1. サンプルテーブルの作成 まず、集計対象となるテーブルを作成しましょう。 mysql> create table DemoTable ( Value int ); Query OK, 0 rows affected (0.57 sec) 2. テストデータの挿入 INSERTコマンドを使って、いくつかのレコードを挿入します。意図的に同じ値を複数回登録し
-
MySQLのPREPAREステートメントで変数を使用する方法
MySQLのプリペアドステートメントでユーザー定義変数を活用するMySQLでは、SET文でユーザー定義変数を設定し、CONCAT()関数と組み合わせることで、動的なSQLを構築してPREPAREステートメントで実行できます。ここでは、実際にテーブルを作成し、変数を使ったプリペアドステートメントの実行方法を順を追って解説します。1. サンプルテーブルを作成するまず、以下のコマンドでテーブルを作成します。mysql> create table DemoTable ( Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, FirstName v
-
MySQLで指定した日付(2010-11-04)から現在の日付までのレコードを抽出する方法
MySQLでは、比較演算子 >= を使うことで、特定の日付から現在までの範囲にあるレコードを簡単に抽出できます。この記事では、サンプルテーブルの作成からデータの挿入、そして指定日(2010-11-04)以降のデータを取得するクエリまで、実際の実行例とともに順を追って解説します。1. テーブルの作成まず、日付型(DATE)カラムを持つテーブルを作成しましょう。mysql> create table DemoTable ( Joiningdate date ); Query OK, 0 rows affected (0.56 sec)2. レコードの挿入INSERTコマンドを使
-
【MySQL入門】LIKEとORを組み合わせたテキスト検索でレコードを取得する方法
MySQLでは、LIKE演算子とOR条件を組み合わせることで、複数のキーワードのいずれかに一致するレコードを柔軟に検索できます。本記事では、実際のコード例を通じて、その基本的な使い方をわかりやすく解説します。1. テーブルの作成まず、検索対象となるテーブルを作成しましょう。mysql> create table DemoTable ( Subject text ); Query OK, 0 rows affected (0.86 sec)2. レコードの挿入続いて、INSERTコマンドを使用してテーブルにサンプルデータを登録します。mysql> insert into De
-
MySQLで現在日時から過去3日間のレコードを抽出し、該当する数値の合計を求める方法
MySQLでは、NOW()関数とINTERVALを組み合わせることで、「現在日時からさかのぼって○日以内」といった条件でレコードを簡単に抽出できます。この記事では、実際にテーブルを作成し、過去3日間のレコードを対象に合計値を求める手順をサンプルSQL付きで解説します。 1. テーブルの作成 まず、サンプル用のテーブルを作成しましょう。 mysql> create table DemoTable ( ProductAmount int, PurchaseDate datetime ); Que
-
MySQLのINSERTで行の重複を防ぐ方法【UNIQUE KEYとINSERT IGNOREの使い方】
MySQLでINSERT時にデータの重複を防ぎたい場合は、対象のカラムにUNIQUE KEY(一意キー)を設定します。UNIQUE KEYが設定されたカラムには同じ値を複数回挿入できないため、重複データを確実に防止できます。UNIQUE KEYを設定したテーブルを作成するまず、テーブルを作成しましょう。以下の例では、FirstNameカラムにUNIQUE KEYを設定しています。mysql> create table DemoTable ( Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, FirstName varchar(30),
-
MySQLで列から特定の値の±1以内に含まれる整数を検索する方法
はじめにMySQLである基準値の前後「±1以内」に該当する整数を取得したい場合には、BETWEEN -1 AND 1 を使うと簡単に実現できます。この記事では、テーブルの作成からデータの挿入、そして実際に±1以内の整数を抽出するクエリの実行まで、具体的な手順を解説します。サンプルテーブルの作成まず、以下のようにテーブルを作成します。mysql> create table DemoTable ( Value int ); Query OK, 0 rows affected (0.76 sec)データの挿入続いて、INSERTコマンドを使ってテーブルにレコードを挿入していきます。my
-
MySQLでアイテムの組み合わせの重複挿入を防ぐ方法(UNIQUE制約の使い方)
MySQLでは、複数カラムの値の「組み合わせ」が重複してテーブルに挿入されるのを防ぐことができます。これを実現するには、対象のカラムにUNIQUE制約を設定します。以下の構文で、既存のテーブルにUNIQUE制約を追加できます。alter table テーブル名 add constraint 制約名 unique(カラム名1, カラム名2, ....N);この制約を設定すると、指定したカラム同士の値の組み合わせが完全に一致するレコードは、テーブル内に1つしか存在できなくなります。個々のカラムの値は重複しても構いませんが、両方の値が同じ組み合わせになるとエラーが発生します。テーブルを作成するまずは
-
SQLでテーブルのカラムにNOT NULL制約が設定されているか確認する方法
MySQLでテーブルのフィールド(カラム)にNOT NULL制約が設定されているかどうかを確認するには、主に2つの方法があります。この記事では、それぞれの構文と実際の実行例をわかりやすく解説します。 方法1:DESCコマンドでテーブル構造を確認する 最も手軽な方法は、DESC(DESCRIBE)コマンドを使うことです。以下の構文を使用します。 DESC テーブル名; 方法2:information_schemaからNULL許可情報を取得する より詳細に確認したい場合は、information_schema.columnsテーブルを参照する方法が有効です。 SELECT column_nam