การสืบค้นข้อมูล

           เมื่อเราเพิ่มข้อมูลเข้าไปเรื่อยๆแล้วถ้าข้อมูลไม่มากนัก เราสามารถเรียกดูได้ไม่ยาก โดยการเรียกดูทั้งหมดและใช้ตาเลือกดูข้อมูลที่ต้องการ แต่ถ้าข้อมูลเพิ่มขึ้นเรื่อยๆ จาก 10 กว่า Record จนเป็น 100 และ เป็น 10000 ในที่สุด การสืบค้นข้อมูลโดยวิธีดังกล่าวไม่สามารถทำได้  MySQL มีระบบการสืบค้นข้อมูลมาให้แล้ว สามารถสืบค้นโดยการสร้างเงื่อนไขให้ตรงความต้องการ และเราจะได้ข้อมูลจากการสืบค้นตรงต่อความต้องการโดยไม่ยากเลย (ในส่วนนี้จะเกี่ยวข้องกับการกำหนดและใช้ Operator ดังได้กล่าวในตอนที่แล้ว) โดยมีวิธีการอย่างคร่าวๆ ดังนี้

Go Top
การสืบค้นข้อมูลโดยไม่มีเงื่อนไข

  1. ขอดูข้อมูลจากตารางทั้งหมด
  2. ขอดูข้อมูลบางส่วนในตารางทุก Record

        รูปแบบคำสั่งดังต่อไปนี้
 
 


        รูปแบบคำสั่งสืบค้นข้อมูลโดยขอดูข้อมูลทั้งหมด table
        SELECT FROM  tablename;
        รูปแบบคำสั่งสืบค้นข้อมูลโดยขอดูข้อมูลบางส่วน(บาง field)ทั้งหมด table
        SELECT fieldname FROM  tablename;

        คำอธิบาย
        SELECT fieldname FROM  tablename;
        SELECT คำสั่งเลือกข้อมูล
        fieldname field ที่ต้องการ ถ้าต้องการทุก field ให้ใช้เครื่องหมาย "*"
        FROM     จาก table อะไร
        tablename table ที่ต้องการสืบค้น

       ตัวอย่าง
       mysql>SELECT * FROM  phonebook;
       mysql>SELECT name,email FROM  phonebook;
 

 วิธีการทำ 1
        ให้สืบค้นข้อมูลโดยขอดูทั้งหมดทุก field ในตาราง phonebook ทุก Record 
        ผลลัพธ์ที่ได้ดังภาพข้างล่าง 
 
 

mysql>
mysql> SELECT * FROM phonebook;
+----------+----------------------+---------+--------+----+
| name     | email                | phone   | salary | ID |
+----------+----------------------+---------+--------+----+
| passkorn | ccpasskn@hotmail.com |  223102 |  10000 |  1 |
| parinya  | parinya@thai.com     |  612069 |  20000 |  2 |
| somchai  | somchai@stjohn.com   | 9387059 |  30000 |  3 |
| sangchai | sangchai@chaiyo.com  | 7127000 |  50000 |  4 |
| somjai   | somjai@chaiyo.com    | 4410330 |  15000 |  5 |
| sangtong | sangtong@mco.net     |  975899 |  50000 |  6 |
+----------+----------------------+---------+--------+----+
6 rows in set (0.02 sec)

mysql>       

วิธีการทำ 2
        ให้สืบค้นข้อมูลโดยขอดูทั้งหมดเฉพาะ field name, email,ในตาราง phonebook ทุก Record 
        ผลลัพธ์ที่ได้ดังภาพข้างล่าง 
 
 

mysql>
mysql> SELECT name,email FROM phonebook;
+----------+----------------------+
| name     | email                |
+----------+----------------------+
| passkorn | ccpasskn@hotmail.com |
| parinya  | parinya@thai.com     |
| somchai  | somchai@stjohn.com   |
| sangchai | sangchai@chaiyo.com  |
| somjai   | somjai@chaiyo.com    |
| sangtong | sangtong@mco.net     |
+----------+----------------------+
6 rows in set (0.01 sec)
mysql> 

Go Top
การสืบค้นข้อมูลโดยมีเงื่อนไข (Operator)

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

  1. การสืบค้นโดยใช้ Operator WHERE
  2. การสืบค้นโดยใช้ Operator LIKE
  3. การสืบค้นโดยใช้ Operator AND
  4. การสืบค้นโดยใช้ Operator OR
  5. การสืบค้นโดยใช้ Operator  >
  6. การสืบค้นโดยใช้ Operator  >=
  7. การสืบค้นโดยใช้ Operator  <
  8. การสืบค้นโดยใช้ Operator  <=
  9. การสืบค้นโดยใช้ Operator  <>

Go Top Oper
1. การสืบค้นโดยใช้ Operator WHERE
รูปแบบคำสั่งดังต่อไปนี้
 
 


        รูปแบบคำสั่งสืบค้นข้อมูลโดยใช้ Operator WHERE
        SELECT fieldname FROM tablename WHERE (fieldname='namerecord');

        คำอธิบาย
        SELECT fieldname FROM tablename WHERE (fieldname='namerecord');
        SELECT คำสั่งเลือกข้อมูล
        fieldname field ที่ต้องการ ถ้าต้องการทุก field ให้ใช้เครื่องหมาย "*"
        FROM    จาก table อะไร
        WHERE  ข้อมูลที่ต้องการสืบค้น
       (fieldname=namerecord) field และ Record ที่ต้องการ

       ตัวอย่าง
       mysql>SELECT * FROM  phonebook WHERE name='passkorn';
 

 วิธีการทำ
        ให้สืบค้นข้อมูลคนชื่อ passkorn โดยแสดงทุก field ในตาราง phonebook 
        ผลลัพธ์ที่ได้ดังภาพข้างล่าง 
 
 

mysql>
mysql> SELECT * FROM phonebook WHERE(name='passkorn');
+----------+----------------------+--------+--------+----+
| name     | email                | phone  | salary | ID |
+----------+----------------------+--------+--------+----+
| passkorn | ccpasskn@hotmail.com | 223102 |  10000 |  1 |
+----------+----------------------+--------+--------+----+
1 row in set (0.01 sec)

mysql>   

Go Top Oper
2. การสืบค้นโดยใช้ Operator  LIKE

  1. Operator LIKE%
  2. Operator %LIKE%
  3. Operator %LIKE

รูปแบบคำสั่งดังต่อไปนี้
 
 


        รูปแบบคำสั่งสืบค้นข้อมูลโดยใช้ Operator LIKE%
        SELECT fieldname FROM tablename WHERE (fieldname LIKE 'namerecord%');
        รูปแบบคำสั่งสืบค้นข้อมูลโดยใช้ Operator %LIKE%
        SELECT fieldname FROM tablename WHERE (fieldname LIKE %'namerecord%');
        รูปแบบคำสั่งสืบค้นข้อมูลโดยใช้ Operator %LIKE
        SELECT fieldname FROM tablename WHERE (fieldname LIKE '%namerecord');

        คำอธิบาย
        SELECT คำสั่งเลือกข้อมูล
        fieldname field ที่ต้องการ ถ้าต้องการทุก field ให้ใช้เครื่องหมาย "*"
        FROM  จาก table อะไร
        LIKE  ข้อมูลคล้ายที่ต้องการสืบค้น

        namerecord% คือ record ที่ต้องการสืบค้นขึ้นต้นด้วยตัวอักษรที่กำหนดและตามด้วยอักษรอะไรก็ได้

        %namerecord% คือ record ที่ต้องการสืบค้นขึ้นต้นด้วยตัวอักษรอะไรก็ได้ ตามด้วยที่กำหนด และตามด้วยอักษรอะไรก็ได้

        %namerecord คือ record ที่ต้องการสืบค้นขึ้นต้นด้วยตัวอักษรอะไรก็ได้ และตามด้วยอักษรที่กำหนด

       ตัวอย่าง
       mysql>SELECT * FROM  phonebook WHERE (name LIKE 's%');
       mysql>SELECT * FROM  phonebook WHERE (name LIKE '%o%');
       mysql>SELECT * FROM  phonebook WHERE (name LIKE '%i');
 

 วิธีการทำ 1
        ให้สืบค้นข้อมูลคนที่มีชื่อขึ้นต้นด้วย p และตามด้วยตัวอักษรอะไรก็ได้ โดยแสดงทุก field ในตาราง phonebook 
        ผลลัพธ์ที่ได้ดังภาพข้างล่าง 
 
 

mysql>
mysql> SELECT * FROM phonebook WHERE (name LIKE 'p%');
+----------+----------------------+--------+--------+----+
| name     | email                | phone  | salary | ID |
+----------+----------------------+--------+--------+----+
| passkorn | ccpasskn@hotmail.com | 223102 |  10000 |  1 |
| parinya  | parinya@thai.com     | 612069 |  20000 |  2 |
+----------+----------------------+--------+--------+----+
2 rows in set (0.00 sec)

mysql>   

วิธีการทำ 2
        ให้สืบค้นข้อมูลคนที่มีชื่อขึ้นต้นด้วยตัวอักษรอะไรก็ได้ และลงท้ายด้วย i โดยแสดงทุก field ในตาราง phonebook 
        ผลลัพธ์ที่ได้ดังภาพข้างล่าง 
 
 

mysql>
mysql> SELECT * FROM phonebook WHERE (name LIKE '%i');
+----------+---------------------+---------+--------+----+
| name     | email               | phone   | salary | ID |
+----------+---------------------+---------+--------+----+
| somchai  | somchai@stjohn.com  | 9387059 |  30000 |  3 |
| sangchai | sangchai@chaiyo.com | 7127000 |  50000 |  4 |
| somjai   | somjai@chaiyo.com   | 4410330 |  15000 |  5 |
+----------+---------------------+---------+--------+----+
3 rows in set (0.01 sec)

mysql>   

วิธีการทำ 3
        ให้สืบค้นข้อมูลคนที่มีชื่อขึ้นต้นด้วยตัวอักษรอะไรก็ได้ ลงท้ายด้วยตัวอักษรอะไรก็ได้ แต่ระหว่างคำต้องตัวอักษร ch โดยแสดงทุก field ในตาราง phonebook 
        ผลลัพธ์ที่ได้ดังภาพข้างล่าง 
 
 

mysql>mysql> SELECT * FROM phonebook WHERE (name LIKE '%ch%');
+----------+---------------------+---------+--------+----+
| name     | email               | phone   | salary | ID |
+----------+---------------------+---------+--------+----+
| somchai  | somchai@stjohn.com  | 9387059 |  30000 |  3 |
| sangchai | sangchai@chaiyo.com | 7127000 |  50000 |  4 |
+----------+---------------------+---------+--------+----+
2 rows in set (0.00 sec)

mysql>   

คลิ๊กหน้าถัดไป



 

Copyright By Passkorn Roungrong 2000