MySQL 資料完整性與多表查詢

2021-09-25 06:33:10 字數 2078 閱讀 2906

多表查詢

自然連線

自連線級聯刪除

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,不代表實...