多表查詢
自然連線
自連線級聯刪除
1> 實體完整性
1> 主鍵
primary key
primary key(column1)
alter table add constraint con_stu_id primary key(id);
2> 唯一
unique
3> 自增長列
auto_increment
2> 域完整性
1> 非空 not null
2> 預設值 default 值
3> mysql中不支援check
3> 參照完整性
外來鍵
constraint con_fk_sid foreign key(sid) references stu(sid);
alter table score add constraint con_fk_sid foreign key(sid) references stu(sid);
一對一多對一
一對多多對多
1> 合併結果集
合併結果集
union
union all
select * from a
union
select * from b;
笛卡爾積
select * from a,b where ...;
2> 連線查詢
連線查詢
內連線inner join = join
外連線左外:left outer join = left join
右外:right outer join = right join
全外:mysql不支援
3> 自然連線
自然連線
自動找相同名稱/型別的列合併
natural join
natural left join
natural right join
4> 自連線
自連線
select * from table t1,table t2 where ...;
create table stu(
id int primary key,
stu_name varchar(20)
)charset utf8;
insert into stu values(1,"xiaoming"),(2,"xiaohong"),(3,"xiaohua");
create table score(
id int primary key,
score int
)charset utf8;
alter table score add constraint con_fk_stu_score_id foreign key(id) references stu(id);
alter table score drop foreign key con_fk_stu_score_id;
alter table score add constraint con_fk_stu_score_id foreign key(id) references stu(id) on delete cascade;
insert into score values(1,99),(2,88),(3,77);
delete from score where id=3; -- 僅僅刪除從表資料
delete from stu where id=3; -- 主表從表資料一併刪除
mysql 完整性與查詢
一 資料完整性約束 約束1主鍵約束 primary key create table table2 pid char 6 primary key,pname char 10 creat table orderdetail cutomerid char 6 productid char 6 quant...
MySQL之實體完整性和多表查詢
1 資料完整性是為了保證插入到資料中的資料是正確的,它防止了使用者可能的輸入錯誤 2 分為三類 l 實體完整性 l 域完整性 l 參照完整性 規定表的一行 即每一條記錄 在表中是唯一的實體。實體完整性通過表的主鍵來實現 主鍵的特點 不能為null,必須有值,且不能重複。主鍵分類 邏輯主鍵 不代表實際...
MySQL資料完整性(實體完整性 域完整性)
資料完整性 為保證插入到資料庫中的資料是正確的,防止使用者輸入錯誤的資料 分為實體完整性 域完整性 參照完整性 下節再說 1 實體完整性 實體指的是表中的一行,一行記錄對應乙個實體 通過主鍵實現 主鍵 關鍵字 primary key 特點 不能為null,並且唯一。邏輯主鍵 推薦 例如id,不代表實...