mysql 中多表 總結

來源:互聯網
上載者:User

標籤:primary   alter   關係   class   add   北海道   資料類型   總結   成績   

1.多表的建立文法

  alter table 從表名  add constraint 外鍵名 foreign key (從表類名) references 主表名(主表列);

  準備資料:

CREATE DATABASE one2many;USE one2many;#建立學生表CREATE TABLE stu (stuid VARCHAR(32) PRIMARY KEY,NAME VARCHAR(32),number INT ,adress VARCHAR(32));INSERT INTO stu VALUES (‘s001‘,‘huluwa‘,123456,‘葫蘆山‘);INSERT INTO stu VALUES (‘s002‘,‘automan‘,654321,‘北海道‘);#建立成績表CREATE TABLE score(scoid VARCHAR(32),chinese INT,math INT,english INT,studentid VARCHAR(32)  #在成績表中添加一列,存放學生表中學生ID);INSERT INTO score VALUES(‘sc1‘,100,90,90,‘s001‘);INSERT INTO score VALUES(‘sc2‘,90,80,90,‘s002‘);INSERT INTO score VALUES(‘sc3‘,90,70,70,‘s001‘);INSERT INTO score VALUES(‘sc4‘,100,95,95,‘s002‘);

     在上述兩個表中,score表中的seudentid類儲存了stu表中學生的資訊,可以通過成績在score表中查詢到studentid後,在stu表中通過studentid的值查到該成績對應的學生的資訊,但此時兩個表並沒有添加外鍵關係,可以隨意從表可以隨意添加符合資料類型的值(這個值在主表中沒有對應的資訊).主表可以隨意刪除學生資訊,刪除後從表將查詢不到,但是對應的考試成績還存在,簡單說就是主表可以隨意刪除資料,從表可以隨意添加資料,這是不符合商務邏輯的

  添加主鍵約束

ALTER TABLE score ADD CONSTRAINT stu_score FOREIGN KEY (studentid) REFERENCES stu(stuid);

    此時主表隨意刪除資料(從表中未刪除)或從表隨意添加資料(主表中沒有對應的值)時就會報錯.------a foreign key constraint fails

2.多表的查詢

  1.

 

mysql 中多表 總結

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.