データ操作(SQL文)データ検索(SELECT文)
全データを選択
unknown
SELECT * FROM テーブル名 WHERE 条件;
USE文などでデータベースを選択している場合はテーブル名だけでかまいませんが、
データベース未選択の場合は、データベース名.テーブル名
のようにデータベースを指定する必要があります。
# MySQLログイン、データベース選択 C:\mysql\bin> mysql -u root -p db_User Enter Enter password: ***** Enter Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 6599 to server version: 4.0.26-nt Type 'help;' or '\h' for help. Type '\c' to clear the buffer. ### テーブルtbl_CustomerAの全レコードを表示 mysql> SELECT * FROM tbl_CustomerA; Enter +--------+-----------+----------+------+------+ | UserID | FirstName | LastName | Sex | Age | +--------+-----------+----------+------+------+ | U001 | 花子 | 鈴木 | f | 21 | | U002 | 太郎 | 田中 | m | 30 | | U003 | 一郎 | 鈴木 | m | 45 | | U004 | 萌子 | 山口 | f | 18 | +--------+-----------+----------+------+------+ 4 rows in set (0.00 sec) ### WHERE句で条件指定 # 年齢が30以上(Age >= 30)のレコードのみ表示 mysql> SELECT * FROM tbl_CustomerA Enter -> WHERE Age >= 30; Enter +--------+-----------+----------+------+------+ | UserID | FirstName | LastName | Sex | Age | +--------+-----------+----------+------+------+ | U002 | 太郎 | 田中 | m | 30 | | U003 | 一郎 | 鈴木 | m | 45 | +--------+-----------+----------+------+------+ 2 rows in set (0.41 sec) mysql>
特定のカラムを選択
unknown
SELECT カラム名[, カラム名] FROM テーブル名;
指定したカラムのデータを表示します。
USE文などでデータベースを選択している場合はテーブル名だけでかまいませんが、
データベース未選択の場合は、データベース名.テーブル名
のようにデータベースを指定する必要があります。
# テーブルtbl_CustomerAの内容 mysql> SELECT * FROM db_User.tbl_CustomerA; Enter +--------+-----------+----------+------+------+ | UserID | FirstName | LastName | Sex | Age | +--------+-----------+----------+------+------+ | U001 | 花子 | 鈴木 | f | 21 | | U002 | 太郎 | 田中 | m | 30 | | U003 | 一郎 | 鈴木 | m | 45 | | U004 | 萌子 | 山口 | f | 18 | +--------+-----------+----------+------+------+ 4 rows in set (0.01 sec) # LastNameフィールドとFirstNameフィールドのみ表示 mysql> SELECT LastName, FirstName FROM db_User.tbl_CustomerA; Enter +----------+-----------+ | LastName | FirstName | +----------+-----------+ | 鈴木 | 花子 | | 田中 | 太郎 | | 鈴木 | 一郎 | | 山口 | 萌子 | +----------+-----------+ 4 rows in set (0.01 sec) mysql>
値が重複している場合は一意のコードを1つだけ取得
unknown
SELECT DISTINCT カラム名 FROM テーブル名;
指定したカラムに、重複するレコードがある場合、最初のレコードのみを使用し、他の重複するレコードを削除します。
# わざと重複データを挿入 mysql> INSERT INTO tbl_CustomerA VALUES('U005','花子','鈴木','f',21); Query OK, 1 row affected (0.00 sec) # テーブルtbl_CustomerAの中身を確認 mysql> SELECT * FROM db_User.tbl_CustomerA; +--------+-----------+----------+------+------+ | UserID | FirstName | LastName | Sex | Age | +--------+-----------+----------+------+------+ | U001 | 花子 | 鈴木 | f | 21 | | U002 | 太郎 | 田中 | m | 30 | | U003 | 一郎 | 鈴木 | m | 45 | | U004 | 萌子 | 山口 | f | 18 | | U005 | 花子 | 鈴木 | f | 21 | +--------+-----------+----------+------+------+ 5 rows in set (0.00 sec) # データの重複なしに、LasNameフィールド、FirstNameフィールドを抽出 mysql> SELECT DISTINCT LastName, FirstName FROM tbl_CustomerA; Enter +----------+-----------+ | LastName | FirstName | +----------+-----------+ | 鈴木 | 花子 | ←重複なし | 田中 | 太郎 | | 鈴木 | 一郎 | | 山口 | 萌子 | +----------+-----------+ 4 rows in set (0.40 sec) mysql>
このページで使用しているサンプルデータ
unknown
サンプルデータ
### データベース(db_User)作成 CREATE DATABASE IF NOT EXISTS db_User; ###データベース選択 USE db_User; ### テーブル(tbl_CustomerA)作成 CREATE TABLE tbl_CustomerA( UserID VARCHAR(4) NOT NULL PRIMARY KEY, FirstName VARCHAR(32) NOT NULL, LastName VARCHAR(32) NOT NULL, Sex CHAR(2) DEFAULT NULL, Age INTEGER DEFAULT NULL ); # データ挿入 INSERT INTO tbl_CustomerA (UserID,FirstName,LastName,Sex,Age) VALUES ('U001','花子','鈴木','f',21), ('U002','太郎','田中','m',30), ('U003','一郎','鈴木','m',45), ('U004','萌子','山口','f',18);