-
Notifications
You must be signed in to change notification settings - Fork 0
SQL Cracking the Code Interview Study Group 10
edwardyi edited this page Jan 19, 2018
·
1 revision
>> 小型與大型資料庫的設計方式
>> 多資料不同分類
>>> 更好的組織資料(結構可以幫助我們)
>> 像容器一樣(Table)
>>> Column:資料的一個區塊
>>>> 用逗號分別
>>> Row:一列(描述的組合)
>> CommandLine或圖形介面
>>> 創造後可以使用資料庫和資料表
>>> 以分號結尾,Use資料庫名字
>>> INSERT INTO:順序要正確對應
>> *:選擇所有Column
>>> WHERE:查詢某個Column的條件
>>> 如果有兩個OR AND(左/右優先)
>>> 加小括弧
>>> 存在很多Table不同的地方
>>> 很多都要去Update
>>> Column改變其他Table也要跟著改變
>>>> 寫一段有用到Column就要跟著改變(有機制可以防範)
>>>> 資料丟失或壞了
>>> 員工資料不太會改變,薪水職等、家庭資料、紙本(Table)
>>>> 員工id去join起來
>>>> 兩個Tables:
>>>>> 薪水職等
>>>>> 家庭資料
>>>>> 改了一個全部都要修改
>>> 考慮者個DB的Schema
>>>> 用甚麼點分支
>>> NULL不知道是甚麼東西,只能用IS_NULL篩選出來
>>> between IN(有沒有在這個集合內)
>>> 子查詢不能OR(模糊篩選)
>>> LIKE:任意字元
>>>> implicit/explicit
>>>> tableA有5000筆,3000筆
>>> CROSS JOIN
>>>> 狄卡爾(語法還是設計方式)
>>>> 是一個概念(少用)
>>>> 不指定條件,把所有條件取出來(table)
>>>> 張三李四王武(五種貨品)
>>>> 有做過實際的案例(Login的時候)
>>>> CROSS JOIN(User甚麼時候有login過、history)
>>>> Member id(login history)
>>> INNER JOIN
>>>> Natural Join要有相同名稱
>>> OUTER JOIN
>>>> 找出沒有資料集的資料
>>> 差集/交集
>>> GROUP BY分組(計算/一組一組的結果)
>>> ORDER BY排序(呈現出來的結果,不是改原始資料的排序)
>>>> 設計規則(重複儲存資料)
>>>> 空間耗費大(語法複雜)
>>>> 相同的東西存好幾個地方(DISTINCT)
>>>> 瘦身之後跑比較快
>>>> 標準形式
>>> KEY
>>>> 不能有NULL(不能有重複)
>>>> 不能被改(你的ID改了就不是你了阿)
>>>> Unique(可以自己設ID,身分證)
>>>> 變成另外一個
>>>> 他的資料變成再見了(變成ERROR)
>>>> 可以動,但通常不會去動他
>>>> 如果是一個Table無傷大雅,兩個Table
>>>> 某個學校的畢業生,回學校工作(KEY不一樣)
>>>> 兩個Table來存(不會Merge找到名字)
>>>> 討論要怎麼合起來(兩個不同的人,DB design)
>>>> 看甚麼時候enroll進來(休學DROP OUT,再次申請又上了)
>>>> 學校系統ID編號不一樣(學號)
>>>> 同樣中文名字但實際不一樣
>>>> 新的借閱紀錄(用身分證有點危險、secondary key,比較安全)
>>>> 護照、外國人(會變護照號碼)
>>>> 有一個欄位,有一個key是身分(出生日期,檢查的機制)
>>>> 性別不可能當,只有兩種(區別不容易)
>>>> 轉出轉入交易時間(查詢的時候固定扣掉六個月)
>>>> FOREIGN KEY,不一定是主鍵(NULL、重複)
>>> 關聯
>>>> ONE TO ONE
>>>> ONE TO MANY
>>>>> 一個人可能有多個職業
>>>> MANY TO MANY
>>>> 單元性
>>>> 部分功能相依姓(partial funtional dependency)
>>>> 遷移功能相依姓(transitive dependency)
>>> 房仲
>>>> 大樓(格局)
>>>> 承租人(職業、家庭)
>>>> 單位
>>>> 房東
>>>> 同一個人租兩個空間(設計有點不一樣)
>> extendable database
>>> 比較少用到(擴充不容易?)
>>> MongoDB
>> 很少寫資料進去
>>> 外面很常讀取(反正規化,可以更快的獲取資料)
>>> 外部的User去讀取比較頻繁
>>> 更改不容易