-
MySQLでテーブルの行数を取得する最も簡単な方法|COUNT(*)の使い方を解説
MySQLでテーブルの行数(レコード数)を取得する最も簡単な方法は、集計関数 COUNT(*) を使うことです。この記事では、実際にテーブルを作成し、データを挿入して、COUNT(*) で行数を取得するまでの一連の手順を、サンプルコードとともにわかりやすく解説します。 1. テーブルの作成 まず、CREATE TABLE文を使ってサンプル用のテーブルを作成します。ここでは「FirstName」という1つのカラムを持つシンプルなテーブルを定義します。 mysql> create table DemoTable1575 -> ( &nb
-
MySQLで1つのクエリを使ってSELECTとINSERTを同時に実行する方法
MySQLでは、INSERT INTO ... SELECT構文とUNION ALLを組み合わせることで、1つのクエリだけで別テーブルからデータを選択(SELECT)し、挿入(INSERT)することができます。本記事では、実際のサンプルコードを使ってその手順をわかりやすく解説します。1. 最初のテーブルを作成するまず、データの挿入先となる最初のテーブルを作成します。以下のクエリを実行してください。mysql> create table DemoTable1 -> ( -> StudentName varchar(20), -> StudentMarks
-
MySQLでテーブルの最後の3行を昇順に取得する方法
MySQLでテーブルの最後の数行を昇順(ASC)で取得したい場合、単純に ORDER BY 昇順+LIMIT を使うと「先頭」の行が取れてしまいます。そこで、サブクエリを使って一度降順(DESC)で末尾の行を取得し、その結果を外側で昇順に並べ替えるのが定番のテクニックです。基本構文select * from (select * from yourTableName order by yourColumnName desc limit 3) anyAliasName order by yourColumnName;この構文では、内側のサブクエリで DESC と LIMIT 3 を組み合わせて最後
-
MySQLで行の一意性を保証する方法|UNIQUE制約の使い方を解説
MySQLでテーブル内の行が重複しないようにするには、UNIQUE制約(一意制約)を使用します。UNIQUEインデックスを設定すると、指定したカラムの組み合わせが完全に一致する行の挿入が拒否され、データの整合性を保つことができます。サンプルテーブルの作成まず、動作確認用のテーブルを作成しましょう。mysql> create table DemoTable1580 -> ( -> id int, -> Name varchar(20), -> Age int -> );Query OK, 0 rows affected (0.73
-
MySQLでTINYINT型カラムが「1以外」または「NULL」のレコードを取得する方法
MySQLでは、TINYINT型のカラムに対して「1以外の値」または「NULL」を含むレコードを抽出したいケースはよくあります。しかし、<> 1 の比較条件だけではNULLのレコードは取得できないため、IS NULL を組み合わせる必要があります。この記事では、具体的な手順をサンプルコードとともに解説します。 1. サンプルテーブルの作成 まず、TINYINT型のカラムを含むテーブルを作成します。 mysql> create table DemoTable -> ( -> EmployeeId int NOT NULL AUTO_INCREMEN
-
MySQLクエリでテーブル内の2番目に大きい値を取得する方法
MySQLでテーブル内の2番目に大きい(最大から2番目の)値を取得したい場合は、LIMIT 1 OFFSET 1 を使用すると簡単に実現できます。この記事では、実際のテーブル作成からデータ挿入、そして2番目に大きい値を取得するクエリまで、手順を追って解説します。1. テーブルを作成するまず、サンプル用のテーブルを作成します。mysql> create table DemoTable -> ( -> Value int -> ); Query OK, 0 rows affected (0.92 sec)2. レコードを挿入する次に、INSERT文を
-
MySQLでORDER BY ASCとDESCを1つのクエリで実現し、指定した値からラップアラウンドする方法
MySQLでは、ORDER BY句に条件式を組み合わせることで、昇順(ASC)と降順(DESC)の並び替えを1つのクエリで実現できます。このテクニックを使うと、特定の値を起点として「ラップアラウンド(折り返し)」したような並び順を作成できます。この記事では、実際のサンプルを使ってその方法を解説します。1. サンプルテーブルの作成まず、テーブルを作成します。mysql> create table DemoTable -> ( -> Value int &
-
MySQLで空のカラムにカスタムテキストを表示する方法
MySQLでは、IF()関数を使うことで、空(NULLや空文字列)のカラムに対して任意のカスタムテキストを表示できます。ここでは、実際の手順を例とともに解説します。1. テーブルを作成するまず、サンプル用のテーブルを作成します。mysql> create table DemoTable-> (-> FirstName varchar(20)-> );Query OK, 0 rows affected (0.77 sec)2. レコードを挿入する次に、INSERTコマンドを使ってテーブルにデータを追加します。このとき、意図的に空文字列のレコードも挿入しておきます。mysq
-
MySQLのINET_ATON()関数とORDER BYでIPアドレスを正しく並べ替える方法
MySQLでIPアドレス形式のレコードを正しい順序で並べ替えたい場合は、INET_ATON() 関数を使用します。この関数を使うと、文字列として保存されたIPアドレスを数値に変換できるため、その結果に対して ORDER BY を適用することで、人間が直感的に理解できる自然な順序(昇順・降順)でレコードをソートできます。1. テーブルの作成まず、サンプル用のテーブルを作成します。mysql> create table DemoTable -> ( -> IpAddress varchar(50) -> );Query OK, 0 rows affecte
-
MySQLのCASEステートメントで空の値にカスタム名を表示する方法
MySQLで空の値(空文字列)を含むカラムを取得する際、そのまま表示すると見栄えが悪くなることがあります。そんなときに便利なのが CASE WHEN ステートメントです。この記事では、空の値に対して任意のカスタム名を表示する方法を、実際のSQL例とともにわかりやすく解説します。サンプルテーブルの作成まず、デモ用のテーブルを作成します。mysql> create table DemoTable -> ( -> Name varchar(20) -> ); Query OK, 0 rows affected (0.62 sec)テストデータの挿入次に
-
MySQLで最後の30行を取得する方法(ORDER BY DESCとLIMITの使い方)
MySQLでテーブルの最後の30行を取得したい場合は、ORDER BY DESC(降順ソート)とLIMIT 30を組み合わせるのが基本です。降順に並べ替えることで、最新(またはIDが大きい)レコードが先頭に来るため、先頭から30件を取り出すことで実質的に「最後の30行」が取得できます。基本構文SELECT * FROM テーブル名 ORDER BY カラム名 DESC LIMIT 30;それでは、実際にサンプルテーブルを作成して動作を確認していきましょう。1. テーブルの作成まず、以下のようにテーブルを作成します。mysql> create table DemoTable1567
-
MySQLで複数のデータベースにまたがるテーブルの総行数を取得する方法
複数のデータベースに存在する同名テーブルの総行数を取得したい場合は、集計関数 SUM() と INFORMATION_SCHEMA を組み合わせることで実現できます。ここでは、実際にサンプルを作成しながら手順を解説します。 1. 「web」データベースにテーブルを作成する まずは「web」データベース内にテーブルを作成します。以下のコマンドを実行してください。 mysql> create table DemoTable1568 -> ( -> Name varchar(20) -> ); Query OK, 0 rows affected (0.
-
MySQLで特定の行と列に値を挿入(更新)する方法
MySQLで特定の行と列に値を挿入する方法 MySQLでは、すでに存在するレコードの特定の行と列に値を設定(挿入)する場合、UPDATE文を使用します。ここでは、テーブルの作成からデータの挿入、特定のセルの値の更新、結果の確認までの手順を順番に解説します。 1. テーブルを作成する まず、サンプル用のテーブルを作成しましょう。 mysql> create table DemoTable1569 -> ( -> StudentId varchar(10), -> StudentName varchar(20) -> ); Query
-
MySQLで時間差を取得するクエリの書き方を解説
MySQLで現在時刻との時間差を取得する方法MySQLでは、NOW() 関数と INTERVAL を組み合わせることで、「現在時刻から一定時間以内」のレコードを簡単に抽出できます。ここでは、現在時刻から5時間以内に到着したデータを取得するクエリを例に、その手順を解説します。1. サンプルテーブルの作成まず、日時を格納するカラムを持つテーブルを作成します。mysql> create table DemoTable1570 -> ( -> ArrivalTime datetime 
-
「order」というテーブル名でMySQLクエリエラーが発生する原因と解決方法
「order」は予約語であることに注意MySQLでは「order」は予約語(ORDER BY句などで使用されるキーワード)として登録されています。そのため、予約語をそのままテーブル名として使用しようとすると、構文エラーが発生します。予約語をテーブル名やカラム名として使いたい場合は、バッククォート(`)で囲む必要があります。テーブルの作成まず、バッククォートで「order」というテーブルを作成してみましょう。mysql> create table `order` -> ( -> StudentId int -> ); Query OK, 0 row
-
MySQLで重複レコードを含むテーブルから特定の値を1件だけ削除する方法
MySQLでテーブル内のレコードを削除するにはDELETE文を使用します。しかし、同じ値の重複レコードが複数存在する場合に、そのうち1件だけを削除したいケースがあります。そんなときは、LIMIT句を組み合わせることで、削除対象の件数を制限できます。基本構文delete from yourTableName where yourColumnName=yourValue limit 1;この構文では、WHERE句で削除対象の条件を指定し、LIMIT 1によって該当するレコードのうち最初の1件のみを削除します。実際にテーブルを作成して確認してみようまず、サンプル用のテーブルを作成します。mysql&
-
MySQLで特定の重複レコードのみを抽出して表示する方法
MySQLのテーブルに同じ値が重複して登録されている場合、その中から特定の値を持つ重複レコードだけを取り出したいことがあります。そんなときに便利なのが LIKE 演算子です。基本構文特定の重複レコードのみを表示するには、以下のように LIKE 演算子を使います。SELECT * FROM テーブル名 WHERE カラム名 LIKE 検索したい値;サンプルテーブルの作成まず、動作確認用のテーブルを作成しましょう。mysql> create table DemoTable -> ( -> Name varchar(20) -> ); Query OK
-
MySQLで開始値を指定してAUTO_INCREMENTカラムを追加する方法
すでに作成済みのテーブルに新しいカラムを追加するには、ALTER TABLE 文と ADD COLUMN 句を使用します。さらに AUTO_INCREMENT 属性を組み合わせることで、連番が自動的に採番されるカラムに対して、任意の開始値(初期値)を設定することも可能です。本記事では、既存のテーブルへ「1000」から始まる自動増加カラムを追加する手順を、実際のSQL実行例とあわせて解説します。 ステップ1:テーブルを作成する まずはサンプル用のテーブルを作成しましょう。ここでは学生名だけを持つシンプルなテーブルを定義します。 mysql> create table DemoTable
-
MySQLでMAX()関数の値に対応するレコードを取得する方法【サブクエリ活用】
SQLで最大値(MAX)が含まれる行の、他のカラムの値も一緒に取得したい場面はよくあります。例えば「最も金額が高い商品のIDを知りたい」といったケースです。このような場合には、サブクエリ(副問い合わせ)と集計関数MAX()を組み合わせることで実現できます。この記事では、実際にテーブルを作成しながら、その手順をわかりやすく解説します。1. サンプルテーブルの作成まず、商品IDと商品金額を格納するテーブルを作成します。mysql> create table DemoTable -> ( -> ProductId int, -> ProductAmount
-
MySQLで異なるテーブルの列を連結する方法|CONCAT関数の使い方を解説
MySQLでは、CONCAT()関数を使うことで、異なるテーブルに存在する列の値を簡単に連結できます。この記事では、2つのテーブルを作成し、それぞれの列を組み合わせて氏名のような文字列を生成する具体的な手順を解説します。 1. 最初のテーブルを作成する まず、名前(FirstName)を格納するテーブルを作成しましょう。 mysql> create table DemoTable1 -> ( -> FirstName varchar(20) &nb