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

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

เสรี ชิโนดม seree@buu.ac.th MySQL เสรี ชิโนดม seree@buu.ac.th.

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


งานนำเสนอเรื่อง: "เสรี ชิโนดม seree@buu.ac.th MySQL เสรี ชิโนดม seree@buu.ac.th."— ใบสำเนางานนำเสนอ:

1 เสรี ชิโนดม seree@buu.ac.th
MySQL เสรี ชิโนดม

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

24 การติดต่อกับ MySQL 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 PHP Programming

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

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

27 * 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 ’ PHP Programming

28 คำสั่งเพิ่มผู้ใช้ $ 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; PHP Programming

29 การติดต่อกับ 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 PHP Programming

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

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

32 ตัวอย่าง mysql > create table email_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 -> ); PHP Programming

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

34 ตัวอย่าง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) PHP Programming

35 key_books int(5) DEFAULT '0' NOT NULL AUTO_INCREMENT
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 PHP Programming

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

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

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

39 The SQL Alter Table Statement
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 PHP Programming

40 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; PHP Programming

41 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; PHP Programming

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

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

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

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

46 The SQL Update Statement
update { table_name } set { column_name } = { expression }… where { where_clause } PHP Programming

47 ตัวอย่าง 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 PHP Programming

48 ตัวอย่าง 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); PHP Programming

49 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 PHP Programming

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

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

52 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; PHP Programming

53 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 ; PHP Programming

54 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 ; PHP Programming

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


ดาวน์โหลด ppt เสรี ชิโนดม seree@buu.ac.th MySQL เสรี ชิโนดม seree@buu.ac.th.

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


Ads by Google