mqsql多表操作

一對一
一對多
多對多
alter table 修改表 結構
1.默認值約束 default
CREATE TABLE student(
Id int pirmary key,
Name varchar(50) not null,
Sex varchar(10) default ‘男’
);

insert into student1 values(1,‘tom’,‘女’);
insert into student1 values(2,‘jerry’,default);
2、引用完整性(參照完整性)
外鍵約束:FOREIGN KEY
刪除外鍵 alter table 表名 drop foreign key 外鍵名字 ;
例:
CREATE TABLE student(
sid int pirmary key,
name varchar(50) not null,
sex varchar(10) default ‘男’
);

create table score(
id int,
score int,
sid int , – 外鍵列的數據類型一定要與主鍵的類型一致
CONSTRAINT fk_score_sid foreign key (sid) references student(id)
);
第二種添加外鍵方式。
ALTER TABLE score1 ADD CONSTRAINT fk_stu_score FOREIGN KEY(sid) REFERENCES stu(id);

3、 表與表之間的關係
一對一
例如t_person表和t_card表,即人和身份證。這種情況需要找出主從關係,即誰是主表,誰是從表。人可以沒有身份證,但身份證必須要有人才行,所以人是主表,而身份證是從表。設計從表可以有兩種方案:
在t_card表中添加外鍵列(相對t_user表),並且給外鍵添加唯一約束;
給t_card表的主鍵添加外鍵約束(相對t_user表),即t_card表的主鍵也是外鍵。
一對多(多對一):
最爲常見的就是一對多!一對多和多對一,這是從哪個角度去看得出來的。t_user和t_section的關係,從t_user來看就是一對多,而從t_section的角度來看就是多對一!這種情況都是在多方創建外鍵!
多對多:
例如t_stu和t_teacher表,即一個學生可以有多個老師,而一個老師也可以有多個學生。這種情況通常需要創建中間表來處理多對多關係。例如再創建一張表t_stu_tea表,給出兩個外鍵,一個相對t_stu表的外鍵,另一個相對t_teacher表的外鍵。

一對多

USE day1025   一對多   一個老師對多個學生
	--老師表
CREATE TABLE teacher(
id INT PRIMARY KEY AUTO_INCREMENT,     -- 設置主鍵自增
NAME VARCHAR(50)


);
	--學生表
CREATE TABLE `student` (
   `sid` INT(11) NOT NULL PRIMARY KEY AUTO_INCREMENT,
   `sname` VARCHAR(50) DEFAULT NULL,
   `sage` INT(11) DEFAULT NULL,
   `height` DOUBLE DEFAULT NULL,
   tno INT,  --   添加 外鍵  
CONSTRAINT fk_tea_stu  FOREIGN KEY (tno) REFERENCES teacher(id)  --  子表tno 參照 主表id
  --  constraint 約束     foreign key 外鍵     references /'refərənsɪz/ 參考,參照
 )

第二種添加外鍵方式。
ALTER TABLE student ADD CONSTRAINT fk_tea_stu FOREIGN KEY(tno) REFERENCES teacher(id);
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章