mysql中的表与表之间的关系(一对一、一对多、多对多)

-- 验证数据表的一对一关系 建立新表-丈夫
CREATE TABLE huansband( 	-- 创建表
	hid INT PRIMARY KEY AUTO_INCREMENT, -- 设置主键以及主键值增长
	ename VARCHAR(10)
);
INSERT INTO huansband(hid,ename) VALUES(NULL,'张三');
INSERT INTO huansband(hid,ename) VALUES(NULL,'李四');
SELECT * FROM huansband;


CREATE TABLE wife( 	-- 创建表
	wid INT PRIMARY KEY AUTO_INCREMENT, -- 设置主键以及主键值增长  
	wname VARCHAR(10),
	CONSTRAINT fk_wife_huansband FOREIGN KEY(wid) REFERENCES huansband(hid) -- 此时wid既是主键又是外键
);
INSERT INTO wife(wid,wname) VALUES(1,'杨贵妃');
INSERT INTO wife(wid,wname) VALUES(2,'盼盼');
-- INSERT INTO wife(wid,wname) VALUES(1,'盼盼'); 错误,此时wid不能重复
SELECT * FROM wife;
-- 从表的主键即为外键

-- 验证数据表的一对多关系 建立新表-丈夫
DROP TABLE huansband;
DROP TABLE wife;
CREATE TABLE huansband( 	-- 创建表
	hid INT PRIMARY KEY AUTO_INCREMENT, -- 设置主键以及主键值增长
	ename VARCHAR(10)
);
INSERT INTO huansband(hid,ename) VALUES(NULL,'张三');
INSERT INTO huansband(hid,ename) VALUES(NULL,'李四');
SELECT * FROM huansband;


CREATE TABLE wife( 	-- 创建表
	wid INT PRIMARY KEY AUTO_INCREMENT, -- 设置主键以及主键值增长  
	wname VARCHAR(10),
	hid INT,
	CONSTRAINT fk_wife_huansband FOREIGN KEY(hid) REFERENCES huansband(hid) -- 此时wid既是主键又是外键
);
INSERT INTO wife(wid,wname) VALUES(NULL,'杨贵妃');
INSERT INTO wife(wid,wname,hid) VALUES(2,'盼盼',1);
INSERT INTO wife(wid,wname,hid) VALUES(3,'x盼',1); 
SELECT * FROM wife;

-- 验证数据表的多对多关系 建立新表-丈夫
DROP TABLE huansband;
DROP TABLE wife;
CREATE TABLE huansband( 	-- 创建表
	hid INT PRIMARY KEY AUTO_INCREMENT, -- 设置主键以及主键值增长
	ename VARCHAR(10)
);
CREATE TABLE wife( 	-- 创建表
	wid INT PRIMARY KEY AUTO_INCREMENT, -- 设置主键以及主键值增长  
	wname VARCHAR(10),
	hid INT,
	CONSTRAINT fk_wife_huansband FOREIGN KEY(hid) REFERENCES huansband(hid) -- 此时wid既是主键又是外键
);
CREATE TABLE hua_wi( 	-- 关系表
	hid INT,
	wid INT,
	CONSTRAINT fk_wife FOREIGN KEY(wid) REFERENCES wife(wid),
	CONSTRAINT fk_huansband FOREIGN KEY(hid) REFERENCES huansband(hid)
);
INSERT INTO huansband(hid,ename) VALUES(NULL,'张三');
INSERT INTO huansband(hid,ename) VALUES(NULL,'李四');
SELECT * FROM huansband;

INSERT INTO wife(wid,wname) VALUES(NULL,'杨贵妃');
INSERT INTO wife(wid,wname,hid) VALUES(2,'盼盼',1);
INSERT INTO wife(wid,wname,hid) VALUES(3,'x盼',1); 
SELECT * FROM wife;
INSERT INTO hua_wi VALUES(1,1);
INSERT INTO hua_wi VALUES(2,1);
INSERT INTO hua_wi VALUES(2,2);
INSERT INTO hua_wi VALUES(2,2);
SELECT * FROM hua_wi;

猜你喜欢

转载自blog.csdn.net/qq_20799821/article/details/103368773
今日推荐