วันจันทร์ที่ 1 กันยายน พ.ศ. 2551

ภาษา SQL กับ PL/SQL ใช้ภาษาเดียวกันหรือป่าว

SQL เป็นภาษาในการสืบค้นและจัดการฐานข้อมูลการใช้งานของภาษา SQL ภาษา SQL เป็นส่วนประกอบหนึ่งของ DBMS มักพบใน DBMS เชิงสัมพันธ์หลายตัวและเป็นที่นิยมใช้ในปัจจุบัน ภาษา SQL ง่ายต่อการเรียนรู้ การใช้งานในภาษา SQLแบ่งเป็น 2 ลักษณะ คือ
  • ภาษา SQL ที่โต้ตอบได้ (interactive SQL) หรือ SQL Plus
ภาษา SQL ที่โต้ตอบได้ (interactive SQL)ใช้เพื่อปฏิบัติงานกับฐานข้อมูลโดยตรง เป็นการใช้คำสั่งภาษา SQLสั่งงานบนจอภาพ โดยเรียกดูข้อมูลได้โดยตรงในขณะที่ทำงานเพื่อให้ได้ผลลัพธ์ที่นำไปใช้ได้ ตัวอย่างเช่น ต้องการเรียกดูข้อมูลในคอลัมน์ SALENAME และ SALECOM จากตาราง SALESTAB
จะใช้คำสั่งของภาษา SQL ดังนี้
SELECT SALENAME, SALECOM FROM SALESTAB;
  • และภาษา SQL ที่ฝังในโปรแกรม (embedded SQL) หรือ PL/SQL
ภาษา SQL ที่ฝังในโปรแกรม (embedded SQL)เป็นภาษา SQL ที่ประกอบด้วยคำสั่งต่าง ๆ ของ ภาษา SQL
ที่ใส่ไว้ในโปรแกรม ที่ส่วนมากแล้วเขียนด้วยภาษาอื่น เช่น โคบอล (pro cobol), ซี (pro c) ลักษณะของคำสั่ง SQL
จะแตกต่างจากภาษาอื่นๆ ในแง่ที่ว่า SQL ไม่มีคำสั่งที่เกี่ยวกับการควบคุม(control statement) เหมือนภาษาอื่น เช่น if..then…else for…do หรือ loop หรือ while ทำให้มีข้อจำกัดในการเขียนชุดคำสั่งงาน การใช้ภาษา SQL ฝังในโปรแกรมอื่นจะทำให้ภาษา SQL มีความสามารถและมีประสิทธิภาพมากยิ่งขึ้น ผลลัพธ์ของคำสั่งที่เกิดจากภาษา SQL ที่ฝังในโปรแกรม จะถูกส่งผ่านไปให้กับตัวแปรหรือพารามิเตอร์ที่ใช้ โดยโปรแกรมที่ภาษา SQL ไปฝังตัวอยู่

PL/SQL PL ย่อมาจาก Procedural Language เป็นภาษาที่ Oracle พัฒนาขึ้น เพื่อให้ผู้ใช้สามารถพัฒนาโปรแกรม ในลักษณะ procedure ได้ โดยในขณะเดียวกันยังคงสามารถใช้คำสั่ง SQL ได้เช่นเดิม ลักษณะคำสั่งภาษา SQL จะเป็นการสั่งทีละคำสั่งเดียว แล้วให้ผลลัพธ์ทันที เช่น

SELECT * FROM emp;

หรือ

UPDATE emp SET salary = salary * 1.1;

ส่วนลักษณะคำสั่งภาษา PL/SQL จะเป็นการทำงานทีละ procedure เช่น

DECLARE V_deptno NUMBER;
BEGIN

SELECT deptno
INTO v_deptno
FROM dept
WHERE deptname = ‘Accounting’;

UPDATE emp
SET deptno = V_deptno
WHERE empno = 10;

END;

สรุปก็คือ SQL Plus เป็น ภาษา SQL ที่ใช้ทำงานกับฐานข้อมูลโดยตรง
PL/SQL เป็น ภาษา SQL ที่ฝังในโปรแกรม (embedded SQL)เ
ป็นที่สามารถเขียนโปรแรกม ในลักษณะ procedure ได้ โดยในขณะเดียวกันยังคงสามารถใช้คำสั่ง SQL

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