MySQL関連関係の多対一関係の作成とクエリー

7060 ワード

MySQL関連関係の複数対1の作成
多対一関係は関連関係の中でよく見られる.例えば、1つのクラスは複数の学生に対応し、1つの学生は1つのクラスにしか対応していない.1枚の銀行カードは1人に対応し、1人は複数の銀行カードに対応する.1本の水は1人に対応し、1人は複数の水に対応できる……MySQL文で複数対1の関係を作成するには、外部キーがどちらに作られているかを明らかにしなければなりません.一般的には、データの冗長性を回避するために、外部キーを複数の側に作成します.
まずクラス・データベース・テーブルを作成します.
 create table class(
 cid int(10) not null primary key,
 cname varchar(20)
 );

次に、学生データベーステーブルを作成します.
 create table student(
 sid int(10) not null primary key,
 sname varchar(20),
 classid int(10) not null
 );

外部キーの作成
alter table student add constraint fk_student_classid foreign key(classid) references class(cid);

これでMySQLの多対一の関連関係の作成が完了しました.
データの追加
 insert into class value(1,'  '),(2,'  ');
 insert into student value(1,'  1',1),(2,'  2',1),(3,'  3',2),(4,'  4',2);

検索
mysql> select class.cname,student.sname from class inner join student on class.cid=student.classid;
+-------+-------+
| cname | sname |
+-------+-------+
|     |   1 |
|     |   2 |
|     |   3 |
|     |   4 |
+-------+-------+
4 rows in set (0.00 sec)