在實際應用中,**之間會有關聯,每張表也會有一些欄位是有格式要求(比如:非空且唯一,不能為負數等等)。
所以每張表都會有一些約束
建立主鍵的方式
表建立完成之後新增主鍵
聯合主鍵
建立或者新增外來鍵
建立完成之後新增外來鍵
列舉型別
刪除表中的所有資料
為了保證資料的有效性和完整性,我們會新增一些外來鍵約束,讓兩個表形成關聯。
有時候我們兩張表之間新增了外來鍵約束,在資料刪除或者更新時,我們可以新增級聯更新或者級聯刪除
在幾張表相互關聯的時候,我們需要依據關聯條件查詢。多表聯合沒有條件查詢結果是不滿足要求的
方式一:內連線 —>不符合條件的資料不顯示
方式二:外連線 —>沒有的資訊使用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...