วันอาทิตย์ที่ 14 ธันวาคม พ.ศ. 2557

คำสั่ง SQL

คำสั่ง SQL



             ภาษา 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 Smithjohn.smith@thaicreate.com
EN
2000000800000
C004
Chalee Angelchalee.angel@thaicreate.com
US
4000000100000



5.MYSQL TRUNCATE()
เป็นคำสั่งของ 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


สำหรับการใง้งานรวมกับ 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


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'

Output 

CustomerID
Name
Email
CountryCode
Budget
Used
C003
Jame Bornjame.smith@thaicreate.com
US
3000000600000
C004
Chalee Angelchalee.angel@thaicreate.com
US
4000000100000


CustomerID
Name
Email
CountryCode
Budget
Used
C004
Chalee Angelchalee.angel@thaicreate.com
US
4000000100000


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'

Output 

CustomerID
Name
Email
CountryCode
Budget
Used
C001
Win Weerachaiwin.weerachai@thaicreate.com
TH
1000000600000
C002
John Smithjohn.smith@thaicreate.com
EN
2000000800000


CustomerID
Name
Email
CountryCode
Budget
Used
C001
Win Weerachaiwin.weerachai@thaicreate.com
TH
1000000600000


CustomerID
Name
Email
CountryCode
Budget
Used
C001
Win Weerachaiwin.weerachai@thaicreate.com
TH
1000000600000
C002
John Smithjohn.smith@thaicreate.com
EN
2000000800000


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

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

Output 

CustomerID
Name
Country
C001
Win WeerachaiThailand
C002
John SmithEnglish
C003
Jame BornUnited states
C004
Chalee AngelUnited 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


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 Weerachaiwin.weerachai@thaicreate.com
TH
1000000600000
C002
John Smithjohn.smith@thaicreate.com
EN
2000000800000
C004
Chalee Angelchalee.angel@thaicreate.com
US
4000000100000

ส่วนการใช้ NOT EXISTS จะเป็นตรงกันข้าม กันเงื่อนไขนี้ 




ที่มา: http://www.thaicreate.com/tutorial/sql.html

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

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