การใช้คำสั่งของ
SQL ใน Microsoft Access
ÈÑ¡´Ò
ÈÑ¡´ÔìÈÃÕ¾Ò³ÔªÂì
ÍÒ¨ÒÃÂì»ÃШÓÀÒ¤ÇÔªÒÊÒ¸ÒÃ³ÊØ¢
ÇÔ·ÂÒÅÑ¡ÒÃÊÒ¸ÒÃ³ÊØ¢ÊÔÃÔ¹¸Ã
¨Ñ§ËÇÑ´¾ÔɳØâÅ¡
3 ÊÔ§ËÒ¤Á 2547
SQL เป็นภาษามาตรฐานสำหรับฐานข้อมูล Relational Database
Management System (RDBMS) ตามมาตรฐานของ ANSI (American National Standard
Institute) SQL (ออกเสียงว่า
"ess-que-el" หรือ "ซี-เคลว") ย่อมาจาก
Structured Query Language คิดค้นโดยนักวิทยาศาสตร์ของ IBM ในทศวรรษ 1970 ในปัจจุบัน ANSI (American
National Standard Institute) ได้ประกาศให้ SQL
เป็น ภาษามาตรฐานสำหรับระบบจัดการฐานข้อมูลเชิงสัมพันธ์ (Relational Database
Management System ย่อเป็น RDBMS)
ระบบฐานข้อมูลในปัจจุบันเกือบทั้งหมด
เป็นแบบระบบจัดการฐานข้อมูลเชิงสัมพันธ์
(RDBMS) เช่น Oracle, Sybase, Microsoft SQL Server, Microsoft Access, DB2
ของ IBM เป็นต้น ถึงแม้ว่า ฐานข้อมูลแบบ RDBMS ทุกระบบ
จะสามารถใช้คำสั่งพื้นฐานของ SQL เหมือนกัน
แต่ทุกระบบอาจจะมีคำสั่งพิเศษของตัวเองที่
ระบบอื่นอาจจะใช้ไม่ได้
SELECT STATEMENT :
คำสั่งที่ใช้ในการสร้างแบบสอบถาม
ประโยคคำสั่ง SELECT
ใช้ในการสร้างคิวรี่
หรือการสอบถามกับฐานข้อมูล
และเลือกดึงข้อมูลที่ตรงกับเกณฑ์ที่กำหนด
ไวยากรณ์ ประโยคคำสั่ง SELECT
SELECT [ALL | DISTINCT]
column1[,column2] FROM
table1[,table2] [WHERE conditions] [GROUP BY
column-list] [HAVING conditions] [ORDER BY column-list [ASC | DESC]
];
[ ] ตัวเลือก
ตัวอย่าง SELECT
hn, dayin, name, age FROM pttbl WHERE age > 30;
ประโยคคำสั่งนี้จะเลือกค่าทั้งหมดในคอลัมน์
hn, dayin, name และ age จาก table “pttbl
ที่ age มีค่ามากกว่า
30
Note: ต้องมีเครื่องหมาย semicolon(;) ปิดท้ายประโยค
เพื่อชี้ว่าประโยคคำสั่ง SQL จบสมบูรณ์และพร้อมที่จะแปล การสร้างแบบสอบถาม(Query)
ในโปรแกรม Access 1.
คลิกแถบ Queries > New >
Design View > O
2.
คลิกชื่อตาราง
pttbl > Add > Close
3. นำ Field ชื่อ
hn, dayin, name และ age
มาใส่ใน Field Properties
โดยการ Drag และ Drop
ที่ละ Field หรือ
โดยการดับเบิลคลิกที่ชื่อ
Field ก็ได้
4. ใส่ Criteria
เป็น > 30
ในคอลัมน์ age >
Save > qry_age_more_30_pttbl
จะได้ผลตามรูปที่
1

รูปที่
1 การสร้างแบบสอบถาม(Query)
ในโปรแกรม Access
ด้วย SQL 1.
คลิก View > SQL View 2.
พิมพ์ประโยคคำสั่ง
SELECT
ตามไวยากรณ์ข้างต้น
SELECT pttbl.hn, pttbl.dayin, pttbl.name, pttbl.age
FROM pttbl
WHERE pttbl.age>30;
3. Save > qry_age_more_30_pttbl
จะได้ผลตามรูปที่
2

รูปที่
2 จากการสร้างทั้งสองแบบ
เมื่อ View
จะได้ผลตามรูปที่
3

รูปที่
3
เครื่องหมายเปรียบเทียบ (comparison
operator)
|
= |
เท่ากับ |
|
> |
มากกว่า |
|
< |
น้อยกว่า |
|
>= |
มากกว่า หรือเท่ากับ |
|
<= |
น้อยกว่า หรือเท่ากับ |
|
<> หรือ != |
ไม่เท่ากับ |
เครื่องหมายเปรียบเทียบอื่นๆ
|
LIKE |
ทดสอบเปรียบเทียบข้อความ |
|
NOT LIKE |
หาค่าที่อยู่นอกเหนือจาก LIKE |
|
NULL |
ทดสอบเปรียบเทียบค่าว่าง |
|
NOT NULL |
ทดสอบเปรียบเทียบค่าที่ไม่ใช่ค่าว่าง |
ตัวอย่าง SELECT
hn, dayin, name, age FROM pttbl WHERE pttbl.name LIKE "จ*"; ประโยคคำสั่งข้างบนจะเลือก แถว/ค่า
ในคอลัมน์ hn, dayin,
name และ age จาก table “pttbl” ที่มี
name
เริ่มต้นด้วย ‘จ’ ซึ่งจะส่งชื่อของผู้ป่วยที่ขึ้นต้นด้วย
จ ออกมา
จะได้ผลตามรูปที่
4 รูปที่ 5
และรูปที่ 6

รูปที่
4

รูปที่
5

รูปที่
6
แสดงว่าในฐานข้อมูล
มีผู้ป่วยที่มีชื่อขึ้นต้นด้วย
จ มี 2 คน
ตัวอย่าง SELECT
hn, dayin, name, age FROM pttbl WHERE name = NULL; ประโยคคำสั่งข้างบนจะเลือก แถว/ค่า
ในคอลัมน์ hn, dayin,
name และ age จาก table “pttbl” ที่มี
name เป็นค่าว่าง
SELECT pttbl.hn, pttbl.dayin, pttbl.name, pttbl.age
FROM pttbl
WHERE (((pttbl.name) Is Null));
ตัวอย่าง SELECT
hn, dayin, name, age FROM pttbl WHERE name = Is Not Null; ประโยคคำสั่งข้างบนจะเลือก แถว/ค่า
ในคอลัมน์ hn, dayin,
name และ age จาก table “pttbl” ที่มี
name ไม่ใช่ค่าว่าง
SELECT pttbl.hn, pttbl.dayin, pttbl.name, pttbl.age
FROM pttbl
WHERE (((pttbl.name)Is Not Null));
ALL และ DISTINCT
เป็นคีย์เวิร์ดที่ใช้ในการควบคุมเลือกข้อมูลให้แสดง ทั้งหมด (ALL)
หรือเฉพาะเรคคอร์ดแบบไม่ซ้ำ (DISTINCT) ในคิวรี่
ถ้าต้องการดึงเฉพาะเรคคอร์ดในคอลัมน์ที่ระบุแบบไม่ซ้ำให้ใช้คีย์เวิร์ด
DISTINCT โดย DISTINCT จะคัดเรคคอร์ดซ้ำออกไปสำหรับคอลัมน์ที่ระบุ
หลังจากประโยคคำสั่ง
ตัวอย่าง SELECT DISTINCT age FROM
pttpl; ประโยคคำสั่งนี้ส่งออกค่า age ที่ไม่ซ้ำกันจาก table
“pttbl” |