MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

MySQLでidとnameの条件を指定してテーブルからデータを選択する方法

MySQLでは、WHERE句を使うことで、idやnameなど複数の条件を組み合わせてテーブルから目的のデータを抽出できます。この記事では、実際にテーブルを作成し、データを挿入したうえで、idとnameの両方に条件を設定してSELECTクエリを実行する手順を解説します。

1. テーブルの作成

まず、CREATE TABLE文を使ってサンプルテーブルを作成します。ここでは、自動採番されるStudentIdを主キーとし、学生名を格納するStudentNameカラムを定義します。

mysql> create table DemoTable819(
    StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
    StudentName varchar(100)
);
Query OK, 0 rows affected (0.88 sec)

2. レコードの挿入

次に、INSERTコマンドを使用して、テーブルに複数のレコードを追加します。StudentIdは自動採番されるため、学生名だけを指定すれば問題ありません。

mysql> insert into DemoTable819(StudentName) values('Chris');
Query OK, 1 row affected (0.20 sec)
mysql> insert into DemoTable819(StudentName) values('Robert');
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable819(StudentName) values('Adam');
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable819(StudentName) values('Mike');
Query OK, 1 row affected (0.10 sec)
mysql> insert into DemoTable819(StudentName) values('Sam');
Query OK, 1 row affected (0.16 sec)

3. テーブルの全レコードを確認

SELECTステートメントを使って、テーブル内のすべてのレコードを表示してみましょう。

mysql> select *from DemoTable819;

実行すると、以下のような結果が出力されます。

+-----------+-------------+
| StudentId | StudentName |
+-----------+-------------+
|         1 | Chris       |
|         2 | Robert      |
|         3 | Adam        |
|         4 | Mike        |
|         5 | Sam         |
+-----------+-------------+
5 rows in set (0.00 sec)

4. idとnameの条件を指定してデータを選択

それが本題のクエリです。WHERE句にAND演算子を組み合わせることで、「学生名が'Robert'である」かつ「StudentIdが1より大きい」という複数条件を指定してデータを抽出できます。

mysql> select *from DemoTable819 where StudentName='Robert' and StudentId > 1;

実行結果は以下のとおりです。

+-----------+-------------+
| StudentId | StudentName |
+-----------+-------------+
|         2 | Robert      |
+-----------+-------------+
1 row in set (0.00 sec)

まとめ

このように、MySQLではWHERE句にANDなどの論理演算子を組み合わせることで、idやnameなど複数のカラムに対する条件を同時に指定できます。条件に合致するレコードだけが結果として返されるため、大量のデータから必要な情報を効率的に取得したい場合に非常に便利です。なお、OR演算子を使えば「いずれかの条件に合致する」データの抽出も可能です。

  1. MySQLでテーブルの列名とデータ型を抽出する方法

    MySQLでテーブルに含まれる列名(カラム名)とそのデータ型を一覧として取得したい場合は、INFORMATION_SCHEMA.COLUMNS テーブルを利用するのが便利です。この方法を使えば、SQLを1つ実行するだけで、指定したデータベース・テーブル内のすべての列の情報を簡単に抽出できます。INFORMATION_SCHEMA.COLUMNSとはINFORMATION_SCHEMA.COLUMNS は、MySQLサーバーが管理しているメタデータ(スキーマ情報)を格納するシステムビューの一つです。データベース名(table_schema)やテーブル名(table_name)、列名(column

  2. MySQLでSELECTフィールドごとに条件を適用する方法:WHERE句の代わりにCASE式を使う

    MySQLでSELECTフィールドごとに条件を適用するには MySQLでは、WHERE句を使わなくても、SELECT文の中でCASE式を利用することで、フィールドごとに個別の条件を設定できます。ここでは、具体的なサンプルコードとともにその方法を解説します。 1. テーブルを作成する まず、CREATE TABLE文でサンプル用のテーブルを作成します。 mysql> create table DemoTable1988     (     Value1 int,