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

คำส้่ง SQL

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


Sample1 การเลือกข้อมูลตาราง customer โดยทำการ Alias เปลี่ยนชื่อฟิวด์ขึ้นมาใหม่
SELECT CustomerID AS CusID,Name AS CusName,Email AS CusEmail FROM customer

Output
CusID
CusName
CusEmail
C001
Win Weerachaiwin.weerachai@thaicreate.com
C002
John Smithjohn.smith@thaicreate.com
C003
Jame Bornjame.smith@thaicreate.com
C004
Chalee Angelchalee.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'


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




2.SQL ORDER BY 

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

Database : MySQL,Microsoft Access,SQL Server,Oracle

Syntax
SELECT Culumn1,Culumn2,Culumn3,... FROM [Table-Name] ORDER BY [Field] [ASC/DESC],[Field] [ASC/DESC],...
ASC = น้อยไปหามาก
DESC = มากไปหาน้อย


Table : customer
CustomerID
Name
Email
CountryCode
Budget
Used
C001
Win Weerachaiwin.weerachai@thaicreate.com
TH
1000000600000
C002
John Smithjohn.smith@thaicreate.com
EN
2000000800000
C003
Jame Bornjame.born@thaicreate.com
US
3000000600000
C004
Chalee Angelchalee.angel@thaicreate.com
US
4000000100000


Sample1 การเลือกข้อมูลโดยทำการจัดเรียงจาก CustomerID น้อยไปหามาก หรือ มากไปหาน้อย
SELECT * FROM customer ORDER BY CustomerID ASC
หรือ
SELECT * FROM customer ORDER BY CustomerID DESC
หรือ
SELECT * FROM customer ORDER BY CountryCode DESC,CustomerID ASC

Output
CustomerID
Name
Email
CountryCode
Budget
Used
C001
Win Weerachaiwin.weerachai@thaicreate.com
TH
1000000600000
C002
John Smithjohn.smith@thaicreate.com
EN
2000000800000
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
C003
Jame Bornjame.smith@thaicreate.com
US
3000000600000
C002
John Smithjohn.smith@thaicreate.com
EN
2000000800000
C001
Win Weerachaiwin.weerachai@thaicreate.com
TH
1000000600000

CustomerID
Name
Email
CountryCode
Budget
Used
C003
Jame Bornjame.smith@thaicreate.com
US
3000000600000
C004
Chalee Angelchalee.angel@thaicreate.com
US
4000000100000
C001
Win Weerachaiwin.weerachai@thaicreate.com
TH
1000000600000
C002
John Smithjohn.smith@thaicreate.com
EN
2000000800000


3.SQL SELECT INTO 

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

Database : MySQL,Microsoft Access,SQL Server,Oracle

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


Table : customer
CustomerID
Name
Email
CountryCode
Budget
Used
C001
Win Weerachaiwin.weerachai@thaicreate.com
TH
1000000600000
C002
John Smithjohn.smith@thaicreate.com
EN
2000000800000
C003
Jame Bornjame.born@thaicreate.com
US
3000000600000
C004
Chalee Angelchalee.angel@thaicreate.com
US
4000000100000


Sample1 การเลือกข้อมูลตาราง customer เพื่อไปสำรองไว้ที่ customer_backup
SELECT * INTO customer_backup FROM customer

Output 

Table : customer_backup
CustomerID
Name
Email
CountryCode
Budget
Used
C001
Win Weerachaiwin.weerachai@thaicreate.com
TH
1000000600000
C002
John Smithjohn.smith@thaicreate.com
EN
2000000800000
C003
Jame Bornjame.smith@thaicreate.com
US
3000000600000
C004
Chalee Angelchalee.angel@thaicreate.com
US
4000000100000



4.SQL LIKE 

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

Database : MySQL,Microsoft Access,SQL Server,Oracle

Syntax
SELECT Column1,Column2,Column3,... FROM [Table-Name] WHERE [Filed] LIKE '%Value%'


Table : customer
CustomerID
Name
Email
CountryCode
Budget
Used
C001
Win Weerachaiwin.weerachai@thaicreate.com
TH
1000000600000
C002
John Smithjohn.smith@thaicreate.com
EN
2000000800000
C003
Jame Bornjame.born@thaicreate.com
US
3000000600000
C004
Chalee Angelchalee.angel@thaicreate.com
US
4000000100000


Sample1 การเลือกข้อมูลตารางที่ฟิวด์ Name มีคำว่า ee อยู่ 
SELECT * FROM customer WHERE Name LIKE '%ee%'

Output 
CustomerID
Name
Email
CountryCode
Budget
Used
C001
Win Weerachaiwin.weerachai@thaicreate.com
TH
1000000600000
C004
Chalee Angelchalee.angel@thaicreate.com
US
4000000100000


Sample2 การเลือกข้อมูลตารางที่ฟิวด์ Email มีคำว่า j นำหน้า 
SELECT * FROM customer WHERE Name LIKE 'j%'

Output 
CustomerID
Name
Email
CountryCode
Budget
Used
C002
John Smithjohn.smith@thaicreate.com
EN
2000000800000
C003
Jame Bornjame.smith@thaicreate.com
US
3000000600000


Sample3 การเลือกข้อมูลตารางที่ฟิวด์ Name มีคำว่า i ลงท้าย
SELECT * FROM customer WHERE Name LIKE '%i'

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


การใช้งาน LIKE ที่หลายเงื่อนไข หรือ OR ใน Statement สามารถใช้ [x,y] ได้


5.SQL INSERT 

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

Database : MySQL,Microsoft Access,SQL Server,Oracle

Syntax
INSERT INTO [Table-Name] (Column1,Column2,Column3,...) VALUES ('Value1','Value2','Value3',...)


Table : country
CountryCode
CountryName
TH
Thailand
EN
English
US
United states


Sample1 การเพิ่มข้อมูลลงใน Table 
INSERT INTO country VALUES ('CH','Chaina')
หรือ
INSERT INTO country (CountryCode,CountryName) VALUES ('CH','Chaina')

Output 
CountryCode
CountryName
TH
Thailand
EN
English
US
United states
CH
Chaina



6.SQL ROUND

เป็นคำสั่งที่ใช้สำหรับการระบุเงื่อนไขการเลือกข้อมูลในตาราง (Table) โดยทำการปัดเศษขึ้นในกรณีที่มากกว่า >= .5 และปัดเศษลงในกรณีที่น้อยกว่า < .5 

Database : MySQL,Microsoft Access,SQL Server,Oracle

Syntax
SELECT ROUND(ColumnName) FROM table_name


7.MYSQL FLOOR()

เป็นคำสั่งของ MySQL ใช้ในการปัดเศษทศนิยม ให้มีค่าน้อยลง เช่น 2.01 จะปัดเป็น 2 หรือ 2.9 ก็จะได้เป็นค่า 2

Database : MySQL

Syntax
FLOOR(expression)


Sample 1
SELECT FLOOR(2.01)

Output 
2


Sample 2
SELECT FLOOR(2.9)

Output 
3


สำหรับการใง้งานรวมกับ Column หรือ ฟิวด์ใน MySQL ก็สามารถทำการครอบ Column นั้น ๆ ได้เช่นเดียวกัน 
SELECT Column1, FLOOR(Column2) As AliasColumn2 FROM table_name



8.MYSQL ADDTIME()

เป็นคำสั่งของ MySQL กับ DateTime โดย ADDTIME ใช้ในการหา เพิ่มหรอลดค่าของเวลา

Database : MySQL

Syntax
ADDTIME(expr1,expr2)


Sample
SELECT ADDTIME('2007-12-31 23:59:59.999999', '1 1:1:1.000002');
-> 2008-01-02 01:01:01.000001

SELECT ADDTIME('01:00:00.999999', '02:00:00.999998');
-> 03:00:01.999997


MYSQL DATE_ADD() , DATE_SUB()



9.MYSQL ADDTIME()


เป็นคำสั่งของ MySQL กับ DateTime โดย ADDTIME ใช้ในการหา เพิ่มหรอลดค่าของเวลา

Database : MySQL

Syntax
ADDTIME(expr1,expr2)


Sample
SELECT ADDTIME('2007-12-31 23:59:59.999999', '1 1:1:1.000002');
-> 2008-01-02 01:01:01.000001

SELECT ADDTIME('01:00:00.999999', '02:00:00.999998');
-> 03:00:01.999997


10.MYSQL DATE_ADD() , DATE_SUB()


YSQL DATE_ADD() , DATE_SUB()

เป็นคำสั่งของ MySQL กับ DateTime โดย DATE_ADD และ DATE_SUB ใช้ในการหา เพิ่มหรอลดค่าของวันที่

Database : MySQL

Syntax
DATE_ADD(date,INTERVAL expr unit)
DATE_SUB(date,INTERVAL expr unit)

expr argument for each unit value.
unit ValueExpected expr Format
MICROSECONDMICROSECONDS
SECONDSECONDS
MINUTEMINUTES
HOURHOURS
DAYDAYS
WEEKWEEKS
MONTHMONTHS
QUARTERQUARTERS
YEARYEARS
SECOND_MICROSECOND'SECONDS.MICROSECONDS'
MINUTE_MICROSECOND'MINUTES:SECONDS.MICROSECONDS'
MINUTE_SECOND'MINUTES:SECONDS'
HOUR_MICROSECOND'HOURS:MINUTES:SECONDS.MICROSECONDS'
HOUR_SECOND'HOURS:MINUTES:SECONDS'
HOUR_MINUTE'HOURS:MINUTES'
DAY_MICROSECOND'DAYS HOURS:MINUTES:SECONDS.MICROSECONDS'
DAY_SECOND'DAYS HOURS:MINUTES:SECONDS'
DAY_MINUTE'DAYS HOURS:MINUTES'
DAY_HOUR'DAYS HOURS'
YEAR_MONTH'YEARS-MONTHS'

ทั้งนี้ยังสามารถใช้ INTERVAL เข้ามา + หรือ - ค่าวันที่ได้เช่นเดียวกัน 
date + INTERVAL expr unit
date - INTERVAL expr unit


Sample
SELECT '2008-12-31 23:59:59' + INTERVAL 1 SECOND;
-> 2009-01-01 00:00:00

SELECT INTERVAL 1 DAY + '2008-12-31';
-> 2009-01-01

SELECT '2005-01-01' - INTERVAL 1 SECOND;
-> 2004-12-31 23:59:59

SELECT DATE_ADD('2000-12-31 23:59:59', INTERVAL 1 SECOND);
-> 2001-01-01 00:00:00

SELECT DATE_ADD('2010-12-31 23:59:59', INTERVAL 1 DAY);
-> 2011-01-01 23:59:59

SELECT DATE_ADD('2100-12-31 23:59:59', INTERVAL '1:1' MINUTE_SECOND);
-> 2101-01-01 00:01:00

SELECT DATE_SUB('2005-01-01 00:00:00', INTERVAL '1 1:1:1' DAY_SECOND);
-> 2004-12-30 22:58:59

SELECT DATE_ADD('1900-01-01 00:00:00', INTERVAL '-1 10' DAY_HOUR);
-> 1899-12-30 14:00:00

SELECT DATE_SUB('1998-01-02', INTERVAL 31 DAY);
-> 1997-12-02

SELECT DATE_ADD('1992-12-31 23:59:59.000002', INTERVAL '1.999999' SECOND_MICROSECOND);
-> 1993-01-01 00:00:01.000001


cr:http://www.thaicreate.com/tutorial/sql.html