วันพุธที่ 17 ธันวาคม พ.ศ. 2557

คำสั่ง-SQL เบื้องต้น

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/

ไม่มีความคิดเห็น:

แสดงความคิดเห็น