一对多关系
例如:一个人可以拥有多辆汽车,要求查询某个人拥有的所有车辆。
//建立人员表 CREATE TABLE people( id VARCHAR(12) PRIMARY KEY, sname VARCHAR(12), age INT, sex CHAR(1) ); INSERT INTO people VALUES(\'H001\',\'小王\',27,\'1\'); INSERT INTO people VALUES(\'H002\',\'小明\',24,\'1\'); INSERT INTO people VALUES(\'H003\',\'张慧\',28,\'0\'); INSERT INTO people VALUES(\'H004\',\'李小燕\',35,\'0\'); INSERT INTO people VALUES(\'H005\',\'王大拿\',29,\'1\'); INSERT INTO people VALUES(\'H006\',\'周强\',36,\'1\'); //建立车辆信息表 CREATE TABLE car( id VARCHAR(12) PRIMARY KEY, mark VARCHAR(24), price NUMERIC(6,2), hid VARCHAR(12), CONSTRAINT fk_people FOREIGN KEY(hid) REFERENCES human(id) ); INSERT INTO car VALUES(\'C001\',\'BMW\',65.99,\'H001\'); INSERT INTO car VALUES(\'C002\',\'BenZ\',75.99,\'H002\'); INSERT INTO car VALUES(\'C003\',\'Skoda\',23.99,\'H001\'); INSERT INTO car VALUES(\'C004\',\'Peugeot\',20.99,\'H003\'); INSERT INTO car VALUES(\'C005\',\'Porsche\',295.99,\'H004\'); INSERT INTO car VALUES(\'C006\',\'Honda\',24.99,\'H005\'); INSERT INTO car VALUES(\'C007\',\'Toyota\',27.99,\'H006\'); INSERT INTO car VALUES(\'C008\',\'Kia\',18.99,\'H002\'); INSERT INTO car VALUES(\'C009\',\'Bentley\',309.99,\'H005\');
多对多关系
例如:学生选课,一个学生可以选修多门课程,每门课程可供多个学生选择
//建立学生表 CREATE TABLE student( id VARCHAR(10) PRIMARY KEY, sname VARCHAR(12), age INT, sex CHAR(1), class VARCHAR(6) ); INSERT INTO student VALUES(\'S0001\',\'王军\',20,1,\'c101\'); INSERT INTO student VALUES(\'S0002\',\'张宇\',21,1,\'c101\'); INSERT INTO student VALUES(\'S0003\',\'刘飞\',22,1,\'c102\'); INSERT INTO student VALUES(\'S0004\',\'赵燕\',18,0,\'c103\'); INSERT INTO student VALUES(\'S0005\',\'曾婷\',19,0,\'c103\'); INSERT INTO student VALUES(\'S0006\',\'周慧\',21,0,\'c104\'); INSERT INTO student VALUES(\'S0007\',\'小红\',23,0,\'c104\'); INSERT INTO student VALUES(\'S0008\',\'杨晓\',18,0,\'c104\'); INSERT INTO student VALUES(\'S0009\',\'李杰\',20,1,\'c105\'); INSERT INTO student VALUES(\'S0010\',\'张良\',22,1,\'c105\'); //建立课程表 CREATE TABLE course( id VARCHAR(10) PRIMARY KEY, sname VARCHAR(12), credit NUMERIC(2,1), teacher VARCHAR(12) ); INSERT INTO course VALUES(\'C001\',\'Java\',3.5,\'李老师\'); INSERT INTO course VALUES(\'C002\',\'高等数学\',5.0,\'赵老师\'); INSERT INTO course VALUES(\'C003\',\'JavaScript\',3.5,\'王老师\'); INSERT INTO course VALUES(\'C004\',\'离散数学\',3.5,\'卜老师\'); INSERT INTO course VALUES(\'C005\',\'数据库\',3.5,\'廖老师\'); INSERT INTO course VALUES(\'C006\',\'操作系统\',3.5,\'张老师\'); //建立选修表 CREATE TABLE sc( sid VARCHAR(10), cid VARCHAR(10) ); ALTER TABLE sc ADD CONSTRAINT pk_sc PRIMARY KEY(sid,cid); ALTER TABLE sc ADD CONSTRAINT fk_student FOREIGN KEY(sid) REFERENCES student(id); ALTER TABLE sc ADD CONSTRAINT fk_course FOREIGN KEY(cid) REFERENCES course(id); INSERT INTO sc VALUES(\'S0001\',\'C001\'); INSERT INTO sc VALUES(\'S0001\',\'C002\'); INSERT INTO sc VALUES(\'S0001\',\'C003\'); INSERT INTO sc VALUES(\'S0002\',\'C001\'); INSERT INTO sc VALUES(\'S0002\',\'C004\'); INSERT INTO sc VALUES(\'S0003\',\'C002\'); INSERT INTO sc VALUES(\'S0003\',\'C005\'); INSERT INTO sc VALUES(\'S0004\',\'C003\'); INSERT INTO sc VALUES(\'S0005\',\'C001\'); INSERT INTO sc VALUES(\'S0006\',\'C004\'); INSERT INTO sc VALUES(\'S0007\',\'C002\'); INSERT INTO sc VALUES(\'S0008\',\'C003\'); INSERT INTO sc VALUES(\'S0009\',\'C001\'); INSERT INTO sc VALUES(\'S0009\',\'C005\');