mySQL資料庫 約束 聯合查詢

2021-10-08 22:14:10 字數 1495 閱讀 6058

在實際應用中,**之間會有關聯,每張表也會有一些欄位是有格式要求(比如:非空且唯一,不能為負數等等)。

所以每張表都會有一些約束

建立主鍵的方式

表建立完成之後新增主鍵

聯合主鍵

建立或者新增外來鍵

建立完成之後新增外來鍵

列舉型別

刪除表中的所有資料

為了保證資料的有效性和完整性,我們會新增一些外來鍵約束,讓兩個表形成關聯。

有時候我們兩張表之間新增了外來鍵約束,在資料刪除或者更新時,我們可以新增級聯更新或者級聯刪除

在幾張表相互關聯的時候,我們需要依據關聯條件查詢。多表聯合沒有條件查詢結果是不滿足要求的

方式一:內連線 —>不符合條件的資料不顯示

方式二:外連線 —>沒有的資訊使用null顯示

子查詢—>根據條件一步步找出所需資料

替換子查詢,使用內連線查詢

-- 查詢所有人的所有訂單的所有物品

select users.

*,orders.

*from users join orders on users.id=orders.oid;

-- 顯示所需資訊,內聯查詢

select users.id,users.username,orders.oid,orders.total,miditem.

*,products.

*from users join orders on users.id=orders.oid join miditem on orders.oid=miditem.ooid

join products on miditem.ppid=products.pid ;

-- 去除冗餘的資訊,最終版查詢語句

select users.id,users.username,orders.oid,orders.total,products.

*from users join orders on users.id=orders.uid join miditem on orders.oid=miditem.ooid

join products on miditem.ppid=products.pid ;

create

table demo4 select

*from demo -- 複製表

create

table demo5 select

*from demo where1=

2--當條件( 1=2)為假的時候只複製表頭

create

table demo6 select demo.id from demo -- 只複製選定的字段

create

table demo7 select demo.id from demo where1=

2-- 只複製原定的字段表頭

資料庫的聯合查詢

定義 表和表之間的資料以縱向的方式連線在一起 舉個例子 select e1 ename,e1 sal,e2 ename from emp e1 e1 和 e2 是自連線 join emp e2 on e1 mgr e2 empno union select ename,sal,我是最大老闆 from...

資料庫的聯合查詢

定義 表和表之間的資料以縱向的方式連線在一起 舉個例子 select e1 ename,e1 sal,e2 ename from emp e1 e1 和 e2 是自連線 join emp e2 on e1 mgr e2 empno union select ename,sal,我是最大老闆 from...

MySQL資料庫 資料約束

對使用者操作表的資料進行約束 作用 當使用者對使用預設值的字段不插入值的時候,就使用預設值。注意 1 對預設值字段插入 null 是可以的 2 對預設值字段可以插入非 null create table student id int,name varchar 20 address varchar 2...