目錄python
""" 從左邊的表思考,這張表的多條信息是否能對應上右邊表的一條信息,能對應上(成立),再從右邊的表思考, 右表的多條信息是否能對應上左表的一條信息(不成立),那麼兩張表就能夠肯定是多對一關係,右表是多,左表是一,右邊表就是設置外鍵的表 """
foreign key(字段信息多的) references 表(字段信息少的)mysql
這時就(產成第三張表) 把兩個表的id,做爲第三張表的外鍵,建立關係表sql
關係表設置外鍵 foreign key 分別對應做者和書的idcode
""" #一、先站在左表的角度去找 是否左表的多條記錄能夠對應右表的一條記錄,若是是,則證實左表的一個字段foreign key 右表一個字段(一般是id) #二、再站在右表的角度去找 是否右表的多條記錄能夠對應左表的一條記錄,若是是,則證實右表的一個字段foreign key 左表一個字段(一般是id) #三、總結: #多對一: 若是隻有步驟1成立,則是左表多對一右表 若是隻有步驟2成立,則是右表多對一左表 #多對多 若是步驟1和2同時成立,則證實這兩張表時一個雙向的多對一,即多對多,須要定義一個這兩張表的關係表來專門存放兩者的關係 #一對一: 若是1和2都不成立,而是左表的一條記錄惟一對應右表的一條記錄,反之亦然。這種狀況很簡單, 就是在左表foreign key右表的基礎上,將左表的外鍵字段設置成unique便可 """
""" 語法: 1. 修改表名 alter table 表名 rename 新表名; 2. 增長字段 alter table 表名 add 字段名 數據類型 [完整性約束條件…], add 字段名 數據類型 [完整性約束條件…]; 3. 刪除字段 alter table 表名 drop 字段名; 4. 修改字段 alter table 表名 modify 字段名 數據類型 [完整性約束條件…]; alter table 表名 change 舊字段名 新字段名 舊數據類型 [完整性約束條件…]; alter table 表名 change 舊字段名 新字段名 新數據類型 [完整性約束條件…]; 5.修改字段排列順序/在增長的時候指定字段位置 alter table 表名 add 字段名 數據類型 [完整性約束條件…] first; alter table 表名 add 字段名 數據類型 [完整性約束條件…] after 字段名; alter table 表名 change 字段名 舊字段名 新字段名 新數據類型 [完整性約束條件…] first; alter table 表名 modify 字段名 數據類型 [完整性約束條件…] after 字段名; 6.去掉null約束 create table t(id int unique,name char(10) not null); alter table t modify name char(10) null; 7.添加null約束 alter table t modify name char(10) not null; 8.去掉unique約束 alter table t drop index id; 9.添加unique約束 alter table t modify id int unique; 10.刪除表 drop table 表名; """