วันนี้บรรณาธิการจะแบ่งปันคำสั่ง SQL กับคุณ เพื่อนที่สนใจมาเรียนรู้เกี่ยวกับมันกับบรรณาธิการ!
1. เชื่อมต่อ ASP เพื่อเข้าถึงฐานข้อมูล:
dimconn, mdbfile
mdbfile = server.mappath ("ชื่อฐานข้อมูล. mdb")
setConn = server.createObject ("adodb.connection"))
conn.open "driver = {MicrosoftAccessDriver
(*.mdb)}; uid = admin; pwd = รหัสผ่านฐานข้อมูล; dbq = "& mdbfile
-
2. เชื่อมต่อ ASP กับฐานข้อมูล SQL:
dimconn
setConn = server.createObject ("adodb.connection"))
con.open "ผู้ให้บริการ = sqloledb; ข้อมูล
source = ชื่อเซิร์ฟเวอร์ SQL หรือที่อยู่ IP; uid = sa; pwd = รหัสผ่านฐานข้อมูล; ฐานข้อมูล = ชื่อฐานข้อมูล
-
สร้างวัตถุชุดบันทึก:
setRs = server.createObject ("adodb.recordset"))
คำสั่ง Rs.Opensql, Conn, 3,2
3. วิธีการใช้คำสั่ง SQL ทั่วไป:
(1) การกรองข้อมูลบันทึก:
sql = "เลือก*จากตารางข้อมูลโดยที่ชื่อฟิลด์ = ค่าฟิลด์ลำดับที่สั่งซื้อชื่อฟิลด์ [desc]"
sql = "เลือก*จากตารางข้อมูลที่ชื่อฟิลด์เช่น ' % ค่าฟิลด์ค่า %' ชื่อฟิลด์ orderby [desc]"
sql = "selecttop10*จากตารางข้อมูลที่ชื่อฟิลด์ชื่อลำดับที่ชื่อฟิลด์ [desc]"
sql = "เลือก*จากตารางข้อมูลที่ชื่อฟิลด์ใน ('value 1', 'value 2', 'value 3')"
sql = "เลือก*จากตารางข้อมูลที่ชื่อฟิลด์ระหว่างค่า 1 และค่า 2"
(2) อัปเดตข้อมูลข้อมูล:
SQL = "อัปเดตตารางข้อมูลชุดชื่อฟิลด์ = ค่าฟิลด์ที่นิพจน์เงื่อนไข"
SQL = "อัปเดตฟิลด์ตารางข้อมูล 1 = ค่า 1, ฟิลด์ 2 = ค่า 2 ... ฟิลด์ฟิลด์ n = ค่านิพจน์เงื่อนไข"
(3) ลบข้อมูลข้อมูล:
SQL = "ตารางข้อมูล DELETEFROM ที่นิพจน์เงื่อนไข"
SQL = "DELETEFROM DATA TABLE" (ลบบันทึกทั้งหมดในตารางข้อมูล)
(4) เพิ่มบันทึกข้อมูล:
SQL = "ตารางข้อมูล insertinto (ฟิลด์ 1, ฟิลด์ 2, ฟิลด์ 3 …) ค่า (ค่า 1, ค่า 2, ค่า 3 …)"
SQL = "InsertInto Target Data Table SELECT* จากตารางข้อมูลต้นฉบับ" (เพิ่มบันทึกตารางข้อมูลต้นฉบับลงในตารางข้อมูลเป้าหมาย)
(5) ฟังก์ชั่นสถิติการบันทึกข้อมูล:
AVG (ชื่อฟิลด์) ได้รับค่าเฉลี่ยของคอลัมน์ตาราง
นับ (*| ชื่อฟิลด์) สถิติเกี่ยวกับจำนวนแถวข้อมูลหรือสถิติเกี่ยวกับจำนวนแถวข้อมูลที่มีค่าในคอลัมน์ที่แน่นอน
สูงสุด (ชื่อฟิลด์) ได้รับค่าสูงสุดของคอลัมน์ตาราง
ขั้นต่ำ (ชื่อฟิลด์) ได้รับค่าที่เล็กที่สุดของคอลัมน์ตาราง
ผลรวม (ชื่อฟิลด์) เพิ่มค่าของคอลัมน์ข้อมูล
อ้างอิงวิธีการทำงานด้านบน:
sql = "selectsum (ชื่อฟิลด์) เป็นนามแฝงจากตารางข้อมูลที่นิพจน์เงื่อนไข"
setRs = conn.excute (SQL)
ใช้ RS ("นามแฝง") เพื่อรับค่าการคำนวณทางสถิติและฟังก์ชั่นอื่น ๆ จะถูกใช้เช่นเดียวกับด้านบน
(5) การจัดตั้งและการลบตารางข้อมูล:
ชื่อตารางข้อมูลที่สร้างขึ้นได้ (ฟิลด์ 1 ประเภท 1 (ความยาว), ฟิลด์ 2 ประเภท 2 (ความยาว) …)
ตัวอย่าง: CreateTableTab01 (namevarchar (50), dateTimedefaultNow ())
ชื่อตารางข้อมูล Droptable (ลบตารางข้อมูลอย่างถาวร)
4. วิธีการบันทึกวัตถุชุด:
Rs.Movenext ย้ายตัวชี้บันทึกลงหนึ่งบรรทัดจากตำแหน่งปัจจุบัน
Rs.MovePrevious ย้ายตัวชี้บันทึกขึ้นหนึ่งบรรทัดจากตำแหน่งปัจจุบัน
Rs.MoveFirst ย้ายตัวชี้บันทึกไปยังแถวแรกของตารางข้อมูล
Rs.Movelast ย้ายตัวชี้บันทึกไปยังแถวสุดท้ายของตารางข้อมูล
Rs.absolutePosition = n ย้ายตัวชี้บันทึกไปยังแถว n ของตารางข้อมูล
rs.absolutePage = n ย้ายตัวชี้บันทึกไปยังบรรทัดแรกของหน้า n
rs.pagesize = n ตั้งค่าแต่ละหน้าเป็น N Records
Rs.pagecount ส่งคืนจำนวนหน้าทั้งหมดตามการตั้งค่าหน้าเว็บ
Rs.RecordCount ส่งคืนจำนวนระเบียนทั้งหมด
Rs.bof ส่งคืนว่าตัวชี้บันทึกเกินหัวของตารางข้อมูลหรือไม่ จริงหมายถึงใช่เท็จคือไม่
RS.EOF ส่งคืนว่าตัวชี้บันทึกเกินกว่าจุดสิ้นสุดของตารางข้อมูลหรือไม่ จริงหมายถึงใช่เท็จคือไม่
Rs.Delete ลบระเบียนปัจจุบัน แต่ตัวชี้บันทึกไม่เลื่อนลง
Rs.AddNew เพิ่มระเบียนที่ส่วนท้ายของตารางข้อมูล
Rs.Update อัปเดตบันทึกตารางข้อมูล
------------------------------------------------------------------------------------
วิธีวัตถุชุดบันทึก
วิธีเปิด
Recordset.opensource, Activeconnection, Cursortype, Locktype, Options
แหล่งที่มา
วัตถุ RecordSet สามารถเชื่อมต่อกับวัตถุคำสั่งผ่านคุณสมบัติแหล่งที่มา พารามิเตอร์ต้นทางสามารถเป็นชื่อวัตถุคำสั่ง, คำสั่ง SQL, ชื่อตารางข้อมูลที่ระบุหรือที่เก็บไว้
ขั้นตอน. หากมีการละเว้นพารามิเตอร์นี้ระบบจะใช้คุณสมบัติต้นฉบับของวัตถุ RecordSet
Activeconnection
วัตถุ RecordSet สามารถเชื่อมต่อกับวัตถุการเชื่อมต่อผ่านคุณสมบัติ ActiveConnection ActiveConnection ที่นี่สามารถเป็นวัตถุการเชื่อมต่อหรือพารามิเตอร์สตริงที่มีข้อมูลการเชื่อมต่อฐานข้อมูล (การเชื่อมต่อ string)
เคอร์สโคป
พารามิเตอร์ cursortype ของวิธีการเปิดของวัตถุ RecordSet ระบุว่าประเภทของเคอร์เซอร์ในการเริ่มต้นข้อมูลรวมถึง appenwardonly, Adopenkeyset, Adopendynamic และ Adopenstatic ซึ่งอธิบายไว้ดังต่อไปนี้:
-
คำอธิบายค่าคงที่ค่าคงที่
-
ค่าเริ่มต้นของ AdapenWardOnly0 เริ่มต้นเคอร์เซอร์ที่สามารถก้าวไปข้างหน้า (ไปข้างหน้าเท่านั้น)
AdopenKeySet1 เริ่มต้นเคอร์เซอร์ประเภทคีย์
Adopendynamic2 เริ่มต้นเคอร์เซอร์แบบไดนามิก
Adopenstatic3 เริ่มต้นเคอร์เซอร์แบบคงที่
-
ประเภทเคอร์เซอร์ข้างต้นจะส่งผลโดยตรงต่อคุณสมบัติและวิธีการทั้งหมดของวัตถุ RecordSet รายการต่อไปนี้อธิบายความแตกต่างระหว่างพวกเขา
-
Property recordset นำไปใช้ในการเรียนรู้
-
AbsolutePage ไม่รองรับที่อ่านได้เขียนอ่านง่ายเขียนเขียนได้
AbsolutePosition ไม่รองรับที่อ่านได้เขียนอ่านง่ายเขียนเขียนได้
Activeconnection อ่านได้เขียนได้อ่านง่ายเขียนอ่านง่ายเขียนอ่านง่ายเขียนได้
bof อ่านเท่านั้นอ่านเท่านั้นอ่านอ่านเท่านั้นอ่านเท่านั้นอ่านเท่านั้น
บุ๊กมาร์กไม่รองรับการอ่านเขียนได้อ่านง่ายเขียนเขียนได้
Cachesize สามารถอ่านเขียนอ่านเขียนอ่านเขียนเขียนอ่านเขียนอ่านเขียนเขียนเขียน
CursorLocation อ่านได้เขียนได้อ่านง่ายเขียนอ่านง่ายเขียนอ่านง่ายเขียนได้
Cursortype สามารถอ่านเขียนอ่านเขียนอ่านเขียนเขียนอ่านเขียนอ่านเขียนเขียนเขียน
editmode อ่านอย่างเดียวอ่านอย่างเดียวเท่านั้น
อ่านเท่านั้น
eof อ่านเท่านั้นอ่านอ่านเท่านั้นอ่านเท่านั้น
อ่านเท่านั้น
ตัวกรองสามารถอ่านได้เขียนได้อ่านง่ายเขียนอ่านง่ายเขียนอ่านง่ายเขียนเขียนได้
LockType สามารถอ่านเขียนอ่านเขียนอ่านเขียนเขียนอ่านเขียนอ่านเขียนเขียนเขียน
MARSHALOPTIONS อ่านได้เขียนได้อ่านง่ายเขียนอ่านง่ายเขียนอ่านง่ายเขียนได้
MaxRecords ที่อ่านได้เขียนได้อ่านง่ายเขียนได้อ่านง่ายเขียนอ่านง่ายเขียนได้เขียนได้
Pagecount ไม่รองรับการอ่านอย่างเดียวอย่างเดียว
Pagesize สามารถอ่านเขียนอ่านเขียนอ่านเขียนอ่านอ่านเขียนอ่านเขียนเขียนเขียน
RecordCount ไม่รองรับการอ่านอย่างเดียวอย่างเดียว
แหล่งที่มาสามารถอ่านได้เขียนได้อ่านง่ายเขียนอ่านง่ายเขียนอ่านง่ายเขียนเขียนได้
state read read only อ่านเท่านั้นอ่านเท่านั้นอ่านอ่านเท่านั้นอ่านเท่านั้น
สถานะการอ่านเท่านั้นอ่านอ่านเท่านั้นอ่านเท่านั้นอ่านอ่านเท่านั้นอ่านเท่านั้น
การสนับสนุนการสนับสนุนการสนับสนุน AddNew
ฝ่ายสนับสนุนการสนับสนุนการสนับสนุน CancelBatch
ฝ่ายสนับสนุนการสนับสนุนการสนับสนุนการสนับสนุน
โคลนไม่สนับสนุนหรือไม่
การสนับสนุนการสนับสนุนการสนับสนุนอย่างใกล้ชิด
ลบการสนับสนุนการสนับสนุนการสนับสนุน
การสนับสนุนการสนับสนุน Getrows
การย้ายไม่สนับสนุนการสนับสนุนการสนับสนุนการสนับสนุน
ฝ่ายสนับสนุนการสนับสนุนการสนับสนุน MoveFirst
Movelast ไม่สนับสนุนการสนับสนุนการสนับสนุนการสนับสนุน
ฝ่ายสนับสนุนการสนับสนุนการสนับสนุน Movenext
MovePrevious ไม่สนับสนุนการสนับสนุนการสนับสนุนการสนับสนุน
การสนับสนุนฝ่ายสนับสนุนการสนับสนุน NexTrecordset
รองรับการสนับสนุนการสนับสนุนแบบเปิด
สนับสนุนการสนับสนุนการสนับสนุนการสนับสนุน
Resync ไม่สนับสนุนการสนับสนุนการสนับสนุน
สนับสนุนการสนับสนุน
อัปเดตสนับสนุนการสนับสนุนฝ่ายสนับสนุนฝ่ายสนับสนุนฝ่ายสนับสนุน
การสนับสนุนการสนับสนุนการสนับสนุนการสนับสนุน UpdateBatch
-
วิธี NexTrecordset ไม่สามารถใช้ได้กับฐานข้อมูล Microsoft Access
การล็อค
พารามิเตอร์ locktype ของวิธีการเปิดของวัตถุ RecordSet ระบุประเภทการล็อคที่จะนำมาใช้ หากพารามิเตอร์นี้ถูกละเว้นระบบจะใช้คุณสมบัติ LockType ของวัตถุ RecordSet เป็นค่าที่ตั้งไว้ล่วงหน้า พารามิเตอร์ LockType รวมถึง AdlockReadonly, Adlockprssimistic, Adlockoptimistic และ Adlockbatchoptimistic ฯลฯ และอธิบายไว้ดังนี้:
-
คำอธิบายค่าคงที่ค่าคงที่
-
ค่าเริ่มต้นของ AdlockReadOnly1 วัตถุ RecordSet เริ่มต้นในโหมดอ่านอย่างเดียวและไม่สามารถเรียกใช้วิธีการ addNew, Update, DELETE และวิธีอื่น ๆ ได้
AdlockprsSimistic2 เมื่อแหล่งข้อมูลกำลังได้รับการปรับปรุงระบบจะล็อคการกระทำของผู้ใช้รายอื่นชั่วคราวเพื่อรักษาความสอดคล้องของข้อมูล
Adlockoptimistic3 เมื่อมีการอัปเดตแหล่งข้อมูลระบบจะไม่ล็อคการกระทำของผู้ใช้รายอื่น ผู้ใช้รายอื่นสามารถเพิ่มลบและแก้ไขข้อมูล
AdlockbatchOptimistic4 เมื่อแหล่งข้อมูลกำลังได้รับการปรับปรุงผู้ใช้รายอื่นจะต้องเปลี่ยนคุณสมบัติ CursorLocation เป็น AdudeclientBatch เพื่อเพิ่มข้อมูล
ลบและแก้ไขการดำเนินงาน
ส่วนพิเศษของฐานข้อมูล SQLServer ASP Call
Response.writews2 (1)
W2 = WS2 (2)
Response.write "A"
Response.write "B" & WS2 (3) & "C"
Response.write "D" & W2
-
สร้างตาราง
CreateTablefriends (Name1varchar (10), Phonevarchar (15))
ซึ่งแตกต่างจากการเข้าถึงฐานข้อมูลเริ่มต้นของ SQLServer สามารถอ่านย้อนหลังได้เท่านั้นซึ่งเข้มงวดมาก
คัดลอกตารางการคัดลอกระหว่างฐานข้อมูล
เลือก*intocoolhe.dbo.mainfrommain
ลบฐานข้อมูล
dropdatabasecoolhe
ค้นหาฟังก์ชั่นทดแทน
updateCommend
setGif pictures = stuff (รูปภาพ gif, 1, 21, "http://192.168.1.2") // แทนที่อักขระ 21 ตัวเริ่มต้นจากจุดเริ่มต้นของฟิลด์รูปภาพ GIF
เปลี่ยนบันทึก
ไม่สามารถเปลี่ยนแปลงฟิลด์ที่เพิ่มโดยอัตโนมัติได้
การแก้ปัญหามีดังนี้
CreateTableNew_employees
-
id_numintidentity (1,1),
fnamevarchar (20)
Minitchar (1)
Lnamevarchar (30)
-
insertNew_employees
(fname, minit, lname)
ค่า
('Karin', 'F', 'Josephs')
ปรับเปลี่ยนบันทึก
อัพเดท
setGif pictures = 'new'whereid = 4331
เพิ่มบันทึก
การแทรก
(หมวดหมู่, ชื่อ, ลิงก์, updateTime)
ค่า
('CPU', 'Amdathlonxp Processor Technology and Architecture', '20011024/01.asp', '10-24-2001')
การเพิ่มแทร็กระเบียนจากตารางหนึ่งและตารางอื่น
แทรก
Selecta, B, C, Dfromnew
เมื่อหลักมีฟิลด์ที่เพิ่มโดยอัตโนมัติตารางใหม่ไม่สามารถเลือกฟิลด์ที่เพิ่มโดยอัตโนมัติและหลีกเลี่ยงการเขียนฟิลด์ในตัวอย่างข้างต้น
ค้นหาตารางทั้งหมดในฐานข้อมูล
เลือก*fromysobjectswhereextype = 'u'
คำนวณผลรวมของฟิลด์
Select'downloadCount '= sum (จำนวนการดาวน์โหลด)
ข้อมูลคำจำกัดความของตารางการค้นหา
ชื่อตาราง sp_help
แก้ไขชื่อตาราง
sp_rename'cool ',' ยกย่อง '
เพิ่มฟิลด์ตาราง (หากคุณเพิ่มหลายฟิลด์ในแต่ละครั้งจะไม่มีการเพิ่มบิต)
การเปลี่ยนแปลง
เพิ่มบิตสวิตช์
AltertableMainadd อายุถ่าน (3), ชื่อ Varchar (8), ถ่านเพศ (2)
แก้ไขประเภทฟิลด์ตาราง
ประเภทฟิลด์ชื่อเดิมคือ Char (10)
AltertableTableNamealterColumnnamevarchar (20)
แก้ไขรหัสผ่าน
execsp_passwordnull, 'ตกลง', 'Victoria' (เมื่อรหัสผ่านว่างเปล่า) ชื่อผู้ใช้ของวิคตอเรียจะเข้าสู่ระบบ
execsp_password'ok ',' กาแฟ 'เปลี่ยนรหัสผ่านจาก OK เป็นกาแฟ
Altertabletable_nameaddcolumncolumn_namedatatype
คำอธิบาย: เพิ่มฟิลด์ (ไวยากรณ์สำหรับการลบฟิลด์ไม่ใช่ไวยากรณ์)
Altertabletable_nameaddprimarykey (column_name)
คำอธิบาย: เปลี่ยนคำจำกัดความของตารางและตั้งค่าฟิลด์เป็นคีย์หลัก
Altertabletable_namedropprimarykey (column_name)
คำอธิบาย: ลบนิยามคีย์หลัก
ตั้งค่าเริ่มต้นของฟิลด์เป็น 0
Altertabletable_nameaddconstraintdf_test_fieldnamedefault (0) ForfieldName
อย่าเปลี่ยน df_test_fieldname
เปลี่ยนชื่อฟิลด์
sp_rename'tablename.fieldName ',' newName ',' คอลัมน์ ';
คอลัมน์ไม่เปลี่ยนแปลง
ความเห็น
/*เลือก*fromnews*/หรือ-เลือก*จาก news-
ที่ใช้เส้นแนวนอนสำหรับคำอธิบายประกอบการแทรก
setRs = cn.execute (SQL) คำสั่งนี้ส่งคืนโครงสร้างหลังจากการดำเนินการของคำสั่ง SQL และกำหนดผลลัพธ์ให้กับ Rs
cn.executesql คำสั่งนี้เพียงแค่เรียกใช้คำสั่ง SQL
ประเภทข้อมูล ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
สิ่งเล็ก ๆ น้อย ๆ
จำนวนเต็ม 16 บิต
ผู้เข้าร่วม
จำนวนเต็ม 32 บิต
ทศนิยม (P, S)
ค่าที่แน่นอนของ P และจำนวนเต็มทศนิยมขนาดของ s ค่าที่แน่นอนของ P หมายถึงค่าขนาดของตัวเลขทั้งหมด (ตัวเลข) และ S หมายถึงจำนวนตัวเลขหลังจากทศนิยม หากไม่ได้ระบุระบบจะถูกตั้งค่าเป็น p = 5; s = 0
ลอย
จำนวนจริง 32 บิต
สองเท่า
จำนวนจริง 64 บิต
ถ่าน (N)
สตริงความยาว n ต้องไม่เกิน 254
varchar (n)
สำหรับสตริงที่ไม่ได้รับความยาวและมีความยาวสูงสุดคือ n, n ไม่เกิน 4,000
กราฟิก (n)
เช่น Char (n) แต่หน่วยของมันคือสองอักขระสองไบต์, n ไม่เกิน 127 แบบฟอร์มนี้ใช้เพื่อรองรับความยาวของตัวละครสองตัวเช่นอักขระจีน
vargraphic (n)
สตริงตัวละครสองตัวที่มีความยาวตัวแปรและความยาวสูงสุดคือ n, n ไม่เกิน 2,000
วันที่
รวมถึงปีเดือนและวันที่
เวลา
รวมถึงชั่วโมงนาทีและวินาที
การประทับเวลา
ซึ่งรวมถึงปีเดือนวันชั่วโมงนาทีที่สองและหนึ่งพันวินาที
ขั้นตอนการจัดเก็บประเภทนี้สำหรับการกู้คืนนี้มีให้ใน SQLServer
1.SP_ATTACH_DB [@dBname =] dbName, [@filename1 =] filename_n
เพิ่มฐานข้อมูลไปยังระบบระบุชื่อฐานข้อมูลใน DBNAME และ FILENAME_N ระบุไฟล์ฐานข้อมูลและไฟล์บันทึก ตัวอย่างเช่นฉันมีห้องสมุด Voogiya หยุดบริการ SQLServer เพื่อสำรองข้อมูล voogiya_data.mdf, voogiya_log.ldf, เริ่ม SQLServer, ลบไลบรารีแล้วคัดลอกไฟล์สองไฟล์ไปยังไดเรกทอรีข้อมูล SQLServer ดำเนินการคำสั่งต่อไปนี้ใน QueryAnalyzer:
execsp_attach_db@dbname = nvoogiya
@filename1 = nd: /mssql7/data/voogiya_data.mdf, (สำเร็จหากไม่มีการเพิ่ม n)
@filename2 = nd: /mssql7/data/voogiya_log.ldf (สำเร็จหากไม่เพิ่ม n)
ไลบรารีนี้จะถูกเพิ่มลงใน SQLServerGroup
2.SP_ATTACH_SINGLE_FILE_DB [@DBNAME =] DBNAME,
[@physname =] physical_name
คำสั่งนี้เหมือนกับฟังก์ชันข้างต้น ใน physical_name เพียงแค่เขียนชื่อไฟล์จริงของฐานข้อมูลและไฟล์บันทึก SQLServer จะได้รับการสร้างใหม่ ขั้นตอนที่เก็บไว้ต่อไปนี้จะต้องดำเนินการก่อน:
sp_detach_db@dbname = dbname
เช่นเดียวกับข้างต้นเป็นตัวอย่าง:
execsp_detach_db@dbname = voogiya
ExecSP_ATTACH_SINGLE_FILE_DB@DBNAME = VOOGIYA
@physname = d: /mssql7/data/voogiya_data.mdf
ควรสังเกตว่าผู้ใช้ที่ดำเนินการตามขั้นตอนที่เก็บไว้ข้างต้นจะต้องอยู่ใน sysadmin
ข้างต้นเป็นการแนะนำการแชร์คอลเลกชันของคำสั่ง SQL ฉันหวังว่าทุกคนจะชอบมัน สำหรับเนื้อหาเพิ่มเติมโปรดดำเนินการต่อเพื่อให้ความสนใจกับเว็บไซต์ของช่องเทคโนโลยี Wuxin!