資料庫多表查詢基礎語句彙總

2021-10-03 16:48:55 字數 1910 閱讀 4914

多表間的關係

新增外來鍵

alter table 表 add [constraint] [外來鍵名稱] foreign key(字段) references 表(字段);

或者alter table 表 add foreign key(列) references 表(列);

eg:給商品表新增外來鍵

alter table t_product add foreign key(cno) references t_category(cid);

刪除外來鍵

alter table 表 drop foreign key 外來鍵名稱;

外來鍵的級聯

在修改和刪除主表的主鍵時,同時更新或刪除副表的外鍵值,稱為級聯操作

on update cascade – 級聯更新,主鍵發生更新時,外來鍵也會更新

on delete cascade – 級聯刪除,主鍵發生刪除時,外來鍵也會刪除

交叉查詢

select a.列,a.列,b.列,b.列 from a,b ;

select a.,b. from a,b ;

–或者select * from a,b;

內連線查詢

隱式內連線

隱式裡面是沒有inner關鍵字的

select [字段,字段,字段][*] from a,b where 連線條件 (a表裡面的主鍵 = b表裡面的外來鍵)

顯示內連線

顯示裡面是有inner關鍵字的

select [字段,字段,字段][*] from a [inner] join b on 連線條件 [ where 其它條件]

外連線

左外連線

以join左邊的表為主表,展示主表的所有資料,根據條件查詢連線右邊表的資料,若滿足條件則展示,若不滿足則以null顯示.

可以理解為:在內連線的基礎上保證左邊表的資料全部顯示

select 字段 from a left [outer] join b on 條件

右外連線

以join右邊的表為主表,展示右邊表的所有資料,根據條件查詢join左邊表的資料,若滿足則展示,若不滿足則以null顯示

可以理解為:在內連線的基礎上保證右邊表的資料全部顯示

select 字段 from a right [outer] join b on 條件

子查詢

select 查詢字段 from 表 where 列 =(子查詢);

子查詢結果是單例多行,結果集類似於乙個陣列,父查詢使用in運算子

select 查詢字段 from 表 where 列 in (子查詢);

子查詢的結果是多行多列的情況

select 查詢字段 from (子查詢) 表別名 where 條件;

事務

事務的作用

保證一組操作全部成功或者失敗

手動開啟乙個事務

- 方式一: 手動開啟事務的方式 【掌握】

start transaction;開啟事務

commit;提交

rollback;回滾

- 方式二: 設定mysql中的自動提交的引數【了解】

檢視mysql中事務是否自動提交

show variables like '%commit%';

設定自動提交的引數為off

set autocommit = 0;-- 0:off 1:on

資料的備份和還原

備份格式

mysqldump -u使用者名稱 -p密碼 資料庫 > 檔案的路徑

還原格式

source 匯入檔案的路徑;

注意:還原的時候需要先登入mysql,並選中對應的資料庫

資料庫多表查詢SQL語句

最近在做 進銷存業務系統 作為專案組成員的一部分,我負責統計查詢,簡單說就是多表查詢,網上有很多,但是很明確的卻沒有,所以讓我這個初學者了費,最終還是搞出來了,在這裡也和大家共享一下成果和其中出現的問題,高手可繞道,不求點讚,只為方便大家。下面開始 我一共建了4個表,分別是supplier purc...

多表查詢資料庫

在專案中建立資料庫的時候,我們經常會進行多表查詢。資料庫中建立乙個表應該與乙個實體類相對應。乙個實體物件應該與一條記錄相對應。資料庫是一種結構化的查詢語言,資料庫語言是非過程化的,寫一句就可以執行一句。進行建表的時候,如果是一對多的關係,應該在多的一方建立乙個字段。該字段為少的一方的id。進行建表的...

資料庫多表查詢

笛卡爾積 select from emp,dept select from emp cross join dept 內連線 inner join 內連線把兩個表連線成乙個表 稱為第三個表 在這個表中僅包含那些滿足連線條件的記錄行 select from emp,dept where emp.dept...