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

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

1 MySQL เสรี ชิโนดม PHP Programmingintroduction2 ฐานข้อมูลคืออะไร ? ฐานข้อมูล (Database) คือ กลุ่มของข้อมูลแบบ ต่างๆที่รวบรวมไว้ และนำมาจัดเรียงให้เป็นระบบ.

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


งานนำเสนอเรื่อง: "1 MySQL เสรี ชิโนดม PHP Programmingintroduction2 ฐานข้อมูลคืออะไร ? ฐานข้อมูล (Database) คือ กลุ่มของข้อมูลแบบ ต่างๆที่รวบรวมไว้ และนำมาจัดเรียงให้เป็นระบบ."— ใบสำเนางานนำเสนอ:

1 1 MySQL เสรี ชิโนดม

2 PHP Programmingintroduction2 ฐานข้อมูลคืออะไร ? ฐานข้อมูล (Database) คือ กลุ่มของข้อมูลแบบ ต่างๆที่รวบรวมไว้ และนำมาจัดเรียงให้เป็นระบบ เพื่อใช้ตามวัตถุประสงค์ที่ต้องการ เช่น สมุดรายชื่อ ผู้ใช้โทรศัพท์ ทะเบียนรายชื่อนักศึกษา เป็นต้น

3 PHP Programming คุณสมบัติฐานข้อมูล s การนำข้อมูลที่สัมพันธ์กันทั้งหมดมาไว้ รวมกัน s ข้อมูลที่มีลักษณะเป็นมาตรฐาน s มีชุดเดียว s ใช้ได้ทั้งหน่วยงาน s มีระบบตรวจสอบป้องกัน s เป็นอิสระจากโปรแกรม s มีภาษาสอบถาม (QUERY LANGUAGE) s ต้องมีระบบจัดการฐานข้อมูล (DATABASE MANAGEMENT SYSTEM)

4 PHP Programmingintroduction4 ข้อดีของฐานข้อมูล ลดความซ้ำซ้อนของข้อมูล ใช้ข้อมูลร่วมกันได้ มีระบบจัดการความปลอดภัยของข้อมูล หลีกเลี่ยงความขัดแย้งของข้อมูล

5 PHP Programmingintroduction5 ระบบจัดการฐานข้อมูล (DBMS) นิยมเรียกว่า ดีบีเอ็มเอส (DBMS) คือชุดของโปรแกรมคอมพิวเตอร์ซึ่งทำหน้าที่สร้าง ดูแลรักษา และใช้งานส่วนต่าง ๆของฐานข้อมูล

6 PHP Programmingintroduction6 Application Programs/Queries SOFTWARE TO PROCESS QUERIES/PROGRAMS SOFTWARE TO ACCESS DTORED DATA Store Database Definition (META-DATA) Stored DataBase DBMS SOFTWARE DATABASE SYSTEM User/Programmers

7 PHP Programming ระบบจัดการฐานข้อมูล (DBMS) ต้องมีการใช้งานทรัพยากรของคอมพิวเตอร์อย่างมี ประสิทธิภาพ ทำหน้าที่ติดต่อกับตัวจัดการระบบไฟล์ การควบคุมการคงสภาพ การควบคุมระบบความปลอดภัย การสร้างระบบสำรองและการฟื้นสภาพ การควบคุมภาวะพร้อมกัน

8 PHP Programming แบบจำลองข้อมูล (Data Modelling) มี 3 แบบ ฐานข้อมูลแบบลำดับขั้น (Hierarchical Database Model) ฐานข้อมูลแบบข่ายงาน (Network Database Model) ฐานข้อมูลแบบตาราง (Relational Database Model)

9 PHP Programming แบบลำดับขั้น เป็นการแสดงความสัมพันธ์ของเอนติตี้ในแบบลำดับ ขั้น ซึ่งเริ่มจากเอนติตี้หลักแล้วย่อยลงไปเป็นเอน ติตี้ต่างๆตามลำดับ เป็นความสัมพันธ์แบบพ่อกับลูก คณะ อาจารย์นิสิตห้อง lab วิชา N N N N N 1 1

10 PHP Programming แบบข่ายงาน (Network Database) เป็นการแสดงความสัมพันธ์ของเอนติตี้ในแบบ ที่เอนติตี้มีความสัมพันธ์กับเอนติตี้อื่นๆได้หลาย เอนติตี้ คณะ อาจารย์นิสิตห้อง lab N N N 1 1 โครงการ N N

11 PHP Programmingintroduction11 ฐานข้อมูลเชิงสัมพันธ์ การจัดเก็บข้อมูลจะอยู่ในรูปของตารางมีคอลัมน์ และแถว ในแต่ละตารางจะเก็บข้อมูลเกี่ยวกับเรื่อง ใดเรื่องหนึ่งโดยข้อมูลในตารางหนึ่งอาจมี ความสัมพันธ์กับตารางอื่นๆได้ เช่น ตารางที่เก็บข้อมูลการขาย กับตารางที่เก็บ ข้อมูลลูกค้า และตารางที่เก็บข้อมูลสินค้า เมื่อ ต้องการพิมพ์ใบสั่งซื้อ จะเห็นว่ามีข้อมูลจากทั้งสาม ตาราง คือ มีรายการขาย ชื่อ ที่อยู่ลูกค้า ชื่อ ราคา สินค้า ปริมาณการสั่งซื้อ ทั้งนี้ต้องมีการกำหนด ความสัมพันธ์ระหว่างตารางต่างๆไว้ก่อน

12 PHP Programming ฐานข้อมูลเชิงสัมพันธ์ เก็บข้อมูลในรูปตาราง กลุ่มของข้อมูลที่จัดมีความสัมพันธ์ กันในรูปแนวนอนและแนวตั้ง ซึ่งเรียกข้อมูลที่เรียงกันในรูป แนวนอนว่า เรคอร์ด (record) และจะเรียกข้อมูลที่วางใน แนวตั้งว่า เขตข้อมูล (Field)

13 PHP Programmingintroduction13 ระบบจัดการฐานข้อมูลเชิงสัมพันธ์ หรือที่เรียกว่า RDBMS(Relational DataBase System) เป็นเครื่องมือในการจัดเก็บข้อมูล เพื่อให้ ค้นหาข้อมูลแบบต่างๆได้ตามต้องการ นอกจากนี้ยัง ช่วยในการดูแลรักษาข้อมูล เช่นการแก้ไข เพิ่ม ลบ ข้อมูลตลอดจนการออกรายงานได้ง่ายขึ้น ความสามารถของระบบจัดการฐานข้อมูลมี 3 ประการคือ การกำหนดนิยามข้อมูล(Data Definition) การจัดการกับข้อมูล(Data Manipulation) การควบคุมข้อมูล(Data Control)

14 PHP Programmingintroduction14 การกำหนดนิยามข้อมูล ได้แก่การกำหนดโครงสร้างของข้อมูลที่เก็บใน ฐานข้อมูล การกำหนดชนิดของข้อมูลและลักษณะ การจัดเก็บข้อมูล เช่น สามารถจะกำหนดกฎในการตรวจสอบข้อมูล สามารถกำหนดความสัมพันธ์(Relation)ระหว่าง กลุ่มของข้อมูลหรือที่เรียกว่าตาราง(Table) เพื่อให้ สามารถตรวจสอบว่าข้อมูลมีความถูกต้องตรงกันอยู่ เสมอหรือไม่ CREATE, ALTER, DROP

15 PHP Programmingintroduction15 การจัดการกับข้อมูล ได้แก่ การทำงานกับข้อมูล เช่นการเรียกค้นข้อมูล (Select) การเพิ่ม (Insert), ปรับปรุง(Update), และลบข้อมูล(Delete) ฟิลด์ใดฟิลด์หนึ่ง หรือพร้อม กันหลายฟิลด์หลายเรคอร์ดได้

16 PHP Programmingintroduction16 การควบคุมข้อมูล ได้แก่การรักษาความปลอดภัยของข้อมูล เพื่อให้ แน่ใจว่าผู้ที่จะอ่านหรือแก้ไขข้อมูลได้นั้น จะต้อง เป็นผู้ที่ได้รับอนุญาตเท่านั้น และสามารถป้องกัน ไม่ให้มีการแก้ไขข้อมูลเดียวกันพร้อมๆกันได้ GRANT, REVOKE

17 PHP Programmingintroduction17 ศัพท์เบื้องต้นของฐานข้อมูล Record Table Field

18 PHP Programmingintroduction18 เอนติตี้(Entity)และแอตทริบิวต์(Attribute) เอนติตี้ หมายถึงบุคคล สิ่งของ เหตุการณ์หรืออะไร ก็ได้ที่เราสนใจ ต้องการจะเก็บข้อมูล แอตทริบิวต์ คือคุณลักษณะหรือรายละเอียดของแต่ ละเอนติตี้ โดยแต่ละเอนติตี้จะมีได้หลายแอตทริ บิวต

19 PHP Programmingintroduction19 ความสัมพันธ์(Relationship) เป็นสิ่งที่เชื่อมโยงระหว่างข้อมูลในตารางต่างๆเข้า ด้วยกัน แบ่งได้เป็น 3 ลักษณะ ดังนี้ แบบหนึ่งต่อกลุ่ม(One-to-Many) แบบหนึ่งต่อหนึ่ง(One-to-One) แบบกลุ่มต่อกลุ่ม(Many –to-Many)

20 PHP Programming ความสัมพันธ์ (Relation) หมายถึงสิ่งที่เกี่ยวข้องกันของสิ่งของตั้งแต่สองสิ่ง คนกับบ้าน ความสัมพันธทาง Relational Database จะ หมายถึง ตาราง 2 ตารางมีความสัมพันธ์กัน ซึ่ง แบ่งเป็น 3 แบบ ดังนี้ One-To-One เช่น ความสัมพันธ์ระหว่างทะเบียน รถยนต์กับรถยนต์ รถยนต์ มี ทะเบียน

21 PHP Programmingintroduction21 ความสัมพันธ์ (Relation) One-To-Many เช่นอาจารย์สอนนิสิต Many-To-Many เช่นนิสิต 1 คนเลือกเรียนหลาย วิชาแต่ละวิชามีผู้นิสิตหลายคนลงทะเบียน, คำสั่ง ซื้อกับสินค้า อาจารย์ สอน นิสิต เลือกเรียน วิชา

22 PHP Programmingintroduction22 MySQL เป็น SQL Database Server ที่นิยมใช้งานกันบน ระบบปฏิบัติการลีนุกซ์ MySQL นี้ได้ถูกพัฒนาโดย T.c.X. DataKonsultAB. โดยพัฒนาจนได้มาตราฐาน ISO/ANSI SQL 1992 ทำงาน แบบไคลเอนต์ / เซิร์ฟเวอร์ (client / server) จุดมุ่งหมายหลักของ MySQL คือความเร็ว ความ คงทน และง่ายต่อการใช้

23 PHP Programming การติดต่อกับ MySQL ผ่านโปรแกรมไคลเอนต์ที่ชื่อ mysql ซึ่งจะทำหน้าที่ ในการติดต่อกับเซิร์ฟเวอร์ โดยจะต้องระบุการ เชื่อมโยงผ่านพารามิเตอร์ ไปยังเซิร์ฟเวอร์ที่ต้องการ ติดต่อ โดยผ่านจากชื่อผู้ใช้และรหัสผ่าน รูปแบบการ ใช้งานคำสั่ง เป็นดังนี้ $ mysql [- h host_name] [- u user_name] [- pyour_pass] หรืออาจจะใช้รูปแบบอื่นที่สามารถใช้แทนของ '- h', '- u' และ '- p' options คือ '- - host = host_name', '- - user = user_name' และ '- - password = your_pass'

24 PHP Programming MySQL ใช้ค่า default สำหรับการติดต่อกับพารามิเตอร์ ที่หายไปจาก command line default host_name คือlocalhost และ default ชื่อผู้ใช้ เป็นชื่อที่ใช้ในการ login บน Unix (จะไม่มี password เช่น ถ้าไม่มี '- p' option) ดังนั้นสำหรับตัวอย่าง user ของ 'test' จะใช้คำสั่งดังนี้ $ mysql -h localhost -u test $ mysql -h localhost $ mysql -u test การติดต่อกับ MySQL

25 PHP Programmingintroduction25 การเพิ่มชื่อผู้ใช้เข้าไปในระบบฐานข้อมูล MySQL เริ่มแรกเมื่อติดตั้ง MySQL เสร็จจะมีชื่อผู้ใช้ root อยู่ ในระบบแล้ว โดยผู้ใช้จำเป็นต้องตั้งรหัสผ่านก่อน ทั้งนี้เพื่อความปลอดภัยของระบบ ซึ่งจะสามารถใช้ คำสั่งในการตั้งรหัสผ่าน หรือเปลี่ยนรหัสผ่านดังนี้ $ mysqladmin -u root password student จากคำสั่งนี้จะตั้งรหัสผ่านของผู้ใช้ root เป็น student

26 PHP Programming ปัญหาที่เกิด สำหรับการเพิ่มชื่อผู้ใช้เข้าไปในระบบ (Add user ) นั้น ในระบบของ MySQL นั้นจะเก็บข้อมูลที่ เกี่ยวกับชื่อผู้ใช้ สิทธิการใช้งานต่างๆ ของ MySQL ไว้ในฐานข้อมูลชื่อ mysql โดยจะเก็บข้อมูลของ ผู้ใช้ไว้ในตารางข้อมูลชื่อ user ซึ่ง ตารางข้อมูลนี้ จะมีฟิลด์ข้อมูลดังนี้ * Table name *‘ user ’ * Scope fields *‘ host ’ ‘ user ’ ‘ password ’

27 PHP Programming * Privilege fields ‘‘ select_priv ’ ‘ insert_priv ’ ‘ update_priv ’ ‘ delete_priv ’ ‘ index_priv ’ ‘ alter_priv ’ ‘ create_priv ’ ‘ drop_priv ’ ‘ grant_priv ’ ‘ reload_priv ’ ‘ shutdown_priv ’ ‘ process_priv ’ ‘ file_priv ’

28 PHP Programmingintroduction28 คำสั่งเพิ่มผู้ใช้ $ mysql – u root -p Password : mysql> INSERT INTO user VALUES('localhost','test',PASSWORD('student' ), 'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y'); mysql> INSERT INTO user VALUES('%','test',PASSWORD('password'), 'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y'); mysql> FLUSH PRIVILEGES;

29 PHP Programmingintroduction29 การติดต่อกับ mysql $ mysql –u root –ppassword php_book Welcome to MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 1 to server version: agamma Type ‘help’ for help

30 PHP Programming การสร้าง ฐานข้อมูลและการเรียกใช้ ใช้คำสั่ง create database databaseName; ตัวอย่าง msql > create database php_book; การเปิดใช้งานฐานข้อมูล use databaseName; ตัวอย่าง mysql > use php_book;

31 PHP Programmingintroduction31 การสร้างตาราง คำสั่ง create table จะเป็นคำสั่งที่ใช้สำหรับตารางใน ระบบฐานข้อมูล ซึ่งจะต้องใส่ชื่อตาราง ชื่อคอลัมน์ (field) ชนิดของคอลัมน์โดยสามารถใส่ได้หลายคอลัมน์ รูปแบบคำสั่ง Create table table_name ( field1_name field1_data_type, field2_name field2_data_type,… );

32 PHP Programming ตัวอย่าง mysql > create table _messages ( -> key_ _messages INTERGER ->,date_created VARCHAR(19) ->, date_updated VARCHAR(19) ->,date_ VARCHAR(19) ->,addr_from VARCHAR(100) ->,addr_reply_to VARCHAR(100) ->,subject VARCHAR(100) ->,message MEDIUMTEXT -> );

33 PHP Programmingintroduction33 การสร้างตารางด้วย script สร้าง script ของ SQL เก็บลงแฟ้มชื่อ fname.sql ที่ linux prompt พิมคำสั่งดังนี้ cat fname.sql | mysql databasename -p เมื่อ -p หมายถึงให้ใส่ password

34 PHP Programmingintroduction34 ตัวอย่าง script ชื่อ crea.sql CREATE TABLE publishers ( key_publishers INT(5) DEFAULT '0' NOT NULL AUTO_INCREMENT,publisher_name VARCHAR(50) NOT NULL,PRIMARY KEY (key_publishers) ) CREATE TABLE authors( key_authors INT(5) DEFAULT '0' NOT NULL AUTO_INCREMENT,author_name VARCHAR(50) NOT NULL,author_phone VARCHAR(20) NOT NULL,PRIMARY KEY (key_authors) )

35 PHP Programmingintroduction35 CREATE TABLE books ( key_books int(5) DEFAULT '0' NOT NULL AUTO_INCREMENT,key_authors int(5) DEFAULT '0' NOT NULL,key_publishers int(5) DEFAULT '0' NOT NULL,book_title varchar(50) NOT NULL,PRIMARY KEY (key_books) ); คำสั่งที่ใช้คือ cat crea.sql | mysql bookstore -p

36 PHP Programming คำสั่งแสดงโครงสร้างตาราง describe table_name; show columns from tablename from databasename show columns from databasename. tablename ตัวอย่าง mysql > describe _message;

37 PHP Programmingintroduction37 การแสดงสิทธิของผู้ใช้ ใช้คำสั่ง show grants for users; เช่น Mysql>show grants for seree;

38 PHP Programmingintroduction38 การแสดง database & Table การแสดง database ใช้คำสั่ง show database ; การแสดง table ใช้คำสั่ง show tables ;

39 PHP Programmingintroduction39 The SQL Alter Table Statement คำสั่ง alter table ใช้สำหรับเพิ่มเติม หรือ เปลี่ยนแปลงคอลัมน์ในตาราง รูปแบบ มีดังนี้ alter table table_name add column field_name field_data_type ; alter table table_name change column existing_field_name new_field_name new_field_data_type ; alter table table_name drop column existing_field_name

40 PHP Programming Using Add Column Option แสดงการใช้คำสั่ง alter table เพิ่มฟิลดชื่อ temp_field ลงในตาราง _message ใช้คำสั่งดังนี้ mysql > use php_book; mysql > alter table _messages add column -> temp_field -> integer; mysql > describe _messages;

41 PHP Programmingintroduction41 Using Change Column Option mysql > use php_book; Database changed mysql > alter table _messages change column temp_field -> temp_field -> varchar(25); เรียกดูโครงสร้าง mysql > describe _messages;

42 PHP Programmingintroduction42 Using Drop Column Option การลบคอลัมน์ออกจากตารางสามารถทำได้ โดยใช้ คำสั่ง alter table ดังนี้ mysql > use php_book; mysql > alter table _messages drop column -> temp_field;

43 PHP Programmingintroduction43 The SQL Drop Table Statement การลบตารางออกจากฐานข้อมูลจะง่ายกว่าการลบ คอลัมน์โดยกำหนดชื่อตารางที่จะลบ โดยใช้คำสั่ง ดังนี้ mysql > use php_book; mysql > drop table _messages;

44 PHP Programmingintroduction44 The SQL Insert Statement คำสั่ง insert ใช้สำหรับเพิ่มเรคอร์ดลงในตาราง มี รูปแบบคำสั่งดังนี้ insert into table_name ( column_list ) values ( value_list ) สตริงก์ที่ใช้ในคำสั่ง insert จะต้องปิดล้อมด้วย เครื่องหมาย single quote และจำนวนของค่าใน value_list จะต้องเท่ากับจำนวนคอลัมน์ใน column_list

45 PHP Programmingintroduction45 ตัวอย่าง ให้พิมพ์คำสั่งเพิ่มข้อมูลดังต่อไปนี้ mysql > create table test ( -> a integer,b VARCHAR(10) -> ); mysql > insert into test -> (a, b) -> values -> ( 134, ‘aaa’ );

46 PHP Programmingintroduction46 The SQL Update Statement คำสั่ง update เป็นคำสั่งใช้สำหรับเปลี่ยนแปลง สารสนเทศในตาราง มีรูปแบบคำสั่งดังนี้ update { table_name } set { column_name } = { expression }… where { where_clause }

47 PHP Programmingintroduction47 ตัวอย่าง mysql> create table test (a integer); mysql> insert into test (a) values (134); mysql> insert into test (a) values (100); mysql> select * from test; mysql> update test set a = a+1; Query OK, 2 rows affected (0.00 sec) Rows matched: 2 Changed: 2 Warnings: 0 mysql> select * from test;

48 PHP Programmingintroduction48 ตัวอย่าง update employees set salary = salary * 1.15; เราสามารถใช้คำสั่ง update กับอนุประโยค where ได้ดังนี้ update employees set salaary = salary * 1.15 where last_name = ‘medinets’ ; นอกจากนี้ยังสามารถใช้ร่วมกับฟังก์ชันอื่นๆได้อีก เช่น update employees set last_name = upper(last_name);

49 PHP Programmingintroduction49 The SQL Select Statement คำสั่ง select จะใช้สำหรับการแสดงคอลัมน์ (field) หรือ กลุ่มของคอลัมน์ที่เราต้องการดูข้อมูล รูปแบบการใช้ งานคือ select field_list from table_list from table_list where where_clause < filters group by column_list <----- aggregates order by column_list < sorts having having_cluase < filters after aggregation

50 PHP Programmingintroduction50 The Field List คำสั่ง select ที่ง่ายที่สุดคือ SELECT * FROM Table_name ; คำสั่งจะแสดงทุกฟิลด์ของเรคอร์ดที่อยู่ในตาราง ถ้าต้องการแสดงข้อมูลเฉพาะจะต้องระบุฟิลด์ด้วย ดังตัวอย่าง SELECT str_name_first, int_age FROM Select01;

51 PHP Programmingintroduction51 The Where Clause อนุประโยค where ใช้แสดงข้อมูลแบบมีเงื่อนไข ดังเช่น SELECTstr_name_first, int_age FROMselect01 WHERE UPPER(str_name_first) LIKE ‘F%’ ; SELECTstr_name_first, int_age FROM select01 WHERE UPPER(str_name_first) LIKE ‘F%’ OR UPPER(str_name_first) LIKE ‘G%’ ;

52 PHP Programmingintroduction52 The Order By Clause อนุประโยค Order by ใช้สำหรับแสดงผลลัพธ์โดยการ จัดเรียงข้อมูล ดังตัวอย่างเป็นการจัดเรียงชื่อจากน้อยไปมาก SELECT str_name_first, int_age FROM select01 ORDER BY str_name_first; หากต้องการเรียกจากมากไปน้อยจะต้องระบุด้วยคำว่า DESC ดังนี้ SELECT str_name_first, int_age FROM select01 ORDER BY Str_name_first DESC;

53 PHP Programmingintroduction53 The Group By Clause ตัวอย่างการใช้ group by SELECT str_name_first,count(*) FROM select01 GROUP BY str_name_first; เราสามารถหาค่าสูงสุดของอายุ SELECT str_name_first,MAX(int_age) AS OLDEST_PERSON FROM select01 GROUP BY str_name_first ;

54 PHP Programmingintroduction54 The Having Clause อนุประโยค HAVING จะใช้ร่วมกับอนุประโยค group by เสมอ เพื่อต้องการให้แสดงข้อมูลที่ได้ผ่านการจัดกลุ่มโดย GROUP BY เพียงบางส่วนตามเงื่อนไข เช่น SELECT str_name_first,MAX(int_age)AS OLDEST_PERSON FROM select01 GROUP BY str_name_first HAVING OLDEST_PERSON > 65; SELECT str_name_first, MAX(int_age) AS OLDEST_PERSON FROM select01 WHERE int_age > 65 GROUP BY str_name_first ;

55 PHP Programmingintroduction55 The SQL Delete Statement คำสั่ง DELETE ใช้ลบข้อมูลในแต่ละแถวของตาราง มี รูปแบบคือ DELETE FROM {table_name} WHERE {where_clause} ; คำสั่ง delete เป็นคำสั่งที่สำคัญ ต้องใช้อย่างระวัง เรคอร์ดที่ลงลบออกแล้วจะเรียกคืนไม่ได้ ดังตัวอย่าง DELETE FROM select01 WHERE UPPER(str_name_first) = ‘Charles’; หรือ SELECT COUNT(*) FROM select01 WHERE UPPER(str_name_first) = ‘Charles’;


ดาวน์โหลด ppt 1 MySQL เสรี ชิโนดม PHP Programmingintroduction2 ฐานข้อมูลคืออะไร ? ฐานข้อมูล (Database) คือ กลุ่มของข้อมูลแบบ ต่างๆที่รวบรวมไว้ และนำมาจัดเรียงให้เป็นระบบ.

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


Ads by Google