-
同じIDが繰り返される行の値を合計するMySQLクエリの書き方
MySQLで同じIDが複数回出現する行の値を合計したい場合は、集計関数 SUM() を使用します。この記事では、実際にテーブルを作成し、IDごとにPrice(価格)を合計する方法を手順を追って解説します。 1. サンプルテーブルの作成 まず、以下のようにテーブルを作成します。 mysql> create table DemoTable850( Id int, Price int ); Query OK, 0 rows affected (0.54 sec) 2. テストデータの挿入 次に、INSERTコマンドを使ってレコードを挿入します。ここでは、同じIDを持つ行を意
-
MySQLでテーブルをTRUNCATEした後にAUTO_INCREMENTの開始値を任意の値に設定する方法
概要MySQLでは、テーブルをTRUNCATE(切り捨て)した後、ALTER TABLE文を使うことでAUTO_INCREMENTの開始値を任意の数値に設定できます。本記事では、実際のサンプルコードと実行結果をもとに、その手順をわかりやすく解説します。1. サンプルテーブルの作成まず、AUTO_INCREMENT属性を持つカラムを含むテーブルを作成します。mysql> create table DemoTable825(Value int NOT NULL AUTO_INCREMENT PRIMARY KEY);Query OK, 0 rows affected (0.63 sec)2.
-
MySQLでBOOLEAN型として保存された性別の値を文字列(MALE/FEMALE)として抽出する方法
はじめにMySQLでは、BOOLEAN型のカラムは内部的にTINYINT(1)として扱われ、trueは「1」、falseは「0」として保存されます。そのため、表示の際には数値ではなく「MALE」や「FEMALE」のような文字列に変換して取得したいケースがよくあります。本記事では、IF関数を使ってブール値を文字列として抽出する方法を解説します。サンプルテーブルの作成まず、以下のコマンドでテーブルを作成します。mysql> create table DemoTable815(Gender BOOLEAN);Query OK, 0 rows affected (0.84 sec)レコードの挿入
-
UPDATE文を使わずにMySQLのINSERT時に列の値を加算して設定する方法
MySQLでは、INSERTクエリを実行する際にDATE_ADD()関数を組み合わせることで、UPDATE文を使わずとも日付や時刻に対して分・時間・日・月・年を加算した値を直接挿入できます。本記事では、その具体的な手順をサンプルコードとともに解説します。1. サンプルテーブルを作成するまず、DATETIME型のカラムを持つテーブルを作成します。mysql> create table DemoTable816(DueDate datetime); Query OK, 0 rows affected (0.45 sec)2. INSERT時にDATE_ADD()で日付を加算して挿入する次に、
-
MySQLでユーザーのすべての権限(GRANT)を表示・確認する方法
MySQLでユーザーのすべての権限(GRANT)を表示する方法 MySQLでは、どのユーザーにどんな権限が付与されているのかを確認したい場面がよくあります。そんなときに便利なのが、INFORMATION_SCHEMA.SCHEMA_PRIVILEGES テーブルです。このテーブルを参照すれば、スキーマ(データベース)単位で付与されたすべての権限を一覧表示できます。 INFORMATION_SCHEMA.SCHEMA_PRIVILEGES の主なカラム GRANTEE: 権限が付与されているユーザー(ユーザー名@ホスト名 の形式) TABLE_CATALOG: カタログ名(通常は「def」固
-
MySQLでテーブルのNULL値にのみ値を設定する方法(IFNULL活用)
MySQLでNULL値だけに値を設定するにはMySQLのテーブルに含まれるNULL値だけを検出して、別の値に置き換えたいケースはよくあります。そんなときに便利なのがIFNULL関数です。IFNULLはNULL値をチェックし、NULLであれば指定した値を返します。これをUPDATE文のSET句と組み合わせることで、NULL値のみを効率的に更新できます。以下、具体的な手順をサンプルとともに解説します。1. テーブルを作成するまず、CREATE TABLE文でサンプル用のテーブルを作成します。mysql> create table DemoTable817(Value int);Query O
-
MySQLで合計が150未満の列値のみを表示する方法|結果を降順に並べる
MySQLで合計が150未満の列値だけを表示するには? 条件に一致する行を抽出するには、サブクエリ(副問い合わせ)を利用するのが便利です。この記事では、Amount列の累積合計が150未満になる行のみを取り出し、結果を降順で表示する手順を、テーブル作成から順番に解説します。 1. サンプルテーブルを作成する まず、次のようなテーブルを作成しましょう。 mysql> create table DemoTable844( Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, Amount int ); Query OK, 0 rows aff
-
MySQLテーブルのユーザーパスワード列をMD5からSHA256へ変換する方法
MySQLでMD5パスワードをSHA256に変換するには?MD5形式で保存されたパスワードをSHA256に変換するには、SHA2()関数を使用します。この関数はSHA-2ファミリーのハッシュ関数(SHA-224、SHA-256、SHA-384、SHA-512)を計算でき、第2引数でビット長を指定します。以下、実際の手順をサンプルコードとともに解説します。1. テーブルを作成するまず、パスワードを格納するためのテーブルを作成します。mysql> create table DemoTable818(UserPassword text);Query OK, 0 rows affected (0
-
MySQLでYYYY-MM-DDを「日 月名, 年」形式に変換するクエリの書き方
MySQLでは、DATE_FORMAT()関数を使うことで、保存されている日付データを任意の表示形式に変換できます。この記事では、「YYYY-MM-DD」形式(例:2018-01-21)の日付を「DD Month, YYYY」形式(例:21 January, 2018)に変換する方法を、実際のサンプルコードと実行結果をもとにわかりやすく解説します。1. サンプルテーブルの作成まず、日付型(DATE型)のカラムを持つテーブルを作成します。mysql> create table DemoTable845(AdmissionDate date);Query OK, 0 rows affecte
-
MySQLでidとnameの条件を指定してテーブルからデータを選択する方法
MySQLでは、WHERE句を使うことで、idやnameなど複数の条件を組み合わせてテーブルから目的のデータを抽出できます。この記事では、実際にテーブルを作成し、データを挿入したうえで、idとnameの両方に条件を設定してSELECTクエリを実行する手順を解説します。 1. テーブルの作成 まず、CREATE TABLE文を使ってサンプルテーブルを作成します。ここでは、自動採番されるStudentIdを主キーとし、学生名を格納するStudentNameカラムを定義します。 mysql> create table DemoTable819( StudentId int NOT NU
-
MySQLでデータベースを作成する前にユーザー権限を確認する方法
MySQLでは、データベースを作成する前に、そのユーザーに十分な権限(CREATE権限など)が付与されているかどうかを事前に確認しておくことが重要です。権限を確認するには SHOW GRANTS ステートメントを使用します。ユーザー権限を表示する基本構文特定のユーザーに付与されている権限を表示するには、以下の構文を使用します。SHOW GRANTS FOR ユーザー名;この構文を使って、データベースを作成する前にユーザーの権限を確認する手順を、ケース別に見ていきましょう。ケース1:現在のユーザー(root)の権限を確認する場合現在ログインしているユーザー自身の権限を確認するには、current
-
MySQLでレコードを最新の5件のみに絞り込んで取得する方法
MySQLでテーブルから最新(末尾)の5件のレコードだけを取得したい場合、ORDER BY句とLIMIT句を組み合わせるのが基本の方法です。降順に並べ替えてから5件に制限することで、簡単に目的の結果が得られます。基本構文SELECT * FROM テーブル名 ORDER BY カラム名 DESC LIMIT 5;ポイントは DESC(降順)で並べ替えることです。これにより、新しいレコード(IDの大きいもの)が先頭に来るため、LIMIT 5 を付けるだけで「最後の5件」を取得できます。実際に試してみよう1. サンプルテーブルを作成するまず、以下のようにテーブルを作成します。mysql> c
-
MySQLで特定のレコード順序を実装する方法(ORDER BYとCASE式の活用)
MySQLでレコードを特定の順序で並べ替えたい場合、ORDER BY句にCASE式とLIKE演算子を組み合わせることで実現できます。この記事では、テーブルの作成からカスタム並べ替えクエリの実行まで、手順を追ってわかりやすく解説します。 1. テーブルの作成 まず、サンプル用のテーブルを作成しましょう。 mysql> create table DemoTable808(Value varchar(100)); Query OK, 0 rows affected (0.61 sec) 2. レコードの挿入 INSERTコマンドを使って、いくつかのレコードをテーブルに追加します。 mysql&
-
MySQLで現在の日付より古い行を選択する方法
MySQLでは、NOW()関数を使うことで、現在の日時より古い(過去の日付の)行を簡単に抽出できます。この記事では、具体的なサンプルを通じてその方法を解説します。前提となる例現在の日付が「2019-08-03」であると仮定します。まずは、締め切り日を管理するテーブルを作成してみましょう。mysql> create table DemoTable840(DueDate datetime); Query OK, 0 rows affected (0.66 sec)テストデータの挿入INSERTコマンドを使って、いくつかのレコードをテーブルに追加します。mysql> insert int
-
MySQLのSELECTで列の値に前の値を加算して累積合計を求める方法
列の値に対して、それまでの行の合計(前の値)を加算した累積合計(ランニングトータル)を求めたい場合、セッション変数を利用すると簡単に実現できます。この記事では、テーブルの作成からデータの挿入、そして累積合計を取得するクエリの実行まで、具体的な手順を解説します。 1. サンプルテーブルの作成 まず、動作確認用のテーブルを作成しましょう。 mysql> create table DemoTable809(Price int); Query OK, 0 rows affected (0.53 sec) 2. レコードの挿入 INSERT文を使って、テーブルにいくつかのレコードを追加します。
-
MySQLで2カラムにIN句を実装して選択したレコードのみを表示する方法
はじめにMySQLでは通常、IN句は1つのカラムに対して使用されますが、実は複数のカラムを組み合わせた条件でもIN句を利用できます。本記事では、2つのカラム(First、Second)の値のペアを条件として、該当するレコードのみを抽出する方法を具体的な例とともに解説します。サンプルテーブルの作成まず、2つのINT型カラムを持つテーブルを作成します。mysql> create table DemoTable810( First int, Second int);Query OK, 0 rows affected (0.73
-
MySQLで特定の列の値ごとに行数をカウントするクエリの書き方
MySQLでは、GROUP BY句とCOUNT関数を組み合わせることで、特定の列の値ごとに行数を簡単にカウントできます。この記事では、実際にテーブルを作成し、データを挿入したうえで、各値の出現回数を集計する手順をわかりやすく解説します。 1. サンプルテーブルを作成する まず、以下のようにテーブルを作成します。 mysql> create table DemoTable841( Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, Value varchar(100) ); Query OK, 0 rows affected (0.67
-
MySQLのテーブルに一度に複数の行を挿入することはできる?
はい、MySQLではINSERT文を1回実行するだけで、2つ以上の行(レコード)を同時にテーブルへ挿入することができます。VALUES句の後ろにカンマ区切りで値のセットを並べるだけで、まとめて登録が可能です。複数行挿入の基本構文複数の行を一括挿入する際の基本的な書式は以下のとおりです。insert into yourTableName(yourColumnName1,yourColumnName2) values(yourValue1,yourValue2),(yourValue1,yourValue2),.........N;このように、values(...) をカンマで区切って必要な数だけ
-
MySQLではInnoDBはデフォルトで有効になっている?ストレージエンジンの確認方法を解説
MySQLにおけるInnoDBのデフォルト設定 はい、MySQLではInnoDBはデフォルトで有効になっています。特にMySQL 5.5以降ではInnoDBが標準のストレージエンジンとして採用されているため、CREATE文で明示的に指定しなくても自動的にInnoDBが使用されます。 ここでは、MySQL 8.0の環境を使って実際に確認していきましょう。まずは現在使用中のバージョンをチェックします。 mysql> select version(); +-----------+ | version() | +-----------+ | 8.0.12 | +-----------+ 1
-
MySQLのLIKE演算子を使ったキーワード検索システムの作成方法
MySQLでキーワードに基づいて検索結果を表示したい場合、LIKE演算子を使用します。LIKE演算子は、部分一致による文字列検索を実現するための基本的な仕組みであり、簡易的な検索システムを構築する際に非常に役立ちます。LIKE演算子の基本構文SELECT * FROM テーブル名 WHERE カラム名 LIKE %検索値%;「%」はワイルドカードと呼ばれ、任意の文字列を表します。前後に「%」を付けることで、指定したキーワードが文字列のどこに含まれていても該当レコードとして抽出されます。サンプルテーブルの作成まず、検索対象となるテーブルを作成しましょう。mysql> create tabl