![]() |
|
![]() |
|
![]() |
การเรียกค้นข้อมูลอย่างง่ายการเรียกค้นข้อมูลเป็นการสอบถามข้อมูลหรือ Query โดยการนำข้อมูลจากฐานข้อมูลมาแสดงออกทางจอภาพ การสอบถามข้อมูลนี้ในภาษา SQL ใช้คำสั่ง SELECT โดยการเรียกค้นข้อมูลจะเป็นไปตามเงื่อนไขที่ผู้ใช้ข้อมูลระบุ 1. การเรียกค้นดูทุกคอลัมน์ในตารางคำสั่ง SELECT แบบง่ายมีรูปแบบดังนี้ SELECT * FROM <table name>; SELECT * เป็นคำสั่งที่ต้องมีทุกครั้งที่ต้องการเรียกค้นข้อมูลทุกคอลัมน์ FROM เป็นการกำหนดว่าให้เรียกดูข้อมูล ได้จากตารางใดบ้าง table name ชื่อตารางที่ต้องการเรียกค้นข้อมูล การเรียกดูข้อมูลสามารถเรียกดูได้มากกว่า 1 คอลัมน์ขึ้นไป โดยถ้ามีมากกว่า 1 คอลัมน์ แต่ละคอลัมน์จะต้องคั่นด้วยเครื่องหมายคอมม่า(,) และถ้าต้องการดูทุกคอลัมน์จะใช้เครื่องหมาย ดอกจัน(*) หลัง SELECT การใช้คำสั่ง SELECT จะใช้ควบคู่กับคำสั่ง FROM เสมอในการเลือกตาราง การใช้คำสั่ง SELECT ในการเรียกค้นข้อมูลทุกคอลัมน์ในตารางจะใช้เครื่องหมายดอกจัน(*) ตามหลังคำสั่ง SELECT ตัวอย่าง ตาราง CHECKS
ตัวอย่าง ถ้าต้องการดูทุกคอลัมน์ในตารางก็จะใช้เครื่องหมายดอกจัน(*) แทนรายการคอลัมน์ได้ทั้งหมดได้ดังนี้ select * from checks; ผลลัพธ์
จากคำสั่ง select * จะเป็นการบอกให้นำข้อมูลทั้งจากตาราง CHECKS มา แสดง (from checks) โดยลำดับตามคอลัมน์ในฐานข้อมูล 2. การเรียกค้นข้อมูลเฉพาะคอลัมน์ใดๆในตารางและการเปลี่ยนลำดับคอลัมน์การใช้คำสั่ง SELECT ในการเรียกค้นข้อมูลเฉพาะคอลัมน์ที่สนใจทำได้โดยใส่เฉพาะคอลัมน์ที่ต้องการดูในส่วนของคำสั่ง SELECT มีรูปแบบคังนี้ SELECT <column 1, column 2, > FROM <table name>; SELECT เป็นคำสั่งที่ต้องมีทุกครั้งที่ต้องการเรียกค้นข้อมูล column 1, column 2, เป็นคอลัมน์ที่ต้องการเรียกค้น FROM เป็นการกำหนดว่าให้เรียกดูข้อมูลได้จากตารางใดบ้าง table name ชื่อตารางที่ต้องการเรียกค้นข้อมูล การเลือกบางคอลัมน์ ตัวอย่าง ถ้าต้องการแสดงข้อมูลบางคอลัมน์จะใช้ เช่น ถ้าต้องการดูคอลัมน์ CHECK# และ AMOUNTใช้คำสั่งดังนี้ SELECT CHECK#, amount from checks; ผลลัพธ์
จะเห็นได้ว่าเราสามารถใช้ทั้งอักษรตัวใหญ่และตัวเล็กปนกันในคำสั่ง ซึ่งอักษรตัวใหญ่และตัวเล็กจะไม่มีความแตกต่างกัน ตัวอย่าง ถ้าต้องแสดงข้อมูลโดยการเปลี่ยนลำดับคอลัมน์ของข้อมูล จะใช้คำสั่งดังนี้ SELECT PAYEE, REMARKS, AMOUNT, CHECK# FROM checks; ผลลัพธ์
3.การเรียกค้นข้อมูลกับคำสั่ง Distinctionจากตาราง CHECKS ถ้าต้องการดูคอลัมน์ AMOUNT เป็นดังนี้ select amount from checks; ผลลัพธ์
จากผลลัพธ์จะเห็นว่าในคอลัมน์ AMOUNT มีข้อมูลที่ซ้ำกันอยู่คือ 150 ถ้าใช้คำสั่ง Distinct ในคำสั่ง SELECT จะทำให้ข้อมูลที่ซ้ำกันนั้นแสดงออกมาเพียงครั้งเดียวดังนี้ select DISTINCT amount from checks; ผลลัพธ์
จะเห็นว่าจะแสดงข้อมูลออกมาเพียง 6 แถวเท่านั้น 4.การใช้คำสั่ง SELECT กับ WHERESELECT <column 1, column 2, > FROM <table name> [WHERE<condition>]; SELECT เป็นคำสั่งที่ต้องมีทุกครั้งที่ต้องการเรียกค้นข้อมูล column 1, column 2, คอลัมน์ที่ต้องการเรียกค้น FROM เป็นการกำหนดว่าให้เรียกดูข้อมูล ได้จากตารางใดบ้าง table name ชื่อตารางที่ต้องการเรียกค้นข้อมูล WHERE<condition> ส่วนของคำสั่งที่บอกเงื่อนไขที่จะใช้ในการค้นหาข้อมูล การใช้ WHERE ในคำสั่ง SELECT จะช่วยให้สามารถสืบค้นข้อมูลได้อย่างเจาะจงมากกว่า เช่น ถ้าใช้เฉพาะ SELECT อย่างเดียวจะได้ข้อมูลทั้งหมด ตัวอย่างเช่น ตัวอย่าง ตาราง BIKES
ถ้าต้องการจะดูเฉพาะข้อมูลของ BURLEY เท่านั้นเราจะต้องใช้ คำสั่ง WHERE ดังนี้ SELECT * FROM BIKES WHERE NAME = BURLEY ; ผลลัพธ์
5.โอเปอเรเตอร์การเรียกค้นข้อมูลอย่างมีเงื่อนไขตามหลักของภาษา SQL จะอยู่หลังคำสั่ง WHERE ซึ่งสามารถเปรียบเทียบตามโอเปอเรเตอร์ ในภาษา SQL อาจแบ่งโอเปอเรเตอร์ ได้เป็น 4 กลุ่ม คือ 1. โอเปอเรเตอร์คณิตศาสตร์(Arithmetic Operators) 2. โอเปอเรเตอร์เปรียบเทียบ(Comparison Operators) 3. โอเปอเรเตอร์อักขระ(Character Operators) 4. โอเปอเรเตอร์ตรรกะ(Logical Operators) 4.1. โอเปอเรเตอร์คณิตศาสตร์(Arithmetic Operators) ได้แก่ operators ที่เป็น plus (+) minus (-), divide (/), multiply (*), and modulo (%) - โอเปอเรเตอร์ Plus (+) เป็นคำสั่งที่ใช้รวมค่า 2 ค่าเข้าด้วยกัน ดังตัวอย่างต่อไปนี้ จากตาราง PRICE มีรายละเอียดดังนี้
ตัวอย่าง ถ้าในคำสั่งในคอลัมน์ WHOLESALE ต้องการ บวก 15 เข้าไป ผลลัพธ์ที่ได้จะแสดงค่าของ WHOLESALE ที่บวก 15 เข้าไปโดยคอลัมน์ แต่จะแสดงเพียงชั่วคราวที่หน้าจอเท่านั้น โดยไม่มีผลต่อข้อมูลของคอลัมน์ WHOLESALE ในตาราง PRICE คอลัมน์ WHOLESALE ในตาราง PRICE จะมีค่าเหมือนเดิม และจากคอลัมน์ WHOLESALE+15 สามารถให้แสดงผลหน้าจอเป็นชื่อคอลัมน์อื่นได้ โดยถ้าต้องการให้ WHOLESALE +15 และให้แสดงผลเป็นคอลัมน์ RETAIL จะใช้คำสั่งดังนี้ SELECT ITEM, WHOLESALE, (WHOLESALE + 0.15) RETAIL FROM PRICE; ผลลัพธ์
นอกจากนี้เราสามารถแสดงข้อมูลในคอลัมน์ให้มีชื่อใหม่ตามที่ต้องการได้ เช่น ต้องการให้แสดงข้อมูลในคอลัมน์ ITEM ในตาราง PRICE ให้แสดงออกมาทางหน้าจอเป็นชื่อคอลัมน์ PRODUCE ได้ โดยในคำสั่งยังไม่ใส่เครื่องหมายคอมม่าระหว่าง ITEM และ PRODUCE เพื่อให้ภาษาSQL เข้าใจได้ว่าจะแสดงคอลัมน์ ITEM เป็นคอลัมน์ PRODUCE ดังตัวอย่างต่อไปนี้ SELECT ITEM PRODUCE, WHOLESALE, WHOLESALE * 0.25 RETAIL FROM PRICE: ผลลัพธ์
- โอเปอร์เรเตอร์ Minus (-) คำสั่ง Minus ใช้ได้เป็น 2 กรณีคือ 1. การเปลี่ยนเครื่องหมายจากบวกเป็นลบและจากลบเป็นบวก 2. การนำข้อมูลของคอลัมน์หนึ่งไปลบออกจากข้อมูลของอีกคอลัมน์หนึ่ง 1.การเปลี่ยนเครื่องหมายจากบวกเป็นลบและจากลบเป็นบวก เช่น รายละเอียดของตาราง HILOW เป็นดังนี้ ตัวอย่างตาราง HILOW
ตัวอย่าง ถ้าต้องการให้คอลัมน์ HIGHTEMP และ LOWTEMP มีค่าจากลบเป็นบวก จากบวกเป็นลบ และแสดงหน้าจากคอลัมน์ HIGHTEMP เป็นคอลัมน์ LOWS และคอลัมน์ LOWTEMP เป็นคอลัมน์ HIGHS ใช้คำสั่งดังนี้ SELECT STATE, - HIGHTEMP LOWS, -LOWTEMP HIGHS FROM HILOW; ผลลัพธ์
2.การนำข้อมูลของคอลัมน์หนึ่งไปลบออกจากข้อมูลของอีกคอลัมน์หนึ่ง ตัวอย่าง ถ้าต้องการนำคอลัมน์ HIGHTEMP ลบออกจากคอลัมน์ LOWTEMPแล้วนำผลลัพธ์ที่ได้แสดงในคอลัมน์ DIFFERENCE โดยใช้คำสั่งดังนี้ SELECT STATE,HIGHTEM LOWS, LOWTEMP HIGHS, (HIGHTEMP - LOWTEMP ) DIFFERENCE FROM HILOW; ผลลัพธ์
- โอเปอร์เรเตอร์ Divide (/)เป็นคำสั่งที่ใช้ในการหารข้อมูลดังตัวอย่าง เช่น ตัวอย่างตาราง PRICE
เมื่อต้องการให้คอลัมน์ WHOLESALE ถูกหารด้วย 2 และแสดงในคอลัมน์ SALEPRICE จะใช้คำสั่งดังนี้ SELECT ITEM, WHOLESALE, (WHOLESALE/2) SALEPRICE FROM PRICE; ผลลัพธ์
จากตัวอย่างคอลัมน์ SALEPRICE เป็นผลลัพธ์ที่เกิดจากการนำคอลัมน์ WHOLESALE มาหารด้วย 2 - โอเปอร์เรเตอร์ Multiply (*)เป็นคำสั่งที่ใช้ในคูณค่าของข้อมูลในคอลัมน์ ตัวอย่างตาราง PRICE
ตัวอย่าง ถ้าต้องการคูณคอลัมน์ WHOLESALE ด้วย 0.9 ให้ได้ผลลัพธ์เป็นข้อมูลในคอลัมน์ใหม่ที่ชื่อ NEWPRICE จะใช้คำสั่งดังนี้ SELECT ITEM, WHOLESALE, WHOLESALE * 0.9 NEWPRICE FROM PRICE; ผลลัพธ์
- โอเปอเรเตอร์ Modulo (%)เป็นคำสั่งที่ได้ผลลัพธ์เป็นเศษที่ได้จากการหาร ตัวอย่าง ตาราง REMAINS
ตัวอย่าง ถ้าต้องการสร้างคอลัมน์ REMAINDER ที่มีข้อมูลที่เกิดจากการนำข้อมูลในคอลัมน์ NUMERATOR หารด้วยข้อมูลในคอลัมน์ DENOMINATOR เหลือเศษในการหารเท่าไรแล้วนำค่าที่ได้ไปเก็บไว้ในคอลัมน์ REMAINDER ดังคำสั่งต่อไปนี้ SELECT NUMERATOR, DENOMINATOR, NUMERATOR%DENOMINATOR REMAINDER FROM REMAINS; ผลลัพธ์
นอกจากการใช้เครื่องหมาย % ในคำสั่ง Modulo แล้วในภาษา SQL ยังใช้ฟังก์ชัน MOD แทนเครื่องหมาย %ได้ซึ่งจะให้ผลลัพธ์เช่นเดียวกันดังคำสั่งต่อไปนี้ SELECT NUMERATOR, DENOMINATOR, MOD(NUMERATOR, DENOMONATOR) REMAINDER FROM REMAINS; 4.2. โอเปอรเรเตอร์ เปรียบเทียบ (Comparison Operators เป็น Operator ที่จะให้ค่าออกมา 3 ค่า คือ ถูก (TRUE) ผิด (FALSE) ไม่รู้ (Unknow) การไม่รู้หมายถึง ถ้านำข้อมูลที่มีค่าไปเปรียบเทียบกับข้อมูลที่เป็น NULL ตัวเปรียบเทียบจะให้ค่าไม่รู้ ตัวอย่างในตาราง PRICE
ตัวอย่าง ถ้าต้องการดูว่า ITEM ที่ไม่มีค่า WHOLESALE หรือค่า WHOLESALEเป็นค่าว่างจะใช้คำสั่งดังนี้ SELECT * FROM PRICE WHERE WHOLESALE IS NULL; หรือ SELECT * FROM PRICE WHERE WHOLESALE = NULL; ผลลัพธ์
4.3 โอเปอเรเตอร์ตัวอักษร(Character Operators) ตัวโอเปอเรเตอร์ LIKE เป็นการค้นหาข้อมูลของคอลัมน์ที่เก็บข้อมูลประเภทตัวอักษรเท่านั้น โดยไม่ทราบค่าข้อมูลทั้งหมดที่จะคันหา หรือรู้เพียงบางตัวอักษรเท่านั้น โอเปอร์เรเตอร์ LIKE จะระบุต่อท้ายชื่อคอลัมน์ที่เป็นเงื่อนไข โดยจะใช้สัญลักษณ์ที่เป็นตัวค้นหาช่วยในการค้นหาข้อมูลที่เรียกว่า วิน การ์ด (WILD Card) สัญลักษณ์ดังกล่าวประกอบด้วย % และ _(เครื่องหมายขีดเส้นใต้) โดยข้อมูลบางส่วนที่ใช้ในการค้นหาพร้อมกับสัญลักษณ์ทั้งสองนี้ จะต้องมีเครื่องหมาย กำกับเสมอ ความหมายของสัญลักษณ์ทั้งสองเป็นดังนี้คือ - สัญลักษณ์ % ใช้แทนจำนวนอักษรได้หลายตัว เช่น พนักงานขายที่ขึ้นต้นด้วยตัว T จะเขียนเงื่อนไขว่า WHERE SALENAME LIKE T% - สัญลักษณ์ _ ใช้แทนจำนวนที่ไม่ทราบค่า 1 ตัว เช่น พนักงานขายที่มีชื่อขึ้นต้น S และมีความยาว 7 ตัวอักษร เช่น WHERE SALENAME LIKE S______ SELECT PAYEE, AMOUNT, REMARKS FROM CHECKS WHERE PAYEE LIKE (CA%); ผลลัพธ์
กับคำสั่ง LIKE ดังตัวอย่างข้างต้น เปรียบเทียบกับคำสั่ง WITH SELECT PAYEE, AMOUNT, REMARKS FROM CHECKS WHERE PAYEE STARING WITH (Ca); ผลลัพธ์
จะเห็นว่าได้ผลลัพธ์เช่นเดียวกัน ตัวอย่าง ถ้าต้องการให้แสดงคอลัมน์ PAYEE ที่ขึ้นต้นด้วยอักษร Ca หรือ คอลัมน์ REMARKS ที่ขี้นต้นด้วยอักษร G จะใช้คำสั่งดังนี้ SELECT PAYEE, AMOUNT, REMARKS FROM CHECKS WHERE PAYEE STARTING WITH(Ca) OR REMARKS LIKE G%; ผลลัพธ์
4.4 โอเปอรเรเตอร์ตรรกะ (Logical Operator) เป็นตัวโอเปอเรเตอร์ที่ใช้ในการเปรียบเทียบ เชื่อมโยงค่า 2 ค่า ตัวอย่าง ตาราง VACATION
จากตัวอย่างสมมุติว่าบริษัทให้พนักงานแต่ละคนสามารถหยุดงานได้ โดยพิจารณาจากจำนวนปีที่พนักงานทำงาน พนักงานจะหยุดงานได้ 12 วัน ในอายุการทำงานแต่ละปี ถ้าต้องการหาว่าพนักงานที่มีชื่อตัวหน้าว่า B และยังสามารถหยุดงานได้อีก 50 วัน จะใช้คำสั่ง ดังนี้ SELECT * LASTNAME, YEARS * 12 LEAVETAKEN REMAINING FROM VACATION WHERE LASTNAME LIKE B% AND YEARS * 12 LEAVETAKEN > 50; ผลลัพธ์
จากคำสั่งเราจะใช้คำสั่ง YEARS * 12 LEAVETAKEN เพื่อหาวันหยุดที่พนักงานยังเหลือ - ตัวโอเปอเรเตอร์ AND เป็นตัวโอเปอเรเตอร์ ที่ใช้เชื่อมโยงค่า 2 ค่า โดยถ้าค่าหนึ่งเป็น TURE อีกค่าหนึ่งเป็น TURE จะให้ค่า TRUE ออกมา แต่ถ้าค่าหนึ่งเป็น TURE อีกค่าหนึ่งเป็น FALSE จะให้ค่าเป็น FALSE ตัวอย่างเช่น ถ้าต้องการหาว่ามีพนักงานที่ทำงานมากกว่า 5 ปี และเหลือวันหยุดมากกว่า 50% จะใช้คำสั่ง ดังนี้ SELECT LASTNAME WORKAHOLICS FROM VACATION WHERE YEARS >=5 AND ((YEARS *12) LEAVETAKEN)/(YEARS *12) >=0.50; ผลลัพธ์
ตัวโอเปอเรเตอร์ OR ใช้ในการเปรียบเทียบถ้าสิ่งที่นำมาเปรียบเทียบสิ่งใดสิ่งหนึ่งเป็นจริง จะได้ผลลัพธ์ออกมาเป็นจริง SELECT LASTNAME WORKAHOLICS FROM VACATION WHERE YEARS >=5 OR ((YEARS *12) LEAVETAKEN)/(YEARS *12)>=0.50; ผลลัพธ์
- ตัวโอเปอเรเตอร์ NOT ในการเปรียบเทียบถ้าสิ่งที่นำมาเปรียบเทียบเป็นจริงจะได้ผลลัพธ์ออกมาเป็นเท็จ แต่ถ้าสิ่งที่นำมาเปรียบเทียบเป็นเท็จผลที่ได้ออกมาจะเป็นจริง ดังตัวอย่าง SELECT * FORM VACATION WHERE LASTNAME NOT LIKE B%; ผลลัพธ์
- ตัวโอเปอเรเตอร์ NOT ยังใช้กับ NULL ได้ ถ้านำ not กับ null มารวมกันแล้วจะใช้สำหรับค่าที่ไม่ว่าง ตัวอย่างตารางPRICE
ตัวอย่าง ถ้าต้องการให้แสดงเฉพาะข้อมูลที่มีค่าเท่านั้นจะใช้คำสั่ง not nullมาร่วมกับ null เพื่อแสดงเฉพาะข้อมูลที่มีค่าดังคำสั่งต่อไปนี้ SELECT * FROM PRICE WHERE wholesale is not null; ผลลัพธ์
- โอเปอร์เรเตอร์ IN และ BETWEEN ตัวโอเปอเรเตอร์ IN เป็นการกำหนดเซ็ตของสิ่งที่ต้องการค้นหา โดยการกำหนดชื่อของสมาชิกเซ็ตลงไปในวงเล็บและแยกจากกันด้วยคอมม่า SELECT * FROM FRIENDS WHERE STATE= Chiangmai OR STATE = Bangkok OR STATE = Puket; ผลลัพธ์
SELECT * FROM FRIENDS WHERE STATE IN (Chiangmai , Bangkok , Puket ); ผลลัพธ์
- ตัวโอเปอเรเตอร์ BETWEEN AND เป็นการกำหนดเงื่อนไขของคอลัมน์ระหว่างค่าสองค่า ซึ่งค่าสองที่ออยู่ระหว่างคำสั่ง BETWEEN AND นั้นจะมีความหมายว่าเท่ากับหรือมากกว่าและเท่ากับหรือน้อยกว่า SELECT * FROM PRICE WHERE WHOLESALE >25 AND WHOLESALE < 75; ผลลัพธ์
ถ้าใช้คำสั่ง BETWEEN จะเป็นดังนี้ SELECT * FROM PRICE WHERE WHOLESALE BETWEEN 25 AND 75; ผลลัพธ์
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|