MySQL ถาม-ตอบ ครอบจักรวาล

ผู้เขียน: กิตติภูมิ วรฉัตร
ISBN: 974-90235-4-4
จำนวนหน้า: 303 หน้า
ขนาด: 14.5 x 21 ซม.
รูปแบบหนังสือ: หนังสือขาวดำ

ราคาปก: 225 บาท
ราคาสั่งซื้อ: 200 บาท
ส่งหน้านี้ให้เพื่อน  


  • รวบรวมทุกคำถามพร้อมคำตอบแบบร่ายยาวอย่างละเอียด เพื่อไขข้อข้องใจที่คุณอยากรู้ เกี่ยวกับระบบฐานข้อมูลขวัญใจมหาชน MySQL อย่างทะลุปรุโปร่ง
  • ครอบคลุมคำตอบเกี่ยวกับการประยุกต์ใช้งาน MySQL ร่วมกับโปรแกรมยอดนิยมหลากหลายรูปแบบ ทั้ง ASP, PHP, Visual Basic และ Delphi
  • เจาะใจผู้อ่าน ไม่เว้นแม้กระทั่งเรื่องของการเก็บสำรองข้อมูลและการรักษาความปลอดภัย ที่คนส่วนใหญ่มักมองข้าม!
  • รวบรวม error message ที่พบบ่อย ซึ่งควรทำความเข้าใจ และระวังป้องกันล่วงหน้า พร้อมทั้งแนะนำสารพัดเว็บไซต์เกี่ยวกับ MySQL ทั่วโลก


บทที่ 1 พื้นฐานที่ควรรู้ก่อนใช้ MySQL

อะไรทำให้ MySQL เป็นที่กล่าวขวัญและนิยมใช้กันมากในปัจจุบัน เป็นเพราะรางวัล Linux Magazine Editors Choice Award ที่ได้รับติดต่อกัน 4 ปีซ้อน ?? หรือเพราะเป็นของฟรี ?? อะไรทำให้องค์กรระดับโลกอย่าง NASA ยอมเปลี่ยนมาใช้ MySQL เป็นโปรแกรมบริหาร จัดการกับฐานข้อมูล และอะไรอีกมากมายเกี่ยวกับ MySQL มีคำตอบอยู่ในบทแรกนี้แล้ว

  • MySQL คืออะไร
  • ทำไมต้องใช้ MySQL
  • ถามจริงๆ เถอะ อ่านออกเสียง MySQL ว่าอย่างไร เขียนอย่างไร
  • ทำไมต้องใช้ชื่อว่า "มายเอสคิวแอล"
  • MySQL มีคุณสมบัติอะไรบ้างที่น่าสนใจ
  • จะหาข้อมูลต่างๆ เกี่ยวกับ MySQL ได้ที่ไหนบ้าง
  • จำนวนตารางข้อมูลและฐานข้อมูลของ MySQL มีได้เท่าไร
  • จำนวนคอลัมน์ต่อ 1 ตารางข้อมูล มีได้เท่าไร
  • ขนาดของตารางข้อมูล (table size) ที่ MySQL บันทึกได้ มีขนาดเท่าไร
  • ไม่คุ้นเคยกับการใช้งานแบบ command line ของ MySQL เลยจะทำอย่างไร

บทที่ 2 ติดตั้งและเริ่มต้นใช้งานทั้งเซิร์ฟเวอร์และไคลเอนต์

MySQL สามารถติดตั้งใช้งานกับระบบปฏิบัติการหลากหลายระบบ ทั้ง Windows และ Linux ซึ่งไม่ว่าจะเลือกติดตั้งลงในระบบใด หน้าตาโปรแกรม MySQL ล้วนเหมือนกันหมด ขั้นตอนการติดตั้งก็สะดวกและง่ายดาย ใช้เวลาแค่ไม่เกิน 10 นาทีเท่านั้น ก็พร้อมที่จะให้เราใช้งานระบบฐานข้อมูล ทั้งแบบที่เป็นเซิร์ฟเวอร์และ แบบไคลเอนต์

  • หา MySQL ได้จากที่ไหน
  • เมื่อได้มาแล้วจะติดตั้งอย่างไร
  • MySQL source distributions ติดตั้งอย่างไร
  • คู่มือ MySQL หาได้จากไหน
  • โฟลเดอร์ต่างๆ ที่ MySQL สร้างขึ้นมา มีอะไรบ้าง
  • จะใช้ภาษาไทยกับ MySQL ได้เลยหรือไม่
  • ทราบมาว่า MySQL เป็นดาต้าเบสเซิร์ฟเวอร์ แล้วอะไรคือโปรแกรมไคลเอนต์ของ MySQL
  • mysql client ใช้งานอย่างไร ต้องหามาติดตั้งหรือไม่
  • ฐานข้อมูล MySQL เก็บไว้ในไฟล์ที่มีชื่อและนามสกุลอะไร
  • จะรู้ได้อย่างไรว่า MySQL ที่เราใช้งานอยู่ มีฐานข้อมูลชื่ออะไร และฐานข้อมูลนั้นประกอบด้วยตารางข้อมูลชื่ออะไรบ้าง
  • จากผลลัพธ์ของคำสั่ง EXPLAIN ในคำตอบข้อที่แล้ว ค่าแต่ละค่าคืออะไร
  • อยากจะขอดูรายละเอียดของแต่ละคีย์สักหน่อย
  • จะสร้างฐานข้อมูล ต้องทำอย่างไร
  • จะลบฐานขัอมูล ต้องทำอย่างไร
  • จะสร้างตารางข้อมูล ต้องทำอย่างไร
  • ต้องการแก้ไขชื่อตารางข้อมูล จะทำอย่างไร
  • วิธีเพิ่ม-แก้ไข-ลบคอลัมน์ ทำอย่างไร
  • ช่วยบอกวิธิใช้งานและติดตั้ง mysqlfront หน่อย

บทที่ 3 หาคำตอบเรื่อง SQL (query) และฟังก์ชัน

SQL เป็นภาษาที่ใช้ทำงานร่วมกับโปรแกรมระบบฐานข้อมูล โดยมีมาตรฐานที่เรียกว่า ANSI SQL92 ตัวโปรแกรม MySQL เอง ก็รองรับมาตรฐานนี้เช่นเดียวกับโปรแกรมฐานข้อมูลอื่นๆ แต่ที่เหนือล้ำไปกว่านั้นคือ ผู้พัฒนา MySQL ได้เพิ่มคำสั่งภาษา SQL สำหรับใช้งานกับ MySQL ให้หลากหลายยิ่งขึ้น จนโดดเด่นไม่แพ้โปรแกรมฐานข้อมูลใดๆ

  • ภาษา SQL ที่ใช้กับ MySQL แตกต่างกับภาษา SQL ที่ใช้กับโปรแกรมฐานข้อมูลอื่นหรือไม่
  • คำสั่ง SELECT มีรูปแบบการเรียกใช้งานอย่างไร
  • คำสั่ง LIMIT น่าจะนำไปใช้กับกรณีไหนดี
  • เราสามารถใช้คำสั่ง SELECT เพื่อแสดงข้อมูลทางอื่นนอกจากทางหน้าจอได้หรือไม่
  • ทราบมาว่า เราสามารถเรียกใช้ข้อมูลจากตารางหลายๆ ตารางได้ โดยใช้คำสั่ง JOIN เชื่อมตารางเข้าด้วยกัน ช่วยอธิบายและยกตัวอย่างประกอบด้วย
  • ทราบมา (อีกเหมือนกัน) ว่า ในคำสั่งเกี่ยวกับการ join เราสามารถระบุ USING แทน ON ได้ สองกรณีนี้มีข้อแตกต่างกันหรือไม่ อย่างไร
  • การใช้คำสั่ง INSERT มีรูปแบบอย่างไร
  • เราสามารถนำข้อมูลจากตารางอื่น มาเพิ่มให้กับอีกตารางได้หรือไม่ อย่างไร
  • การใช้คำสั่ง UPDATE มีรูปแบบอย่างไร
  • การใช้คำสั่ง DELETE มีรูปแบบอย่างไร
  • คำสั่ง ALTER TABLE คืออะไร ใช้อย่างไร
  • อยากให้แสดงตัวอย่างคำสั่ง SQL ที่น่าสนใจอีกสักหน่อย

บทที่ 4 หาคำตอบเรื่องของ ODBC กับ MySQL

การเชื่อมโยงระหว่างโปรแกรมใช้งานต่างๆ เพื่อแลกเปลี่ยนข้อมูลกัน เป็นความสามารถอย่างหนึ่งที่สำคัญมากๆ สำหรับโปรแกรมฐานข้อมูล กรรมวิธีเชื่อมโยงที่นิยมกันวิธีหนึ่ง เรียกว่า ODBC ตัวอย่างเช่น การรับ-ส่ง ข้อมูลระหว่างโปรแกรม MS Access กับ MySQL โดยอาศัย ODBC ชื่อ MyODBC ซึ่งบทนี้ เรามีคำตอบให้คุณเกี่ยวกับเรื่องนี้โดยเฉพาะ

  • จะใช้งาน MySQL ผ่านทาง ODBC อย่างไร
  • ตั้งค่า DSN หรือ Data Source Name หรือจะใช้ DSNLess ได้ไหม อย่างไร
  • ตอนนี้ได้สร้าง DSN ขึ้นมาแล้ว แต่ยังไม่เข้าใจว่าสร้างเอาไว้ทำไม
  • จะใช้ MS Access เป็นฟรอนต์เอนด์ (front-end) ต้องทำอย่างไร
  • เชื่อมโยงฐานข้อมูล MySQL ให้กับ MS Access ได้แล้ว มองเห็นข้อมูลแล้วขั้นต่อไปอยากเห็นตัวอย่างการใช้งาน MySQL ผ่านทาง MS Access สักหน่อย
  • มีตารางข้อมูลเดิมที่เป็นของ Access อยู่แล้ว จะนำไปใช้กับ MySQL ได้เลยหรือไม่
  • ต้องการนำเอาตารางข้อมูลของ MySQL มาเก็บยัง Access จะต้องทำอย่างไร
  • ฟรอนต์เอนด์ที่ใช้งานกับ DSN ได้ มีแค่ MS Access หรือเปล่า

บทที่ 5 หาคำตอบเรื่อง ASP กับ MySQL

สำหรับการพัฒนา web application เพื่อทำงานกับฐานข้อมูลแล้ว การใช้สคริปต์ ASP เป็นทางเลือกหนึ่งที่ทำได้ไม่ยาก แค่เขียนสคริปต์ไม่กี่บรรทัด โดยดึงข้อมูลจาก MySQL มาใช้ เราก็จะได้เว็บเพจแบบไดนามิกอย่างสะดวก รวดเร็ว เพิ่มความหลากหลาย และความถูกต้องทันสมัยของข้อมูล ไม่ว่าจะเป็นในรูปแบบอินทราเน็ต หรืออินเทอร์เน็ตก็ตาม

  • ไคลเอนต์/เซิร์ฟเวอร์ คืออะไร
  • ไม่ทราบว่า เราสามารถใช้ ASP กับ MySQL ได้หรือเปล่า
  • ต้องเขียนสคริปต์ ASP อย่างไรจึงจะใช้งาน MySQL ได้
  • อยากให้ยกตัวอย่างสคริปต์ ASP ที่ใช้งานกับ MySQL ด้วย
  • จุดสำคัญของสคริปต์ ASP ตามตัวอย่างในคำตอบที่แล้ว มีที่ไหนบ้าง เวลาจะนำไปดัดแปลงใช้งาน ต้องทำอย่างไร
  • แสดงตัวอย่างสคริปต์แบบอื่นๆ อีกได้ไหม จะได้เห็นตัวอย่างหลากหลายแบบ
  • จากตัวอย่างที่ผ่านมา มีการเก็บข้อมูลเป็นไฟล์เพลง mp3 เราสามารถเปิดฟังเพลงจากตารางข้อมูลได้หรือไม่ ถ้าได้ จะต้องทำอย่างไร
  • จะใช้ DSNLess กับ MySQL ได้ไหม
  • ขออีกสักคำถามหนึ่ง คือ อยากทราบว่า ASP กับ MySQL เข้าคู่กันได้ดีหรือเปล่า

บทที่ 6 หาคำตอบเรื่อง Visual Basic กับ MySQL

Visual Basic เป็นภาษาที่ มีผู้นิยมใช้พัฒนาโปรแกรมทำงานในหลายๆ ด้าน รวมทั้งงานด้านฐานข้อมูลด้วย การเขียนโปรแกรม Visual Basic ทำงานร่วมกับ MySQL มีหลายวิธี ทั้งอาศัย ODBC เข้าช่วยในการติดต่อกับ MySQL หรือไม่ก็ติดต่อกันตรงๆ ผ่านทาง API หรือจะเป็นแบบ CGI ก็ยังได้ ลองเลือกใช้ดูสักวิธี แล้วจะพบว่า Visual Basic ก็ไม่เลวทีเดียว

  • ทำไมใช้ Visual Basic มาเขียนโปรแกรมไคลเอนต์
  • จะใช้ VB เขียนโปรแกรมไคลเอนต์ ต้องทำอย่างไร
  • อยากดูวิธีการเขียนโปรแกรม VB ติดต่อกับ MySQL แบบที่ 1 ซึ่งเป็นการติดต่อผ่านทาง ADODC สักหน่อย
  • แล้ววิธีการเขียนโปรแกรม VB ติดต่อกับ MySQL แบบที่ 2 คือผ่านทางVBMySQLAPI ต้องทำอย่างไร
  • ถ้าอย่างนั้น ใช้วิธี VBMySQLAPI ดีกว่าใช้วิธีผ่าน MyODBC หรือเปล่า
  • คราวนี้ขอดูวิธีการเขียนโปรแกรม VB ติดต่อกับ MySQL แบบที่ 3 โดยผ่านทาง CGI บ้าง

บทที่ 7 หาคำตอบเรื่อง PHP กับ MySQL

คู่ของ MySQL กับ PHP ต้องยกให้เป็นคู่สร้างคู่สมกัน เพราะ PHP มีฟังก์ชันสำหรับเรียกใช้งาน MySQL อย่างครบครัน นอกเหนือไปจากการเขียนสคริปต์แบบเรียบง่าย ตามสไตล์ PHP อยู่แล้ว ปัจจัยอีกอย่างที่ทำให้มีผู้นิยมใช้ PHP ร่วมกับ MySQL ก็คือความเร็วในการทำงาน รวมทั้งไม่ผูกมัดว่าจะต้องใช้กับระบบปฏิบัติการใดๆ โดยเฉพาะ ทำให้ชีวิตของโปรแกรมเมอร์ สบายขึ้นเยอะ

  • ทำไมถึงยกให้ PHP และ MySQL เป็นคู่สร้างคู่สม
  • ว่ากันว่า ใครๆ ชื่นชม PHP กับ MySQL เพราะฟรี ???
  • ช่วยขยายความเกี่ยวกับ PHP ที่จะนำมาใช้กับ My SQL หน่อย
  • ต้องติดตั้งโปรแกรมอะไรเพิ่มเติมให้กับ PHP หรือไม่ จึงจะสามารถใช้งานร่วมกับ MySQL ได้
  • อยากขอดูตัวอย่างฟังก์ชันของ PHP ที่สามารถใช้ในการทำงานร่วมกับ MySQL
  • การเขียนสคริปต์ PHP เพื่อทำงานกับ MySQL มีขั้นตอนอย่างไรบ้าง
  • เข้าใจส่วนที่ 1 กับส่วนที่ 4 พอสมควรแล้ว อยากทราบเกี่ยวกับส่วนที่ 2 กับส่วนที่ 3 ว่าจะทำอะไรกับ MySQL บ้าง
  • ดูสคริปต์ PHP ครบทั้งส่วนที่ 1 ถึงส่วนที่ 4 แล้ว อยากให้ช่วยอธิบายอย่างละเอียดอีกที ว่าสคริปต์ทำงานอย่างไร
  • อยากได้สคริปต์ PHP ที่จะใช้งานกับ MySQL แบบอเนกประสงค์เลยจะได้หรือเปล่า
  • ขอดูสคริปต์อเนกประสงค์อีกสักตัวอย่างหนึ่งได้ไหม

บทที่ 8 หาคำตอบเรื่อง Delphi กับ MySQL

ว่ากันว่านี่สิของแท้ หากโปรแกรมไหนที่พัฒนาด้วย Delphi จะเป็นที่ยอมรับว่าเจ๋งจริง ความโดดเด่นของ Delphi คือสามารถติดต่อกับ MySQL ผ่านทาง native library ได้รวดเร็วมาก การใช้ Delphi พัฒนาโปรแกรมไคลเอนต์เพื่อทำงานกับ MySQL ไม่ยากอย่างที่คิด และผลที่ได้ก็มีแค่ไฟล์ .exe และไฟล์ .dll คู่เดียว ซึ่งเพียงพอที่จะทำงานกับ MySQL แล้ว

  • จะใช้ Delphi กับ MySQL มีข้อดีอย่างไร
  • จะเริ่มต้นที่ตรงไหน ??? 231
  • อยากจะเขียนโปรแกรมด้วย Delphi เพื่อใช้งานร่วมกับ MySQL จะต้องเริ่มต้นอย่างไร
  • แล้วต้องเพิ่มเติมอะไรเข้าไปใน Project ที่สร้างใหม่อีกหรือไม่ จึงจะสามารถใช้งานร่วมกับ MySQL ได้
  • แล้วมีอะไรอยู่ใน _libmysq.pas บ้างล่ะ
  • ยังมองไม่ออกว่า Delphi Project จะทำงานกับ MySQL ได้อย่างไร ช่วยอธิบายหน่อย
  • ติดต่อ MySQL ได้แล้ว ยกเลิกการติดต่อก็ทำได้แล้ว งั้นขั้นตอนต่อไปคืออะไร
  • เห็นภาพประกอบภาพสุดท้ายในคำตอบข้อที่แล้ว มีการใช้คำสั่ง SHOWTABLE STATUS ช่วยอธิบายด้วยว่าเป็นคำสั่งสำหรับทำอะไร

บทที่ 9 หาคำตอบเรื่องการทำสำเนาข้อมูล

MySQL มีความสามารถใน การทำสำเนาหรือเก็บสำรองข้อมูล จากเซิร์ฟเวอร์ เครื่องหนึ่งไปยังอีกเครื่องหนึ่งอย่างอัตโนมัติ เรียก ว่า auto replication ซึ่งทำงานง่าย สะดวก และ รวดเร็ว โดยเราสามารถใช้งาน MySQL ไปตาม ปกติ และปล่อยให้ MySQL ทำสำเนาข้อมูลควบคู่ ไปด้วย อะไรจะสบายอย่างนี้ หรือถ้าจะเลือกวิธีที่ ซับซ้อน MySQL ก็มีให้เหมือนกัน

  • หากเราต้องการทำสำเนาหรือเก็บสำรองตารางข้อมูล ต้องทำอย่างไร
  • เมื่อต้องการนำตารางข้อมูลที่สำรองเอาไว้กลับมาใช้ ต้องทำอย่างไร
  • MySQL สามารถทำสำรองข้อมูลเป็นไฟล์ข้อความ และอ่านกลับมาได้หรือไม่
  • จากคำอธิบายในคำตอบข้อที่แล้ว แสดงว่า mysql dump จะส่งคำสั่ง SQLหรือ query ไปบันทึกลงไฟล์ข้อความ แล้วถ้าเราจะส่งเฉพาะข้อมูลไปบันทึกไว้ จะทำได้หรือไม่
  • การทำสำเนาข้อมูลแบบ replication คืออะไร
  • ทำไมต้องทำสำเนาฐานข้อมูลแบบ replication แทนที่จะเลือกทำสำเนาด้วยวิธีอื่น (เช่นการใช้คำสั่ง Backup)
  • ช่วยอธิบายกระบวนการ replication ให้ละเอียดเลยได้ไหม

บทที่ 10 หาคำตอบเรื่องการรักษาความปลอดภัย

นอกเหนือจากการกำหนดสิทธิของผู้ใช้งานแต่ละราย ให้มีขอบเขตการทำงานแตกต่างกันตามความเหมาะสมและความจำเป็น อันเป็นกฎเหล็กที่โปรแกรมฐานข้อมูลควรจะมีอยู่แล้ว ระบบ MySQL ยังอาศัยเทคนิคที่เรียกว่า ACLs ในการระแวดระวังภัยที่จะเกิดกับข้อมูลด้วย ซึ่งการกำหนดสิทธิและการกำหนด ACLs ไม่มีอะไรยุ่งยาก สำหรับผู้ดูแลระบบฐานข้อมูลเลย

  • MySQL ใช้หลักการอะไรในการรักษาความปลอดภัย
  • ปกติแล้วระบบฐานข้อมูลขนาดใหญ่จะมีกฎเกณฑ์ในการใช้ฐานข้อมูล แล้ว MySQL มีหรือเปล่า
  • เห็นคำตอบข้อที่แล้วเอ่ยถึงระดับสิทธิของผู้ใช้ว่ามี 4 ระดับในการเรียกดูเรียกใช้ข้อมูล อยากให้แจกแจงรายละเอียดแต่ละระดับสักหน่อย
  • ขอขัดจังหวะหน่อย อยากทราบว่าเราสามารถเรียกดูบัญชีรายชื่อผู้ใช้ที่ได้รับอนุญาตตามคำสั่ง GRANT ได้อย่างไร
  • อธิบายรายละเอียดเกี่ยวกับระดับโฮสต์ไปแล้ว อยากให้แจกแจงระดับอื่นๆ ต่อเลย
  • ที่มักจะย้ำคำว่า "สิทธิต่างๆ" มาตลอดนั้น หมายถึงสิทธิอะไรบ้าง ช่วยแจกแจงรายละเอียดหน่อย
  • อยากจะดูตัวอย่างการใช้คำสั่ง GRANT สักหน่อย

ภาคผนวก ก ประเภทข้อมูลตามข้อกำหนดของ MySQL

ภาคผนวก ข วิธีระบุประเภทข้อมูล Internet Media Type

ภาคผนวก ค สรุป error message ที่มีโอกาสพบบ่อย

  • ไฟล์ .err เก็บรวบรวมข้อความแจ้งผลการทำงาน
  • error message ที่แจ้งออกมาทางหน้าจอ
  • ปัญหาอื่นๆ ที่อาจจะเกิดขึ้นแบบคาดไม่ถึง

ภาคผนวก ง สารพันเว็บไซต์ MySQL