select * from employee ;
select emp_no , emp_name , emp_lname
from employee ;
คำสั่งแบบมีเงื่อนไข (condition)
Condition หรือ เงื่อนไข หมายถึงการระบุความต้องการ มีรูปแบบการเขียนดังนี้คือ <field> <operator> < value >
Filed คือ Filed ใดๆที่อยู่ในรายชื่อ Table อยู่ในคำสั่ง From
Operator คือคำสั่งในการปฏิบัติการ เช่น = , > , < , != , is null
Value ค่าที่ใช้เป็นเงื่อนไข หากเป็นตัวเลขสามารถระบุได้เลย หากเป็นตัวอักษรต้องมีการใส่ " ก่อนและหลังค่าที่เป็นเงื่อนไข
Select * from work
Where proj_num = 15 ; (เลือกข้อมูลการทำงานโครงการ 15)
Select * from work
Where hours > 3 ; (เลือกข้อมูลการทำงานที่มากกว่า 3 ชั่วโมง)
Select * from employee
where job = "Programmer" ; (เลือกพนักงานที่เป็น Programmer)
คำสั่งแบบหลายเงื่อนไข
select * from work
where proj_num = 15 and hours > 3 ;
(เลือกพนักงานที่ทำงานโครงการ 15 และทำงานมากกว่า
3
ชั่วโมง : ต้องอยู่โครงการ 15)
select * from work
where proj_num = 15 or hours > 3 ;
(เลือกพนักงานที่ทำงานโครงการ 15 หรือทำงานมากกว่า
3 ชั่วโมง
: อาจทำงานอยู่โครงการอื่น)
คำสั่งที่มีการใช้งานหลายตาราง (join)
Select employee.emp_num , emp_name , hours
From employee , work
Where employee.emp_num = work.emp_num ;
( แสดงข้อมูลรหัสพนักงาน ชื่อพนักงาน และชั่วโมงทำงาน
เนื่องจาก ชื่อพนักงาน อยู่คนละตารางกับ ข้อมูลชั่วโมงทำงาน
จึงต้องมีการ join ตารางที่มีข้อมูลเข้าด้วยกัน)
คำสั่งที่มีการเรียงลำดับ
Select employee.emp_num , emp_name , proj_num,hours
From employee , work
Where employee.emp_num = work.emp_num
Order by employee.emp_num ;
(แสดงข้อมูลรหัสพนักงาน ชื่อพนักงาน และชั่วโมงทำงาน
เรียงลำดับข้อมูล ตามรหัสพนักงาน)
การใช้ Operator : like
Select * from employee
where emp_name like “A%” ;
(แสดงข้อมูล พนักงานที่ชื่อขึ้นต้นด้วยอักษร A )
Select * from employee
where emp_name like “%A%” ;
(แสดงข้อมูล พนักงานที่ชื่อมีอักษร A )
การใช้ Operator : in
select * from employee
where deptno in ( “Programmer” , “System Analyst”) ;
(แสดงข้อมูลพนักงานที่เป็นโปรแกรมเมอร์หรือ นักวิเคราะห์ระบบ)
select * from work
where proj_num in ( 15 , 22 ) ;
(แสดงข้อมูลการทำงานโครงการ 15 หรือ โครงการ 22 )
การทำงานเชิงนิเสธ
select * from work
where proj_num not in ( 15 , 22) ;
(แสดงข้อมูลการทำงาที่ไม่ใช่ โปรเจ็ค 15 และ 22)
select * from employee
where job != “Programmer” ;
(แสดงข้อมูลการทำงานของพนักงานที่ไม่ใช่ Programmer)
การทำงานแบบ sub query
select * from work
where emp_num deptno in ( select emp_num from employee
where job = “Programmer”) ;
(แสดงข้อมูลการทำงานของผู้ที่ทำงานหน้าที่ Programmer – ที่อาจมีหลายคน)
select * from work
where proj_num = ( select proj_num from project
where proj_name = “โรงงานแกลงการยาง” );
(แสดงข้อมูลการทำงานของผู้ที่งานในโครงการ โรงงานแกลงการยางค์ – มีโครงการเดียวแน่นอน)
การทำงานแบบรวม (Aggregate function)
select job , count(*)
from employee group by job ;
(นับจำนวนพนักงานจัดกลุ่มตามอาชีพ)
select emp_num , sum(work_hours)
from work group by emp_num ;
(รวมชั่วโมงทำงาน จัดกลุ่มตามรหัสพนักงาน)
select proj_num , min(work_hours) , max(work_hours)
from work
group by proj_num ;
(แสดงชั่วโมงทำงานน้อยที่สุด และมากที่สุด ชองแต่ละโครงการ)
select job, count(*) from employee
group by job having count(*) > 2 ;
(นับจำนวนพนักงาน จัดกลุ่มตามอาชีพ เฉพาะที่มีพนักงานมากกว่า 3 คน)
select emp_num , sum(work_hours) from work
group by emp_num having sum(work_hours) > 20;
(รวมชั่วโมงทำงาน จัดกลุ่มตามรหัสพนักงาน เฉพาะที่มีชั่วโมงการทำงานรวมมากกว่า 20 ชั่วโมง)
รูปแบบคำสั่งที่มีการคำนวณ
Select employee.emp_num , proj_num,
chg_hours , work_hours ,
chg_hours * work_hours
From employee , work
Where employee.emp_num = work.emp_num ;
(แสดงข้อมูลการทำงานของพนักงานแต่ละคนในแต่ละโครงการ และค่าตอบแทนที่ได้)
รูปแบบคำสั่งที่มีการเปลี่ยนชื่อการแสดงผล
Select employee.emp_num , proj_num,
chg_hours , work_hours ,
chg_hours * work_hours pay
From employee , work
Where employee.emp_num = work.emp_num ;
(แสดงข้อมูลการทำงานของพนักงานแต่ละคนในแต่ละโครงการ และค่าตอบแทนที่ได้ แสดงคอลัมน์ค่าตอบแทนคือ pay )
รูปแบบคำสั่งที่มีการเปลี่ยนชื่อตาราง
Select e.emp_num , proj_num,
chg_hours , work_hours ,
chg_hours * work_hours
From employee e, work w
Where e.emp_num = w.emp_num ;
(แสดงข้อมูลการทำงานของพนักงานแต่ละคนในแต่ละโครงการ และค่าตอบแทนที่ได้)
สรุปรูปแบบคำสั่ง
Select …..
From …..
Where ….. and (or) …..
Group by …. ( Having ….)
Order by ….