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

คำสั่ง Sql




1.MySQL FULLTEXT
สำหรับ MySQL FULLTEXT นั้นรองรับ DataType อยู่ 3 ประเภทคือ CHAR VARCHAR แล้วก็ TEXT ซึ่งในการกำหนดคุณสมบัติของ Table และ Column ให้เป็นแบบ FULLTEXT สามารถกำหนดได้ในขั้นตอนการ CREATE TABLE

CREATE TABLE `customer` (
`CustomerID` varchar(4) NOT NULL,
`Name` varchar(50) NOT NULL,
`Email` varchar(50) NOT NULL,
`CountryCode` varchar(2) NOT NULL,
`Budget` double NOT NULL,
`Used` double NOT NULL,
PRIMARY KEY (`CustomerID`),
FULLTEXT (`Name`,`Email`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

หรือในกรณีที่มี Table อยู่แล้วก็สามารถใช้คำสั่ง ALTER ได้เช่นเดียวกัน
ALTER TABLE `customer` ADD FULLTEXT(`Name`,`Email`);

ตัวอย่างนี้กำหนดให้เป็นแบบ FULLTEXT มี `Name`,`Email`

ทดสอบการใช้งาน MySQL FULLTEXT

INSERT INTO `customer` VALUES ('C001', 'Win Weerachai', 'win.weerachai@thaicreate.com', 'TH', 1000000, 600000);
INSERT INTO `customer` VALUES ('C002', 'John Smith', 'john.smith@thaicreate.com', 'EN', 2000000, 800000);
INSERT INTO `customer` VALUES ('C003', 'Jame Born', 'jame.born@thaicreate.com', 'US', 3000000, 600000);
INSERT INTO `customer` VALUES ('C004', 'Chalee Angel', 'chalee.angel@thaicreate.com', 'US', 4000000, 100000);



การค้นหาด้วย MySQL FULLTEXT 

Sample 1
SELECT * FROM `customer` WHERE MATCH (Name,Email) AGAINST ('Born Weerachai')

CustomerID
Name
Email
CountryCode
Budget
Used
C001
Win Weerachaiwin.weerachai@thaicreate.com
TH
1000000600000
C003
Jame Bornjame.smith@thaicreate.com
US
3000000600000

2.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 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 การเลือกข้อมูล Budget ต่ำที่สุด 

SELECT MIN(Budget) AS MinBudget FROM customer

Output 

MinBudget
1000000

3.MYSQL DAYOFWEEK()
เป็นคำสั่งของ MySQL กับ DateTime โดย DAYOFWEEK ใช้หาค่าวันของสัปดาห์ (1=Sunday ... 7=Saturday)

1 = Sunday
2 = Monday
3 = Tuesday
4 = Wednesday
5 = Thursday
6 = Friday
7 = Saturday

Database : MySQL

Syntax

DAYOFWEEK(date)


Sample

SELECT DAYOFWEEK('2007-02-03');
-> 7

4.MYSQL WEEK()
เป็นคำสั่งของ MySQL กับ DateTime โดย WEEK ใช้ในการหาสัปดาห์ของปี

Database : MySQL

Syntax

WEEK(date[,mode])

The following table describes how the mode argument works.
ModeFirst day of weekRangeWeek 1 is the first week …
0Sunday0-53with a Sunday in this year
1Monday0-53with more than 3 days this year
2Sunday1-53with a Sunday in this year
3Monday1-53with more than 3 days this year
4Sunday0-53with more than 3 days this year
5Monday0-53with a Monday in this year
6Sunday1-53with more than 3 days this year
7Monday1-53with a Monday in this year

Sample

SELECT WEEK('2008-02-20');
-> 7

SELECT WEEK('2008-02-20',0);
-> 7

SELECT WEEK('2008-02-20',1);
-> 8

SELECT WEEK('2008-12-31',1);
-> 35
5.MYSQL LAST_DAY()
เป็นคำสั่งของ MySQL กับ DateTime โดย LAST_DAY ใช้ในการหาวันที่สุดท้ายของเดือน

Database : MySQL

Syntax

LAST_DAY(date)


Sample

SELECT LAST_DAY('2003-02-05');
-> 2003-02-28

SELECT LAST_DAY('2004-02-05');
-> 2004-02-29

SELECT LAST_DAY('2004-01-01 01:01:01');
-> 2004-01-31

SELECT LAST_DAY('2003-03-32');
-> NULL
6.MYSQL SUBDATE()
เป็นคำสั่งของ MySQL กับ DateTime โดย SUBDATE ใช้ในการหา บวก หรือ ลบ ค่าของวันที่ ใน Format ต่าง ๆ 

Database : MySQL

Syntax

SUBDATE(date,INTERVAL expr unit), SUBDATE(expr,days)

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 DATE_SUB('2008-01-02', INTERVAL 31 DAY);
-> 2007-12-02

SELECT SUBDATE('2008-01-02', INTERVAL 31 DAY);
-> 2007-12-02

7.MYSQL TIME_FORMAT()
เป็นคำสั่งของ MySQL กับ DateTime โดย TIME_FORMAT ใช้ในการหาหรือแปลงค่า ของเวลาในรูปแบบต่างๆ 

Database : MySQL

Syntax

TIME_FORMAT(time,format)

SpecifierDescription
%aAbbreviated weekday name (Sun..Sat)
%bAbbreviated month name (Jan..Dec)
%cMonth, numeric (0..12)
%DDay of the month with English suffix (0th, 1st, 2nd, 3rd, …)
%dDay of the month, numeric (00..31)
%eDay of the month, numeric (0..31)
%fMicroseconds (000000..999999)
%HHour (00..23)
%hHour (01..12)
%IHour (01..12)
%iMinutes, numeric (00..59)
%jDay of year (001..366)
%kHour (0..23)
%lHour (1..12)
%MMonth name (January..December)
%mMonth, numeric (00..12)
%pAM or PM
%rTime, 12-hour (hh:mm:ss followed by AM or PM)
%SSeconds (00..59)
%sSeconds (00..59)
%TTime, 24-hour (hh:mm:ss)
%UWeek (00..53), where Sunday is the first day of the week
%uWeek (00..53), where Monday is the first day of the week
%VWeek (01..53), where Sunday is the first day of the week; used with %X
%vWeek (01..53), where Monday is the first day of the week; used with %x
%WWeekday name (Sunday..Saturday)
%wDay of the week (0=Sunday..6=Saturday)
%XYear for the week where Sunday is the first day of the week, numeric, four digits; used with %V
%xYear for the week, where Monday is the first day of the week, numeric, four digits; used with %v
%YYear, numeric, four digits
%yYear, numeric (two digits)
%%A literal “%” character
%xx, for any “x” not listed above


Sample

SELECT TIME_FORMAT('100:00:00', '%H %k %h %I %l');
-> 100 100 04 04 4

8.MYSQL REVERSE()
เป็นคำสั่งของ MySQL ใช้ในการสลับตำแหน่งของข้อความ

Database : MySQL

Syntax

REVERSE(str)


Sample

SELECT REVERSE('abc');
-> cba

SELECT REVERSE('thaicreate');
-> etaerciaht

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

Database : MySQL

Syntax

REPEAT(str,count)


Sample

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

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

10.MYSQL INSTR()
เป็นคำสั่งของ MySQL ใช้ในการค้นหาตำแหน่งของข้อความ จากตำแหน่งแรกที่ค้นพบ

Database : MySQL

Syntax

INSTR(str,substr)


Sample

SELECT INSTR('foobarbar', 'bar');
-> 4

SELECT INSTR('xbar', 'foobar');
-> 0





อ้างอิง : http://www.thaicreate.com/