ภาษา SQL (สามารถอ่านออกเสียงได้ 2 แบบ คือ “เอสคิวแอล” (SQL) หรือ “ซีเควล” (Sequel) ย่อมมาจาก Structured Query Language หรือภาษาในการสอบถามข้อมูล เป็นภาษาทางด้านฐานข้อมูล ที่สมารถสร้างและปฏิบัติการกับฐานข้อมูลแบบสัมพันธ์ (Relational Database) โดยเฉพาะ และเป็นภาษาที่มีลักษณะคลายกับภาษาอังกฤษ ภาษา SQL ถูกพัฒนาขึ้นจากแนวคิดของ Relational Calculus และ Relational Algebra เป็นหลัก ภาษา SQL เริ่มพัฒนาครั้งแรกโดย Almaden Research Center ของบริษัท IBM โดยมีชื่อเริ่มแรกว่า “ซีเควล” (Sequel) ต่อมาได้เปลี่ยนชื่อเป็น “เอสคิวแอล” (SQL) หลังจากนั้นภาษาSQL ได้ถูกนำมาพัฒนาโดยผู้ผลิตซอฟต์แวร์ด้านระบบจัดการฐานข้อมูลเชิงสัมพันธ์จนเป็นที่นิยมกันอย่างแพร่หลายในปัจจุบัน โดยผู้ผลิตแต่ละรายก็พยายามที่จะพัฒนาระบบจัดการฐานข้อมูลของตนให้มีลักษณะเด่นเฉพาะขึ้นมา ทำให้รูปแบบการใช้คำสั่ง SQL มีรูปแบบที่แตกต่างกันไปบ้าง เช่น Oracle Access SQL Base ของ Sybase Ingres หรือ SQL Server ของ Microsoft เป็นต้น ดังนั้นในปี ค.ศ. 1986 ทางด้าน American National Standards Institute (ANSI) จึงได้กำหนดมาตรฐานของ SQL ขึ้น อย่างไรก็ดี โปรแกรมฐานข้อมูลที่ขายในท้องตลาด ได้ขยาย SQL ออกไปจนเกินข้อกำหนดของ ANSI โดยเพิ่มคุณสมบัติอื่น ๆ ที่คิดว่าเป็นประโยชน์เข้าไปอีก แต่โดยหลักทั่วไปแล้วก็ยังปฏิบัติตามมาตรฐานของ ANSI ในการอธิบายคำสั่งต่าง ๆ ของภาษาSQL
ตัวอย่างคำสั่งต่างๆ
1.MYSQL FLOOR()
เป็นคำสั่งของ MySQL ใช้ในการปัดเศษทศนิยม ให้มีค่าน้อยลง เช่น 2.01 จะปัดเป็น 2 หรือ 2.9 ก็จะได้เป็นค่า 2
Database : MySQL
Syntax
FLOOR(expression)
Sample 1
SELECT FLOOR(2.01)
Output
2
|
สำหรับการใง้งานรวมกับ Column หรือ ฟิวด์ใน MySQL ก็สามารถทำการครอบ Column นั้น ๆ ได้เช่นเดียวกัน
SELECT Column1, FLOOR(Column2) As AliasColumn2 FROM table_name
2.MYSQL ABS()
เป็นคำสั่งของ MySQL ใช้ในการหาค่าสมบูรณ์
Database : MySQL
Syntax
ABS(expression)
Sample 1
SELECT ABS(2)
Output
2
|
สำหรับการใง้งานรวมกับ Column หรือ ฟิวด์ใน MySQL ก็สามารถทำการครอบ Column นั้น ๆ ได้เช่นเดียวกัน
SELECT Column1, ABS(Column2) As AliasColumn2 FROM table_name
3.MYSQL MOD()
เป็นคำสั่งของ MySQL ใช้ในการหาค่าเศษที่ได้จากการหาร
Database : MySQL
Syntax
MOD(expression1,expression2)
Sample 1
SELECT MOD(234, 10);
Output
2
|
สำหรับการใง้งานรวมกับ Column หรือ ฟิวด์ใน MySQL ก็สามารถทำการครอบ Column นั้น ๆ ได้เช่นเดียวกัน
SELECT Column1, MOD(Column2,2) As AliasColumn2 FROM table_name
4.MYSQL RAND()
เป็นคำสั่งของ MySQL ใช้ในการสุ่มหรือ RANDOM ข้อมูล
Database : MySQL
Syntax
RAND()
Sample 1 ทำการ Random ข้อมูลจากฐานข้อมูลออกมา 2 Record
SELECT * FROM customer WHERE 1 ORDER BY RAND LIMIT 0,2
Output
CustomerID
|
Name
|
Email
|
CountryCode
|
Budget
|
Used
|
|---|---|---|---|---|---|
C002
| John Smith | john.smith@thaicreate.com |
EN
| 2000000 | 800000 |
C004
| Chalee Angel | chalee.angel@thaicreate.com |
US
| 4000000 | 100000 |
เป็นคำสั่งของ MySQL ใช้ในการปัศนิยมทิ้งในกรณีที่มีการกำหนดความยาวของ decimal
Database : MySQL
Syntax
TRUNCATE(expression,decimal)
Sample
SELECT TRUNCATE(1.223,1);
-> 1.2
SELECT TRUNCATE(1.999,1);
-> 1.9
SELECT TRUNCATE(1.999,0);
-> 1
SELECT TRUNCATE(-1.999,1);
-> -1.9
SELECT TRUNCATE(122,-2);
-> 100
SELECT TRUNCATE(10.28*100,0);
-> 1028
-> 1.2
SELECT TRUNCATE(1.999,1);
-> 1.9
SELECT TRUNCATE(1.999,0);
-> 1
SELECT TRUNCATE(-1.999,1);
-> -1.9
SELECT TRUNCATE(122,-2);
-> 100
SELECT TRUNCATE(10.28*100,0);
-> 1028
สำหรับการใง้งานรวมกับ Column หรือ ฟิวด์ใน MySQL ก็สามารถทำการครอบ Column นั้น ๆ ได้เช่นเดียวกัน
SELECT Column1, TRUNCATE(Column2,1) As AliasColumn2 , ... FROM table_name
6.MYSQL CONCAT_WS()
เป็นคำสั่งของ MySQL ใช้ในการนำ String มารวมกันหรือต่อกัน โดยสามารถกำหนดเครื่องหมายขั้น หรือ Separator
Database : MySQL
Syntax
CONCAT_WS(separator,str1,str2,...)
Sample
SELECT CONCAT_WS(',','First name','Second name','Last Name');
-> First name,Second name,Last Name
SELECT CONCAT_WS(',','First name',NULL,'Last Name');
-> First name,Last Name
-> First name,Second name,Last Name
SELECT CONCAT_WS(',','First name',NULL,'Last Name');
-> First name,Last Name
SQL CONCAT
7.SQL SUBSTRING
เป็นคำสั่งที่ใช้สำหรับการระบุเงื่อนไขการเลือกข้อมูลในตาราง (Table) โดยทำการตัดข้อความในตำแหน่งที่ต้องการ
Database : MySQL,Microsoft Access,SQL Server,Oracle
Syntax
SELECT SUBSTR(Name,0,2) As MySubStr FROM customer
Sample1 การเลือกข้อมูลโดยทำการตัดตำแหน่งที่ 1 ถึง 3
SELECT SUBSTR(Name,1,3) AS MySubStr FROM customer
Output
MySubStr
|
|---|
Win
|
Joh
|
Jam
|
Cha
|
Sample2 การเลือกข้อมูลโดยทำการตัดตำแหน่งจากสุดท้ายไปทางซ้าย 3 หลัก และเริ่มนับไปทางขวาอีก 3 หลัก
SELECT SUBSTR(Name,-3,3) AS MySubStr FROM customer
Output
MySubStr
|
|---|
hai
|
ith
|
orn
|
gel
|
8.SQL WHERE
เป็นคำสั่งที่ใช้สำหรับการระบุเงื่อนไขการเลือกข้อมูลในตาราง (Table) คำสั่ง SQL WHERE สามารถระบุเงื่อนไขในการเลือกข้อมูลได้ 1 เงื่อนไข หรือมากกว่า 1 เงื่อนไข
Database : MySQL,Microsoft Access,SQL Server,Oracle
Syntax
SELECT Column1, Column2, Column3,... FROM Table-Name WHERE [Field] = 'Value'
Sample1 การเลือกข้อมูลโดยใช้ Operators = (เท่ากับ)
SELECT * FROM customer WHERE CountryCode = 'US'
หรือ แบบ 2 เงื่อนไข ใช้ and เข้ามาเชื่อม วลี
SELECT * FROM customer WHERE CountryCode = 'US' and Budget = '4000000'
หรือ แบบ 2 เงื่อนไข ใช้ and เข้ามาเชื่อม วลี
SELECT * FROM customer WHERE CountryCode = 'US' and Budget = '4000000'
Output
CustomerID
|
Name
|
Email
|
CountryCode
|
Budget
|
Used
|
|---|---|---|---|---|---|
C003
| Jame Born | jame.smith@thaicreate.com |
US
| 3000000 | 600000 |
C004
| Chalee Angel | chalee.angel@thaicreate.com |
US
| 4000000 | 100000 |
CustomerID
|
Name
|
Email
|
CountryCode
|
Budget
|
Used
|
|---|---|---|---|---|---|
C004
| Chalee Angel | chalee.angel@thaicreate.com |
US
| 4000000 | 100000 |
Sample2 การเลือกข้อมูลโดยใช้ Operators != (ไม่เท่ากับ)
SELECT * FROM customer WHERE CountryCode != 'US'
หรือ แบบ 2 เงื่อนไข ใช้ and เข้ามาเชื่อม วลี
SELECT * FROM customer WHERE CountryCode != 'US' and CountryCode != 'EN'
หรือจะใช้ or
SELECT * FROM customer WHERE CountryCode != 'US' or Budget = '1000000'
หรือ แบบ 2 เงื่อนไข ใช้ and เข้ามาเชื่อม วลี
SELECT * FROM customer WHERE CountryCode != 'US' and CountryCode != 'EN'
หรือจะใช้ or
SELECT * FROM customer WHERE CountryCode != 'US' or Budget = '1000000'
Output
CustomerID
|
Name
|
Email
|
CountryCode
|
Budget
|
Used
|
|---|---|---|---|---|---|
C001
| Win Weerachai | win.weerachai@thaicreate.com |
TH
| 1000000 | 600000 |
C002
| John Smith | john.smith@thaicreate.com |
EN
| 2000000 | 800000 |
CustomerID
|
Name
|
Email
|
CountryCode
|
Budget
|
Used
|
|---|---|---|---|---|---|
C001
| Win Weerachai | win.weerachai@thaicreate.com |
TH
| 1000000 | 600000 |
CustomerID
|
Name
|
Email
|
CountryCode
|
Budget
|
Used
|
|---|---|---|---|---|---|
C001
| Win Weerachai | win.weerachai@thaicreate.com |
TH
| 1000000 | 600000 |
C002
| John Smith | john.smith@thaicreate.com |
EN
| 2000000 | 800000 |
9.SQL CASE..WHENเป็นคำสั่งที่ใช้สำหรับการกำหนดเงื่อนไขการแสดงค่าของฟิวด์ หรือค่าของ Value ถ้าจะให้เข้าใจง่าย ๆ ทางภาษา Syntax ของภาษาทั่วไปก็คือ การใช้ IF...Else...
Database : SQL Server , MySQL
Syntax
Simple CASE expression:
CASE input_expression
WHEN when_expression THEN result_expression [ ...n ]
[ ELSE else_result_expression ]
END
Searched CASE expression:
CASE
WHEN Boolean_expression THEN result_expression [ ...n ]
[ ELSE else_result_expression ]
END
CASE input_expression
WHEN when_expression THEN result_expression [ ...n ]
[ ELSE else_result_expression ]
END
Searched CASE expression:
CASE
WHEN Boolean_expression THEN result_expression [ ...n ]
[ ELSE else_result_expression ]
END
Sample1 ตัวอย่างนี้จะแสดงการใช้ CASE...WHEN เช่นการกำหนดค่าแสดงผลของ Column ชื่อ CountryCode
SELECT CustomerID, Name,
CASE CountryCode
WHEN 'TH' THEN 'Thailand'
WHEN 'EN' THEN 'English'
WHEN 'US' THEN 'United states'
ELSE 'Unknown'
END AS Country
FROM customer
CASE CountryCode
WHEN 'TH' THEN 'Thailand'
WHEN 'EN' THEN 'English'
WHEN 'US' THEN 'United states'
ELSE 'Unknown'
END AS Country
FROM customer
Output
CustomerID
|
Name
|
Country
|
|---|---|---|
C001
| Win Weerachai | Thailand |
C002
| John Smith | English |
C003
| Jame Born | United states |
C004
| Chalee Angel | United states |
นอกจากนี้ในส่วนของ THEN ยังสามารถกำหนดค่า Value ฟิวด์ Column ได้เช่นเดียวกัน
SELECT CustomerID, Name,
CASE CountryCode
WHEN 'TH' THEN Column1
WHEN 'EN' THEN 'Value'
WHEN 'US' THEN Column3
ELSE Column4
END AS Country
FROM customer
CASE CountryCode
WHEN 'TH' THEN Column1
WHEN 'EN' THEN 'Value'
WHEN 'US' THEN Column3
ELSE Column4
END AS Country
FROM customer
10.SQL EXISTS
เป็นคำสั่งที่ใช้สำหรับการระบุเงื่อนไขโดยทำการตรวจสอบ ข้อมูลจากอีกตารางหนึ่งว่ามีข้อมูล หรือว่าไม่มีข้อมูลที่ต้องการเปรียบเทียบ
Database : MySQL,Microsoft Access,SQL Server,Oracle
Syntax
SELECT * FROM TableName1 WHERE [NOT] EXISTS (SELECT * FROM TableName2)
Sample1 การเลือกข้อมูลจากตาราง customer1 โดยข้อมูลจะเปรียบเทียบในตาราง customer2 ว่ามีข้อมูลเหมือนกันหรือไม่
SELECT * FROM customer1 WHERE EXISTS (SELECT * FROM customer2)
Output
CustomerID
|
Name
|
Email
|
CountryCode
|
Budget
|
Used
|
|---|---|---|---|---|---|
C001
| Win Weerachai | win.weerachai@thaicreate.com |
TH
| 1000000 | 600000 |
C002
| John Smith | john.smith@thaicreate.com |
EN
| 2000000 | 800000 |
C004
| Chalee Angel | chalee.angel@thaicreate.com |
US
| 4000000 | 100000 |
ส่วนการใช้ NOT EXISTS จะเป็นตรงกันข้าม กันเงื่อนไขนี้
ที่มา: http://www.thaicreate.com/tutorial/sql.html



