ในระบบฐานข้อมูล การบันทึกข้อมูล การปรับปรุงข้อมูลและการลบข้อมูลถือเป็นสิ่งสำคัญ ในภาษา SQL มีภาษาสำหรับการจัดการข้อมูล (Data manipulation Language : DML) ซึ่งเป็นภาษาที่ใช้ในการบันทึกข้อมูล การปรับปรุงข้อมูลและการลบข้อมูล ภาษาสำหรับการจัดการข้อมูล เป็นส่วนประกอบหนึ่งในภาษา SQL โดยภาษาสำหรับการจัดการข้อมูลใช้สำหรับจัดการข้อมูลภายในตารางของฐานข้อมูล ในการใช้คำสั่งที่เป็นภาษาสำหรับนิยามข้อมูลของภาษา SQL เช่น CREATE TABLE จะทำให้ได้โครงสร้างตารางว่างๆ ที่ยังไม่มีข้อมูลใดๆเก็บอยู่ คำสั่งในภาษาสำหรับการจัดการข้อมูลจะเป็นคำสั่งที่ช่วยในการจัดการข้อมูลภายในโครงสร้างตารางที่สร้างขึ้น ตัวอย่างของคำสั่งในภาษาสำหรับการจัดการข้อมูล จะเป็นคำสั่งการปรับปรุงข้อมูล ได้แก่ การเพิ่มข้อมูล (INSERT) การปรับปรุง (UPDATE) และ การลบข้อมูล (DELETE)ซึ่งจะกล่าวต่อไป และคำสั่งการเรียกค้นข้อมูลได้แก่คำสั่ง(SELECT)ซึ่งจะกล่าวในเรื่องต่อไป
คำสั่งที่ใช้ในการปรับปรุงข้อมูลของภาษา SQL คือ การเพิ่มข้อมูล (INSERT) การปรับปรุงข้อมูล (UPDATE) และ การลบข้อมูล (DELETE) เป็นคำสั่งในภาษาการจัดการข้อมูล เมื่อโครงสร้างหลักของตารางได้ถูกกำหนดขึ้นเรียบร้อยแล้ว ก็จะทำการบันทึกข้อมูลลงในตารางหลักหรืออาจทำการปรับปรุง หรือลบข้อมูลในภายหลัง คำสั่งทั้ง 3 นี้ เมื่อดำเนินการในภาษา SQL จะไม่แสดงผลลัพธ์ออกมาทางหน้าจอ แต่ผลของคำสั่งจะมีผลต่อข้อมูล ผู้ใช้สามารถดูผลของการใช้คำสั่งในการเพิ่มข้อมูล การปรับปรุงและการลบข้อมูล โดยใช้คำสั่งการเรียกค้นข้อมูล(SELECT)
คำสั่งการเพิ่มข้อมูลในตารางจะใช้คำสั่ง INSERT จะมีอยู่ 2 รูปแบบคือ การเพิ่มข้อมูลเข้าไปทีละแถว และ การเพิ่มข้อมูลโดยการดึงกลุ่มข้อมูลด้วยคำสั่งค้นหาข้อมูล
1.1 คำสั่งการเพิ่มข้อมูลทีละแถวโดยระบุข้อมูลที่จะ INSERTเข้าไปโดยตรง รูปแบบของคำสั่งเป็นดังนี้
INSERT INTO <tablename>[(column 1, column 2, )]
VALUE(<value1,value2, >);
INSERT INTO เป็นคำสั่งที่ต้องมีทุกครั้งที่ต้องการเพิ่มข้อมูล
tablename ชื่อตารางที่จะเพิ่มข้อมูล
column 1, column 2, คอลัมที่ต้องการเพิ่มข้อมูล
value1,value2, ค่าข้อมูลของแต่ละคอลัมภ์ที่ต้องการเพิ่ม
ตัวอย่าง ถ้าต้องการจะใส่ข้อมูลทุกคอลัมน์ลงในตารางลูกค้า
INSERT INTO SALESTAB
VALUES( 1001, Chaiwat, Bangkok,0.12);
ผลของคำสั่งนี้ จะมีข้อมูลปรากฎในทุกคอลัมน์ในตารางพนักงานขายดังนี้
SALENO |
SALENAME |
ADDRESS |
SALECOM |
1001 |
Chaiwat |
Bangkok |
0.12 |
ตัวอย่าง ถ้าต้องการจะใส่ข้อมูลบางคอลัมน์ เช่น ชื่อเมือง Bangkok ชื่อลูกค้า Arlee และหมายเลขลูกค้า 2001 ลงในตารางลูกค้า ใช้คำสั่งดังนี้
INSERT INTO CUSTOMERSTAB(ADDRESS,CUSNAME,CUSNO)
VALUES( 'Bangkok','Arlee', 2001);
ผลของคำสั่งในตารางลูกค้า จะทำให้คอลัมน์ ADDRESS มีค่าเป็น Bangkok คอลัมน์ CUSNAME จะมีค่าเป็น Arlee คอลัมน์ CUSNO จะมีค่าเป็น 2001ดังนี้
CUSNO |
CUSNAME |
ADDRESS |
RATING |
SALENO |
2001 |
Arlee |
Bangkok |
จะเห็นว่าไม่ได้ใส่ค่าในคอลัมน์ RATING และ SALENO ไว้ ดังนั้นทั้งสองคอลัมน์นี้จะมีค่าเป็น NULL โดยอัตโนมัติ
1.2 คำสั่งการเพิ่มข้อมูลโดยการดึงกลุ่มข้อมูลด้วยคำสั่งค้นหาข้อมูล ในภาษา SQL สามารถใช้คำสั่ง INSERT ในการนำค่าหรือหาค่าจากตารางหนึ่งแล้วไปใส่ไว้ในอีกตาราหนึ่งได้ โดยได้ค่านั้นมาจากการสอบถามข้อมูล รูปแบบเป็นดังนี้
INSERT INTO <table name>[(column 1, column 2, )]
SELECT statement;
INSERT INTO เป็นคำสั่งที่ต้องมีทุกครั้งที่ต้องการเพิ่มข้อมูล
tablename ชื่อตารางที่จะเพิ่มข้อมูล
SELECT statement ประโยคคำสั่ง SELECTที่ต้องการข้อมูลอีกตารางหนึ่ง
ตัวอย่าง ถ้าต้องการใส่ข้อมูลพนักงานลงในตาราง BANGKOKSTAFF โดยข้อมูลที่จะใส่ลงไปนั้นได้มาจากตารางพนักงานขายที่อาศัยอยู่ใน Bangkok
INSERT INTO BANGKOKSTAFF
SELECT *
FROM SALESTAB
WHERE ADDRESS = Bangkok;
ผลของคำสั่งนี้จะทำให้ได้ข้อมูลพนักงานที่อยู่ในเมือง Bangkok ( ADDRESS = Bangkok) ทั้งหมดไปใส่ไว้ในตาราง BANGKOKSTAFF โดยตาราง BANGKOKSTAFF ได้ถูกสร้างไว้แล้วด้วยคำสั่ง CREATE TABLE ในการสร้างตาราง BANGKOKSTAFF จะต้องสร้างให้มี 4 คอลัมน์และมีชนิดข้อมูลตรงกับคอลัมน์ของตารางพนักงานขาย (โดยไม่จำเป็นต้องมีชื่อคอลัมน์เหมือนกัน)
หลังจากที่ป้อนข้อมูลเข้าไปเก็บไว้ในตารางแล้ว กรณีที่ต้องการปรับปรุงแก้ไขข้อมูลสามารถทำได้ด้วยภาษา SQL การปรับปรุงแถวข้อมูลเป็นการปรับปรุงหรือแก้ไขค่าคอลัมน์ ซึ่งในคำสั่งปรับปรุงข้อมูลอาจมีมากกว่า 1 คอลัมน์ในแถวทุกแถวที่มีเงื่อนไขสอดคล้องกับที่ระบุไว้หลังคำว่า WHERE
รูปแบบของคำสั่งปรับปรุงแถวข้อมูลมีดังนี้
UPDATE <table name> SET <column 1>[, column 2, ] = <expression |sunquery>
[WHERE<condition>];
UPDATE เป็นคำสั่งที่ต้องมีทุกครั้งที่ต้องการปรับปรุงข้อมูล
table name ชื่อตารางที่ต้องการปรับปรุง
SET <column > ชื่อคอลัมน์ที่ต้องการปรับปรุง
expression ค่าข้อมูลที่ต้องการปรับปรุง
WHERE<condition> เงื่อนไขในการปรับปรุง
ตัวอย่าง ถ้าต้องการเปลี่ยนค่า RATING ของลูกค้าทั้งหมดในตารางลูกค้าให้เป็น 200 จะต้องป้อนคำสั่งดังนี้
UPDATE CUSTOMERSTAB
SET RATING = 200;
ผลของคำสั่งจะทำให้คอลัมน์ RATING ของตารางลูกค้ามีค่าเป็น 200 ทุกแถวและเมื่อเข้าไปดูข้อมูลในตารางลูกค้าจะปรากฎข้อมูลดังนี้
หากต้องการจะเปลี่ยนเฉพาะแถวใดแถวหนึ่งเท่านั้นก็สามารถทำได้ดังนี้
ตัวอย่าง ถ้าต้องการจะเปลี่ยนค่า RATING ให้กับลูกค้าทั้งหมด ที่มีหมายเลขประจำตัวพนักงานขาย(SALENO) เป็น 1001 ให้มีค่า RATINGเป็น 200
UPDATE CUSTOMERSTAB
SET RATING = 200
WHERE SALENO = 1001;
ผลของคำสั่งจะทำให้ตารางลูกค้าเดิมเปลี่ยนเป็นตารางใหม่ในตารางใหม่นี้ ลูกค้าทั้งหมดที่มีหมายเลขประจำตัวเป็น 1001 จะมีค่า RATING เป็น 200 ดังนี้
คำสั่งในการลบแถวข้อมูล เป็นคำสั่งที่ใช้ในการลบแถวข้อมูลทุกแถวที่มีเงื่อนไขสอดคล้องกับที่ระบุไว้หลัง WHERE คำสั่งการลบข้อมูลมีรูปแบบทั่วไปดังนี้
DELETE FROM <table name>
[WHERE<condition>];
DELETE FROM เป็นคำสั่งที่ต้องมีทุกครั้งที่ต้องการลบข้อมูล
table name ชื่อตารางที่ต้องการลบข้อมูล
WHERE<condition> เงื่อนไขในการลบข้อมูล
ตัวอย่าง ถ้าต้องการลบแบบมีเงื่อนไข เช่น ต้องการลบพนักงานขายชื่อ Ternjai ซึ่งมีหมายเลขพนักงาน (SALENO)=1003 ออกจากตารางจะใช้คำสั่งว่า
DELETE FROM SALESTAB
WHERE SALENO = 1003;
ผลของคำสั่งจากตารางพนักงานขายเดิมจะทำให้ได้ตารางใหม่ดังนี้
SALENO |
SALENAME |
ADDRESS |
SALECOM |
1001 |
Chaiwat |
Bangkok |
0.12 |
1002 |
Mitree |
Puket |
0.13 |
1004 |
Benjawan |
Bangkok |
0.11 |
1007 |
Kanjana |
Chiangmai |
0.15 |
1003 |
Ternjai |
Nonthaburi |
0.10 |
SALENO |
SALENAME |
ADDRESS |
SALECOM |
1001 |
Chaiwat |
Bangkok |
0.12 |
1002 |
Mitree |
Puket |
0.13 |
1004 |
Benjawan |
Bangkok |
0.11 |
1007 |
Kanjana |
Chiangmai |
0.15 |
โดยปกติแล้วการลบข้อมูลจะกระทำการลบเพียงบางแถวของตารางเท่านั้น การลบแถวต่าง ๆ ออกจากตารางด้วยคำสั่งในการปรับปรุงคือคำสั่ง DELETE คำสั่งนี้จะลบแถวทั้งแถวแต่ไม่สามารถลบค่าเพียงคอลัมน์ใดคอลัมน์หนึ่ง
ตัวอย่าง ถ้าต้องการลบรายละเอียดทั้งหมดของตารางพนักงานขายจะต้องป้อนคำสั่งต่อไปนี้
DELETE FROM SALESTAB;
ในตารางพนักงานขายก็จะว่างไม่มีค่าใดๆ อยู่แต่ตารางยังปรากฎอยู่ ถ้าต้องการตารางออกไปจะใช้คำสั่ง DROP TABLE
ตัวอย่าง ถ้าต้องการลบตาราง SALESTABใช้คำสั่งดังนี้
DROP TABLE SALESTAB;