MySQL 多表結構的建立與分析
阿新 • • 發佈:2018-12-21
=====================多對一===================== create table press( id int primary key auto_increment, name varchar(20) ); create table book( id int primary key auto_increment, name varchar(20), press_id int not null, foreign key(press_id) references press(id) on delete cascade on update cascade ); insert into press(name) values (多對一'北京工業地雷出版社'), ('人民音樂不好聽出版社'), ('智慧財產權沒有用出版社') ; insert into book(name,press_id) values ('九陽神功',1), ('九陰真經',2), ('九陰白骨爪',2), ('獨孤九劍',3), ('降龍十巴掌',2), ('葵花寶典',3) ; sql示例
create table author( id int primary key auto_increment, name varchar(20) ); #這張表就存放作者表與書表的關係,即查詢二者的關係查這表就可以了多對多create table author2book( id int not null unique auto_increment, author_id int not null, book_id int not null, constraint fk_author foreign key(author_id) references author(id) on delete cascade on update cascade, constraint fk_book foreign key(book_id) references book(id) on delete cascade on update cascade, primary key(author_id,book_id) );#插入四個作者,id依次排開 insert into author(name) values('egon'),('alex'),('yuanhao'),('wpq'); #每個作者與自己的代表作如下 egon: 九陽神功 九陰真經 九陰白骨爪 獨孤九劍 降龍十巴掌 葵花寶典 alex: 九陽神功 葵花寶典 yuanhao: 獨孤九劍 降龍十巴掌 葵花寶典 wpq: 九陽神功 insert into author2book(author_id,book_id) values (1,1), (1,2), (1,3), (1,4), (1,5), (1,6), (2,1), (2,6), (3,4), (3,5), (3,6), (4,1) ; sql示例
create table customer( -> id int primary key auto_increment, -> name varchar(20) not null, -> qq varchar(10) not null, -> phone char(16) not null -> ); create table student( -> id int primary key auto_increment, -> class_name varchar(20) not null, -> customer_id int unique, #該欄位一定要是唯一的 -> foreign key(customer_id) references customer(id) #外來鍵的欄位一定要保證unique -> on delete cascade -> on update cascade -> ); #增加客戶 mysql> insert into customer(name,qq,phone) values -> ('韓蕾','31811231',13811341220), -> ('楊瀾','123123123',15213146809), -> ('翁惠天','283818181',1867141331), -> ('楊宗河','283818181',1851143312), -> ('袁承明','888818181',1861243314), -> ('袁清','112312312',18811431230) mysql> #增加學生 mysql> insert into student(class_name,customer_id) values -> ('脫產1班',3), -> ('週末1期',4), -> ('週末1期',5) -> ; sql示例一對一