จำนวนการดูหน้าเว็บรวม

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

คำสั่ง SQL

คำสั่ง SQL


รูปแบบคำสั่งการสร้างตาราง

 CREATE TABLE  <table name> (<column_name><>[<size>][[constraint<constraint name>]constraint type],   [column name>data type>[<size>],…]);

 

ตัวอย่าง

CREATE TABLE  EMPLOYEE

(Empnum CHAR(4) Empname CHAR (15),Salary NUMBER)

PRIMARY KEY (Empnum));

 

สั่งการเพิ่มข้อมูล
คำสั่งการเพิ่มข้อมูลในตาคำรางจะใช้คำสั่ง INSERT จะมีอยู่ 2 รูปแบบคือ การเพิ่มข้อมูลเข้าไปทีละแถว และ การเพิ่มข้อมูลโดยการดึงกลุ่มข้อมูลด้วยคำสั่งค้นหาข้อมูล
1.1 คำสั่งการเพิ่มข้อมูลทีละแถวโดยระบุข้อมูลที่จะ INSERTเข้าไปโดยตรง รูปแบบของคำสั่งเป็นดังนี้
INSERT INTO <tablename>[(column 1, column 2,…)]
VALUE(<value1,value2, …>);

ตัวอย่าง ถ้าต้องการจะใส่ข้อมูลทุกคอลัมน์ลงในตารางลูกค้า

 

    INSERT INTO SALES

    VALUES( 1001, “Chaiwat”, “Bangkok”,0.12);

ผลของคำสั่งนี้ จะมีข้อมูลปรากฎในทุกคอลัมน์ในตารางพนักงานขายดังนี้


SALENO

SALENAME

ADDRESS

SALECOM

1001

Chaiwat

Bangkok

0.12

 

ตัวอย่าง ถ้าต้องการจะใส่ข้อมูลบางคอลัมน์ เช่น ชื่อเมือง Bangkok ชื่อลูกค้า Arlee และหมายเลขลูกค้า 2001 ลงในตารางลูกค้า ใช้คำสั่งดังนี้
INSERT INTO CUSTOMER (ADDRESS,CUSNAME,CUSNO)
VALUES( 'Bangkok','Arlee', 2001);

ผลของคำสั่งในตารางลูกค้า จะทำให้คอลัมน์ ADDRESS มีค่าเป็น Bangkok คอลัมน์ CUSNAME จะมีค่าเป็น Arlee คอลัมน์ CUSNO จะมีค่าเป็น 2001

CUSNO
CUSNAME
ADDRESS
RATING
SALENO
2001
Arlee
Bangkok



 


คำสั่ง SQL


การเรียกคำสั่งใน SQL ในการดูข้อมูลในโปรแกรม ACCESS

คำสั่ง SELECT
1.    กำหนดข้อมูลใน QUERY เรียกชื่อ TABLE ที่ต้องการ
2.    เมนู VIEW เลือกคำสั่ง SQL view
3.    พิมพ์คำสั่ง
4.    RUN รูป           เพื่อแสดงผล


การเรียกดูข้อมูลทั้งตาราง

         
รูปแบบของคำสั่ง SELECT เพื่อใช้เรียกดูข้อมูลทุกคอลัมน์จากตารางใดตารางหนึ่งเป็นดังนี้คือ

รูปแบบ


Select *
From <table name>;

          ในการเรียกดูข้อมูลทั้งตารางจะต้องใช้เครื่องหมาย * เพื่อแทนการเรียกดูข้อมูลจากทุกคอลัมน์ของตารางหนึ่ง
          เช่นเรียกดูข้อมูลทั้งตารางของ EMPLOYEE
          คำสั่งที่ใช้คือ
          Select *
From <EMPLOYEE>;

การเรียกดูข้อมูลเพียงบางคอลัมน์

         
          รูปแบบคำสั่ง SELECT เพื่อเรียกดูข้อมูลเพียงคอลัมน์จากตารางใดตารางหนึ่ง คือ
         

รูปแบบ


Select <Column1, Column2...>
From <table name>;

          ในการเรียกดูข้อมูลเพียงบางคอลัมน์ จำเป็นต้องระบุชื่อคอลัมน์ให้ถูกต้อง ตามที่ระบุไว้ในโครงสร้าง หากเรียกดูมากกว่าหนึ่งคอลัมน์จะต้องมีเครื่องหมาย , คั่นระหว่างซื่อคอลัมน์
          เช่น ต้องการเรียกดู ชื่อพนักงาน ตำแหน่ง เงินเดือน
          คำสั่งที่ใช้คือ
          Select NAME, POSITION, SALARY
From  EMPLOYEE;

การเรียกดูข้อมูลโดยเปลี่ยนชื่อฟิลด์ 

ในบางครั้งชื่อฟิลด์ที่เราตั้งขึ้นอาจจะไม่ตรงกับความต้องการ เราสามารถเปลี่ยนชื่อของฟิลด์ใหม่ในการเรียกดูข้อมูลได้โดยใช้ AS
          เช่น ต้องการชื่อฟิลด์ POSITION เป็น DEPT

          คำสั่งที่ใช้คือ

          Select POSITION AS DEPT
From  EMPLOYEE;

 

การเรียกดูข้อมูลโดยไม่ให้แสดงข้อมูลที่ซ้ำกัน

            DISTINCT เป็นคำสั่งที่ใช้ตัดฟิลด์ที่มีค่าของข้อมูลซ้ำกันและจัดเรียงข้อมูมใหม่(เรียงจากน้อยมาหามาก) เมื่อต้องการดูข้อมูลจากตารางโดยไม่ให้แสดงข้อมูลซ้ำกันออกมา จะใช้คำว่า DISTINCT  หลังคำว่า SELECT
          เช่น ต้องการเรียกดู ตำแหน่งของพนักงานที่ไม่ซ้ำกัน
          คำสั่งที่ใช้คือ
          Select DISTINCT POSITION
From  EMPLOYEE;

Top n เป็นการเลือกเรคคอร์ดจากตำแหน่งของเรคคอร์ดแรกไปยังตำแหน่งของเรค

คอร์ดระบุไว้

เช่น ต้องการเรียกดู เรคคอร์ดแรกถึงเรคคอร์ดที่5
          คำสั่งที่ใช้คือ
          Select Top 5 *
From  EMPLOYEE;

การเรียกดูข้อมูลโดยแสดงผลข้อมูลทางคอลัมน์เป็นนิพจน์ทางคณิตศาสตร์

         

          เครื่องหมาย                                             ความหมาย
          + (Add)                                            บวก
          - (Subtract)                                               ลบ
          * (Multiply)                                               คูณ
          / (Divide)                                         หาร

เช่น ต้องการคำนวณหาเงินเดือนสุทธิหลังหักภาษี 3% ของเงินเดือน
          คำสั่งที่ใช้คือ
          Select EMPNAME, SALARY-(SALARY*0.03)AS TOTAL_SALARY
From  EMPLOYEE;

 

การจัดเรียงลำดับผลลัพธ์โดยใช้ ORDER BY 

            ORDER BY เป็นคำสั่งที่ใช้สำหรับการเรียงลำดับหรือ Sorting ขัอมูลตามอักษรหรือฟิลด์ที่กำหนด สามารถกำหนดการเรียงจากมากไปหาน้อย (Descending order (DESC) หรือจากน้อยไปหามาก (Ascending order (ASC))  โดยทั่วไปแล้วจะเรียงลำดับจากน้อยไปหามากเสมอ
          เช่น ต้องการเรียงลำดับชื่อของพนักงาน

          คำสั่งที่ใช้คือ                          คำสั่งที่ใช้คือ                         คำสั่งที่ใช้คือ                         Select EMPNAME                     Select EMPNAME                     Select EMPNAME

From  EMPLOYEE  From  EMPLOYEE From  MPLOYEE   
Order By ENPNAME;           Order By ENPNAME ASC;         Order By ENPNAME DESC;   
                            

นอกจากนี้การใช้ ORDER BY ยังสามารถใช้เลขกำกับแทนการใช้ชื่อฟิลด์ได้อีกด้วย
เช่น การเรียกดูข้อมูลโดยจัดเรียงผลลัพธ์ตามชื่อมากไปหาน้อย และเงินเดือนด้วย
Select EMPNAME, SALARY
From  EMPLOYEE
ORDER BY 1 DESC 2;

การเรียกดูข้อมูลแบบมีเงื่อนไข 

การเรียกดูข้อมูลแบบมีเงือนไข  เป็นการระบุค่าเฉพาะของข้อมูลที่ต้องการเรียกดู  อาจจะใช้เงื่อนไขเพื่อดึงดูข้อมูลของพนักงานที่มีเงินเดือนมากกว่า 3000 เป็นต้น  ดังนั้นการเรียกดูข้อมูลแบบมีเงื่อนไขโดยมีโอเปอร์เรเตอร์ทางตรรกะหรือ โอเปอเรเตอร์ของ SQL เป็นต้นเป็นตัวประกอบในการแสดงเงื่อนไข
การเรียกดูข้อมูลแบบมีเงื่อนไข  จะใช้วลีหรืออนุประโยค WHERE ต่อท้ายวลีหรืออนุประโยค FROM รูปแบบคำสั่ง

          รูปแบบ


SELECT <Column1, Column2...>
FROM <table name>
WHERE <CONDITION>;


          ในอนุประโยค WHERE  ประกอบด้วยส่วนสำคัญ 3 ส่วนคือ
1.    ชื่อคอลัมน์
2.    โอเปอเรเตอร์การเปรียบเทียบ  ซึ่งแบ่งออกเป็นโอเปอเรเตอร์ทางตรรกะ (LOGICAL OPERATER) โอเปอเรเตอร์ SQL รวมถึงการใช้โอเปอเรเตอร์ BOOLEAN
3.    ข้อมูลเฉพาะที่ต้องการแสดงเป็นเงื่อนไขของชื่อคอลัมน์ที่ระบุในข้อ 1 อาจเป็นค่าคงที่ (CONSTANT) กลุ่มของข้อมูลหรือ นิพจน์(EXPRESSON) หรือชื่อคอลัมน์อื่นที่ต้องการนำมาเปรียบเทียบข้อมูลเฉพาะที่เป็นประเภทตัวอักษรหรือ วัน เดือน ปี (DATE) เมื่อนำมาเป็นเงื่อนไขเฉพาะจะต้องมีเครื่องหมาย ‘  ‘ กำกับ

เครื่องหมายการแสดงการเปรียบเทียบค่าข้อมูล

โอเปอเรเตอร์                                  ความหมาย
=                                              เท่ากับ
>                                               มากกว่า
>=                                             มากเท่ากับ
<                                               น้อยกว่า
<=                                             น้อยกว่าเท่ากับ
<>                                             ไม่เท่ากับ

เช่น ต้องการเรียกดูข้อมูลทั้งตาราง ที่มีเงือนไขเงินเดือนมากกว่า 30000
          คำสั่งที่ใช้คือ
          Select *
From  EMPLOYEE
WHERE SALARY>30000;
เช่น ต้องการเรียกดูข้อมูล รหัส ชื่อพนักงาน รหัสแผนก ของพนักงานที่มีตำแหน่ง MANAGER
          คำสั่งที่ใช้คือ
          Select EMPNAME, EMPNAME, DEPNO
From  EMPLOYEE
WHERE POSITION = MANAGER;

เช่น ต้องการเรียกดูข้อมูลชื่อพนักงานที่มีเงินเดือนต่อปีมากกว่า 300000
          คำสั่งที่ใช้คือ
          Select  EMPNAME, SALARY
From  EMPLOYEE
WHERE SALARY*12>300000

การเรียกดูข้อมูลแบบมีเงื่อนไขโดยใช้คำสั่ง  BETWEEN... AND....      

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

เช่น ต้องการเรียกดูข้อมูลที่แสดงชื่อ และเงินเดือนของพนักงานที่มีเงินเดือนอยู่ระหว่าง 20000 กับ 50000
          คำสั่งที่ใช้คือ
          Select EMPNAME, SALARY
From  EMPLOYEE
WHERE SALARY BETWEEN 20000 AND 50000;
หรือ
เช่น ต้องการเรียกดูข้อมูลของพนักงานที่เริ่มทำงานระหว่างวันที่ 01/01/94 ถึง 11/30/94
          คำสั่งที่ใช้คือ
          Select *
From  EMPLOYEE
WHERE STARTDATE  BETWEEN #01/01/94# AND #11/30/94#;

การเรียกดูข้อมูลแบบมีเงื่อนไขโดยใช้คำสั่ง  IN        

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

เช่น ต้องการเรียกดูข้อมูลรหัส ชื่อ เงินเดือน และรหัสผู้บังคับบัญขาของพนักงานที่มีรหัสผู้บังคับบัญชาเป็น  1002  2002  และ 3004
          คำสั่งที่ใช้คือ
          Select EMPNUM, EMPNAME, SALARY,MGRNO
From  EMPLOYEE
WHERE MRGNO IN (1002,2002, 3004);
หรือ
เช่น ต้องการเรียกดูข้อมูลของพนักงานที่อยู่แผนกที่มีรหัส 20 และ 40 โดยให้แสดงเรียงตามเงินเดือนจากมากไปหาน้อย
          คำสั่งที่ใช้คือ
          Select *
From  EMPLOYEE
WHERE DEPNO IN(20,40)
ORDER BY SALARY DESC;

การเรียกดูข้อมูลแบบมีเงื่อนไขโดยใช้คำสั่ง  LIKE     

LIKE เป็นโอเปอรเรเตอร์ที่ใช้ในการค้นหาข้อมูลของคอลัมน์ที่เก็บข้อมูลประเภทตัวอักษรเท่านั้น โดยยังไม่ทราบค่าที่แน่นอนทั้งหมดของข้อมูลที่จะค้นหา หรือรู้เพียงบางตัวอักษรเท่านั้น โอเปอเรเตอร์ LIKE จะระบุต่อท้ายชื่อคอลัมน์ที่เป็นเงื่อนไข โดยจะใช้สัญญาลักษณ์ช่วยในการค้นหาข้อมูลเป็นตัวช่วยในการค้นหาข้อมูลที่เรียกว่า Wild Card (อักขระพิเศษ) ดังนี้
          ตัวอักขระพิเศษ                                ความหมาย
                   *                                    แทนอักษรใดๆ กี่ตัวก็ได้
                   ?                                    แทนอักษรใดๆ 1 ตัว

เช่น ต้องการเรียกดูข้อชื่อพนักงานที่ขึ้นต้นด้วยอักษร  S อย่างเดียว
          คำสั่งที่ใช้คือ
          Select  EMPNAME
From  EMPLOYEE
WHERE EMPNAME LIKE S*;
หรือ
เช่น ต้องการเรียกดูข้อชื่อพนักงานที่ลงท้ายด้วยอักษร E อย่างเดียว
          คำสั่งที่ใช้คือ
          Select  EMPNAME
From  EMPLOYEE
WHERE EMPNAME LIKE*E*;
หรือ
เช่น ต้องการเรียกดูข้อชื่อพนักงานที่มีอักษร Hเป็นตัวที่2แล้วตามด้วยอะไรก็ได้
คำสั่งที่ใช้คือ
          Select  EMPNAME
From  EMPLOYEE
WHERE EMPNAME LIKE?H*;

การเรียกดูข้อมูลแบบมีเงื่อนไขโดยใช้คำสั่ง  IS NULL 

IS NULL เป็นโอเปอเรเตอร์ที่ใช้ในแสดงค่าของคอลัมน์ที่มีค่าเป็นค่าว่าง หรือไม่มีค่า

เช่น ให้แสดงชื่อคอลัมน์ที่ไม่มีผู้บังคับบัญชา
          คำสั่งที่ใช้คือ
          Select  EMPNAME
From  EMPLOYEE
WHERE MGRNO IS NULL;

นอกจากโอเปอเรเตอร์ของSQL ทั้ง 4 ที่กล่าวมาข้างต้น โอเปอเรเตอร์เหล่านี้ยังสามารถใช้เป็นเงื่อนไขในเชิงปฏิเสธ โดยใช้ NOT นำหน้าดังนี้
         
          โอเปอเรเตอร์                                  ความหมาย
          NOT BETWEEN ... AND              ไม่มีค่าอยู่ระหว่างค่าสองค่าที่ระบุ
          NOT IN                                  ไม่มีค่าที่เป็นกลุ่มข้อมูลที่ระบุ
          NOT LIKE                                       ไม่มีค่าตามตัวอักษรหรือสัญญลักษณ์
          IS NOT NULL                       ไม่มีค่าเป็นค่าว่าง



 การเรียกดูข้อมูลแบบมีเงื่อนไขโดยใช้โอเปอเรเตอร์บูลีน
การเรียกดูข้อมูลที่มีเงื่อนไขมากกว่าหนึ่งเงื่อนไข สามารถใช้โอเปอเรเตอร์บูลีนเป็นตัวเชื่อมโยงเงื่อนไขดังกล่าว โอเปอเรเตอร์บูลีน ประกอบด้วย

AND          ใช้เชื่อมเงื่อนไขสองเงื่อนไข โดยข้อมูลที่จะแสดงออกมาจะต้องเป็น          จริงตามเงื่อนไขทั้งสอง
OR             ใช้เชื่อมเงื่อนไขสองเงื่อนไข โดยข้อมูลที่จะแสดงออกมาจะต้องเป็น          จริงตามเงื่อนไขใดเงื่อนไขหนึ่ง
NOT           ใช้แสดงหน้าเงื่อนไขใดเงื่อนไขหนึ่ง เพื่อให้ได้ข้อมูลที่ไม่เป็นไปตามเงื่อนไขที่ระบุ
                  
          การลำดับการทำงานก่อนหลังของโอเปอเรเตอร์
          จะเห็นว่าโอเปอเรเตอร์ต่างๆ ที่ใช้ในการแสดงเงื่อนไขมีมากมาย การลำดับการทำงานของโอเปอเรเตอร์จะสามารถกำหนดให้ทำงานก่อนหลังด้วยเครื่องหมายวงเล็บ (   ) เหมือนหลักการคำนวณทางคณิตศาสตร์

เช่น ให้แสดงรหัส ชื่อ ตำแหน่ง และเงินเดือนของพนักงานที่มีตำแหน่งงานเป็นMANAGER และมีเงินเดือนอยู่ระหว่าง 30000 - 50000
          คำสั่งที่ใช้คือ
          Select  EMPNUM, EMPNAME, POSITION, SALARY
From  EMPLOYEE
WHERE SALARY BETWEEN 30000 AND 50000 AND POSITION=MANAGER;

หรือ
เช่น ให้แสดงชื่อ ตำแหน่ง เงินเดือนของพนักงานที่มีเงินเดือนมากว่า 20000 และมีตำแหน่งเป็นMANAGER หรือ SUPERVISOR
          คำสั่งที่ใช้คือ
          Select  EMPNAME, POSITION, SALARY
From  EMPLOYEE
WHERE SALARY >20000 AND (POSITION=MANAGER OR
POSITION=SUPERVISOR);

หรือ
เช่น ให้แสดงข้อมูลของพนักงานที่มีเงินเดือนน้อยกว่า 20000และและไม่ได้อยู่แผนกที่มีรหัส 20
คำสั่งที่ใช้คือ
          Select  *
From  EMPLOYEE
WHERE SALARY <=20000 AND NOT DEPNO=20;

การแสดงข้อมูลด้วยฟังก์ชั่นที่เกี่ยวกับการรวม         

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




ฟังก์ชั่น                                        ผลที่ได้จากการใช้ฟังก์ชั้น

AVG([*|DISTINCT]<COLUMN NAME>)                       เป็นฟังก์ชั่นที่ใช้ในการหาค่าเฉลี่ย
หรือ AVG([*|DISTINCT] <COLUMN EXPRESSION>)   ของคอลัมน์หนึ่ง ที่เก็บข้อมูลประเภทตัวเลข

COUNT([*|DISTINCT]<COLUMN NAME>)                  เป็นฟังก์ชั่นที่ใช้ในการนับจำนวน
                                                                             แถว


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

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