1. 程式人生 > >MySQL 多表結構的建立與分析

MySQL 多表結構的建立與分析

=====================多對一=====================
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示例
一對一