หน้าเว็บ

วันเสาร์ที่ 23 มกราคม พ.ศ. 2559

SQL Tutorial

  • SQL Home
  • SQL Intro
  • SQL Syntax
  • SQL Select
  • SQL Distinct
  • SQL Where
  • SQL And & Or
  • SQL Order By
  • SQL Insert Into
  • SQL Update
  • SQL Delete

SQL Home

SQL เป็นภาษามาตรฐานที่ใช้ในการเข้าถึง database (ฐานข้อมูล)
SQL Tutorial จะสอนในหลายเรื่องวิธีการเข้าถึง SQL และการจัดการข้อมูลข้างใน (DBMS): MySQL, SQL server, Access, Oracle, Sybase, DB2 และอื่นๆ

รูปหน้าเว็บ w3schools ที่ SQL Home
**ศึกษาเพิ่มเติมที่ http://www.w3schools.com/sql/default.asp


SQL Intro

What is SQL?
  • SQL ย่อมาจาก Structured Query Language [1]
  • SQL ช่วยให้เข้าถึงและจัดการข้อมูลใน database
  • SQL ได้ถูกประกาศให้เป็นภาษามาตรฐานสำหรับระบบการจัดการฐานข้อมูลเชิงสัมพันธ์ (RDBMS) โดย องค์กร แอนซี (ANSI: American National Standards Institute)
What can SQL do?
  • SQL QUERIES:  สามารถดำเนินการสอบถามกับฐานข้อมูล
  • SQL RETRIEVE:  สามารถเรียกดูข้อมูลจากฐานข้อมูล
  • SQL INSERT:  สามารถที่จะเพิ่มข้อมูลหรือเพิ่มเรคอร์ดเข้าไปในฐานข้อมูล
  • SQL UPDATE:  สามารถปรับปรุงระเบียบในฐานข้อมูล
  • SQL DELETE:  สามารถลบข้อมูลหรือเรคอร์ดใดในฐานข้อมูล
  • SQL CREATE Database:  สามารถที่จะสร้างฐานข้อมูลใหม่
  • SQL CREATE New Table:  สามารถสร้างตารางใหม่ในฐานข้อมูล
  • SQL CREATE Procedures:  สามารถสร้างระเบียบการจัดเก็บในฐานข้อมูล
  • SQL CREATE Views:  สามารถสร้างมุมมองในฐานข้อมูล
  • SQL SET:  สามารถกำหนดสิทธิ์บนตาราง, ระเบียบการจัดเก็บ และมุมมอง
SQL is a standard But..  ทุกระบบจัดการฐานข้อมูลจะใช้คำสั่งพื้นฐานของภาษา SQL ได้เหมือนๆกัน แต่อาจมีคำสั่งพิเศษที่แตกต่างกันบ้าง เนื่องจากบริษัทผู้ผลิตแต่ละรายก็พยายามที่จะพัฒนา RDBMS ของตนให้เด่นกว่าระบบอื่นโดยเพิ่มคุณสมบัติที่เกินข้อกำหนดของ ANSI ซึ่งคิดว่าเป็นประโยชน์ต่อผู้ใช้เข้าไป[1]

Using SQL in Your Web Site
ในการสร้างเว็บไซต์ที่จะแสดงข้อมูลจากฐานข้อมูล สิ่งที่ต้องมี มีดังนี้
  • An RDBMS database Program (i.e. MS Access, SQL sever, MySQL)
  • ใช้สคริปต์ด้านเซิร์ฟเวอร์[2] เช่น PHP หรือ ASP
  • ใช้ SQL ที่จะรับข้อมูลที่ต้องการ
  • ใช้ HTML/CSS  จะแสดงทั้งข้มูลและรูปแบบแสดงผลเข้าด้วยกัน

**scripting language  : โค้ดที่เขียนจะถูกตีความ(Interpreted) แบบแปลและ execute ไปทีละคำสั่งผ่าน software พวก script Engine ที่สนับสนุน script นั้นๆ สรุปคือ script language เป็น interpreted language ต้องอาศัย run บนโปรแกรมอื่น [3]
***server-side script เช่น PHP, ASP, JSP, CGI เป็นภาษา script ที่ประมวลผลที่ฝั่ง server แล้วส่งผลลัพธ์ไปแสดงผลที่ฝั่ง client ผ่านโปรแกรมเว็บบราวเซอร์ [3]

RDBMS ย่อมาจาก Relational Database Management System
ข้อมูลใน RDBMS จะถูกการจัดเก็บในฐานข้อมูลที่เรียกว่าตาราง ซึ่งในตารางจะมีกลุ่มของรายการข้อมูลที่เกี่ยวข้องและประกอบด้วยคอลัมน์และแถว


SQL Syntax

Database Table
ฐานข้อมูลส่วนใหญ่นั้นจะประกอบด้วยอย่างน้อยหนึ่งตาราง  แต่ละตารางจะถูกระบุโดยชื่อ  ในตารางจะมีแถวที่มีข้อมูลอยู่  ซึ่งในเว็บ w3school นี้จะใช้ตัวอย่าง Northwind 
** ดูตัวอย่างตารางที่ http://www.w3schools.com/sql/sql_syntax.asp

SQL Statement
จะแสดงตัวอย่างการใช้คำสั่ง SELECT ข้อมูลทุกตัวที่บันทึกไว้ (*) ในตารางที่ชื่อ "Customers"

SELECT * FROM Customers;

Try it yourself

รูปผลลัพธ์ที่ได้เมื่อใช้คำสั่ง select ทั้งหมดในตาราง Customers 
ที่อยู่ใน Northwind sample database

Keep in Mind That... SQL จะไม่สนใจ ตัวพิมพ์ใหญ่-พิมพ์เล็ก เช่น คำสั่ง select จะเหมือน SELECT

Semicolon after SQL statements?
ในบางระบบฐานข้อมูลจะต้องใส่เครื่องหมายอัฒภาค(;)  เพื่อบอกว่าจบแต่ละ SQL statement
semicolon เป็นวิธีมาตรฐานที่การแยกแต่ละคำสั่ง SQL ในระบบฐานข้อมูล  ที่จะช่วยให้เมื่อมีมากกว่าหนึ่งคำสั่ง SQL ที่จะ execute ในการเรียกร้องที่เหมือนกันไปยังเซิร์ฟเวอร์
ในที่นี้เราจะใช้ semicolon ในตอนท้ายของแต่ละคำสั่ง SQL


SQL SELECT Statement

SELECT เป็นคำสั่งใช้เลือกข้อมูลจากฐานข้อมูล  ผลที่ได้จะถูกเก็บไว้ในตารางที่เรียกว่า result-set

SQL SELECT Syntax

SELECT column_name,column_name
FROM table_name;

และ

SELECT * FROM table_name;

SELECT Column Example
ในตัวอย่างนี้จะเลือกที่คอลัมน์ "CustomerName" และ "City" จากตาราง "Customers"

SELECT CustomerName,City FROM Customers;

Try it yourself



รูปผลลัพธ์ที่ได้เมื่อใช้คำสั่ง select คอลัมน์ "CustomerName" และ "City"
จากตาราง Customers ที่อยู่ใน Northwind sample database

Navigation in  result-set
ส่วนใหญ่ระบบซอฟแวร์ database สามารถตั้งค่าในการเขียนโปรแกรมได้


SQL SELECT DISTINCT Statement

คำสั่ง SELECT DISTINCT ใช้เมื่อต้องการแค่ค่าที่แตกต่ากัน

SQL SELECT DISTINCT Syntax

SELECT DISTINCT column_name,column_name
FROM table_name;


SELECT DISTINCT Example
ในตัวอย่างนี้จะเลือกข้อมูลที่แตกต่างกันในคอลัมน์ "City" จากตาราง "Customers"

SELECT DISTINCT City FROM Customers;

Try it yourself

รูปผลลัพธ์ที่ได้ในคอลัมน์ "City" จะมีข้อมูลที่ไม่ซ้ำกัน
เห็นได้จากจำนวนข้อมูลที่แสดง 69 เรคอร์ด จากข้อมูลทั้งหมดใน Customers มีจำนวน 91 เรคอร์ด


SQL WHERE Clause

WHERE เป็นคำสั่งที่ใช้ตัวส่วนที่ไม่ต้องการออกไป จะเป็นการเลือกที่เฉพาะเจาะจง

SQL WHERE Syntax

SELECT column_name,column_name
FROM table_name
WHERE column_name operator value;


WHERE Clause Example
ในตัวอย่างนี้จะใช้คำสั่ง SQL ที่เลือก Customers ที่มาจาก country "Mexico" ทั้งหมด จากตาราง "Customers"

SELECT * FROM Customers
WHERE Country='Mexico';


Try it yourself

รูปผลลัพธ์เมื่อเลือก Customers ทั้งหมด (*) ที่มาจาก (Country) "Mexico" จากตาราง Customers 


เมื่อเราเพิ่มคำสั่ง WHERE Country='Mexico' จะพบว่า Customers ที่มาจาก Mexico มีจำนวน 5 เรคอร์ด จากข้อมูลทั้งหมดในตาราง Customers มีจำนวน 91 เรคอร์ด

OperatorsDescription
=Equal (เท่ากับ)
<>Not equal (ไม่เท่ากับ)  Note: บาง version SQL ใช้ !=
>Greater than (มากกว่า)
<Less than (น้อยกว่า)
>=Greater than or equal (มากกว่า หรือ เท่ากับ)
<=Less than or equal (น้อยกว่า หรือ เท่ากับ)
BETWEENBetween an inclusive range (ค่าที่อยู่ระหว่าง...) w3school
LIKESearch for a pattern (ค้นหา...) w3school
INTo specify multiple possible values for a column
(เมื่อต้องการระบุค่าในหลายคอลัมน์)
w3school


รูปผลลัพธ์เมื่อเลือก Customers ทั้งหมด (*) ที่มี CustomerID น้อยกว่าหรือเท่ากับ 10
จากตาราง Customers 

เมื่อเราเพิ่มคำสั่ง WHERE CustomerID<=10 จะแสดงผล Customers ที่มี CustomerID 1-10 ซึ่งมีจำนวน 10 เรคอร์ด จากข้อมูลทั้งหมดในตาราง Customers มีจำนวน 91 เรคอร์ด


SQL And & Or Operators

คำสั่ง AND และ OR เป็นโอเปอเรเตอร์พื้นฐานในการจัดระเบียบที่มากกว่าหนึ่งเงื่อนไข

AND Operator Example
ในตัวอย่างนี้จะใช้คำสั่ง SQL เลือก Customers ที่มาจาก country "Germany" และ City "Berlin" ทั้งหมด จากตาราง "Customers"

SELECT * FROM Customers
WHERE Country='Germany'
AND City='Berlin';


Try it yourself

รูปผลลัพธ์เมื่อเลือก Customers ทั้งหมด (*) ที่มาจาก (Country) "Germany"
และ City = "Berlin" จากตาราง Customers 

ที่ country "Germany" และ City "Berlin" จากตาราง "Customers" จะมี 1 เรคอร์ด จะสังเกตว่าเมื่อใช้ AND ต้องตรงทั้งสองเงื่อนไขและไม่ขัดแย้งกันเองจึงจะแสดงผลลัพธ์

OR Operator Example
ในตัวอย่างนี้จะใช้คำสั่ง SQL ที่เลือก Customers ที่มาจาก City "München" หรือ City "Berlin" ทั้งหมด จากตาราง "Customers"

SELECT * FROM Customers
WHERE City='Berlin'
OR City='München';


Try it yourself

รูปผลลัพธ์เมื่อเลือก Customers ทั้งหมด (*) ที่มาจาก City "München"
หรือ City "Berlin" จากตาราง Customers 

ที่มาจาก City "München" หรือ City "Berlin" จากตาราง "Customers" จะมี 2 เรคอร์ด จะสังเกตว่าเมื่อใช้ OR จะแสดงผลลัพธ์ถ้าเข้าอย่างน้อยหนึ่งเงื่อนไข


SQL ORDER BY keyword

SQL ORDER BY Keyword เป็นคำสั่งที่ใช้เรียงข้อมูลใน Result-set

SQL ORDER BY Syntax

SELECT column_name,column_name
FROM table_name
ORDER BY column_name ASC|DESC, column_name ASC|DESC;


ORDER BY Example
ในตัวอย่างนี้จะใช้คำสั่ง SQL เลือกตารางชื่อ Customers ให้เรียง (ORDER BY) ชื่อ Country ตามตัวอักษร

SELECT * FROM Customers
ORDER BY Country;


Try it yourself


รูปผลลัพธ์เมื่อเรียงตาราง Customers ตามชื่อ Country



SQL INSERT INTO Statement

คำสั่ง INSERT INTO จะเพิ่มเรคอร์ดใหม่ในตาราง

SQL INSERT INTO Syntax

INSERT INTO table_name
VALUES (value1,value2,value3,...);

ถ้าต้องการแทรกมากกว่าหนึ่งคอลัมน์
 
INSERT INTO table_name (column1,column2,column3,...)
VALUES (value1,value2,value3,...);

INSERT INTO Example
ในตัวอย่างนี้จะใช้คำสั่ง SQL INSERT INTO ในตารางชื่อ Customers ที่คอลัมน์ CustomerName, ContactName, Address, City, PostalCode และ Country ตามลำดับ ให้ใส่ค่าในเรคอร์ดดังนี้ 'Cardinal','Tom B. Erichsen','Skagen 21','Stavanger','4006' และ 'Norway' ตามลำดับ

INSERT INTO Customers (CustomerName, ContactName, Address, City, PostalCode, Country)
VALUES ('Cardinal','Tom B. Erichsen','Skagen 21','Stavanger','4006','Norway');


Try it yourself




รูปผลลัพธ์เมื่อ Run SQL ตามโค้ดข้างบน

จะพบว่ามีการเปลี่ยนแปลงข้อมูลใน Database จากเดิมที่มีเรคอร์ด 91 เปลี่ยนเป็น 92


SQL UPDATE Statement

คำสั่ง UPDATE จะปรับปรุงแก้ไขข้อมูลใน database

SQL UPDATE Syntax

UPDATE table_name
SET column1=value1,column2=value2,...
WHERE some_column=some_value;

UPDATE Example
ในตัวอย่างนี้จะใช้คำสั่ง SQL UPDATE ที่ตารางชื่อ Customers โดย set ให้ CustomerName เป็น Alfreds Futterkiste และ ContactName เป็น  Maria Anders

UPDATE Customers
SET ContactName='Alfred Schmidt', City='Hamburg'
WHERE CustomerName='Alfreds Futterkiste';


Try it yourself


SQL DELETE Statement

DELETE เป็นคำสั่งใช้ลบเรคอร์ดในตาราง

SQL DELETE Syntax

DELETE FROM table_name WHERE some_column=some_value;

DELETE Example
ในตัวอย่างนี้จะใช้คำสั่ง SQL DELETE ในตารางที่ชื่อ "Customers"  ให้ลบที่ CustomerName เป็น Alfreds Futterkiste และ ContactName เป็น  Maria Anders

DELETE FROM Customers
WHERE CustomerName='Alfreds Futterkiste' AND ContactName='Maria Anders';


Try it yourself

รูปผลลัพธ์เมื่อลบ CustomerName "Alfreds Futterkiste"
และ ContactName  "Maria Anders" จากตาราง Customers 

จะเกิดการเปลี่ยนแปลงจำนวนข้อมูลใน database จากเดิมที่ตาราง Customers มี 91 เรคอร์ด แต่เมื่อ DELETE ข้อมูลดังกล่าวไป  แถวจะลดลง ข้อมูลในตารางจะเหลือ 90 เรคอร์ด

Ok
[1] ภาษาสอบถามเชิงโครงสร้าง (SQL) ศึกษาเพิ่มเติมที่: https://th.wikipedia.org/wiki/ภาษาสอบถาม

......................................................

ไม่มีความคิดเห็น:

แสดงความคิดเห็น