-
MySQLで2つの列の値を乗算して合計を求めるSUM()クエリの書き方
MySQLでは、集計関数 SUM() を使うことで、各行の値同士を乗算した結果をまとめて合計できます。この方法では、SUM() の中で直接掛け算を行うのがポイントです。ここでは、商品の「数量 × 単価」を計算し、その合計金額を求める例を見ていきましょう。1. サンプルテーブルを作成するまず、CREATE TABLE 文でテーブルを作成します。mysql> create table DemoTable( ProductQuantity int, ProductPrice int ); Query
-
MySQLでCURDATE()(現在の日付)の表示形式を変更する方法
MySQLでは、CURDATE()関数が返す現在の日付は、デフォルトで「YYYY-mm-dd」(例:2019-08-08)という形式になっています。この形式を変更したい場合は、DATE_FORMAT()関数を使用します。 CURDATE()で現在の日付を確認する まず、現在の日付をそのまま表示してみましょう。以下のクエリを実行します。 mysql> select curdate(); 実行結果は次のとおりです。 +------------+ | curdate() | +------------+ | 2019-08-08 | +------------+ 1 row in set
-
MySQLでカンマ区切りの文字列から特定の単語を削除する方法
MySQLでは、SET型やカンマ区切りの文字列として保存されたデータから、特定の単語(要素)を削除したいケースがあります。本記事では、ビット演算とFIND_IN_SET関数を組み合わせることで、カンマ区切り文字列内の特定の単語を効率的に削除する方法を解説します。1. サンプルテーブルの作成まず、SET型のカラムを持つテーブルを作成します。mysql> create table DemoTable836(FirstName SET(John,Chris,Adam)); Query OK, 0 rows affected (0.60 sec)2. テストデータの挿入INSERT文を使って、い
-
MySQLで生年月日から年齢範囲(20〜21歳)に該当する学生レコードを抽出するクエリ
BETWEEN演算子で日付の範囲に合致するレコードを取得する特定の日付範囲に含まれるレコードを取得したい場合は、MySQLのBETWEEN演算子を使います。この記事では、生年月日(StudentDateOfBirth)から現在の年齢を計算し、「20歳〜21歳」の範囲に該当する学生レコードを抽出するクエリを、テーブル作成から順を追って解説します。ステップ1:サンプルテーブルを作成するまず、生年月日をDATE型で格納するテーブルを作成します。mysql> create table DemoTable863(StudentDateOfBirth date);Query OK, 0 rows a
-
MySQLでテーブル内の空の値(空文字列)を特定の値に置き換える方法
MySQLでは、テーブル内に格納された空文字列()を、SELECT文のIF()関数を使って任意の特定の値に置き換えて表示することができます。ここでは、実際にテーブルを作成し、空の値を「Adam」という値に置き換えて取得する手順を解説します。 1. テーブルの作成 まず、CREATE TABLE文でサンプル用のテーブルを作成します。 mysql> create table DemoTable837(Name varchar(100)); Query OK, 0 rows affected (0.53 sec) 2. レコードの挿入 次に、INSERT文を使ってテーブルにデータを登録しま
-
MySQLで特定の3つの値しか格納できないカラムを持つテーブルを作成する方法
MySQLで、あらかじめ決められた3つの値だけを格納できるカラムを持つテーブルを作成したい場合は、ENUMデータ型を使用します。ENUM型を使うと、指定した候補値以外のデータが挿入されるのを防ぐことができます。テーブルの作成まず、ENUM型のカラムを持つテーブルを作成しましょう。ここでは例として、「RED」「GREEN」「BLUE」の3色のみを許可するColorカラムを定義します。mysql> create table DemoTable838(Color ENUM(RED,GREEN,BLUE)); Query OK, 0 rows affected (0.67 sec)これで、Col
-
MySQLでDATE()関数を使って年月日を比較し、一致するレコードを抽出する方法
MySQLでtimestamp型やdatetime型のカラムから「年・月・日」だけを比較してレコードを取得したい場合は、DATE()関数を使用すると簡単に実現できます。DATE()関数は、日時の値から時刻部分を取り除き、日付部分だけを返す関数です。この記事では、実際にテーブルを作成し、特定の日付に一致するレコードを抽出する手順を解説します。1. サンプルテーブルの作成まず、timestamp型のカラムを持つテーブルを作成します。mysql> create table DemoTable864(DueDateTime timestamp);Query OK, 0 rows affected
-
MySQLのSELECT(列名)の括弧の意味は?エイリアスの作成方法を解説
SELECT(列名)の括弧は何を意味するのか?MySQLのSELECT文で(列名)のように括弧を付けると、その列に対してエイリアス(別名)を作成することを意味します。括弧自体は必須の構文ではなく、列名を明確に区切って可読性を高めるための書き方です。ここでは、実際の例を使ってその動作を確認していきましょう。サンプルテーブルの作成まず、以下のコマンドでテーブルを作成します。mysql> create table DemoTable865( FirstName varchar(100), LastName varchar(100));Query OK, 0 rows affecte
-
【MySQL】空文字やNULLを除外し、対応する列の値で補完してデータを取得する方法
はじめにMySQLでは、テーブル内に空文字()やNULLが混在していることがあります。本記事では、空文字およびNULL以外の値だけを取得し、該当しない場合には別の列の値で補完する方法を、実際のSQL例とともにわかりやすく解説します。サンプルテーブルの作成まず、動作確認用のテーブルを作成しましょう。mysql> create table DemoTable839( StudentFirstName varchar(100), StudentLastName varchar(100) ); Que
-
MySQLの単一クエリで条件に応じてSUMと減算を実行する方法
はじめにMySQLで条件に応じて同じカラムに対してSUM(合計)と減算を同時に行いたい場合は、CASE文を使用します。CASE文の中で、特定の条件を満たす場合には金額をそのまま加算し、別の条件の場合はマイナス値にすることで減算として処理できます。まず、サンプルとなるテーブルを作成しましょう。mysql> create table DemoTable866( Status varchar(100), Amount int);Query OK, 0 rows affected (0.63 sec)insertコマンドを使って、いくつかのレコードを挿入します。mysql> i
-
【MySQL】LIMITとOFFSETを使って従業員テーブルから上位3つの給与を取得する方法
MySQLで従業員の給与データから「1位・2位・3位」のように上位の給与を順番に取得したい場合、LIMIT句とOFFSET句を組み合わせるのが便利です。この記事では、実際にテーブルを作成し、サンプルデータを使いながら具体的な手順を解説します。1. サンプルテーブルを作成するまずは従業員の給与を格納するテーブルを作成しましょう。mysql> create table DemoTable867(EmployeeSalary int); Query OK, 0 rows affected (0.64 sec)2. テーブルにレコードを挿入するINSERT文を使って、複数の給与データを登録します
-
MySQLでvarcharを符号なし整数(UNSIGNED)に変換する方法
MySQLでvarcharを符号なし整数に変換するには?MySQLでvarchar型の文字列データを符号なし整数(UNSIGNED)として扱いたい場合は、CAST()関数を使用します。文字列のままでは辞書順にソートされてしまうため、数値として正しく並べ替えたいときなどに非常に便利です。ここでは、実際にテーブルを作成し、CAST()関数でvarcharを符号なし整数に変換する手順をサンプルコードとともに解説します。1. テーブルを作成するまず、Amountカラムを持つテーブルを作成します。Amountカラムはvarchar型として定義します。mysql> create table Demo
-
MySQLのビューからテーブルを作成する方法を徹底解説!基本構文と実行手順
ビューからテーブルを作成する基本構文 MySQLでは、ビュー(VIEW)をもとに新しいテーブルを簡単に作成できます。基本となる構文は以下の通りです。 create table yourTableName select * from yourViewName; このように「CREATE TABLE ... SELECT」構文を使うことで、ビューの構造とデータをそのまま新しいテーブルへ复制できます。以下、具体的な手順を見ていきましょう。 ステップ1:サンプルテーブルを作成する まず、元となるテーブルを作成します。 mysql> create table DemoTable830(Name
-
MySQLテーブルに重複しない値を挿入する方法(UNIQUE制約の使い方)
MySQLのテーブルに重複する値の挿入を防ぎたい場合、UNIQUE制約を使用します。UNIQUE制約を設定したカラムには、同じ値(または同じ組み合わせの値)を2回以上登録できず、重複データの混入を自動的に防止できます。 1. UNIQUE制約付きテーブルを作成する まず、FirstNameとLastNameの組み合わせが重複しないようにUNIQUE制約を設定したテーブルを作成します。 mysql> create table DemoTable832( FirstName varchar(100), LastName varchar(100), UNIQUE(Fir
-
MySQLで郵便番号の最初の部分を取得する方法
SUBSTRING()を使って郵便番号の最初の部分を抽出する郵便番号(PostCode)から最初の部分を取得するには、SUBSTRING()関数を使用します。まずは、サンプル用のテーブルを作成しましょう。mysql> create table DemoTable858(PostCode varchar(100)); Query OK, 0 rows affected (0.56 sec)レコードの挿入INSERTコマンドを使って、テーブルにいくつかのレコードを挿入します。mysql> insert into DemoTable858 values(US90 456); Query
-
MySQLで列のすべての日時レコードから秒を引く方法
はじめにMySQLでは、INTERVAL演算子を使うことで、DATETIME型の列に格納されたすべての日時レコードから簡単に秒を引くことができます。この記事では、実際の例を通じてその手順をわかりやすく解説します。サンプルテーブルの作成まず、テーブルを作成しましょう。mysql> create table DemoTable833(ArrivalTime datetime);Query OK, 0 rows affected (0.79 sec)レコードの挿入INSERTコマンドを使用して、テーブルにいくつかのレコードを挿入します。mysql> insert into DemoTab
-
MySQLで数値を人間が読みやすい形式(カンマ区切り)に変換する方法
MySQLで数値を読みやすい形式にするには?MySQLで大きな数値を「人間が読みやすい」形式、つまり3桁ごとのカンマ区切り付きで表示したい場合は、FORMAT()関数を使用します。FORMAT()関数は、第1引数に数値、第2引数に小数点以下の桁数を指定でき、戻り値は整形された文字列として返されます。まずは、動作を確認するためのサンプルテーブルを作成しましょう。mysql> create table DemoTable859(Number bigint);Query OK, 0 rows affected (1.54 sec)テストデータの挿入次に、INSERTコマンドを使ってテーブルにレ
-
MySQLで行をスキップする方法|LIMIT OFFSETの使い方を実例で解説
MySQLで特定の行をスキップしてデータを取得したい場合は、LIMIT OFFSET句を使用します。OFFSETに指定した数だけ先頭の行が読み飛ばされ、LIMITで指定した件数分の行が返されます。本記事では、テーブル作成から実際のクエリ実行まで、具体例とともに手順を解説します。 1. サンプルテーブルの作成 まず、動作確認用のテーブルを作成しましょう。 mysql> create table DemoTable860( Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, &nbs
-
MySQLで2つの列の最大値を基準にレコードを並べ替える方法
MySQLでは、GREATEST()関数をORDER BY句と組み合わせることで、2つの列のうち大きい方の値を基準にレコードを並べ替えることができます。この記事では、実際にテーブルを作成しながら、その手順をわかりやすく解説します。1. テーブルの作成まず、2つの整数型の列を持つテーブルを作成します。mysql> create table DemoTable834( Value1 int, Value2 int);Query OK, 0 rows affected (1.50 sec)2. レコードの挿入INSERT文を使
-
【MySQL】日付の月だけを更新するクエリの書き方
日付の月のみを更新するMySQLクエリ日付型カラムの中で「月」の部分だけを更新したい場合、MONTH()関数とDATE_ADD()関数を組み合わせることで実現できます。本記事では、実際にテーブルを作成し、具体的な手順とともに解説します。テーブルの作成まず、サンプル用のテーブルを作成しましょう。mysql> create table DemoTable861(AdmissionDate date);Query OK, 0 rows affected (1.22 sec)レコードの挿入INSERT文を使用して、いくつかのレコードを追加します。mysql> insert into Dem