งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

1 MySQL. 2 Content  Overview of MySQL’s Authentication  Privilege system & user type  MySQL structure  การ backup และการ restore ฐานข้อมูล  Trigger.

งานนำเสนอที่คล้ายกัน


งานนำเสนอเรื่อง: "1 MySQL. 2 Content  Overview of MySQL’s Authentication  Privilege system & user type  MySQL structure  การ backup และการ restore ฐานข้อมูล  Trigger."— ใบสำเนางานนำเสนอ:

1 1 MySQL

2 2 Content  Overview of MySQL’s Authentication  Privilege system & user type  MySQL structure  การ backup และการ restore ฐานข้อมูล  Trigger  View  Stored procedure  Transaction

3 3 MySQL system Authentication Table View Stored procedure Stored procedure request Database

4 4 MySQL’s authentication  Using username and password  2 levels of user  System Administrator /DBA  User

5 5 Information:  ในการติดตั้งโปรแกรม MySQL แต่ละ ครั้งจะมี account ที่เป็น DBA ถูก สร้างโดยอัตโนมัติจำนวน 1 account ซึ่งมี user name เป็น “root” ส่วน password ก็ขึ้นอยู่กับว่าผู้ติดตั้ง โปรแกรมจะกำหนด  root มีสิทธิ์ทั้งในการจัดการ Database และ account

6 6 MySQL’s privilege system  4  4 levels of privilege  Global : ไม่มีเรื่องไหนทำไม่ได้  Database : ทำได้ทุกเรื่องแต่เฉพาะ กับฐานข้อมูลที่กำหนด  Table : ทำได้ทุกเรื่องแต่เฉพาะกับ ตารางข้อมูลที่กำหนด  Field : ทำได้ทุกเรื่องแต่เฉพาะกับฐาน ฟิลด์ที่กำหนด

7 7 Relation of privilege and user level  Global  Database  Table  Field  SA/DB A  User

8 8 Information:  ในครั้งแรกที่มีการสร้างฐานข้อมูลใหม่ ควรต้องมีการสร้าง account ใหม่สำหรับ ใช้จัดการฐานข้อมูลนั้นๆ ด้วย เพื่อที่ใน ครั้งต่อๆ ไปจะได้ใช้สิทธิ์ของ account นั้นในการจัดการฐานข้อมูลนั้น ซึ่งจะทำ ให้เกิดความปลอดภัยมากกว่าใช้ root โดยเฉพาะอย่างยิ่งการใช้งาน MySQL ร่วมกับ Web Application  เพราะ account ที่ใช้จะต้องไปปรากฏใน code โปรแกรม ซึ่งหาก code ดังกล่าว รั่วไหลอาจทำให้ผู่ประสงค์ร้ายใช้สิทธ์ root เข้ามาทำลายฐานข้อมูลใน server ของเราได้

9 9 การสร้าง account ใหม่

10 10 การสร้าง account ใหม่

11 11 การสร้าง account ใหม่

12 12 การสร้าง account ใหม่

13 13 การสร้าง account ใหม่

14 14 การสร้าง account ใหม่

15 15 Structure

16 16 MySQL Structure service Database …Database Table (s) trigger View (s) Stored procedure (s) Database ….

17 17 การสร้าง database

18 18 การสร้าง database

19 19 ผลลัพธ์  CREATE DATABASE `newdb` DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

20 20 การสร้าง table

21 21 การกำหนดโครงสร้างให้กับ table

22 22 ผลลัพธ์

23 23 การกำหนดชนิด ของ table

24 24 ชนิดของ table  MyISAM  MEMORY  InnoDB : หากต้องการใช้ transaction  ARCHIVE  MRG_MYISAM

25 25 การกำหนดชนิดของ table  ให้กำหนดในขั้นตอนของการสร้าง table

26 26 Multiple language supporting  Mysql support many character set.  Latin  Ascii: window874  ISO : tis620  UTF8

27 27 Multiple language supporting  เราต้องเลือกใช้ character set ให้เหมาะสมกับข้อมูลที่จะจัดเก็บ ลง  สำหรับการจัดเก็บข้อมูลที่เป็น ภาษาไทย ภาษาอังกฤษ สามารถ ใช้ character set ที่ชื่อ  tis620_thai_ci หรือ  Utf8_unicode_ci

28 28 Multiple language supporting  การกำหนด character set นั้นให้ กระทำในขั้นตอนของการสร้าง database และ table เลย

29 29 TRIGGER  การสร้าง trigger  การลบ trigger

30 30 What is Trigger?  โปรแกรมที่ติดตั้งอยู่ที่ table ใดๆ จะ ทำงานเมื่อมีเหตุการณ์เกิดขึ้นกับ ข้อมูลใน table  เหตุการณ์ที่เกิดกับข้อมูลได้แก่  Insert  Update  Delete  ในแต่ละเหตุการณ์สามารถเลือกได้ ว่าจะให้โปรแกรมทำงาน ก่อน หรือ หลัง เหตุการณ์

31 31  เมื่อมีการ insert การเข้าถึง record ใหม่จะใช้ keyword “NEW” เพื่อ เข้าถึง record ใหม่นั้น  เมื่อมีการ delete การเข้าถึง record ที่จะถูกลบจะใช้ keyword “OLD” เพื่อเข้าถึง record นั้น  เมื่อมีการ update การเข้าถึง record ใหม่จะใช้ keyword “NEW” และใช้ “OLD” เพื่อเข้าถึง record เก่า  ใน trigger สามารถสร้างตัวแปรได้ โดยใช้ นำหน้าชื่อตัวแปร

32 32 Syntax for create Trigger..1 CREATE TRIGGER CREATE TRIGGER { BEFORE | AFTER } { INSERT | UPDATE | DELETE } ON ON FOR EACH ROW ;

33 33 Syntax for create Trigger..2 CREATE TRIGGER CREATE TRIGGER { BEFORE | AFTER } { INSERT | UPDATE | DELETE } ON ON FOR EACH ROW BEGIN (s) END END;

34 34 ตัวอย่าง 1 CREATE TRIGGER trg1 BEFORE UPDATE ON table1 FOR EACH ROW BEGIN = OLD. s1; = NEW.s1; END; การสร้าง trigger เพื่อทำงาน ในเหตุการณ์ก่อน (BEFORE) ที่จะมีการ update(UPDATE) record ในตาราง table1 โดยก่อนที่จะมีการ update แต่ละ record จะ มีการสร้างตัวแปรชื่อ old เพื่อเก็บข้อมูลเดิมใน field ชื่อ s1 และตัวแปร new เก็บข้อมูลใหม่ใน field ชื่อ s1

35 35 ตัวอย่าง 2 : มี trigger > 1 ใน 1 ตาราง CREATE TRIGGER trg3 BEFORE INSERT ON table2 FOR EACH ROW IF LEFT(NEW.s2,1)<>'A' THEN SET NEW.s1=0; END IF; CREATE TRIGGER trg4 BEFORE UPDATE ON table2 FOR EACH ROW IF LEFT(NEW.s2,1)<>'A' THEN SET NEW.s1=0; END IF;//

36 36 ตัวอย่าง 3 : การสร้างตัวแปรและใช้ งานตัวแปร CREATE TRIGGER ins_sum BEFORE INSERT ON account FOR EACH ROW + NEW.amount ; trigger ชื่อ ins_sum จะ ทำหน้าที่ในการสร้าง ตัวแปรชื่อ sum เพื่อ เก็บข้อมูลผลรวมจาก field ชื่อ amount ของ ทุกๆ record ที่กำลังจะ insert แต่ไม่ใช่ตัวแปรที่อยู่ถาวร

37 37 ตัวอย่างการใช้ประโยชน์จากตัวแปร ใน trigger  CREATE TABLE account (acct_num INT, amount DECIMAL(10,2));  CREATE TRIGGER ins_sum BEFORE INSERT ON account FOR EACH ROW + NEW.amount ;  INSERT INTO account VALUES(2,1),(3,1),(4,1); ; ผลลัพธ์ที่ได้จะเป็นผลรวมของข้อมูลที่กำลังจะ insert เท่านั้น

38 38 การลบ trigger ( การ drop)  DROP TRIGGER ชื่อ trigger;  เช่น  drop trigger ins_sum;

39 39 อะไรอยู่ใน triggered SQL statement  เปลี่ยนแปลงข้อมูล (SET ….)  IF  Sql command เพื่อจัดการข้อมูล ในตารางอื่น  คำสั่งในการเรียกใช้ function ที่ MySQL รู้จัก

40 40 create trigger a before insert on title for each row set NEW.ename = upper(NEW.ename); การเปลี่ยนข้อความภาษาอังกฤษให้เป็นตัวพิมพ์ใหญ่ก่อนที่จะจัดเก็บลงตาราง

41 41 mysql> delimiter // mysql> CREATE TRIGGER upd_check BEFORE UPDATE ON account -> FOR EACH ROW -> BEGIN -> IF NEW.amount < 0 THEN -> SET NEW.amount = 0; -> ELSEIF NEW.amount > 100 THEN -> SET NEW.amount = 100; -> END IF; -> END;// mysql> delimiter ;

42 42 member member_audit_trail CREATE TRIGGER member_after_update AFTER UPDATE ON member FOR EACH ROW BEGIN INSERT INTO member_audit_trail SET action='update', id=OLD.id, old_name=OLD.name, name=NEW.name, changed=NOW(); END;//

43 43 VIEW  Create view syntax  Edit view syntax  Drop view syntax

44 44 What is VIEW?  ตารางข้อมูลที่ไม่มีอยู่จริง แต่เป็น ตารางข้อมูลที่เกิดขึ้นจากการรวม ข้อมูลจากหลายๆ ตารางมาไว้ใน ตารางเดียว  ใช้ประโยชน์เพื่อ  ลดภาระการ join หลายๆ ตารางใน คำสั่งของ Application  สร้างข้อมูลที่มนุษย์อ่านแล้วเข้าใจ มากขึ้น ( เพราะการ normalization ทำให้ข้อมูลในตารางหลักจะมีแต่ รหัสข้อมูล ข้อมูลที่เป็นคำบรรยาย จะถูกแยกตาราง )

45 45 ตัวอย่างการสร้าง VIEW student title major

46 46 ตัวอย่างการสร้าง VIEW  ที่ student จะทราบว่ามีนิสิตชื่อ สกุล อะไรบ้างแต่ title และ major ยังไม่ทราบว่าเป็นอะไร เพราะถูกเข้ารหัสอยู่ ดังนั้นหาก ต้องการทราบต้องเปิดตาราง title และ major ดู ที่ละตาราง หรือใช้ คำสั่ง join ทั้ง 3 ตารางเข้า ด้วยกัน

47 47 คำสั่ง SQL ในการ join ทั้ง 3 ตาราง เข้าด้วยกัน SELECT s.id, t.tname AS title, s.tname AS name, s.tsurname AS surname, m.tname AS major FROM student AS s LEFT JOIN ( major AS m, title AS t) ON ( s.major_id = m.id AND s.title_id = t.id ) ;

48 48 Syntax ในการสร้าง VIEW CREATE VIEWAS CREATE VIEW ชื่อที่ต้องการ AS ; select-statement ; Create view std as SELECT s.id, t.tname AS title, s.tname AS name, s.tsurname AS surname, m.tname AS major FROM student AS s LEFT JOIN ( major AS m, title AS t) ON ( s.major_id = m.id AND s.title_id = t.id ) ;

49 49 เรียกดูข้อมูลใน view  Select * from std;

50 50 Syntax ในการแก้ไข view..1 ALTER VIEWAS ALTER VIEW ชื่อที่ต้องการแก้ไข AS ; select-statement ใหม่ ; alter view std as SELECT s.id, t.tname AS title, s.tname AS name, s.tsurname AS surname, m.tname AS major FROM student AS s, major AS m, title AS t WHERE s.major_id = m.id AND s.title_id = t.id ;

51 51 Syntax ในการแก้ไข view..2 CREATE OR REPLACE VIEW AS ; CREATE OR REPLACE VIEW ชื่อที่ต้องการ แก้ไข AS select-statement ใหม่ ; Create or replace view std as SELECT * FROM student ; หากไม่มี view ชื่อ std มาก่อน จะถือว่าเป็นการสร้างใหม่ แต่ถ้ามี std แล้วจะถือว่า เป็นการแก้ไขของเดิม

52 52 การลบ view  Drop view ชื่อ view

53 53 Stored procedure : โปรแกรมที่ทำงานในตัว ฐานข้อมูล : ไม่สามารถทำใน phpmyadmin ได้

54 54 Content  การสร้าง  การลบ  การแสดงสถานะ  การแสดงรายละเอียด  การใช้งาน ( การ call)

55 55 ตัวอย่างการสร้าง stored procedure CREATE PROCEDURE b () BEGIN ; update title set ename='123' where id =4; ; END;

56 56 CREATE PROCEDURE `a` (in sid varchar(10), in stn varchar(100), in sts varchar(100), in sen varchar(100),in ses varchar(100), in sti smallint, in smi smallint, in st varchar(100),in sm varchar(100) ) Begin Declare lasttitleid smallint default 0; Declare lastmajorid smallint default 0; if sti = -1 then insert into title(tname) values(st); set lasttitleid =last_insert_id(); else set lasttitleid = sti; end if; if smi = -1 then insert into major(tname) values(sm); set lastmajorid =last_insert_id(); else set lastmajorid = smi; end if; insert into student(id,tname,tsurname,ename,esurname,title_id,major_id) values(sid,stn,sts,sen,ses,lasttitleid,lastmajorid); end;

57 57  การลบ drop procedure; drop procedure ชื่อ procedure;  การแสดง procedure ที่มีในฐานข้อมูล show procedure status;  การแสดงรายละเอียด show create procedure ; show create procedure ชื่อ procedure;  การใช้งาน ( การ call) call (….); call ชื่อ procedure(….);

58 58 Backup & Restore  2 means of backup  2 means of restore

59 59 How to backup database  การทำสำเนาไฟล์  การ export ข้อมูล

60 60 How to backup database  การทำสำเนาไฟล์  stop service ของ MySQL  ไปที่ folder ชื่อ mysql\data  มองหา folder ที่มีชื่อเดียวกับ ฐานข้อมูล  สำเนา folder ดังกล่าวไว้

61 61 How to backup database  การ export ข้อมูล

62 62


ดาวน์โหลด ppt 1 MySQL. 2 Content  Overview of MySQL’s Authentication  Privilege system & user type  MySQL structure  การ backup และการ restore ฐานข้อมูล  Trigger.

งานนำเสนอที่คล้ายกัน


Ads by Google