วันอังคารที่ 16 ธันวาคม พ.ศ. 2557

คำสั่งSQL

คำสั่ง SQL
1.SQL SELECT

เป็นคำสั่งที่ใช้สำหรับการเรียกดูข้อมูลในตาราง (Table) คำสั่ง SQL SELECT สามารถเรียกได้ทั้งตาราง หรือว่า สามารถระบุฟิวด์ที่ต้องการเรียกดูข้อมูลได้ 


Database : MySQL,Microsoft Access,SQL Server,Oracle



Syntax



SELECT Column1, Column2, Column3,... FROM [Table-Name]



Table : customer
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
C003
Jame Born
jame.born@thaicreate.com
US
3000000
600000
C004
Chalee Angel
chalee.angel@thaicreate.com
US
4000000
100000



Sample1 การเลือกข้อมูลที่ระบุฟิวด์



SELECT CustomerID, Name, Email FROM customer

Output 



CustomerID
Name
Email
C001
Win Weerachai
win.weerachai@thaicreate.com
C002
John Smith
john.smith@thaicreate.com
C003
Jame Born
jame.born@thaicreate.com
C004
Chalee Angel
chalee.angel@thaicreate.com




Sample2 การเลือกข้อมูลทั้งหมดของ Table 



SELECT * FROM customer

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
C003
Jame Born
jame.smith@thaicreate.com
US
3000000
600000
C004
Chalee Angel
chalee.angel@thaicreate.com
US
4000000
100000


2.SQL ALIAS 
เป็นคำสั่งที่ใช้สำหรับการระบุเงื่อนไขการเลือกข้อมูลในตาราง (Table) โดย ALIAS คือการสร้างชื่อจำลองขึ้นมาใหม่ โดยสามารถจำลองชื่อได้ทั้งชื่อ Field และชื่อ Table 


Database : MySQL 



Syntax



SELECT Column1 AS Alias1,Column2 AS Alias2,Column3 AS Alias3,... FROM [Table-Name1] Table Alias



Table : customer
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
C003
Jame Born
jame.born@thaicreate.com
US
3000000
600000
C004
Chalee Angel
chalee.angel@thaicreate.com
US
4000000
100000



Sample1 การเลือกข้อมูลตาราง customer โดยทำการ Alias เปลี่ยนชื่อฟิวด์ขึ้นมาใหม่



SELECT CustomerID AS CusID,Name AS CusName,Email AS CusEmail FROM customer

Output 



CusID
CusName
CusEmail
C001
Win Weerachai
win.weerachai@thaicreate.com
C002
John Smith
john.smith@thaicreate.com
C003
Jame Born
jame.smith@thaicreate.com
C004
Chalee Angel
chalee.angel@thaicreate.com



Sample2 การเลือกข้อมูลตาราง customer,audit โดยทำการ Alias เปลี่ยนชื่อ Table เพื่อง่านต่อการเรียกใช้งาน 



SELECT X.*,Y.* FROM customer X 

LEFT JOIN audit Y ON X.CustomerID = Y.CustomerID 
WHERE X.CustomerID = 'C001'


Output 



CustomerID
Name
Email
CountryCode
Budget
Used
AuditID
CustomerID
Date
Used
C001
Win Weerachai
win.weerachai@thaicreate.com
TH
1000000
600000
1
C001
2008-08-01
100000
C001
Win Weerachai
win.weerachai@thaicreate.com
TH
1000000
600000
2
C001
2008-08-05
200000
C001
Win Weerachai
win.weerachai@thaicreate.com
TH
1000000
600000
3
C001
2008-08-10
300000



Sample3 การเลือกข้อมูลตาราง customer โดยทำการ Alias เปลี่ยนชื่อ Table เพื่อง่านต่อการเรียกใช้งาน 



SELECT X.CustomerID,X.Name FROM customer X

Output 



CusID
CusName
C001
Win Weerachai
C002
John Smith
C003
Jame Born
C004
Chalee Angel



3.SQL TOP 

เป็นคำสั่งที่ใช้สำหรับการระบุเงื่อนไขการเลือกข้อมูลในตาราง (Table) ที่สามารถกำหนดจำนวน Record ที่แสดงผลออกมาได้


Database : Microsoft Access,SQL Server



Syntax



SELECT TOP [Integer] Column1, Column2, Column3,... FROM [Table-Name] ORDER BY [Field] [ASC/DESC]



Table : customer
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
C003
Jame Born
jame.born@thaicreate.com
US
3000000
600000
C004
Chalee Angel
chalee.angel@thaicreate.com
US
4000000
100000



Sample1 การเลือกข้อมูลที่จำนวน Budget มากที่สุดออกมา 2 Record 



SELECT TOP 2 * FROM customer ORDER BY Budget DESC

Output 



CustomerID
Name
Email
CountryCode
Budget
Used
C004
Chalee Angel
chalee.angel@thaicreate.com
US
4000000
100000
C003
Jame Born
jame.smith@thaicreate.com
US
3000000
600000


4.SQL MIN 

เป็นคำสั่งที่ใช้สำหรับการระบุเงื่อนไขการเลือกข้อมูลในตาราง (Table) โดยหาค่าต่ำสุดในฟิวด์


Database : MySQL,Microsoft Access,SQL Server,Oracle



Syntax



SELECT MIN(Column/Field) AS [New-Field] FROM [Table-Name]



Table : customer
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
C003
Jame Born
jame.born@thaicreate.com
US
3000000
600000
C004
Chalee Angel
chalee.angel@thaicreate.com
US
4000000
100000



Sample1 การเลือกข้อมูล Budget ต่ำที่สุด 



SELECT MIN(Budget) AS MinBudget FROM customer

Output 



MinBudget
1000000


5.SQL FIRST 

เป็นคำสั่งที่ใช้สำหรับการระบุเงื่อนไขการเลือกข้อมูลในตาราง (Table) โดยเลือกข้อมูล แถวแรกของข้อมูลที่พบ


Database : MySQL,Microsoft Access,SQL Server,Oracle



Syntax



SELECT FIRST(ColumnName) FROM TableName



Table : customer
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
C003
Jame Born
jame.born@thaicreate.com
US
3000000
600000
C004
Chalee Angel
chalee.angel@thaicreate.com
US
4000000
100000

6.SQL ALTER 

เป็นคำสั่งที่ใช้สำหรับการปรับแก้ไขคุณสมบัติของตาราง เช่น เพิ่ม / ลบ / แก้ไข จำนวน Coulmn 


Database : MySQL,Microsoft Access,SQL Server,Oracle



Syntax



ALTER TABLE tablename ADD COLUMN (field1 type (size) (index1), ...)



Table : customer
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
C003
Jame Born
jame.born@thaicreate.com
US
3000000
600000
C004
Chalee Angel
chalee.angel@thaicreate.com
US
4000000
100000



Sample1 เพิ่ม Column ชื่อ Msn หลัง Column ชื่อ Email 



ALTER TABLE customer ADD Msn VARCHAR( 100 ) NOT NULL AFTER Email

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
C003
Jame Born
jame.smith@thaicreate.com
US
3000000
600000
C004
Chalee Angel
chalee.angel@thaicreate.com
US
4000000
100000



Sample1 การเลือกข้อมูลแบบด้วย FIRST ในตาราง customer 



SELECT FIRST(Name) As Name FROM customer

Output 



Name
Weerachai Nukitram



7.SQL UNION ALL


เป็นคำสั่งที่ใช้สำหรับการเลือกข้อมูลโดยทำการรวมจำนวนแถวระหว่าง Table เข้าด้วยกัน สำหรับ UNION และ UNION ALL ต่างกันตรงที่ 
UNION จะเลือกข้อมูลที่ระหว่าง 2 ตาราง ตามกฏ DISTINCT ของ Table นั้น ๆ คือข้อมูลใน Table หนึ่ง ๆ จะไม่ซ่ำกัน
UNION ALL เลือกข้อมูลโดยไม่สนใจ คือเลือกเอาทั้งหมด 


Database : MySQL,Microsoft Access,SQL Server,Oracle



Syntax



SELECT * FROM Table1

UNION ALL 
SELECT * FROM Table2




Table : customer1
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
C003
Jame Born
jame.born@thaicreate.com
US
3000000
600000
C004
Chalee Angel
chalee.angel@thaicreate.com
US
4000000
100000


Table : customer2
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
C003
Jame Born
jame.born@thaicreate.com
US
3000000
600000
C004
Chalee Angel
chalee.angel@thaicreate.com
US
4000000
100000
C004
Chalee Angel
chalee.angel@thaicreate.com
US
4000000
100000



Sample1 การใช้คำสั่ง UNION 



SELECT * FROM customer1 

UNION 
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
C003
Jame Born
jame.smith@thaicreate.com
US
3000000
600000
C004
Chalee Angel
chalee.angel@thaicreate.com
US
4000000
100000



Sample2 การใช้คำสั่ง UNION ALL 



SELECT * FROM customer1 

UNION ALL 
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
C003
Jame Born
jame.smith@thaicreate.com
US
3000000
600000
C004
Chalee Angel
chalee.angel@thaicreate.com
US
4000000
100000
C004
Chalee Angel
chalee.angel@thaicreate.com
US
4000000
100000

8.MYSQL MOD()

เป็นคำสั่งของ MySQL ใช้ในการหาค่าเศษที่ได้จากการหาร


Database : MySQL



Syntax



MOD(expression1,expression2)



Sample 1



SELECT MOD(234, 10);

Output 



2



Sample 2



SELECT 253 % 7;
-> 1 


SELECT MOD(29,9);
-> 2 



SELECT 29 MOD 9;
-> 2




สำหรับการใง้งานรวมกับ Column หรือ ฟิวด์ใน MySQL ก็สามารถทำการครอบ Column นั้น ๆ ได้เช่นเดียวกัน 



SELECT Column1, MOD(Column2,2) As AliasColumn2 FROM table_name

9.MYSQL REPEAT()

เป็นคำสั่งของ MySQL ใช้ในการแทนที่แสดงจำนวนข้อความ ตามจำนวน Loop ที่ต้องการ


Database : MySQL



Syntax



REPEAT(str,count)

Sample



SELECT REPEAT('MySQL', 3);
-> MySQLMySQLMySQL 


SELECT REPEAT('ThaiCreate', 5);
-> ThaiCreateThaiCreateThaiCreateThaiCreateThaiCreate


10.MYSQL REPEAT()

เป็นคำสั่งของ MySQL ใช้ในการแทนที่แสดงจำนวนข้อความ ตามจำนวน Loop ที่ต้องการ


Database : MySQL


Syntax



REPEAT(str,count)



Sample



SELECT REPEAT('MySQL', 3);
-> MySQLMySQLMySQL 


SELECT REPEAT('ThaiCreate', 5);
-> ThaiCreateThaiCreateThaiCreateThaiCreateThaiCreate