musql 多表操作

2021-09-02 01:38:19 字數 2817 閱讀 7682

主表: category (分類表)    cid為主鍵

從表:product(商品表)      category_id為外來鍵

外來鍵特點: 1.從表外來鍵的值是對主表主鍵的引用.

2.從表外來鍵型別,必須與主表主鍵型別一致.

語法:alter table 從表 add[constraint] [外來鍵名稱] foreign key (從表外來鍵欄位名) references 主表(主表的主鍵)

// [外來鍵名稱]可以不寫,[外來鍵名稱]用於刪除外來鍵約束刪除外來鍵約束: 

alter table 從表 drop foreign key 外來鍵名稱   

alter tableproductadd foreign key(category_id) referencescategory(cid);

從表外來鍵主表主鍵

要想刪除主表中與從表有關聯關係的資料,可以這麼做:

解除主從表的約束關係

先刪除從表中與主表有關係的資料,再刪除主表中的資料。

另外,從表也不能新增主表中不存在的資料

刪除外來鍵約束:    

alter table 從表 drop foreign key 外來鍵名稱   

功放一對多的建表原則

在多的一方 建立乙個字段,字段作為外來鍵 指向 1的一方的主鍵

alter tableproduceadd foreign key(cno) referencescategory(cid);

多對多的建表原則

需要建立第三張表,中間至少兩個字段,中間為從表,兩邊為主表.

alter table stu_course add foreign key(sno) references stu(sid);

從表                               外來鍵                 主表  主鍵   

alter table stu_course add foreign key(cno) references stu(cid);

1.交叉連線查詢(基本不會使用..因為得到的是兩個表的乘積)  

語法: select * from a,b;

2.內連線查詢(使用關鍵字 inner join ---inner可省略)

隱式內連線 : select * from a,b where 條件 ;  

顯示內連線 : select * from a inner join b on 條件 ;

3.外連線查詢   (使用關鍵字 outer join --outer可以省略)

左外連線 : select * from a left outer join b on 條件 ; 

右外連線 : select * from a right outer join b on 條件 ;

內連線和外連線的區別:

子查詢  :一條select語句結果作為另一條select語法的一部分

隱式內連線:

select p.* from products p, category c where p.category_id = c.cid and c.cname = '化妝品');

從表              主表               p(從表).外來鍵    = c(主表).主鍵  c.主表的一屬性 = 化妝品

子查詢:

select * from products where category_id = (select cid from category where cname = '化妝品');

從表                        外來鍵                   主鍵           主表                          

mysql的多表操作 MySQL多表操作

交叉連線 交叉連線 cross join 又稱笛卡爾連線 cartesian join 或叉乘 product 它是所有型別內連線的基礎。它把表看作是行記錄的集合,交叉連線即返回這兩個集合的笛卡爾積。這其實等價於內連線的連線條件始終為 真 或連線條件不存在。笛卡爾積引用自數學,在數學中,兩個集合x和...

MySQL多表操作

方式一 create table stu sid int primary key,sname varchar 20 age int 方式二 create table stu sid int,sname varchar 20 age int,primary key sid 方式三 create tab...

MySql多表操作

今日任務 教學目標 1.為什麼要拆表 1.1表的準備 建立一張分類表 類別id,類別名稱.備註 類別id為主鍵並且自動增長 建立一張明星表 明星id,明星名稱,明星身價,明星年齡,明星性別,明星類別.備註 明星id為主鍵並且自動增長 2.引用完整性 表和表之間存在一種關係,但是這個關係需要誰來維護和...