mysql 完整性與查詢

2021-06-17 16:23:56 字數 2350 閱讀 7568

一.資料完整性約束            

、約束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,不代表...