MySQL関連関係の多対一関係の作成とクエリー
MySQL関連関係の複数対1の作成
多対一関係は関連関係の中でよく見られる.例えば、1つのクラスは複数の学生に対応し、1つの学生は1つのクラスにしか対応していない.1枚の銀行カードは1人に対応し、1人は複数の銀行カードに対応する.1本の水は1人に対応し、1人は複数の水に対応できる……MySQL文で複数対1の関係を作成するには、外部キーがどちらに作られているかを明らかにしなければなりません.一般的には、データの冗長性を回避するために、外部キーを複数の側に作成します.
まずクラス・データベース・テーブルを作成します.
次に、学生データベーステーブルを作成します.
外部キーの作成
これでMySQLの多対一の関連関係の作成が完了しました.
データの追加
検索
多対一関係は関連関係の中でよく見られる.例えば、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)