一、 外來鍵
外來鍵約束 foreign key
保持資料一致性,完整性
實現一對一,一對多關係
1、 父表(參照列的表)和子表(有外來鍵表)
2、 相同的儲存引擎,且只能為innodb
3、 外來鍵列和參照列必須具有相應的資料型別
4、 外來鍵列和參照列必須建立索引,如果外來鍵不存在索引,mysql將自動建立索引
5、 子表的外來鍵必須為父表的主鍵
6、 插入子表外來鍵列值必須為父表主鍵列中含有的值(空值除外);
7、建立foreign key(子表字段)references 父表(字段)
8、檢視索引語句:show indexes from pro3\g;
9、外建約束的參照操作
cascade:從父表刪除或者更新且自動刪除或更新子表中匹配的行
set null:從父表中刪除或者更新行,並設定子表中的外來鍵列為null,如果使用該選項,必須保證子表列沒有指定not null
restrict:拒絕對父表的刪除或者更新操作
no action:標準sql的關鍵字,在mysql中與restrict相同。
建立foreign key(子表字段)references 父表(字段) on delete/update cascade/set null;
父表:create table pro3(
p_id int auto_increment primary key,
p_name varchar(50)
)engine=innodb default charset=utf8;
子表1:create table user1(
u_id int auto_increment primary key,
u_name varchar(50) not null,
pro_id int,
foreign key(pro_id)references pro3(p_id) on delete cascade
)engine=innodb default charset=utf8;
子表2:create table user3(
u3_id int auto_increment primary key,
u3_name varchar(50) not null,
pro_id int,
foreign key(pro_id)references pro3(p_id) on delete set null
)engine=innodb default charset=utf8;
二、 連線查詢(多表查詢)
連線是把不同表的記錄連線到一起的方法
3.1內連線查詢(內查詢)
內連線是普遍的連線型別,包含自然連線和相等連線,但是要求是構成連線的表每個表都有共同的匹配列進行匹列,將不滿足條件的行進行排除;
最普遍的是相等連線:
查詢方法:where。。。and
inner join。。。on
1、select 欄位名稱 from 表1,表2 where 表1.某欄位=表2.某欄位 and表1.某欄位=表3. 某欄位
2、select 欄位名稱 from 表1 inner join 表2 on 表1.某欄位=表2.某欄位
select
-> from pro3 p,user4 u
-> where
3.2外連線
與內連線不同,外連線是指使用outer join 關鍵字將兩個表連線起來。外連線的生成結果不僅包含符合連線條件的行數,還包含左表或右表中所有的資料行,未匹配的資料預設為空
select 欄位名稱 from 表名1 left/right join 表名2 表名1.欄位=表名2.欄位
左外連線
以左表為基準進行查詢
select 欄位名稱 from 表名1 left join 表名2 表名1.欄位=表名2.欄位
select
-> from pro3 p left join user4 u on
右外連線
以右表為基準進行查詢
select 欄位名稱 from 表名1 right join 表名2 表名1.欄位=表名2.欄位
select
-> from pro3 p right join user4 u on
如何判定左/右表:先輸入的是左表,後輸入的為右表
作業題:建立班級表 id 班級名稱,班主任****
學生資訊表 id 姓名生日****出生地班級id 學號
學生成績表 id 學生姓名學生學號語文成績,數學成績英語成績
要求一:主鍵,外來鍵的設定,進行父表刪除,子表更新的操作
要求二:查詢操作:學生姓名,學生,學號,學生****,老師姓名,老師****,語、數、英成績總分
內查詢,左查詢,右查詢
增加內容:內查詢
資料庫SQL實驗報告 互動式查詢 連線查詢及巢狀查詢
要求 1.報告格式和內容要求 a.內容和格式整齊。大標題採用黑體四號字加粗,小標題採用小四號字加粗。正文採用五號宋體,單倍行距。b.貼圖時請剪裁到適當大小,要保證列印時可以看清,但也不要太大以免 越界 c.不要在報告中寫與實驗無關的話,內容要有條理 完整 並能突出重點,要將遇到的主要問題說明。2.提...
主鍵外來鍵索引的設定參考
一 什麼是主鍵 外來鍵 關係型資料庫中的一條記錄中有若干個屬性,若其中某乙個屬性組 注意是組 能唯一標識一條記錄,該屬性組就可以成為乙個主鍵 比如 學生表 學號,姓名,性別,班級 其中每個學生的學號是唯一的,學號就是乙個主鍵 課程表 課程編號,課程名,學分 其中課程編號是唯一的,課程編號就是乙個主鍵...
電路連線及分析
8 在如左下圖 a 所示的電路中,電流錶a1的示數是1 6a,電流錶a2的示數為0 8a,通過燈泡l3的電流如圖 b 所示。則 1 電流錶a3的示數是多少 2 通過燈泡l1和l2的電流各是多少?9 根據電路圖連線實物圖 1 2 13 用筆畫代替導線完成圖中電路的實物連線 要求 兩燈併聯,開關控制整個...