*ブログに戻る →ここ です。
サブクエリ
条件に一致する値を他のテーブルのカラムから探し出す。 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)
* 参考にしたサイトは→ こちら です。
これは赤色の文字例です。
これは青色の文字例です。