เมื่อเราเพิ่มข้อมูลเข้าไปเรื่อยๆแล้วถ้าข้อมูลไม่มากนัก
เราสามารถเรียกดูได้ไม่ยาก
โดยการเรียกดูทั้งหมดและใช้ตาเลือกดูข้อมูลที่ต้องการ
แต่ถ้าข้อมูลเพิ่มขึ้นเรื่อยๆ
จาก 10 กว่า Record จนเป็น 100 และ เป็น 10000
ในที่สุด
การสืบค้นข้อมูลโดยวิธีดังกล่าวไม่สามารถทำได้
MySQL
มีระบบการสืบค้นข้อมูลมาให้แล้ว
สามารถสืบค้นโดยการสร้างเงื่อนไขให้ตรงความต้องการ
และเราจะได้ข้อมูลจากการสืบค้นตรงต่อความต้องการโดยไม่ยากเลย
(ในส่วนนี้จะเกี่ยวข้องกับการกำหนดและใช้
Operator ดังได้กล่าวในตอนที่แล้ว) โดยมีวิธีการอย่างคร่าวๆ
ดังนี้
Go Top
การสืบค้นข้อมูลโดยไม่มีเงื่อนไข
- ขอดูข้อมูลจากตารางทั้งหมด
- ขอดูข้อมูลบางส่วนในตารางทุก
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
สามารถใช้ได้ในโอกาศและสถานการณ์ที่แตกต่างกัน
สามารถแยกการใช้ได้ดังนี้
- การสืบค้นโดยใช้
Operator WHERE
- การสืบค้นโดยใช้
Operator LIKE
- การสืบค้นโดยใช้
Operator AND
- การสืบค้นโดยใช้
Operator OR
- การสืบค้นโดยใช้
Operator >
- การสืบค้นโดยใช้
Operator >=
- การสืบค้นโดยใช้
Operator <
- การสืบค้นโดยใช้
Operator <=
- การสืบค้นโดยใช้
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
- Operator LIKE%
- Operator %LIKE%
- 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 |