posted on 11 Sep 2006 11:36 by theera in Visual-Basic
Introduction to Structured Query Language
พื้นฐาน คำสั่ง SELECT
ในระบบฐานข้อมมูลนั้น ข้อมูลทั้งหมดจะถูกจัดเก็บไว้ในรูปของ Table และ Columns ตัวอย่างเช่น
ในTable พนักงาน เราจัดเก็บข้อมูล Social
Security Number, Name และ Address:
EmployeeAddressTable
|
|||||
SSN
|
FirstName
|
LastName
|
Address
|
City
|
State
|
512687458
|
Joe
|
Smith
|
83
First Street
|
Howard
|
Ohio
|
758420012
|
Mary
|
Scott
|
842 Vine Ave.
|
Losantiville
|
Ohio
|
102254896
|
Sam
|
Jones
|
33 Elm St
.
|
Paris
|
New York
|
876512563
|
Sarah
|
Ackerman
|
440 U.S. 110
|
Upton
|
Michigan
|
จากของมูลข้างบน ถ้าเราต้องการแสดงที่อยู่ของพนักงานทุกคนโดยใช้คำสั้ง "Select"
SQL Statement จะเป็นดังนี้ :
SELECT FirstName, LastName, Address, City, State
FROM EmployeeAddressTable;
|
จาก SQL Statement ข้างบนเราจะได้ผลดังนี้
First Name
|
Last Name
|
Address
|
City
|
State
|
Joe
|
Smith
|
83
First Street
|
Howard
|
Ohio
|
Mary
|
Scott
|
842 Vine Ave.
|
Losantiville
|
Ohio
|
Sam
|
Jones
|
33 Elm St
.
|
Paris
|
New York
|
Sarah
|
Ackerman
|
440 U.S. 110
|
Upton
|
Michigan
|
จาก Statement ข้างบน เราได้ เราได้ร้องขอข้อมูลทั้งหมดใน TableEmployeeAddress โดยที่เราระบุ Columns ที่เราต้องการไปด้วยใน Statement ดังนั้น
ข้อมูลที่เราจะได้รับก็จะถูกจัดเรียงตาม Columns ที่เราส่งไปกับคำสั้ง SELECT นั้นเอง
คำสั่ง Select แบบทั่วไป
SELECT ColumnName1,ColumnName2, ...
FROM TableName;
|
นอกจากนี้ในคำสั่ง SQL เราสามารถที่จะขอข้อมูลทั้งหมดทุก Columns ใน Tableโดยใช้เครื่องหมาย * แทนการพิมพ์ชื่อทุก Columns ในกรณีนี้ข้อมมูลก็จะถูกส่งมาโดยเรียงตามลำดับ Columns ที่ระบุไว้ใน โครงสร้างของ Tabls
SELECT * FROM TableName;
|
คำสั่ง SELECT แบบมีเงื่อนไข
ก่อนที่เราจะพูดถึงรายละเอียด มาดูตัวอย่าง Table และเครื่องหมายในการเปรียบเทียบก่อน
นะครับ (ตัวอย่างนี้ใช้ในการทดลองเท่านั้นไม่มีส่วนเกี่ยวข้องกับผู้ใด):
EmployeeTable
|
|||
EmployeeID
|
Salary
|
Benefits
|
Position
|
010
|
75000
|
15000
|
Manager
|
105
|
65000
|
15000
|
Manager
|
244
|
50000
|
12000
|
Staff
|
300
|
45000
|
10000
|
Staff
|
335
|
40000
|
10000
|
Staff
|
400
|
32000
|
7500
|
Entry-Level
|
441
|
28000
|
7500
|
Entry-Level
|
เครื่องหมายเปรียบเทียบใน SQL
โดยทั่วไปแล้ว เครื่องหมายเปรียบเทียบ ที่ใช้ใน Database หลัก
ๆจะมีอยู่ด้วยกัน 6 ชนิด คือ
=
|
เท่ากับ
|
<> หรือ !=
|
ไม่เท่ากับ
|
<
|
น้อยกว่า
|
>
|
มากกว่า
|
<=
|
น้อยกว่าหรือเท่ากับ
|
>=
|
มากกว่าหรือเท่ากับ
|
SELECT EmployeeID
FROM EmployeeTable
WHERE SALARY >= 50000;
|
โดยเครื่องหมาย >= (มากกว่า หรือ เท่ากับ) จะดึงข้อมูลของ Records ที่มีข้อมูลในcolumn salary มากกว่า หรือ เท่ากับ 50000 เท่านั้น มาแสดงผล ดังนั้น ผลที่จะแสดงจะเป็นดังนี้:
EmployeeID
---------------------
010
105
152
215
244
|
นอกจากนี้เรายังสามารถใช้ คำสั่ง Where caluse กับ columns ที่เก็บข้อมูลเป็นCharacter (Char, Varchar หรือ Text) ได้อีกด้วย. ตัวอย่าง เราต้องการ แสดงผลข้อมูลของคนที่มีตำแหน่ง "Manager" SQL statement ก็จะเป็นดังนี้
SELECT EmployeeID
FROM EmployeeTable
WHERE POSITION = 'Manager';
|
การใช้เครื่องหมายเปรียบเทียบมากกว่า 1ตัว :
Compound Conditions
คำสั่ง AND
เป็นคำสั่งในการเชื่อมเงื่อนไขในกรณีที่เราต้องการข้อมมูลที่มีเงือนไขมากกว่า 1 อย่าง โดยข้อมูลที่จะแสดงผลนั้น จะต้องแมทช์ กับเงือนไข ทั้งหมด ที่เราส่งไป ที่Database ตัวอย่างเช่น, เราต้องการ ID ของคนที่มีรายได้มากกว่า 40,000 และมี Positionเท่ากับ "Staff": SQL Statement จะเป็นดังนี้
SELECT EMPLOYEEID
FROM EMPLOYEETABLE
WHERE SALARY > 40000 AND POSITION = 'Staff';
|
คำสั่ง OR
เป็นคำสั่งที่ใช้ในการเชื่อมเงือนไขเหมือนกับ คำสั่ง AND แต่จะต่างกันตรงที่ ข้อมูลที่จะได้นั้น สามารถเป็นข้อมูลที่ แมทช์กับ เงือนไขใด เงือนไขหนึ่ง ก็ได้ ตัวอย่างเช่น, เราต้องการ ID ของคนที่ได้ Salary น้อยกว่า 40,000 หรือ มี benefits น้อยกว่า 10,000 in benefits SQL Statement จะเป็นดังนี้
SELECT EMPLOYEEID
FROM EMPLOYEETABLE
WHERE SALARY < 40000 OR BENEFITS < 10000;
|
นอกจากนี้ คำสั่ง AND และคำสั่ง OR ยังสามารถใช้ด้วยกันได้อีกด้วย ตัวอย่างเช่น :
SELECT EMPLOYEEID
FROM EMPLOYEETABLE
WHERE POSITION = 'Manager' AND SALARY > 60000 OR
BENEFIT > 12000;
|
อย่างไรก็ตาม ในกรณีที่เราต้องการสร้างเงือนไขมากกว่า 1 เงื่อนไขเราควรที่จะใส่
เครื่องหมาย ( และ ) ก่อนและหลังเงือนไข
นั้น เพื่อ ง่าย แก่การเข้าใจ และจะช่วยในการแก้error ใน
อนาคต ด้วย ตัวอย่าง เช่น .
อนาคต ด้วย ตัวอย่าง เช่น .
SELECT EMPLOYEEID
FROM EMPLOYEETABLE
WHERE (POSITION = 'Manager' AND SALARY > 60000) OR
BENEFIT > 12000;<
|
คำสั่ง IN และ BETWEEN
คำสั่ง IN และ BETWEEN. เป็นคำสั่งที่ใช้ในการสร้างเงือนไขที่มากกว่า 1 เงือนไข ในคำสั่งเดียว ตัวอย่างเช่น ถ้าเราต้องการรายชื่อของ คนที่มี ตำแหน่ง เป็น "MANAGER" และ"STAFF" เราสามารถนำ
มารวมกัน โดยใช้ คำสั่ง IN เช่น
SELECT EMPLOYEEIDNO
FROM EMPLOYEETABLE
WHERE POSITION IN ('Manager','Staff');
|
ส่วนคำสั่ง BETWEEN จะคล้าย ๆๆกับ กับสั่ง IN แต่จะใช้ในการ สร้างเงือนไขกับ ย่านข้อมูลที่เป็นตัวเลข ตัวอย่างเช่น เราต้องการ ข้อมูลของคนที่มีเงินเดือนระหว่าง 30,000 - 50,000 เราสามารถเขียน ได้ดังนี้
SELECT EMPLOYEEIDNO
FROM EMPLOYEETABLE
WHERE SALARY BETWEEN 30000 AND 50000;
|
นอกจากนี้เรายังสามารถใช้คำสั่ง NOT ร่วมกับ IN หรือ BETWEEN เพื่อที่จะได้ผลตรงข้ามกัน ดังเช่น
SELECT EMPLOYEEIDNO
FROM EMPLOYEETABLE
WHERE SALARY NOT BETWEEN 30000 AND 50000;
|
ที่มา http://theera.exteen.com/
ไม่มีความคิดเห็น:
แสดงความคิดเห็น