การเพิ่มข้อมูลด้วยคำสั่ง INSERT
จากหัวข้อ SQL
INSERT หลายๆท่านคงเห็นคำสั่งเกี่ยวกับการเพิ่มข้อมูลลงฐานข้อมูลแล้วมาในส่วนนี้เราจะมาเรียนรู้กัยอย่าละเอียดอีกทีหนึ่งการใช้งานคำสั่ง
INSERT นั้นเป็นการเพิ่มข้อมูลเข้าสู่ฐานข้อมูลซึ่งเราสามารถใช้คำสั่ง
INSERT ได้หลายๆรูปแบบดังนี้
การแทรกข้อมูลทีละ Record
เราสามารถใช้คำสั่ง INSERT ในการเพิ่มข้อมูลต่อท้ายตารางได้โดยการใช้คำสั่ง
INSERT ร่วมกับวลี VALUEซึ่งมีรูปแบบดังนี้
INSERT
INTO Tablename (field1,field2,field..n)
VALUES
( 'Value1', 'Value2', 'Value..n' )"
|
|
โดยที่
- tablename หมายถึงชื่อของตารางที่จะทำการเพิ่มข้อมูล
- field
หมายถึงชื่อของฟิลด์ที่จะทำการเพิ่มข้อมูล
- value
หมายถึงค่าต่างๆที่จะเพิ่มให้กับฟิลด์นั้นๆ
พารามิเตอร์ค่าข้อมูลนั้น คือ ค่าของข้อมูลที่เราจะกำหนด ให้แต่ละคอลัมน์ โดยเรียงตามลำดับที่ปรากฏในตาราง
ซึ่งต้องเป็นไปตามเงื่อนไขดังนี้
- ค่าของข้อมูลแต่ละคอลัมน์ต้องคั่นด้วยเครื่องหมาย
,
- ค่าของข้อมูลนั้นต้องมีชนิดที่ตรงกันกับชนิดของข้อมูลของคอัมน์
โดยเราสามารถตรวจสอบชนิดของข้อมูลนั้นได้ โดยดูที่คุณสมบัติของตารางซึ่งได้กล่าวไปแล้วในส่วนของการออกแบบและการสร้างตาราง
SQL
CREATE TABLE ดังตัวอย่างต่อไปนี้
ผมจะเริ่มจากการสร้างตารางขึ้นมาใหม่นะครับเพิ่อใช้ในการทดสอบคำสั่ง INSERT
create_table_insert.asp
<%
strSQL = "CREATE TABLE TEST_INSERT ( "
strSQL = strSQL & "Test_ID Integer NOT NULL
CONSTRAINT MyFieldConstraint PRIMARY KEY,"
strSQL = strSQL & "Test_Text Text (30)
NULL ,"
strSQL = strSQL & "Test_Comment Text (50),
"
strSQL = strSQL & "Test_Date DateTime NOT NULL
"
strSQL = strSQL & " );"
adoCon.Execute(strSQL)
%>
|
|
จากนั้นก็มาใช้คำสั่ง INSERT กันจากรูปแบบด้านบนกับข้อมูลของตารางที่สร้างมาใหม่ดังนี้
sql_test_insert.asp
strSQL
= "SELECT TEST_INSERT.* "
strSQL = strSQL & "FROM TEST_INSERT"
strSQL = strSQL & " ORDER BY TEST_ID DESC;"
rsCommon.Open strSQL, adoCon
If rsCommon.EOF Then
strID = 1
strSQL = "INSERT INTO TEST_INSERT ( "
strSQL = strSQL & "TEST_ID,"
strSQL = strSQL & "TEST_TEXT,"
strSQL = strSQL & "TEST_COMMENT,"
strSQL = strSQL & "TEST_DATE"
strSQL = strSQL & ") VALUES ("
strSQL = strSQL & " '"& strID &"',"
strSQL = strSQL & " 'Diaw', "
strSQL = strSQL & " 'ASPThai.Net Powered by Diaw',"
strSQL = strSQL & " Now" strSQL = strSQL & ") "
adoCon.Execute(strSQL)
Else
strID = rsCommon("TEST_ID")+1
strSQL = "INSERT INTO TEST_INSERT ( "
strSQL = strSQL & "TEST_ID,"
strSQL = strSQL & "TEST_TEXT,"
strSQL = strSQL & "TEST_COMMENT,"
strSQL = strSQL & "TEST_DATE"
strSQL = strSQL & ") VALUES ("
strSQL = strSQL & " '"& strID &"',"
strSQL = strSQL & " 'Diaw', "
strSQL = strSQL & " 'ASPThai.Net Powered by Diaw',"
strSQL = strSQL & " Now"
strSQL = strSQL & ") "
adoCon.Execute(strSQL)
End If
|
|
การเพิ่ม Record เฉพาะบางคอลัมน์
เราสามารถเพิ่ม Record ลงในตารางเฉพาะแค่บางคอลัมน์ก็ได้โดยการกำหนดคอลลัมน์ที่ต้องการเข้าไปหลังจากกำหนดตารางที่ต้องการจะเพิ่มข้อมูลแล้ว
แต่ว่ามีเงื่อนไขตรงที่ คอลัมน์ใดที่ไม่ได้ถูกกำหนดเมื่อเพิ่มข้อมูลลงไปนั้น
ต้องมีคุณสมบัติข้อใดข้อหนึ่งดังต่อไปนี้
-
อนุญาตให้มีค่าเป็น
NULL
-
มีการกำหนดค่าเป็น
DEFAULT ของคอลัมน์นั้นอยู่แล้ว
sql_test_insert_other.asp
strSQL
= "SELECT TEST_INSERT.* "
strSQL = strSQL & "FROM TEST_INSERT"
strSQL = strSQL & " ORDER BY TEST_ID DESC;"
rsCommon.Open strSQL, adoCon
If rsCommon.EOF Then
strID = 1
strSQL = "INSERT INTO TEST_INSERT ( "
strSQL = strSQL & "TEST_ID,"
strSQL = strSQL & "TEST_TEXT,"
strSQL = strSQL & "TEST_COMMENT,"
strSQL = strSQL & "TEST_DATE"
strSQL = strSQL & ") VALUES ("
strSQL = strSQL & " '"& strID &"',"
strSQL = strSQL & " Now" strSQL = strSQL & ") "
adoCon.Execute(strSQL)
Else
strID = rsCommon("TEST_ID")+1
strSQL = "INSERT INTO TEST_INSERT ( "
strSQL = strSQL & "TEST_ID,"
strSQL = strSQL & "TEST_TEXT,"
strSQL = strSQL & "TEST_COMMENT,"
strSQL = strSQL & "TEST_DATE"
strSQL = strSQL & ") VALUES ("
strSQL = strSQL & " '"& strID &"',"
strSQL = strSQL & " Now"
strSQL = strSQL & ") "
adoCon.Execute(strSQL)
End If
|
|
จากคำสั่งด้านบนคงสังเกตุเห็นว่าผมไม่ได้เพิ่มข้อมูลลงไปในทุกคอลัมน์แต่เพิ่มในคอลัมน์
TEST_ID และ TEST_DATE เท่านั้น
|
ช่วยกันสนับสนุนรักษาเว็บไซต์ความรู้แห่งนี้ไว้ด้วยการสนับสนุน Source Code 2.0 ของทีมงานไทยครีเอท
|
|
|
By : |
ThaiCreate.Com Team (บทความเป็นลิขสิทธิ์ของเว็บไทยครีเอทห้ามนำเผยแพร่ ณ เว็บไซต์อื่น ๆ) |
|
Score Rating : |
|
|
|
Create/Update Date : |
2008-08-12 20:47:18 /
2012-05-30 21:11:50 |
|
Download : |
No files |
|
Sponsored Links / Related |
|
|
|
|
|