Back to Home

DataBase System

Lesson1234579101112131415

Lesson 6 : SQL



Lesson Plan
Section No.
Section 1
Section 2
Section 3
Test
PDF file
PPT File


<<Prev pageCourse MapNext page>>

Print content of this page
Save content of this page

 

ฟังก์ชัน

ฟังก์ชันที่ใช้ในภาษา SQLเป็นฟังก์ชัน ซึ่งเก็บประจำไว้กับภาษา SQL ภาษา SQL มีฟังก์ชันอยู่ 6 ประเภทคือ

1.ฟังก์ชันในการรวม (Aggregate functions)

2.ฟังก์ชันวันและเวลา (Date and tune functions)

3.ฟังก์ชันคณิตศาสตร์ (Arithmetic functions)

4.ฟังก์ชันตัวอักขระ (Character functions)

5.ฟังก์ชันการแปลง (Conversion functions)

6.ฟังก์ชันอื่นๆ (Miscellaneous functions)

1.ฟังก์ชันในการรวม(Aggregate Functions)

เป็นกลุ่มฟังก์ชันที่ให้ผลของคำสั่งออกมาเพียง 1 คอลัมน์ ฟังก์ชันในการรวม(Aggregate Functions) เป็นกลุ่มฟังก์ชันที่ใช้กับข้อมูลที่เป็นตัวเลข ได้แก่ COUNT,SUM,AVG,MAXและ MIN

การใช้ฟังก์ชันในการรวมค่าต่าง ๆในภาษา SQL ดำเนินตามคำสั่งที่มีฟังก์ชันในการรวมค่า ผลของคำสั่งจะแสดงค่าเพียงค่าเดียว ฟังก์ชันเหล่านี้ได้แก่

COUNT เป็นคำสั่งที่สามารถใช้กับตารางหรือคอลัมน์ใด ๆ เพื่อนับจำนวนของแถวหรือคอลัมน์ซึ่งมีการใช้งาน 2 แบบดังนี้คือ

COUNT (*) เป็นคำสั่งใช้นับจำนวนแถวทั้งหมดในตารางซึ่งจะรวมจำนวนแถวที่ไม่มีค่า ( NULL) ด้วย

COUNT (DISTINCT คอลัมน์) เป็นคำสั่งใช้นับจำนวนแถวในตาราง จะไม่รวมค่าซ้ำและตำแหน่งที่ไม่มีค่า( NULL)

SUM เป็นคำสั่งการหาผลรวมของคอลัมน์ใดคอลัมน์หนึ่ง

AVG เป็นคำสั่งการหาค่าเฉลี่ยของข้อมูลในคอลัมน์ใดคอลัมน์หนึ่งโดยในคอลัมน์ที่ไม่มีค่าใดบรรจุอยู่ (NULL VALUE)จะไม่นำมาบรรจุอยู่ในการคำนวณ การใช้ฟั่งก์ชั่น AVG จะนำค่าทุกตัวในคอลัมน์มาคำนวณรวมทั้งตัวที่มีค่าซ้ำกันด้วย(ถ้าไม่ต้องการนำค่านั้นมาคำนวณสามารถใช้ DISTINCT ได้เช่น AVG (DISTINCT ชื่อคอลัมน์) เพื่อหาค่าเฉลี่ยโดยไม่ต้องนำค่าซ้ำกันมาคำนวณ

MAX เป็นคำสั่งในการหาค่าสูงสุดของข้อมูลของคอลัมน์ใดคอลัมน์หนึ่ง

MIN เป็นคำสั่งในการหาค่าต่ำสุดของข้อมูลของคอลัมน์ใดคอลัมน์หนึ่ง

 1.1ฟังก์ชัน COUNT (X) เป็นฟังก์ชันที่ใช้ในการนับจำนวนแถวในคอลัมน์ (X)

ตัวอย่างตารางTEAMGAME

NAME

AB

HITS

WALKS

SINGLES

DOUBLES

TRIPLES

HR

JONES

145

45

34

31

8

1

5

DONKNOW

175

65

50

50

10

1

4

WORLEY

157

49

35

35

8

3

3

DAVID

187

70

48

48

4

0

17

HAMHOCKER

50

12

10

10

2

0

0

CASEY

1

0

0

0

0

0

0

ตัวอย่างถ้าต้องการนับจำนวนแถวทั้งหมดในตาราง TEAMGAMEโดยนับเฉพาะแถวที่ HIT หารด้วย AB แล้วมีค่าน้อยกว่า 0.35 จะใช้คำสั่งดังนี้

SELECT COUNT(*)

FROM TEAMGAME

WHERE HITS/AB < .35;

ผลของคำสั่ง จะได้ผลลัพธ์เป็นจำนวนแถวที่ HIT หารด้วย AB แล้วมีค่าน้อยกว่า 0.35

COUNT (*)

4

ตัวอย่าง ถ้าต้องการให้แสดงคอลัมน์ที่นับได้ชื่อ NUM_BELOW_350

SELECT COUNT(*) NUM_BELOW_350

FROM TEAMGAME

WHERE HITS/AB < .35;

ผลของคำสั่ง

NUM_BELOW_350

4

ตัวอย่าง ถ้าต้องการนับจำนวนคนที่มีเงื่อนไขให้ HIT หารด้วย AB แล้วมีค่าน้อยกว่า 0.35

SELECT COUNT(NAME) NUM_BELOW_350

FROM TEAMGAME

WHERE HITS/AB < .35;

ผลของคำสั่ง

NUM_BELOW_350

4

ตัวอย่าง ถ้าต้องการนับว่าข้อมูลในตาราง TEAMGAME มีจำนวนทั้งหมดกี่แถวจะใช้

SELECT COUNT(*)

FROM TEAMGAME;

ผลของคำสั่ง

COUNT(*)

6

1.2 ฟังก์ชัน SUM (X) เป็นฟังก์ชันที่ใช้ในการหาค่ารวมของคอลัมน์ (X) ที่เก็บข้อมูลประเภทตัวเลข

ตัวอย่าง ถ้าต้องการหาผลรวมของคอลัมน์ SINGLES จากตาราง TEAMGAME โดยให้แสดงคอลัมน์ของผลรวมที่ได้ในชื่อ TOTAL….SINGLES

SELECT SUM(SINGLES) TOTAL_SINGLES

FROM TEAMGAME;

ผลของคำสั่ง

TOTAL_SINGLES

174

ตัวอย่าง ถ้าต้องการหาผลรวมของคอลัมน์ SINGLES, DOUBLES, TRIPLES, HR จากตาราง TEAMGAME โดยให้แสดงคอลัมน์ของผลรวมที่ได้ในชื่อ TOTAL.SIGLES, TOTAL_DOUBLES, TOTAL_TRIPLES, TOTAL_HR ตามลำดับ

SELECT SUM(SINGLES) TOTAL_SINGLES, SUM(DOUBLES) TOTAL_DOUBLES,

SUM(TRIPLES) TOTAL_TRIPLES, SUM(HR) TOTAL_HR

FROM TEAMGAME;

ผลของคำสั่งที่ได้จะทำการรวมคะแนนทั้งหมดในคอลัมน์ SINGLES, DOUBLES, TRIPLES, HR แล้วแสดงออกมาเป็นคอลัมน์ TOTAL_SIGLES TOTAL_DOUBLES, TOTAL_TRIPLES, TOTAL_HR ตามลำดับดังนี้

TOTAL_SINGLES

TOTAL_DOUBLES

TOTAL_TRIPLES

TOTAL_HR

174

32

5

29

ตัวอย่าง ถ้าต้องการหาผลรวมของคอลัมน์ SINGLES, DOUBLES, TRIPLES, HR จากตาราง TEAMGAME ที่มีเงื่อนไขว่า HITS หารด้วย AB มากกว่าหรือเท่ากับ .300 โดยให้แสดงคอลัมน์ของผลรวมที่ได้ในชื่อ TOTAL_SIGLES, TOTAL_DOUBLES, TOTAL_TRIPLES, TOTAL_HR ตามลำดับ

SELECT SUM(SINGLES) TOTAL_SINGLES, SUM(DOUBLES) TOTAL_DOUBLES,

SUM(TRIPLES) TOTAL_TRIPLES, SUM(HR) TOTAL_HR

FROM TEAMGAME;

WHERE HITS/AB > = .300;

ผลของคำสั่งที่ได้จะทำให้รวมคะแนนทั้งหมดในคอลัมน์ต่าง ๆ เฉพาะแถวที่มีค่า HITS หารด้วย AB มากกว่าหรือเท่ากับ .300 แล้วแสดงผลในชื่อ TOTAL_SIGLES, TOTAL_DOUBLES, TOTAL_TRIPLES, TOTAL_HR ตามลำดับ

TOTAL_SINGLES

TOTAL_DOUBLES

TOTAL_TRIPLES

TOTAL_HR

164

30

5

29

ตัวอย่าง ถ้าต้องการผลรวมในคอลัมน์ NAME

SELECT SUM(NAME)

FROM TEAMGAME;

ผลของคำสั่งจะเกิด ERROR ขึ้นเนื่องจากในคอลัมน์ NAME มีประเภทของข้อมูลเป็นตัวอักขระฟังก์ชัน SUM จะใช้กับตัวเลขเท่านั้น ถ้าใช้ SUM กับตัวอักษรจะเกิด ERROR ดังตัวอย่าง

ERROR:

ORA-01722: invalid number

No rows selected

1.3 ฟังก์ชัน AVG (X) เป็นฟังก์ชันที่ใช้ในการหาค่าเฉลี่ยของคอลัมน์ (X) ที่เก็บข้อมูลประเภทตัวเลข

ตัวอย่าง ถ้าต้องการหาเฉลี่ยของ HITS ให้แสดงในชื่อ HIT_AVERAGE

SELECT AVG(HITS) HITS_AVERAGE

FROM TEAMGAME;

ผลของคำสั่งที่ได้จะแสดงค่าเฉลี่ยของ HITS ที่เกิดจากการนำค่าในแถวต่าง ๆ ในคอลัมน์ HIT มาบวกกันแล้วหารด้วยจำนวนแถว คือ 6

HITS_AVERAGE

40.166666

1.4 ฟังก์ชัน MAX (X) เป็นฟังก์ชันที่ใช้ในการคำนวณหาค่าสูงสุดของคอลัมน์ (X)

ตัวอย่าง ถ้าต้องการหาว่าในคอลัมน์ HITS มีค่าสูงสุดเท่าใด

SELECT MAX(HITS)

FROM TEAMGAME;

ผลของคำสั่งที่ได้จะได้ว่า HITS มีค่าสูงสุดคือ 70 ดังนี้

MAX(HITS)

70

ตัวอย่าง ถ้าต้องการหาว่าใครเป็นผู้ที่ได้ HITS สูงที่สุดโดยใช้คำสั่งดังนี้

SELECT NAME

FROM TEAMGAME

WHERE HITS = MAX(HITS);

ผลของคำสั่งจะเกิด ERROR เนื่องจากฟังก์ชันในการรวม (Aggregate function) มาใช้ในเงื่อนไขอนุประโยค WHERE ไม่ได้จะเกิด ERROR ขึ้นจากตัวอย่าง WHERE HITS = MAX(HITS); MAX(HITS) จะมาใช้ในเงื่อนไขอนุประโยค WHERE ไม่ได้ จากคำถามข้อนี้จะสามารถใช้ได้กับคำสั่ง CROUP BY และ HAVING ที่จะได้ศึกษาต่อไป

ERROR at line 3:

ORA – 00934: group function is not allowed here

ตัวอย่าง การใช้ MAX กับประเภทของข้อมูลที่เป็นตัวอักขระ

SELECT MAX (NAME)

FROM TEAMGAME;

ผลของคำสั่งจากคำสั่งจะทำการหาชื่อของผู้ที่มีอักษร (A-Z) ตามลำดับใครที่มีอักษรลำดับมากที่สุดจะถูกแสดงออกมาเพียงแถวเดียว

MAX(NAME)

WORLEY

1.5 ฟังก์ชัน MIN (X) เป็นฟังก์ชันที่ใช้ในการหาค่าต่ำสุดของคอลัมน์ (X)

ตัวอย่าง ถ้าต้องการหาค่าต่ำสุดในคอลัมน์ AB

SELECT MIN(AB)

FROM TEAMGAME;

ผลของคำสั่งที่ได้จะได้ค่าต่ำสุดในคอลัมน์ AB ดังนี้

MIN (AB)

1

ตัวอย่าง การใช้ MIN กับประเภทของข้อมูลที่เป็นตัวอักขระ

SELECT MIN(NAME)

FROM TEAMGAME;

ผลของคำสั่งจากคำสั่งจะทำการหาชื่อของผู้ที่มีอักษร (A-Z) ตามลำดับใครที่มีอักษรลำดับน้อยที่สุดจะถูกแสดงออกมาเพียงแถวเดียว

MIN (NAME)

CASEY

ตัวอย่าง ถ้าต้องการหาค่าต่ำสุดและสูงสุดในคอลัมน์ AB

SELECT MIN(AB), MAX(AB)

FROM TEAMGAME;

ผลของคำสั่งจะได้ค่าต่ำสุดและสูงสุดในคอลัมน์ AB ดังนี้

MIN (AB)

MAX (AB)

1

187

1.6 ฟังก์ชัน VARIANC (X) เป็นฟังก์ชันในการหาค่าส่วนเบี่ยงเบนมาตราฐานยกกำลัง2(S2) ในคอลัมน์ X

ตัวอย่าง ถ้าต้องการหาค่า VARIANC ของ คอลัมน์ HITS

SELECT VARIANCE(HITS)

FROM TEAMGAME;

ผลของคำสั่งที่ได้จะได้ค่า VARIANCE ในคอลัมน์ HITS

VARIANCE(HITS)

802.96667

ตัวอย่าง ถ้าต้องการหาค่า VARIANCE ของคอลัมน์ NAME

SELECT VARIANCE(NAME)

FROM TEAMGAME;

ผลของคำสั่งจะเกิด ERRORขึ้นเนื่องจากฟังก์ชัน VARIANCE ไม่สามารถใช้กับข้อมูลที่เป็นตัวอักษรได้ดังนี้

ERROR:

ORA-01722: invalid number

No rows selected

1.7 ฟังก์ชัน STDDEV (X) หรือฟังก์ชันส่วนเบี่ยงเบนมาตราฐาน ส่วนเบี่ยงเบนมาตราฐาน คือ การหาค่ารากที่สองของผลรวมของความแตกต่างระหว่างข้อมูลดิบกับค่าเฉลี่ย ยกกำลังสอง (sum of squaresของผลต่าง) หารด้วยจำนวนข้อมูลทั้งหมดของคอลัมน์ X

ตัวอย่าง ถ้าต้องการหาส่วนเบี่ยงเบนมาตรฐานของคอลัมน์ HITS

SELECT STDDEV(HITS)

FROM TEAMGAME;

ผลของคำสั่งจะได้ส่วนเบี่ยงเบนมาตรฐานของคอลัมน์ HITS ดังนี้

STDDEV(HITS)

28.336666

SELECT STDDEV(NAME)

FROM TEAMGAME;

ผลของคำสั่งจะเกิด ERROR ได้เนื่องจากฟังก์ชัน STDDEV ไม่สามารถใช้กับข้อมูลที่เป็นตัวอักษรได้

ERROR:

ORA-01722: invalid number

no rows selected

ตัวอย่าง ถ้าต้องการนับจำนวนแถวในคอลัมน์ หาค่าเฉลี่ยหาค่าสูงสุด ต่ำสุด หาค่าส่วนเบี่ยงเบนมาตรฐาน หาค่าว่าเรียน และหาผลรวมของคอลัมน์ AB

SELECT COUNT(AB),

AVG(AB),

MIN(AB),

MAX(AB),

STDEV(AB),

VARIANCE(AB),

SUM(AB),

FROM TEAMGAME;

ผลของคำสั่งที่ได้ค่าต่าง ๆ ตามลำดับดังนี้

COUNT(AB)

AVG(AB)

MIN(AB)

MAX(AB)

STDDEV(AB)

VARIANCE(AB)

SUM(AB)

6

119.167

1

187

75.589

5712.97

715

2.ฟังก์ชันวันและเวลา (Date and tune functions)

เป็นกลุ่มฟังก์ชันที่แสดงข้อมูลออกมาเป็นวันและเวลา

ตัวอย่าง ตารางPROJECT

TASK

STARTDATE

ENDDATE

KICKOFF MTG

01-APR-2001

01-APR-2001

TECH SURVEY

02-APR-2001

01-MAY-2001

USER MTGS

15-MAY-2001

30-MAY-2001

DESIGN WIDGET

01-JUN-2001

30-JUN-2001

CODE WIDGET

01-JUL-2001

02-SEP-2001

TESTING

03-SEP-2001

17-JAN-2002

2.1 ฟังก์ชัน ADD_MONTHS (X,Y) เป็นฟังก์ชันที่ต้องการบวกจำนวนเดือน (Y) เข้าไปในข้อมูล คอลัมน์ X

ตัวอย่าง ถ้าต้องการให้เลื่อนเวลาในคอลัมน์ ENDDATE ให้มีกำหนดเวลาเพิ่มขึ้นอีก 2 เดือน โดยให้ผลลัพธ์แสดงคอลัมน์ TASK, STARTDATE และคอลัมน์ ENDDATE ให้แสดงเป็นคอลัมน์ ORIGINALEND ส่วนกำหนดเวลาที่บวกเพิ่มไปอีก 2 เดือน ให้แสดงในคอลัมน์ ADD_MONTH

SELECT TASK,STARTDATE, ENDDATE ORIGINAL_END,

ADD_MONTHS(ENDDATE,2)

FROM PROJECT;

ผลของคำสั่งจะได้ ADD_MONTHS เพิ่มมาอีก 1 คอลัมน์ ซึ่งเกิดจากข้อมูลในคอลัมน์ ENDDATE บวกอีก 2 เดือน

TASK

STARTDATE

ORIGINAL

ADD_MONTH

KICKOFF MTG

01-APR-2001

01-APR-2001

01-JUN-2001

TECH SURVEY

02-APR-2001

01-MAY-2001

01-JUN-2001

USER MTGS

15-MAY-2001

30-MAY-2001

30-JUN-2001

DESIGN WIDGET

01-JUN-2001

30-JUN-2001

31-AUG-2001

CODE WIDGET

01-JUL-2001

02-SEP-2001

02-NOV-2001

TESTING

03-SEP-2001

17-JAN-2002

17-MAR-2002

ตัวอย่าง ถ้าต้องการหาว่างานใดบ้างที่มีระยะการทำงานไม่เกิน 1 เดือนจะใช้คำสั่งดังนี้

SELECT TASK, TASKS_SHORTER_THAN_ONE_MONTH

FROM PROJECT

WHERE ADD_MONTHS(STARTDATE, 1) > ENDDATE;

ผลของคำสั่งจะได้คอลัมน์ TASKS_SHORTER_THAN_ONE_MONTH ที่แสดงงานที่มีระยะเวลาการทำงานไม่เกิน 1 เดือน

TASKS_SHORTER_THAN_ONE_MONTH

KICKOFF MTG

TECH SURVEY

USER MTGS

DESIGN WIDGET

2.2 ฟังก์ชัน LAST_DAY (X) เป็นฟังก์ชันที่แสดงวันสุดท้ายของเดือนในคอลัมน์ (X)

ตัวอย่าง เช่นต้องการแสดงวันสุดท้ายของเดือนจะใช้คำลั่งดังนี้

SELECT ENDDATE, LAST_DAY(ENDDATE)

FROM PROJECT;

ผลของคำสั่งที่ได้จะแสดงในคอลัมน์ LAST_DAY (ENDDATE) ที่แสดงวันสุดท้ายของเดือนในคอลัมน์ ENDDATE

ENDDATE

LAST_DAY(ENDDATE)

01-APR-2001

30-APR-2001

01-MAY-2001

31-MAY-2001

30-MAY-2001

31-MAY-2001

30-JUN-2001

30-JUN-2001

02-SEP-2001

30-SEP-2001

17-JAN-2002

31-JAN-2002

2.3 ฟังก์ชัน MONTHS_BETWEEN (X,Y) เป็นฟังก์ชันที่คำนวณค่าระหว่าง X และ Y โดยมีหน่วยเป็นเดือน

ถ้าต้องการคำนวณหาค่าระหว่างคอลัมน์ STARIDATE กับคอลัมน์ ENDDATE ว่ามีระยะเวลาห่างกันกี่เดือน

SELECT TASK, STARTDATE, ENDDATE, MONTHS_BETWEEN(STARTDATE, ENDDATE)

DURATION

FROM PROJECT;

ผลของคำสั่งที่ได้คอลัมน์ DURATION ที่ติดค่าลบเนื่องจากใช้คอลัมน์ STARTDATE ซึ่งมีค่าน้อยกว่าคอลัมน์ ENDDATE เป็นค่าเริ่มต้น

TASK

STARTDATE

ENDDATE

DURATION

KICKOFF MTG

01-APR-2001

01-APR-2001

0

TECH SURVEY

02-APR-2001

01-MAY-2001

-.9677419

USER MTGS

15-MAY-2001

30-MAY-2001

-.483871

DESIGN WIDGET

01-JUN-2001

30-JUN-2001

-.9354839

CODE WIDGET

01-JUL-2001

02-SEP-2001

-2.032258

TESTING

03-SEP-2001

17-JAN-2002

-4.451613

เป็นการหาค่าเดือนเหมือนดังตัวอย่างข้างต้น แต่จะนำคอลัมน์ ENDDATE มาเป็นค่าเริ่มต้น

SELECT TASK, STARTDATE, ENDDATE,

MONTHS_BETWEEN(ENDDATE ,STARTDATE) DURATION

FROM PROJECT;

ผลของคำสั่งที่ได้คอลัมน์ DURATION เป็นบวกเพราะคอลัมน์ ENDDATE ที่เป็นค่าเริ่มต้นมีค่ามากกว่าคอลัมน์ STARIDATE

TASK

STARTDATE

ENDDATE

DURATOPN

KICKOFF MTG

01-APR-2001

01-APR-2001

0

TECH SURVEY

02-APR-2001

01-MAY-2001

.96774194

USER MTGS

15-MAY-2001

30-MAY-2001

.48387097

DESIGN WIDGET

01-JUN-2001

30-JUN-2001

.93548387

CODE WIDGET

01-JUL-2001

02-SEP-2001

2.0322581

TESTING

03-SEP-2001

17-JAN-2002

4.4516129

ตัวอย่าง ถ้าต้องการหาว่าค่าที่เริ่มก่อนวันที่ 15 MAY 2001

SELECT *

FROM PROJECT

WHERE MONTHS_BETWEEN(’19 MAY 2001’,STARTDATE) > 0;

ผลของคำสั่งที่ได้จะแสดงงานโครงการที่เริ่มก่อน วันที่ 19 MAY 2001

TASK

STARTDATE

ENDDATE

KICKOFF MTG

01-APR-2001

01-APR-2001

TECH SURVEY

02-APR-2001

01-MAY-2001

USER MTGS

15-MAY-2001

30-MAY-2001

3.ฟังก์ชันคณิตศาสตร์ (Arithmetic functions)

เป็นกลุ่มคำสั่งที่เกี่ยวกับการคำนวณทางเลขคณิต

ตัวอย่าง ตารางNUMBERS;

A

B

3.1415

4

-45

.707

5

9

-57.667

42

15

55

-7.2

5.3

3.1 ฟังก์ชัน ABS(X)เป็นฟังก์ชันในการหาค่าสมบูรณ์ของ X

ต้องการหาค่าสมบูรณ์ในคอลัมน์ A

SELECT ABS(A) ABSOLUTE_VALUE

FROM NUMBERS;

ผลของคำสั่ง

ABSOLUTE_VALUE

3.1415

45

5

57.667

15

7.2

3.2 ฟังก์ชัน CEIL(X) and FLOOR(X)

ฟังก์ชัน CEIL (X) เป็นฟังก์ชันที่ให้ค่าตัวเลขจำนวนเต็มที่มีค่ามากว่าหรือเท่ากับค่าในคอลัมน์ (X)

ฟังก์ชัน FLOORเป็นฟังก์ชันที่ให้ค่าตัวเลขจำนวนเต็มที่พิจารณาจากค่าในคอลัมน์ X ถ้าหลังจุดทศนิยมมีค่ามากว่า 5 ก็จะให้ค่าเลขจำนวนเต็มที่มากขึ้น แต่ถ้าหลังจุดทศนิยมมีค่าน้อยกว่า 5 จะให้ค่าตัวเลขที่มีค่าน้อยลง

ตัวอย่าง ถ้าต้องการหาค่าตัวเลขจำนวนเต็มที่มีค่ามากกว่าหรือเท่ากับค่าในคอลัมน์ B

SELECT B, CEIL(B) CEILING

FROM NUMBERS;

ผลของคำสั่งจะได้คอลัมน์ CEILING ที่แสดงตัวเลขจำนวนเต็มที่มีค่ามากกว่าหรือเท่ากับค่าในคอลัมน์ B

B

CEILING

4

4

.707

1

9

9

42

42

55

55

5.3

6

ตัวอย่าง ถ้าต้องการหาค่าตัวเลขจำนวนเต็มในคอลัมน์ A โดยถ้าหลังจุดทศนิยมมีอยู่มากกว่า 5 ก็จะให้ค่าเลขจำนวนเต็มที่มากขึ้น แต่ถ้าหลังจุดทศนิยมมีค่าน้อยกว่า 5 ก็จะให้ค่าตัวเลขที่มีค่าน้อยลง

SELECT A, FLOOR(A) FLOOR

FROM NUMBERS;

ผลของคำสั่งจะได้คอลัมน์ FLOOR ที่มีค่ามากกว่า

A

FLOOR

3.1415

3

.45

-45

5

5

-57.667

-58

15

15

-7.2

-8

3.3 ฟังก์ชัน COS(X), COSH(X), SIN(X), SINH(X), TAN(X), และ TANH(X) เป็นฟังก์ชันทางตรีโกณที่หาค่า cosine,hyperbolic cosine,sine,hyperbolic sine,tangent,hyperbolic tangent ที่มีค่า X เป็นองศาเรเดียน(radians,) โดย 360 degrees = 2 pile radians

ตัวอย่าง ถ้าต้องการหาค่า COS ของมุมในคอลัมน์ A

SELECT A, COS(A)

FROM NUMBERS;

ผลของคำสั่งจะได้ของ (A) ที่มีค่าดังนี้

A

COS(A)

3.1415

-1

-45

.52532199

5

.28366219

-57.667

.437183

15

-.7596879

.7.2

.60835131

3.4 ฟังก์ชัน EXP (X)เป็นฟังก์ชันหาค่า e ยกกำลัง X

ตัวอย่าง ถ้าต้องการหาค่า e ยกกำลังของข้อมูลในคอลัมน์ A

SELECT A, EXP(A)

FROM NUMBERS;

ผลของคำสั่งจะได้คอลัมน์ EXP(A) ที่เป็นข้อมูลในข้อมูลคอลัมน์ A e ยกกำลังตัวเลข

A

EXP(A)

3.1415

23.138549

-45

2.863E-20

5

148.41316

-57.667

9.027E-26

15

3269017.4

.7.2

.00074659

3.5 ฟังก์ชัน LN(X) และ LOG(X)

ฟังก์ชัน LN เป็นการหาค่า natural log ของ X

ฟังก์ชัน LOG เป็นการหาค่า log ฐาน10 ของ X

ตัวอย่าง ถ้าต้องการหา natural log ของคอลัมน์ A

SELECT A, LN(A)

FROM NUMBERS;

ผลของคำสั่งจะเกิด ERROR ขึ้นเนื่องจากแถวที่ 2 และ 4 ของตาราง NUMBERS มีค่าเป็นลบ ซึ่งถ้าข้อมูลมีค่าเป็นลบจะหาค่าไม่ได้

ERROR:

ORA-01428: argument ‘-45’ is out of range

จากตัวอย่างถ้าทำการยกกำลัง 2 ข้อมูลในคอลัมน์ A ค่าของข้อมูลที่เป็นลบอยู่เมื่อถูกยกกำลัง 2 จะกลายเป็นบวกจากนั้นจึงทำการหาค่า LN ข้อมูลในคอลัมน์ A

SELECT A, LN(ABS(A))

FROM NUMBERS;

ผลของคำสั่งในคอลัมน์ LN (ABS(A) จะได้ค่า natural log ที่เกิดจากคอลัมน์ A ยกกำลัง 2

A

LN (ABS(A))

3.1415

1.1447004

-45

3.8066625

5

1.6094379

-57.667

4.0546851

15

2.7080502

.7.2

1.974081

จะหาค่า Log ฐาน 10 ในคอลัมน์ B จากตาราง NUBMERS

SELECT B, LOG(B, 10)

FROM NUMBERS;

ผลของคำสั่งในคอลัมน์ LOG(B,10) จะให้ค่า log ฐาน 10 ของคอลัมน์ B

B

LOG(B,10)

4

1.660964

.707

-6.640962

9

1.0479506

42

.61604832

55

.57459287

5.3

1.3806894

3.6 ฟังก์ชัน MOD(X,Y) เป็นฟังก์ชันที่แสดงเศษที่เกิดข้อมูล X หารด้วย Y

ตัวอย่าง ถ้าต้องการหาเศษของ A หารด้วย B โดยแสดงคอลัมน์ A,B และคอลัมน์เศษที่เหลือ

SELECT A, B, MOD(A,B)

FROM NUMBERS;

ผลของคำสั่งจะได้คอลัมน์ MOD(A,B) เป็นคอลัมน์ที่แสดงเศษที่เกิดจากข้อมูลในคอลัมน์ A หารด้วย B

A

B

MOD(A,B)

3.1415

4

3.1415

-45

.707

-.459

5

9

5

-57.667

42

-15.667

15

55

15

-7.2

5.3

-1.9

3.7 ฟังก์ชัน POWER (X,Y) เป็นฟังก์ชันในการยกกำลัง โดย X เป็นเลขฐานและ Y จะเป็นเลขยกกำลัง

SELECT A, B, POWER(A,B)

FROM NUMBERS;

ผลของคำสั่งจะเกิด ERROR เพราะargument ในแถวที่ 2 ตัวที่เป็นเลขยกกำลังต้องมีค่าเป็นจำนวนเต็ม

ERROR:

ORA-01428: ARGUMENT ‘-45’ is out of range

จะทำให้เลขยกกำลังมีค่าเป็นเลขจำนวนเต็มบวกโดยใช้ฟังก์ชัน CEILก่อนแล้วจึงจะนำมายกกำลัง

SELECT A, CEIL(B), POWER(A,CEIL(B))

FROM NUMBERS;

ผลของคำสั่งในคอลัมน์ CELI (B) เป็นค่าของข้อมูลในคอลัมน์ B ที่มีค่าเป็นจำนวนเต็มและเมื่อยกกำลังแล้วจะมีค่าปรากฎในคอลัมน์ POWER (A,CEIL(B)

A

CEIL(B)

POWER(A,CEIL(B))

3.1415

4

97.3976

-45

1

-45

5

9

1953125

-57.667

42

9.098E+73

15

55

4.842E+64

-7.2

6

139314.07

3.8 ฟังก์ชัน SIGN (X) เป็นฟังก์ชันที่

- ให้ค่าเป็น –1 ถ้า X มีค่าน้อยกว่า 0

- ให้ค่าเป็น 0 ถ้า X มีค่าเท่ากับ 0

- ให้ค่าเป็น 1 ถ้า X มีค่ามากกว่า 0

ตัวอย่าง ถ้าต้องการหาฟังก์ชัน SIGN ในการหาค่าข้อมูลในคอลัมน์ A

SELECT A, SIGN(A)

FROM NUMBERS;

ผลของคำสั่ง

A

SIGN (A)

3.1415

1

-45

-1

5

1

-57.667

-1

15

1

-7.2

-1

0

0

ถ้าต้องการใช้ฟังก์ชัน SIGN ที่มีค่า 1 ในคอลัมน์ A

SELECT A

FROM NUMBERS

WHERE SIGN(A) =1;

ผลของคำสั่งจะแสดงข้อมูลในคอลัมน์ A ที่เมื่อใช้ฟังก์ชัน SIGN แล้วมีค่าเป็น 1

A

3.1415

5

15

3.9 ฟังก์ชัน SQRT (X) เป็นฟังก์ชันในการหาค่ารากที่ 2 ของ X

ตัวอย่าง ถ้าต้องการหารากที่ที่ 2 ของข้อมูลในคอลัมน์ A

SELECT A, SQRT(A)

FROM NUMBERS;

ผลของคำสั่งจะเกิด ERROR เนื่องจากไม่สามารถหาค่ารากที่ 2 ของตัวเลขที่มีค่าเป็นลบได้ดังนี้

ERROR:

ORA-01428: ARGUMENT ‘-45’ is out of range

ตัวอย่าง ถ้านำข้อมูลในคอลัมน์ A มาหาค่าสมบูรณ์แล้วจึงนำไปหาค่ารากที่ 2

SELECT ABS(A), SQRT(ABS(A))

FROM NUMBERS;

ผลของคำสั่งที่ได้จะได้ค่าสมบูรณ์ของข้อมูลในคอลัมน์ A และได้ค่ารากที่ 2 ของค่าสมบูรณ์ในคอลัมน์ A

ABS(A)

SQRT(ABS(A))

3.1415

1.7724277

45

-16.7082039

5

12.236068

57.667

7.5938791

15

3.8729833

7.2

2.6832816

0

0

4.ฟังก์ชันตัวอักขระ (Character functions)

เป็นฟังก์ชันที่ใช้สำหรับจัดการข้อมูลอักขระ โดยที่มีตัวแปรจริงเป็นชนิดอักขระหรือชนิดตัวเลข และให้ผลการคำนวณเป็นค่าอักขระหรือค่าตัวเลข

ตัวอย่างตาราง CHARACTERS

LASTNAME

FIRSTNAME

M

CODE

PURVIS

KELLY

A

32

TAYLOR

CHUCK

J

67

CHRISTINE

LAURA

C

65

ADAMS

FESTER

M

87

COSTALES

ARMANDO

A

77

KONG

MAJOR

G

52

4.1 ฟังก์ชัน CHR เป็นฟังก์ชันสำหรับเปลี่ยนนิพจน์อักขระให้เป็นรหัส ASCII ค่าที่ได้จากฟังก์ชันนี้จะเป็นค่ารหัส ASCII

ตัวอย่าง ถ้าต้องการเปลี่ยนค่าตัวเลขในคอลัมน์ CODE ให้เป็นตัวอักษร

SELECT CODE, CH(CODE)

FROM CHARACTERS;

ผลของคำสั่ง

CODE

CH

32

 

67

C

65

A

87

W

77

M

52

4

4.2 ฟังก์ชัน CONCAT (X,Y) เป็นฟังก์ชันในการรวมอักขระ (X และ Y) เข้าด้วยกัน

ตัวอย่าง ถ้าต้องการรวมคอลัมน์ FIRSINAME กับ LASTNAME ไว้ด้วยกัน

SELECT CONCAT(FIRSTNAME, LASTNAME) “FIRST AND LAST NAMES”

FROM CHARACTERS;

ผลของคำสั่งจะได้นำคอลัมน์ FIRSTNAME และ LASTNAME มารวมกันแสดงให้เห็นในคอลัมน์ FIRST AND LASTNAMES

FIRST AND

LAST NAMES

KELLY

PURVIS

CHUCK

TAYLOR

LAURA

CHRISTINE

FESTER

ADAMS

ARMANDO

COSTALES

MAJOR

KONG

4.3 ฟังก์ชัน INITCAP (<string>) เป็นฟังก์ชันที่เปลี่ยนค่าตัวอักขระ (string) ให้ตัวแรกเป็นอักขระตัวใหญ่แล้วตามด้วยอักขระตัวเล็ก

ถ้าต้องการเปลี่ยนให้เป็นอักษรตัวใหญ่ในคอลัมน์ FIRSTNAME

SELECT FIRSTNAME BEFORE, INITCAP(FIRSTNAME) AFTER

FROM CHARACTERS;

ผลของคำสั่งจะทำการเปลี่ยน

BEFORE

AFTER

KELLY

Kelly

CHUCK

Chuck

LAURA

Laura

FESTER

Fester

ARMANDO

Armando

MAJOR

Major

4.4 ฟังก์ชัน LOWER (<string>) and UPPER (<string>)

ฟังก์ชัน LOWER (<string>) เป็นฟังก์ชัน ที่เปลี่ยนตัวอักขระ (<string>) เป็นอักขระตัวเล็ก

ฟังก์ชัน UPPER (<string>) เป็นฟังก์ชัน ที่เปลี่ยนตัวอักขระ (<string>) เป็นอักขระตัวใหญ่

ตัวอย่าง ถ้าต้องการเปลี่ยนแปลงตัวอักขระในคอลัมน์ FIRSTNAME จากอักขระตัวเล็กให้เป็น

อักขระตัวใหญ่ทุกแถว ถ้าใช้คำสั่ง UPDATE ดังนี้

UPDATE CHARACTERS

SET FIRSTNAME = ‘kelly’

WHERE FIRSTNAME = ‘KELLY’;

ผลของคำสั่งจะทำการเปลี่ยนแปลงข้อมูลได้คำสั่งละ 1 แถวเท่านั้น

1 rows update.

 จากตัวอย่างถ้าใช้ฟังก์ชัน LOWER หรือ UPPER ในการเปลี่ยนแปลงตัวอักขระจะใช้คำสั่งเพียงครั้งเดียวก็สามารถเปลี่ยนแปลงข้อมูลได้ทุกแถวดังนี้

SELECT FIRSTNAME, UPPER(FIRSTNAME), LOWER(FIRSTNAME)

FROM CHARACTERS;

ผลของคำสั่งจะทำการเปลี่ยนแปลงข้อมูลในคอลัมน์ FIRSTNAME ให้เป็นอักษรตัวใหญ่และเล็กตามลำดับดังนี้

FIRSTNAME

UPPER(FIRSTNAME)

LOWER(FIRSTNAME}

Kelly

KELLY

kelly

CHUCK

CHUCK

chuck

LAURA

LAURA

laura

FESTER

FESTER

fester

ARMANDO

ARMANDO

armando

MAJOR

MAJOR

major

4.7 ฟังก์ชัน REPLACE (<string>,X,Y) เป็นฟังก์ชันในการแทนค่าอักขระ X โดยการค้นหาตัวอักขระที่ต้องการแทนที แล้วแทนที่ด้วยอักขระ Y ที่ต้องการ

ตัวอย่าง ถ้าต้องการค้นหาอักขระ ST โดยไม่แทนที่ด้วยอักขระใดๆ

คำสั่งต้องการหาตัวอักษร ST ในคอลัมน์ LASTNAME โดยไม่ต้องแทนที่ด้วยตัวอักษรใด

SELECT LASTNAME, REPLACE(LASTNAME, ‘ST’) REPLACEMENT

FROM CHARACTERS;

ผลของคำสั่งจะทำให้ในแถวที่ 3 และแถวที่ 6 ที่มีคอลัมน์ LASTNAME ที่มีอักษร ST อยู่จะถูกตัดทิ้งไป

LASTNAME

REPLACEMENT

PURVIS

PURVIS

TAYLOR

TAYLOR

CHRISTINE

CHRIINE

ADAMS

ADAMS

COSTALES

COALES

KONG

KONG

ตัวอย่าง ถ้าต้องการหาตัวอักษร ST ในคอลัมน์ LASTNAME แล้วแทนที่ด้วย **

SELECT LASTNAME, REPLACE(LASTNAME, ‘ST’, ‘**’) REPLACEMENT

FROM CHARACTERS;

ผลของคำสั่งจะทำให้ในแถวที่ 3 และแถวที่ 6 ในคอลัมน์ LASTNAME ที่มีอักษร ST อยู่จะถูกแทนที่ด้วย **

LASTNAME

REPLACEMENT

PURVIS

PURVIS

TAYLOR

TAYLOR

CHRISTINE

CHRI**INE

ADAMS

ADAMS

COSTALES

CO**ALES

KONG

KONG

4.8 ฟังก์ชัน SUBSTR (<string>,x,y) เป็นฟังก์ชันที่นำตัวอักษร (<string>) ในตำแหน่งที่ x

ตัวอย่าง ถ้าต้องกแสดงอักษรตั้งแต่ตำแหน่งที่ 2 มาแสดง 3 ตำแหน่ง ของคอลัมน์ FIRSTNAME

SELECT FIRSTNAME, SUBSTR(FIRSTNAME,2,3)

FROM CHARACTERS;

ผลของคำสั่งจะเห็นว่าในคอลัมน์ FIRSTNAME จะแสดงอักษรออกมา 3 ตัว แม้แต่ชื่อคอลัมน์ก็จะแสดงเพียง 3 ตัวเช่นเดียวกัน

FIRSTNAME

SUB

Kelly

Ell

CHUCK

HUC

LAURA

AUR

FESTER

EST

ARMANDO

RMA

MAJOR

AJO

ตัวอย่าง ถ้าต้องการให้แสดงตั้งแต่ตัวอักษรในตำแหน่งที่ 3 โดยไม่จำกัดว่าให้แสดงก็ตัวอักษร

SELECT FIRSTNAME, SUBSTR(FIRSTNAME,3)

FROM CHARACTERS;

ผลของคำสั่งจะแสดงอักษรในคอลัมน์ FIRSTNAME ตั้งแต่ตัวที่ 3 ทั้งหมด

FIRSTNAME

SUBSTR(FIRSTN

Kelly

Lly

CHUCK

UCK

LAURA

URA

FESTER

STER

ARMANDO

MANDO

MAJOR

JOR

5.ฟังก์ชันการแปลง (Conversion functions)

5.1ฟังก์ชัน TO_CHAR จะทำการแลง data type ที่เป็นตัวเลขให้เป็นตัวอักษร

SELECT TESTNUM, TO_CHAR(TESTNUM)

FROM CONVERSIONS;

ผลของคำสั่ง

TESTNUM

TO_CHAR(TESTNUM)

95

95

23

23

68

68

SELECT TESTNUM, LENGTH(TO_CHAR(TESTNUM))

FROM CONVERSIONS;

ผลของคำสั่งจะทำการนับความยาวของตัวเลขที่แปลงเป็นตัวอักษรแล้ว

TESTNUM

LEGTH(TO_CHAR(TESTNUM))

95

2

23

2

68

2

 

 

Last Updated: 12/13/2001 11:22:14 AM
© โครงการเครือข่ายสารสนเทศเพื่อพัฒนาการศึกษา ทบวงมหาวิทยาลัย