一.資料完整性約束
、約束1主鍵約束 primary key
create table table2
(pid char(6) primary key,
pname char(10));
creat table orderdetail
(cutomerid char(6),
productid char(6),
quantity int,
primary key c_p_index(customerid,productid))
如果**已經存在,可以通過修改**的語句來新增主鍵
create table table3
(id int,name char(6));
alter table table3
add constraint primary key(id);
2.唯一性約束
create table table4
(num char(6),name varchar(10))
當插入資料或者更新資料時,如果和原來的值一樣,這時禁止完成插入或更新
create table table4
(num char(6),
name varchar(6),
unique key(name)
create table table4
(num char(6),name varchar(10));
alter table table4
add constraint [約束名字] unique key(name);
alter table table4
drop primary key;
3參照的完整性約束
xs 學號(pk)
xs_kc:學號(fk)
alter table xs_kc
add [constraint xh_constraint] foregin key(學號)//指明那一列為外來鍵
references xs(學號);
on delete restrict
restrict:當xs中的某一條記錄刪除,得看這個學生是否有選課的記錄,如果該學生有選課記錄,禁止這次刪除的操作。
delete from xs where 學號=『091107』;禁止的,是因為091107學生在xskc中有選課記錄
二.1.多表連線查詢
(1)全連線
select 列名1,列名2。。
from 表名1,表名2,。。
select xs 學號,姓名,課程號,成績
from xs,xskc
where xs.學號=xskc.學號;
select 學號,課程號.課程名.學時
from xskc ,kc
where xskc.課程號=kc,課程號;
(2)標準sql語句
select 列表名
from 表名1 join列表名2
on 連線條件
select xs.學號,姓名,課程號,成績
from xs join xskc
on xs.學號=xskc.學號;
select姓名,課程,成績
from xs join xskc on xs.學號=xskc.學號
join kc on xskc.課程號=kc.課程號;
select xs.學號,姓名,課程號,成績
from xs join xskc
using(學號);
2)外連線:包含來自一張表的所有記錄行和另一張的匹配記錄行
左外連線:左邊**(join關鍵字 左邊的)全部顯示
右外連線:
查詢:所有學生的學號,姓名以及他們所選的課程的課程號,得分
select xs.學號,姓名,課程號,成績
from xs left outer join xskc
on xs.學號=xskc.學號;
查詢學生選修課程的資訊(學號。課程號。課程名),還看沒有被學生選修的課程的情況
select 學號,xskc,課程號,課程名
from xskc right outer join kc
on xskc.課程號=kc.課程號;
3)自然連線
natural join 自然連線
natural left join
natural right join
select xs.學號,姓名,課程號,成績
from xs natural join xskc;
4)交叉連線 -笛卡爾積
select xs.學號,姓名,課程號,成績
from xs cross join xskc;
MySQL資料完整性(實體完整性 域完整性)
資料完整性 為保證插入到資料庫中的資料是正確的,防止使用者輸入錯誤的資料 分為實體完整性 域完整性 參照完整性 下節再說 1 實體完整性 實體指的是表中的一行,一行記錄對應乙個實體 通過主鍵實現 主鍵 關鍵字 primary key 特點 不能為null,並且唯一。邏輯主鍵 推薦 例如id,不代表實...
MySQL 資料完整性與多表查詢
多表查詢 自然連線 自連線級聯刪除 1 實體完整性 1 主鍵 primary key primary key column1 alter table add constraint con stu id primary key id 2 唯一 unique 3 自增長列 auto increment ...
mysql 完整性 詳解MySQL 資料完整性
資料完整性分為 實體完整性,域完整性,參考完整性。參照完整性指的就是多表之間的設計,主要使用外來鍵約束。多表設計 一對多 多對多 一對一設計 一 實體 行 完整性 實體完整性通過表的主鍵來實現。使用主鍵來表示一條記錄的唯一,且不為空 語法 primary key 主鍵分類 邏輯主鍵 例如id,不代表...