*ブログに戻る →ここ です。
サブクエリ
条件に一致する値を他のテーブルのカラムから探し出す。 free90
Thursday,August,1,2013
今回2つのデータベースdbを使う
sadachika_shop
kittaka_shop
○特定のデータベース内のテーブル
SHOW TABLES FROM sadachika_shop;
SHOW TABLES FROM Kittaka_shop;
○テーブル設定メモ
VARCHAR型なら、unique その他のオプション default 'データなし', default 0, not null(データなし を許さない)
INT型なら、primary key
○テーブルを作る ↓データベース名 ↓テーブル名 ↓カラム名 ↓VARCHAR型(文字を格納する型)
mysql> create table sadachika_shop.sadachi_students (sada_id int not null primary key, sada_name varchar(10) default '氏名データなし');
Query OK, 0 rows affected (0.92 sec) ↑INT型 ↑プライマリー(重複を許さない) ↑デフォルト(データが格納されなければ表示されるメッセージ)
mysql> create table Kittaka_shop.kitta_result (kit_id int not null primary key, kit_score int default 0, kit_d date default '日時データなし');
ERROR デフォルト設定に問題があったみたい。取り除くと作成できた。
mysql> create table Kittaka_shop.kitta_result (kit_id int not null primary key, kit_score int default 0, kit_d date);
Query OK, 0 rows affected (0.25 sec)
○カラムの構造を見る
mysql> show columns from sadachika_shop.sadachi_students;
Field Type Null Key Default Extra
sada_id int(11) NO PRI NULL
sada_name varchar(10) YES 氏名データなし
2 rows in set (0.02 sec)
mysql> show columns from Kittaka_shop.kitta_result;
Field Type Null Key Default Extra
kit_id int(11) NO PRI NULL
kit_score int(11) YES 0
kit_d date YES NULL
3 rows in set (0.06 sec)
○値を入力する
mysql> insert into sadachika_shop.sadachi_students values(1, '長谷川'),(2, '稲垣'),(3, '定近'),
->(4, '橘高'),(5, '平山'),(6, '藤原'), (7, '松本'),(8, '小林'),
->(9, '三谷'),(10, '坂本'),(11, '楠'),(12, '中島');
Query OK, 12 rows affected (0.03 sec)
Records: 12 Duplicates: 0 Warnings: 0
mysql> insert into Kittaka_shop.kitta_result values(1, 580,20130801),(2, 604,20130801),(3, 320,20130801),
->(4, 480,20130801),(5, 665,20130801),(6, 550,20130801), (7, 420,20130801),(8, 230,20130801),
->(9, 140,20130801),(10, 89,20130801),(11, 365,20130801),(12, 136,20130801);
Query OK, 12 rows affected (0.01 sec)
Records: 12 Duplicates: 0 Warnings: 0
○テーブルの中身の表示
mysql> select * from sadachika_shop.sadachi_students;
sada_id sada_name
1 長谷川
2 稲垣
3 定近
4 橘高
5 平山
6 藤原
7 松本
8 小林
9 三谷
10 坂本
11 楠
12 中島
12 rows in set (0.05 sec)
mysql> select * from Kittaka_shop.kitta_result;
kit_id kit_score kit_d
1 580 2013-08-01
2 604 2013-08-01
3 320 2013-08-01
4 480 2013-08-01
5 665 2013-08-01
6 550 2013-08-01
7 420 2013-08-01
8 230 2013-08-01
9 140 2013-08-01
10 89 2013-08-01
11 365 2013-08-01
12 136 2013-08-01
○○○条件に一致する値を他のテーブルのカラムから探し出す。
「kitta_result」テーブルの「kit_score」カラムの値が一番大きいデータを取得
↓データベース名 ↓テーブル名 ↓カラム名
mysql> select * FROM Kittaka_shop.kitta_result ORDER BY kit_score DESC LIMIT 3;
kit_id kit_score kit_d ↑大きい方から下り、3つ選ぶ
5 665 2013-08-01 *ここが1番数が大きい 次はこの条件で他のテーブル値を探し出す
2 604 2013-08-01
1 580 2013-08-01
3 rows in set (0.00 set)
○○○条件に一致する値を他のテーブルのカラムから探し出す。
mysql> select * FROM sadachika_shop.sadachi_students
-> WHERE sada_id = (select kit_id FROM Kittaka_shop.kitta_result ORDER BY kit_score DESC LIMIT 1);
kit_id kit_score ↑大きい方から下り、1つ選ぶ
5 平山
1 rows in set (0.00 set)
メモ○カラム名を変更する
kiku_name→sada_name
mysql> alter table sadachika_shop.sadachi_students change kiku_name sada_name varchar(10) default '氏名データなし'; *名前だけ変更するのであってもあわせて型を入力する。
旧カラム名↑ ↑新しく変更するカラム名(kiku_name→sada_name)
* 参考にしたサイトは→ こちら です。
これは赤色の文字例です。
これは青色の文字例です。