Friday, April 4, 2014

SQL Syntax ยากไหมนะ มาเรียนรู้กันครับ

ไปลองเปิด google translate ดูสิว่า Syntax แปลว่าอะไรนะ แปลออกมา คือ วากยสัมพันธ์ งงกันเลยครับพี่น้อง เอาเป็นว่ามันคือประโยคคำสั่งของภาษา SQL ไว้เรียกใช้แล้วกัน ไม่ใช่อะไรที่ยากเลย เพราะในทางคอมพิวเตอร์  พวก programmer ก็ใช้ syntax นี่แหล่ะในการเขียนโปรแกรม ใครใช้ภาษาอะไรเขียนก็ต้องทำความรู้จักหรือคุ้นเคยกับ syntax ของภาษานั้นๆครับ

ที่นี่เราจะมาเรียนภาษา SQL เราก็ต้องมาเรียนรู้ Syntax ของภาษา SQL กันนะครับ
ย้อนกลับมาดูเรื่อง Database Table หรือตารางที่อยู่ในฐานข้อมูล
ฐานข้อมูลส่วนใหญ่จะเก็บข้อมูลในรูปแบบตารางข้างในฐานข้อมูล ซึ่งแต่ละตารางจะถูกตั้งชื่อเอาไว้ให้สัมพันธ์กับข้อมูลที่เก็บบันทึกไว้ เช่น ตาราง Customers ก็เก็บข้อมูลเกี่ยวกับลูกค้า หรือตาราง Orders ก็เก็บข้อมูลเกี่ยวกับการสั่งซื้อทั้งหมด โดยที่ข้อมูลจะถูกเก็บเป็นแถว หรือเรียกว่า rows

ในบทความนี้จะใช้ฐานข้อมูลตัวอย่างชื่อว่า Northwind Sample database ที่อยู่ในโปรแกรม MS Access และ MS SQL Server

ด้านล่างจะเป็นตัวอย่างของตาราง Customers:
CustomerIDCustomerNameContactNameAddressCityPostalCodeCountry
1Alfreds FutterkisteMaria AndersObere Str. 57Berlin12209Germany
2Ana Trujillo Emparedados y heladosAna TrujilloAvda. de la Constitución 2222México D.F.05021Mexico
3Antonio Moreno TaqueríaAntonio MorenoMataderos 2312México D.F.05023Mexico
4Around the HornThomas Hardy120 Hanover Sq.LondonWA1 1DPUK
5Berglunds snabbköpChristina BerglundBerguvsvägen 8LuleåS-958 22Sweden

ตางรางด้านบนมีทั้งหมด 5 แถวหรือเรียนกว่า 5 Records โดยแต่ละแถวก็จะเป็นข้อมูลลูกค้าแต่ละราย ซึ่งมีรายละเอียดตามคอลัมน์ด้านบน

ข้อความ SQL Statements 
เวลาเราจะทำอะไรกับฐานข้อมูล เราจะใช้ภาษา SQL หรือใช้ SQL Statements
ด้านล่างจะเป็นภาษา SQL Statement เพื่อเรียก Records ทั้งหมดในตาราง Customers ขึ้นมาแสดง

ยกตัวอย่าง
SELECT * FROM Customers;
เพื่อนๆสามารถเข้าไปลองเล่นได้ที่ Link ด้านล่างครับ จะเป็นระบบจำลองที่สามารถพิมพ์สั่งงานฐานข้อมูลที่เราสามารถลองทำได้เหมือนเวลาเราไปใช้คำสั่งบนโปรแกรมฐานข้อมูลต่างๆได้

จำให้ขึ้นใจนำครับ : ภาษา SQL เป็นภาษาที่ไม่เป็น case sensitive หมายความว่าอย่างไร หมายความว่าไม่สนใจว่าเราจะพิมพ์ตัวพิมพ์เล็กหรือตัวพิมพ์ใหญ่ให้ความหมายเหมือนกัน เช่น เวลาเราพิมพ์คำสั่ง select จะมีความหมายเดียวกับเวลาเราพิมพ์ว่า SELECT 
แต่ส่วนใหญ่เราจะพิมพ์ภาษา SQL ด้วยตัวพิมพ์ใหญ่ เพื่อให้เข้าใจจะง่ายในการสังเกตุว่าเป็นคำสั่งในการใช้งาน

เราจำเป็นต้องพิมพ์ Semicolon หรือตัว ; เวลาจบประโยคคำสั่ง SQL หรือไม่?
ต้องบอกว่าบางระบบฐานข้อมูลต้องมีตัว ; ตอนจบท้ายประโยคคำสั่ง ขึ้นอยู่กับแต่ละระบบว่าต้องพิมพ์หรือไม่

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

ในบทความนี้เราจะใส่ ; เป็นหลักในประโยค SQL Statement

คำสั่ง SQL ที่สำคัญที่สุดที่ควรรู้ได้แก่

SELECT - ดึงข้อมูลจากฐานข้อมูล
UPDATE - อัปเดทข้อมูลในฐานข้อมูล
DELETE - ลบข้อมูลในฐานข้อมูล
INSERT INTO - เพิ่มข้อมูลใหม่ในฐานข้อมูล
CREATE DATABASE - สร้างฐานข้อมูลใหม่
ALTER DATABASE - แก้ไขฐานข้อมูล
CREATE TABLE - สร้างตารางใหม่
ALTER TABLE - แก้ไขตาราง
DROP TABLE - ลบตาราง
CREATE INDEX - สร้างดัชนีใหม่ หรือเรียกว่า index เพื่อใช้ในการค้นหา (search key)
DROP INDEX - ลบดัชนี หรือลบ index

SQL คืออะไรนะ?????

SQL เป็นภาษามาตรฐานในการเข้าถึงฐานข้อมูล


เนื่องจากภาษา SQL นี่สามารถใช้เพื่อเข้าถึงและจัดการกับฐานข้อมูลได้หลากหลาย ซึ่งก็คือระบบฐานข้อมูลที่มาจากหลากหลายเจ้าหลากหลายผู้พัฒนา เช่น MySQL, SQL Server, Access, Oracle, Sybase, DB2, และระบบฐานข้อมูลอื่น.


  




จริงๆแล้วภาษา SQL คืออะไรกันแน่นะ มาขยายความทำความเข้าใจกันก่อนนะครับ
  • SQL ย่อมาจากคำว่า Structured Query Language
  • SQL สามารถให้เราเข้าถึงข้อมูลและจัดการข้อมูลภายในฐานข้อมูลได้
  • SQL อยู่บนภาษาพื้นฐานแบบ ANSI หรือย่อมาจาก (American National Standards Institute)
ถือแม้ว่า SQL จะใช้รูปแบบ ANSI เป็นมาตรฐานแต่ก็ต้องขึ้นอยู่กับเวอร์ชั่น ซึ่งอาจจะมีความแตกต่างกันบ้าง แต่โดยคำสั่งเบื้องต้นส่วนใหญ่จะเหมือนกัน เช่น SELECT, UPDATE, DELETE, INSERT, WHERE เป็นหลักๆครับ

เราสามารถใช้ภาษา SQL ในการมาช่วยทำงานกับเวบไซต์ได้เช่นกัน เพราะในการสร้างเวปไซต์นั้น เราจำเป็นต้องมีส่วนประกอบดังนี้
  • โปรแกรมฐานข้อมูลพวก RDBMS เช่น MS Access, SQL Server, MySQL
  • ต้องเรียนรู้ภาษา การประมวลผลฝั่ง Server หรือเรียกว่า server-side scripting language เช่น ภาษPHP หรือ ภาษาASP
  • ที่นี่เราจะใช้ภาษา SQL ในการดึงข้อมูลที่เราต้องการ
  • แน่นอนทำเวปไซต์ต้องรู้ภาษา HTML และเดี่ยวนี้ก็ต้องเรียนรู้ CSS
อ่ะแล้วเจ้า RDBMS คืออะไรเหรอครับ มันย่อมาจากคำว่า Relational Database Management System
RDBMS เป็นพื้นฐานของภาษา SQL และเป็นระบบฐานข้อมูลที่ทันสมัยก็ใช้เช่น MS SQL Server, IBM DB2, Oracle, MySQL, และ Microsoft Access.
ข้อมูลในระบบ RDBMS ถูกเก็บในฐานข้อมูล โดยเก็บในรูปแบบตารางหรือ tables

ตาราง คือ ส่วนของกลุ่มข้อมูลที่มีความสัมพันธ์กันโดยเก็บในรูปแบบ คอลัมน์และแถว