專員聯絡電話(02)6601-1243
Φ 課程說明
課程將採用線上融合實體的課程,隨時無限重看線上課程。上課時,再由吳老師親自教導心法,由淺入深,確實瞭解人工智慧大數據的核心觀念與親手實作。
關聯式資料庫設計SQL Server和MySQL資料庫-從零開始親手學習資料庫系統
Φ 線上課程
總計:18小時
Φ 課程主題
關聯式資料庫設計使用SQL Server和MySQL資料庫-親手實作SQL SERVER的T-SQL和MySQL資料庫,親手實作資料庫交易與鎖定,實作大型資料庫系統交易設計-18小時
Φ 我能學到
MySQL資料庫安裝_MAC版
MySQL資料庫安裝_Windows版
Python連接MySQL資料庫
Python連接MySQL資料庫實作
SQL SERVER 2017資料庫設計與實作
MySQL資料庫設計與實作
實體關係模型ER MODEL設計分析
Φ 對象
想成為大數據分析師
想深入挖掘商業智慧的人
想學習大數據的學生
想學習資料庫
想學習全端工程師
要求
- 高中數學
說明
- 循序漸進,從關聯式資料庫設計SQL Server和MySQL資料庫-從零開始親手學習資料庫系統並實作
- 本課程有關聯式資料庫設計SQL Server和MySQL資料庫
- 資料庫設計工程師及資料庫工程師,徹底了解資料庫系統
- 18個小時…..71講座…讓你徹底了解資料庫系統
- 了解機器學習,深度學習內涵,加強人工智慧專業知識.
- 成為大數據分析師,深入挖掘商業智慧,與資料大數據工程
- 這是華人界的知名科學家吳佳諺所推出的線上課程。
- 所有問題一定可以得到解答
- 從觀念入門,親手打造手寫辨識,讓你全盤了解資料科學,資料庫商管應用。
- 初學者到進階使用者,對資料科學有興趣的人,商管財經人士,文法商人員,一般工程師,理工醫,電子電機與資料工程師、資料科學家。
- 讓自己鍍金,提升自我價值。
- 關聯式資料庫設計SQL Server和MySQL資料庫為大數據資料科學基礎課程
SQL Server2019資料庫安裝
1.在Windows 10安裝SQL Server資料庫
安裝SQLServer2019-SSEI-Dev
2.安裝下載SQL Server Management 管 具
SSMS-Setup-CHT
3.安裝SQL Server Management管 具
關聯式資料庫
- ‧1.新增資料庫使用者
- 1-1.在Windows 10新增系統管理者Justinwu
- 1-2.新增資料庫使用者Justinwu
- ‧2.資料庫授權使用者
- ‧3.SQL Server組態管理
- ‧4.建立資料庫與資料表SQL
SQL資料定義語言DDL
- create database company
- go
- use company
- create table 員工資料表(
- 員工編號 int not null,
- 姓名 char(20) not null ,
- 性別 char(8) not null,
- 地址 char(80),
- 薪水 money,
- 部門編號 int ,
- primary key(員工編號)
- )
- create table 部門資料表(
- 部門編號 int not null,
- 部門 char(20) not null ,
- 開始管理日期 datetime,
- 薪水 money,
- 管理者 int not null,
- primary key(部門編號)
- )
- create table 部門位址資料表(
- 部門編號 int not null,
- 位址 char(80) not null ,
- primary key(部門編號,位址)
- )
- create table 計劃資料表(
- 計劃編號 int not null,
- 計劃名稱 char(20) not null ,
- 計劃地點 char(80) ,
- 部門編號 int not null,
- primary key(計劃編號),
- foreign key(部門編號) references 部門資料表(部門編號)
- )
- create table 參與資料表(
- 員工編號 int not null,
- 計劃編號 int not null ,
- 參與時數 int ,
- primary key(員工編號,計劃編號),
- foreign key(員工編號) references 員工資料表(員工編號),
- foreign key(計劃編號) references 計劃資料表(計劃編號)
- )
- create table 親屬資料表(
- 員工編號 int not null,
- 姓名 char(20) not null ,
- 性別 char(8) ,
- 地址 char(80)
- primary key(員工編號,姓名),
- foreign key(員工編號) references 員工資料表(員工編號)
- )
SQL資料處理語言DML
- insert into 計劃資料表 (計劃編號,計劃名稱,計劃地點,部門編號) values (1,’3D記憶體計劃’,’台北市南港路2段99號’,1)
- insert into 參與資料表 (員工編號,計劃編號,參與時數) values (6,1,25)
- insert into 參與資料表 (員工編號,計劃編號,參與時數) values (6,2,250)
- insert into 參與資料表 (員工編號,計劃編號,參與時數) values (13,4,350)
- insert into 參與資料表 (員工編號,計劃編號,參與時數) values (15,1,25)
- insert into 參與資料表 (員工編號,計劃編號,參與時數) values (15,2,350)
- ‧5.建立關聯
- ‧ER Diagram
- ALTER TABLE 員工資料表 ADD CONSTRAINT depart_no
- FOREIGN KEY (部門編號)
- REFERENCES 部門資料表 (部門編號)
- ON DELETE NO ACTION
- ON UPDATE NO ACTION
- ALTER TABLE 部門資料表 ADD CONSTRAINT manager
- FOREIGN KEY (管理者)
- REFERENCES 員工資料表 (員工編號)
- ON DELETE NO ACTION
- ON UPDATE NO ACTION
- ALTER TABLE 部門位址資料表 ADD CONSTRAINT depart_loc
- FOREIGN KEY (部門編號)
- REFERENCES 部門資料表 (部門編號)
- ON DELETE NO ACTION
- ON UPDATE NO ACTION
- ‧6.關聯式代數合併運算select-Join
- 代數合併運算將多個資料表欄位取出
- ‧1.合併運算Join(AXB)
R1 Join 合併條件 R2
合併運算Join R1與R2作乘積運算後,再依合併條件來過濾不合條件的紀錄
選取結合Join-乘積運算
- INNER JOIN只取回合併資料表中符合合併條件的紀錄資料
- 交叉合併查詢其查詢結果的紀錄數是兩個資料表記錄數的乘積.一個資料表是9筆資料,一個資料表是8筆資料,交叉合併查詢後的記錄數為8*9=72筆
- ‧2. INNER JOIN
select 員工資料表.員工編號 ,員工資料表.姓名 ,部門資料表.部門
from 員工資料表 inner join 部門資料表
on 員工資料表.員工編號 = 部門資料表.管理者
- ‧3. LEFT Outer Join
- ‧4. RIGHT OUTER JOIN
RIGHT OUTER JOIN(右邊全部參與)
use company
select 員工資料表.員工編號 ,員工資料表.姓名 ,部門資料表.部門
from 員工資料表 RIGHT join 部門資料表
on 員工資料表.員工編號 = 部門資料表.管理者
FULL Outer Join
use company
select 員工資料表.員工編號 ,員工資料表.姓名 ,部門資料表.部門
from 員工資料表 full join 部門資料表
on 員工資料表.員工編號 = 部門資料表.管理者
- ‧5.卡迪生乘積運算
UNION聯集運算
select 查詢
- use company;
- select * from 員工資料表 where 姓名 like ‘吳%’ or 姓名 like ‘賴%’ ;
- use company;
- select * from 員工資料表 where (姓名 like ‘吳%’ or 姓名 like ‘賴%’) and 員工編號>7;
- use company;
- select * from 員工資料表 where (姓名 like ‘吳%’ or 姓名 like ‘賴%’) and 員工編號>7 order by 員工編號 desc;
- use company;
- select count(*) as 總計,emp.部門編號 from 員工資料表 as emp group by emp.部門編號;
- select count(*),max(emp.薪水),min(emp.薪水),avg(emp.薪水),emp.部門編號 from 員工資料表 as emp group by emp.部門編號;
- use company
- select count(*),max(emp.薪水),min(emp.薪水),avg(emp.薪水),emp.部門編號 from 員工資料表 as emp group by emp.部門編號;
- use company
- select count(*),max(emp.薪水),min(emp.薪水),avg(emp.薪水),emp.部門編號 from 員工資料表 as emp,部門資料表 as depart group by emp.部門編號;
- use company
- select count(*),max(emp.薪水),min(emp.薪水),avg(emp.薪水),emp.部門編號 from 員工資料表 as emp,部門資料表 as depart where depart.部門編號 = emp.部門編號 group by emp.部門編號;
- –多個表格查詢
- use company;
- select count(*),max(emp.薪水),min(emp.薪水),avg(emp.薪水),emp.部門編號,sum(emp.薪水) from 員工資料表 as emp,部門資料表 as depart where depart.部門編號 = emp.部門編號 group by emp.部門編號;
- use company
- select count(*),max(emp.薪水),min(emp.薪水),avg(emp.薪水),emp.部門編號 from 員工資料表 as emp,部門資料表 as depart group by emp.部門編號;
- use company
- select count(*),max(emp.薪水),min(emp.薪水),avg(emp.薪水),emp.部門編號 from 員工資料表 as emp,部門資料表 as depart where depart.部門編號 = emp.部門編號 group by emp.部門編號;
- –多個表格查詢
- use company;
- select count(*),max(emp.薪水),min(emp.薪水),avg(emp.薪水),emp.部門編號,sum(emp.薪水) from 員工資料表 as emp,部門資料表 as depart where depart.部門編號 = emp.部門編號 group by emp.部門編號;
insert 和update
- use company
- insert into 親屬資料表 (員工編號,姓名,性別,地址)
- select 員工編號,姓名,性別,地址 from 員工資料表;
- use company
- update 員工資料表 set 薪水=薪水*1.10 where 員工編號 in (8,9,10,11,13,15)
SQL SERVER_2019 關聯式資料庫
1.View 檢視
- Create View 名稱
- AS
- 查詢敘述
- create view HighSalary_View
- with encryption
- as
- select * from 員工資料表
- where 薪水>80000
2.變數
- 在SQL SERVER中,變數有純量變數與資料表變數
2-1.變數的生存空間
@@為全域系統變數
@@rowcount,為T-SQL所影響的記錄數
@@identify欄位自動編號值,如果沒有則傳回null
@@error傳回T-SQL所產生的錯誤編號
Cast(),和convert()函數
Cast將@y4變數由INT整數轉型成char
Convert將@y5變數由INT整數轉型成char
3.流程控制結構
- 布林運算式
- 選取結構:if
- 一個選擇的if敘述
- 有兩種選擇的if敘述
- 有複合敘述的if敘述
- 選取結構case
- while迴圈
- do…while迴圈
- Loop敘述
- 如何來選擇流程前進的方向,我們必須經過測試條件,例如,當條件成立時往左方,當條件不成立時往右方。我們使用布林表示式來測試工作。
- 布林Boolean代數定義在一個二元素的集合上,即B={true,false},true為真,false為假。我們可以使用這個值的結果來決定我們行進的方向。
- 當下列菱形四邊形成立true時會執行右方的流程,當下列菱形四邊行的條件不成立false時會執行左方的流程。true和false就是屬於布林代數,這是用在if判別式。
- 當下列菱形四邊形成立true時會執行右方的流程,當下列菱形四邊行的條件不成立false時會執行下方或右方的流程。True和false就是屬於布林代數,這是運用在迴圈結構。
- 3-1begin … end 區塊
- 3-2判斷IF
- IF 條件
- 敘述 …
- [ELSE IF 條件
- 敘述….]…
- [ELSE
- 敘述…]
- 我們已經看過if敘述1個或2個的選擇,在此要用巢狀if敘述來撰寫多重選擇決策。例如我們的成績評等,90到100分的為A級,80到89的為B級,70到79的為C級,60到69的為D級,59分以下的為F級。如果我有一位學生分數為82分,他的分數在80到89分之間,則他的等級為B級。在這個例子中有5個等級來做選擇,就叫做多重選擇。
Db_id(‘company’)傳回資料庫company是否存在.是則傳回true,否則傳回false
Object_id(‘員工資料表’),傳回員工資料表是否存在
- 3-3if.. else if….. else…
- 3-4CASE多重選擇
- CASE
- WHEN 條件 THEN 敘述 …
- [WHEN 條件 THEN 敘述…]…
- [ELSE 敘述…]
- END
- 3-5迴圈while
- 語法:
- While 條件
- begin
- 敘述…
- END
- 在if敘述中,條件後的敘述只執行一次,而在while敘述中,則可執行一次以上。While敘述的程序圖形中.選取結構和循序結構,都只執行程式敘述一次,如果我們要讓同一行程式重複執行好幾遍則要用迴圈敘述。迴圈敘述可以重複執行某一段程式好幾遍,直到條件的不成立才跳出這個迴圈。迴圈敘述:while、do……while。
- 3-6處理異常或錯誤使用try…catch…
- T-SQL錯誤處理是使用TRY/CATCH指令建立的Try區塊和catch區塊組成.
- 語法:
- Begin try
- T-SQL指令
- End try
- Begin catch
- T-SQL指令敘述
- End catch
使用sp_addmessage系統預存程序新增錯誤訊息
Raiserror(錯誤編號,嚴重等級,錯誤狀態)
使用throw指令敘述來丟出例外,用來取代raiserror()函數
4.預存Stored Procedure程序
預存程序Stored Procedure和預存函數Stored function
預存程序
CREATE PROCEDURE 名稱
[@參數1 資料型態,
@參數2 資料型態,,]
[with {recompile|encryption|recompile,encryption}]
AS
Procedure程序程式碼
5.預設函數
- 我們可以把複雜的敘述區塊包含在函數裡,需要時再呼叫函式,就可以把這複雜的區塊載入。這樣可以讓我們加快軟體的開發,並使撰寫程式簡單多了。
- 在SQL SERVER中已經定義好的函數,這些函數都是SQL SERVER事先已經寫好只要我們呼叫他就可載入我們程式執行。
- 我們也可以自己定義函數,這就稱為使用者自訂函數。
- 當我們要使用函數時,只要在呼叫函數就可以了。
- myfunction();
- 函數可以有回傳return,而程序則沒有回傳
- 我們可以呼叫預儲程序,使用exec.
- exec myprocedure();
預存程序
CREATE PROCEDURE 名稱
[@參數,,,,]
AS
BEGIN
Procedure程序程式碼
….
多個敘述
END
使用SQL script。「CREATE FUNCTION」的語法另外包含「RETURNS」與「RETURN」兩個關鍵字。
建立Stored functions的基本內容:
函數
CREATE function 名稱
([@參數名稱 參數型態,,,,])
returns 回傳值型態
[with(encryption|schemabinding|encryption,schemabinding)]
AS
BEGIN
function程序程式碼
….
多個敘述
return 回傳值;
END
CREATE [ OR ALTER ] FUNCTION [ schema_name. ] function_name
( [ { @parameter_name [ AS ][ type_schema_name. ] parameter_data_type
[ = default ] [ READONLY ] }
[ ,…n ]
]
)
RETURNS return_data_type
[ WITH <function_option> [ ,…n ] ]
[ AS ]
BEGIN
function_body
RETURN scalar_expression
END
[ ; ]
6.資料表指標cursor
- T-SQL的指標cursor可以使用在預存程序或觸發程序來處理結果集合中的每一筆記錄.
- Declare 宣告與定義一個新的資料指標
- Open執行資料指標定義的select指令來開啟與建立資料指標
- Fetch從資料指標取出一筆資料
- Close關閉資料指標
- Deallocate刪除資料指標和釋放系統資源
- 宣告資料指標:
- Declare 資料指標名稱 cursor
- [local|global]
- [forward_only|scroll]
- [fast_forward|static|keyset|dynamic]
- [read_only|scroll_locks|optimistic]
- For select 敘述
- Local:區域資料指標只能在宣告的程序中使用
- GLOBAL:全域資料指標可以在目前連線的程序中使用
- FORWARD_ONLY:只能循序讀取,不能回頭捲動,這是預設值
- SCROLL:可以前後讀取記錄,當指定STATIC,KEYSET或DYNAMIC資料指標種類時,預設是SCROLL.
- FAST_FORWARD一種單向唯讀的資料指標
- STATIC:使用暫存資料表儲存記錄資料,支援捲動
- KEYSET:只有將唯一鍵值欄存入暫存資料表
- DYNAMIC:直接動態從來源資料表取得記錄資料,所以資料能夠動態更新支援捲動
- NEXT:預設移動方式,如果第一次執行,就是讀取第一筆資料,如果是FORWARD_ONLY究只能使用NEXT
- PRIOR:讀取上一筆記錄
- FIRST:將資料指標移動到第一筆記錄
- LAST:將資料指標移到最後一筆記錄
- ABSOLUTE n:讀取從頭算起第n筆記錄
- RELATIVE n:讀取從目前資料指標位置起算第n筆記錄.
系統變數@@FETCH_STATUS和@@CURSOR_ROWS
- @@FETCH_STATUS:0成功執行FETCH指令
- @@FETCH_STATUS:-1,因為已到最後一筆資料,所以執行FETCH指令失敗
- @@FETCH_STATUS:-2,因為資料已被刪除,所以執行FETCH指令失敗
- @@CURSOR_ROWS:n,傳回最近開啟資料指標結果集的記錄數
- @@CURSOR_ROWS:0,沒有任何記錄數
- @@CURSOR_ROWS:-1,因為是動態資料指標DYNAMIC,所以記錄數也會變動
資料表指標cursor
DECLARE cursor_name [ INSENSITIVE ] [ SCROLL ] CURSOR
FOR select_statement
[ FOR { READ ONLY | UPDATE [ OF column_name [ ,…n ] ] } ]
[;]
Transact-SQL Extended Syntax
DECLARE cursor_name CURSOR [ LOCAL | GLOBAL ]
[ FORWARD_ONLY | SCROLL ]
[ STATIC | KEYSET | DYNAMIC | FAST_FORWARD ]
[ READ_ONLY | SCROLL_LOCKS | OPTIMISTIC ]
[ TYPE_WARNING ]
FOR select_statement
[ FOR UPDATE [ OF column_name [ ,…n ] ] ]
[;]
7.Trigger觸發
- DML trigger:每一個資料表都可以設定Trigger觸發,當INSERT,UPDATE或DELETE該資料表時,都會產生Trigger觸發.每一個資料表可以建立這些trigger
- DDL觸發:可以回應DDL指令
- After觸發程序:當執行insert,update和delete指令且資料已經改變,所觸發和執行的觸發程序
- INSTEAD OF觸發:這是在資料改變前,可以驗證資料或取代原本需要執行的操作
語法:
create trigger 資料表名稱.trigger名稱
on 資料庫名稱.資料表名稱
[with encryption]
(for|after|instead of)
{[insert],[update],[delete]}
as
begin
敘述;
end;
8.交易與鎖定
- Commit:為認可交易,表示交易中的所有資料庫單元操作,真正將更改寫入資料庫
- Rollback:回復交易,如果交易尚未認可,則可以取消交易.
- Begin tran:標示開始執行一個交易,它是交易起點
巢狀交易
- 在begin tran建立的交易中,擁有其它begin tran建立的交易
- SQL Server提供@@trancount變數取得目前是位在巢狀交易的哪一層
- Commit tran:只有當@@trancount系統變數為1時,執行commit tran才會真的認可交易
- Rollback tran:不論在那一層執行rollback tran回復交易,都是回復整個巢狀交易,@@trancount變數也變0
MySQL資料庫安裝
1.在Windows 10安裝MySQL資料庫
2.在Mac安裝MySQL資料庫
安裝MySQL資料庫 在終端機使 MySQL 安裝MySQL Workbench 連接MySQL Workbench
MySQL資料庫
1.View 檢視
2.Prepared 敘述
3.交易
4.預存Stored Routine
預存Stored Routine包含預存程序Stored Procedure和預存函數Stored function
預存程序
CREATE PROCEDURE 名稱 ([參數,,,,])
Procedure程序程式碼
刪除預存程序
DROP Procedure [IF EXISTS] 名稱
呼叫程序
CALL 程序名稱
預存函數Stored function
CREATE Function 名稱 ([參數,,,,])
returns 回傳型態
function程式碼
Drop function [If exists] 名稱
5.預設函數
6.Stored Routines的變數與流程
- 6-1宣告與使用變數
- 6-2判斷IF
- 6-3CASE多重選擇
- 6-4迴圈while,REPEAT
- 6-5CURSORS指標和Handlers處理異常
對一個查詢結果的每一筆紀錄執行特定的工作,我們宣告一個cursor來代表一個查詢的結果.
語法:
宣告cursor指標名稱
Declare cursor名稱 cursor for 查詢敘述
打開指標名稱
Open cursor名稱
從已經開啟的指標名稱中讀取一筆紀錄的資料到指定的變數中
FETCH CURSOR名稱 into 變數名稱[,….]
關閉指標
close cursor名稱
7.Trigger觸發
- 每一個資料表都可以設定Trigger觸發,當INSERT,UPDATE或DELETE該資料表時,都會產生Trigger觸發.
- 每一個資料表可以建立六種trigger,分別是Before trigger,Before update,Before delete,After insert,After update和after delete.
- 語法: create trigger 資料表名稱.trigger名稱 before update on 資料庫名稱.資料表名稱 for each row
- begin
- 敘述;
- end;
- 使用drop來刪除trigger drop trigger 資料庫.trigger名稱;
Φ 吳老師簡歷
吳老師教學中心 老師 吳佳諺 (線上課程)
現任吳老師教學中心首席老師
2021 年榮獲 TSIA 半導體AI製程專家
2000-2021吳佳諺老師為台灣資策會老師,從2000開始,為台灣資訊教育提供資訊服務.
2000-2021 吳佳諺為華人資訊科學家及顧問老師。曾任ASUS,HTC資訊科學家,台灣國立大學講師,鴻海,國泰世華銀行,元大金融集團培訓講師.
專長大數據,人工智慧,機器學習,TensorFlow程式語言,深度學習,強化學習,馬可夫決策過程,Python程式語言,MySQL關聯式資料庫。
大數據金融,大數據半導體,研究開發。
專業著作書籍:
9789868107526 JAVA2程式設計教學
9789868107533 JAVA2物件導向程式教學 (Android Java 網路TCP/IP program)
9868107555 C++程式語言教學
9789868107564 C語言教學
9789572973370 PHP程式設計教學(數位教學)
9789868107502 MySQL資料庫教學 (Android MySQL transaction program)
9789861252537 關聯式資料庫Access2003
9789868107519 Linux Fedora系統網路教學
9789572973363 PHP&MySQL架站教學
9787113043568 / 7113043569 PHP & MySQL商業網站架設實務
(在大陸發行,中國鐵道發行)
9787500642701 Flash5 終極高手(在大陸發行,中國青年出版社發行)
網站: http://www.justinwu.com.tw
吳老師教學中心粉絲頁: https://www.facebook.com/chaiyenwu/
人工智慧,大數據,資料庫,機器學習,深度學習,Fintech,Python程式語言,討論區:
https://www.facebook.com/groups/justinwu/
@Line:https://line.me/R/ti/p/@justinwu
現有身障人士與清寒家庭優惠,欲了解詳情請至吳老師教學中心粉絲團。
Φ 注意事項
攜帶筆電(Mac或Windows皆可)
我們會提供您線上課程協助您學習精通SQL SERVER與MySQL資料庫。
線上課程網址。繳完費一個工作天內會為您開通線上學習課程。
線上課程網址。請先上網學習。實體課上課時發問重點及心法問題。
候選人或參與者,全程參與,完成人工智慧專案並通過測驗合格,可獲得美國GIIM認證世界人工智慧領導專家.
Taiwan Machine Learning 證書課程
https://www.justinwu.com.tw/taiwan-machine-learning/




