(0-0) 請下載並開啟LibreOffice 的writer空白範本檔:20200706SQLEmpty.odt 下載 (15 KB),準備用來將如下(1)~(11-5)個步驟的SQL指令操作結果文字貼入writer中(不要貼截圖); 按「win+右鍵」可將工作中 視窗置於桌面左半邊螢幕。 按「win+左鍵」可將工作中視窗置於桌面左半邊螢幕。 (0-1)請參考如下文章的(1-1)~(1-3)在你的電腦裝妥Appserv伺服器(20200406數位科技上機實作:安裝並使用Appserv伺服器的MYSQL資料庫系統) MYSQL root密碼給abc123abc123 (0-2) 用firefox連http://192.168.176.9:801 或 http://localhost:801 來登入你的本機伺服器(假設你的本機IP為192.168.176.9, 你的網頁伺服器提供服務的窗口是801) 。
(0-3)在北電腦教室,可略過(0-1),直接連教師電腦 192.168.16.36來進行後續操作。 (0-4)點選本機首頁上方的phpMyAdmin並用root帳號登入。
(1)點選phpMyAdmin左上角的「新增」/再點選上方的「SQL」/參考如下SQL指令/在本機伺服器以你的「英文名號+DB」建立一個收銀機系統資料庫(如 catDB,字元集採UTF8) 參考SQL指令: CREATE DATABASE catDB default character set utf8; (2)先點選左方「你剛建的收銀機系統資料庫」/再按SQL/ 用如下SQL指令建立一個有 (id ,name ,amount ,tel)4個欄位的顧客資料表custs ,並為之新增一筆顧客資料(如cat),並列出新建的custs資料表欄位結構,並列出custs資料表的內容: 參考SQL指令: CREATE TABLE custs (id char(10),name char(20),amount float,tel char(20)); insert into custs(id,name,amount,tel) values ('101','cat',0,'0919-111222'); desc custs; select * from custs; (3) 用如下SQL指令建立一個貨品資料表goods並新增3筆貨品資料錄到goods中… 參考SQL指令:
INSERT INTO goods (gdsno ,gdsname ,cost,price, unit,stock_qty,fac_no) INSERT INTO goods (gdsno ,gdsname ,cost,price, unit,stock_qty,fac_no)
(4)用如下SQL指令建立一個供應商資料表factory並新增1筆供應商資料錄: create table factory(facno char(20) primary key, facname char(30) , master char(30) ,tel char(20) , addr char(40), lastdeal char(10), accountd char(20) ); insert into factory (facno,facname,master, tel,addr,lastdeal,accountd) values('077','真果行','吳老板','0919-111222','田裡100號','2020-07-06','郵局123456-7'); (5) 用如下SQL指令建立一個顧客入帳資料表new_id_reg並 為你唯一的顧客(如cat) 新增1筆5000元的入帳資料記錄到new_id_reg create table new_id_reg (inday char(20),custno char(10),money_store int ,remain int , serial char(20) primary key,oldremain int) ; insert into new_id_reg
update custs set amount=amount+5000 where id='101';
(7-1)用如下SQL指令建立一個outcome交易記錄資料表並加入一筆2000元交易資料錄(交昜序號為20200706A00001): create table outcome(sheet char(20) primary key ,custno char(10) , amount int,opday char(20)); insert into outcome (sheet,custno,amount,opday) values ('20200706A00001','101',2000,'2020-07-06 11:22:33'); (7-2)用如下SQL指令修改(7-1)交昜顧客(如cat)的儲值金額: update custs set amount=amount-2000 where id='101';
(7-3)用如下SQL指令建立一個outcome_detail交易細目記錄資料表並加入(7-1)中的2000元交易的所有交易細目資料錄 (交昜序號同為20200706A00001): create table outcome_detail(sheet char(20),custno char(10) , gdsno char(20),price float,qty int,itemno int,gdsname char(30),opday char(20)); insert into outcome_detail (sheet,custno,gdsno,price,qty,itemno,gdsname, opday) values ('20200706A00001','101','a001',10,100,1,'蕃茄', '2020-07-06 11:22:33'); insert into outcome_detail (sheet,custno,gdsno,price,qty,itemno,gdsname, opday) values ('20200706A00001','101','a002',40,15,2,'木瓜', '2020-07-06 11:22:33'); insert into outcome_detail (sheet,custno,gdsno,price,qty,itemno,gdsname, opday) values ('20200706A00001','101','a003',50,8,3,'香蕉', '2020-07-06 11:22:33');
(7-4)用如下SQL指令更新(7-3)中三項售出貨品的庫存量: update goods set stock_qty=stock_qty-(100) where gdsno='a001';
(8) 同(7)用如下SQL指令為顧客101在outcome交易記錄資料表加入一筆1500元交易資料錄,並對應在outcome_detail交易細目記錄資料表加入如下的交易細目紀錄(交昜序號皆為20200706A00002): 交易細目:(50個*a001蕃茄:10元/個:計500元 insert into outcome (sheet,custno,amount,opday) values ('20200706A00002','101',1500,'2020-07-06 11:22:44'); update custs set amount=amount-1500 where id='101'; insert into outcome_detail (sheet,custno,gdsno,price,qty,itemno,gdsname, opday) values ('20200706A00002','101','a001',10,50,1,'蕃茄', '2020-07-06 11:22:44'); insert into outcome_detail (sheet,custno,gdsno,price,qty,itemno,gdsname, opday) values ('20200706A00002','101','a002',40,10,2,'木瓜', '2020-07-06 11:22:44'); insert into outcome_detail (sheet,custno,gdsno,price,qty,itemno,gdsname, opday) values ('20200706A00002','101','a003',50,12,3,'香蕉', '2020-07-06 11:22:44'); update goods set stock_qty=stock_qty-(50) where gdsno='a001';
(9)用如下SQL指令查詢(7)的交易記錄: select * from outcome where sheet='20200706A00001'; select * from outcome_detail where sheet='20200706A00001';
select * from outcome where sheet='20200706A00002'; select * from outcome_detail where sheet='20200706A00002'; (11-1)請參考(2)新增一筆顧客資料(...不要重複執行(2)中的建立custs資料表的指令...), 其(id,name,amount,tel)等欄位的內容分別為('你的座號','你的名字',0,'你的手機號碼');
(11-2)請參考(5)為你(11-1)剛新增的顧客 新增1筆(5000+你的座號*100)元的入帳資料記錄(本記錄序號serial不可重複)到new_id_reg資料表; (...不要重複執行建立資料表的指令...) 並參考(6)修改custs資料表中的新增顧客資料錄的帳戶金額(amount) 為 調增剛儲值金額((5000+你的座號*100))後的結果。
(11-3)請參考(3)新增一筆貨品資料(5萬斤地瓜,每斤1元)到goods資料表, 其(gdsno ,gdsname ,cost,price, unit,stock_qty,fac_no)等欄位的內容分別為
(11-4) 同(8)為(11-1)新建的顧客在outcome交易記錄資料表並加入一筆交易資料錄(4種貨品皆要購買),交昜序號為20200706A00003: 交易總金額為新建顧客的全部餘額(剛好花光),4種貨品的庫存量要更新(請驗算更新後的所有貨品庫存量是否正確)。
(11-5)請參考(9)查詢(11-4)剛新建的交易記錄(含新建顧客在outcome資料表及outcome_detail 資料表的紀錄)。 (12-1)將以上每一步SQL指令的執行結果文字貼入LibreOffice 的writer中,每頁的頁首要有你的班級姓名座號,每頁的頁尾要有該頁的頁碼。
(12-2)在writer選「檔案/ 匯出為PDF檔」,檔名為「20200706商一你號你名.pdf」,自動取用odt檔的主檔名。 參考範例pdf檔如下:20200706SQLC.pdf下載 (216 KB) | created 01 七月, 2020
(12-3)請把以上(12-2)所產生的pdf檔上傳至「金門農工學生學習歷程系統」成為你的數位科技學習檔案。 |