Home
R
Cancel

[SQL筆記] 資料庫設計範例

測試用… 業務需求說明 模擬銀行業務 銀行開戶(註冊個人資料)、開卡(辦理銀行卡)。(一個人可以辦理多張銀行卡,但是最多只能辦3張) 存錢 查詢餘額 取錢 轉帳 查看交易記錄 帳戶掛失 帳戶注銷 資料表設計 帳戶資料表 銀行卡表 交易資訊表(儲存存錢和取錢的記錄) 轉帳資訊表(儲存轉帳資料記錄) 狀態資訊變化表(儲存銀行卡狀態:1...

[SQL筆記] 資料表關聯(表關係)

表關係(一對一、一對多、多對多) 一對一:如果分析出來是一對一關係,兩張表的欄位不是特別多,最簡單的方案就是合成一張表,或是將兩張表的兩個主鍵進行關聯。 一對多:如果分析出來是一對多,就在「多」的表,加一個欄位,和「一」的表進行關聯。 多對多:如果分析出來是多對多,就新增一張表,將前面兩張表的主鍵都加進來,讓他變成一個多對多的關係。 一對一 學生基本資料(學號、姓名、姓名)...

[SQL筆記] 3NF 第三正規化

第一正規化 1NF 錯誤的1NF 下述設計不滿足第一正規化,因為聯繫方式還可以再拆分最小單位。 第一正規化1NF,是必須符合所有欄位值都是不可分解的原子值。 create table Student ( StuId varchar(20) primary key, --學號 StuName varchar(20) not null, --學生姓名 StuCont...

[SQL筆記] 多表查詢二

R group by分組查詢裡,以聚合函數做為條件篩選,要使用having,不能用where. 語法結構:select–from–where–group by–having–order by–limit 運行順序:from–where–group by–having–select–order by–limit 自連接:自己連自己(父節點&am...

[SQL筆記] 多表查詢一

R 簡單多表查詢from A, B:只要不符合主外鍵關係的數據,都不會顯示。 內連接 inner join:只要不符合主外鍵關係的數據,都不會顯示。 外連接-左外連left join:以左表為主,只要不符合主外鍵關係的數據,null顯示。 外連接-右外連right join:以右表為主,只要不符合主外鍵關係的數據,null顯示。 全外連 full join:兩張的數據,...

[SQL筆記] Group By、Having 分組查詢

R union合併 group by 欄位名分組 having分組查詢後,要使用「聚合函數」條件,要放在having後面 having 子句通常是在一個SQL 句子的最面 where不能包含「聚合函數」條件。也就是說where後面不能有「聚合函數」條件。 語法: SELECT "欄位1", SUM("欄位2") FROM "表格名" GROUP BY "欄位1"...

[SQL筆記] 聚合函數

R count 求數量 max 求最大值 min 求最小值 sum 求和 avg 求平均值 round() 小數第幾位 select ROUND(25.555,2) --25.560 datediff 求時間差 select DATEDIFF(year,'1991-1-1','1993...

[SQL筆記] like 模糊查詢

% 代表匹配0~多個字符。(0個、一個、多個)。 like '張%'、like '%尚%'、 _ 代表匹配有,且有一個。 like '張_' [] 代表匹配的範圍內。7到9之間 =>[7,8,9]、[7-9]。 [^] 代表匹配不在範圍內。不是2,3,4,5 => [^2,3,4,5]或是寫[^2-5]。 模糊查詢 --查詢出姓張的員工 select * ...

[SQL筆記] Insert Into 新增數據

INSERT INTO 敘述句 (SQL INSERT INTO Statement) INSERT INTO 是用來新增資料至某資料表 (table)。 INSERT INTO 語法 (SQL INSERT INTO Syntax) INSERT INTO table_name (column1, column2, column3...) VALUES (value1, value2,...

[SQL筆記] Case End 條件查詢二

R getdate()當前時間。select getdate() year(getdate())當前年份 month(欄位名)取月。month(Birth) = 7 day(欄位名)取日。day(Birth) >= 22 case end類似 switch case 查詢 year(getdate())當前年份 year(欄位名)取年。 where ...