如果表格中存在錯誤或重複的數據,比較簡單、快捷的方法就是選定該數據,然後將其刪除。進行數據刪除時分為兩種:常用數據刪除的方法和偽列數據刪除的方法。
基本介紹
- 中文名:數據刪除
- 外文名:Data deletion
- 對象:表中錯誤或重複的數據
- 簡單問題:直接使用DELETE語句
- 複雜問題:先分割再使用DELETE語句
- 套用學科:資料庫原理
常用數據刪除方法
偽列數據刪除方法
偽列ROWID
CRKATE TABLE student( NUM VARCHAR2(10) NOT NULL, NAME VARCHAR2(10) NOT NULL, MAJOR VARCHAR2(10) NULL, BIRTHDAY DATE NULL, PRIMARY KEY(NUM))
SELETE ROWID FROM student
ROWIDAAAOBSAAEAAAmwQAAAAAAOBSAAEAAAmwQAABAAAOBSAAEAAAmwQAAC... ... ...AAAOBSAAEAAAmwQAAR
DELETE student WHERE ROWID IN('AAAOBSAAEAAAmwQAAA','AAAOBSAAEAAAmwQAAB',...)
MFC ADO獲取記錄集
CString selstr="select * from tempstudent where birthday=to_date('1991-07-17','yyyy-mm-dd')";Adoconn.GetRecordSet(selstr);int Count = Adoconn.GetRecordCount();CString name;for(int j=0;j<Count;j++){ Adoconn.GetCollect("name",name); Adoconn.m_pRecordset->MoveNext();}
數據刪除的實現
提取偽列集合
根據偽列值刪除數據
int len=0,k;CString rowid,rowidSet="",Deletesql;CString selstr="select rowid from student";Adoconn.GetRecordSet(selstr);int Count=Adoconn.GetRecordCount();while(Count>0){ k=Count>10?10:Count; //ROWID集合數不超過10個 for(int j=0;j<k;j++) { Adoconn.GetCollect("rowid",rowid); rowidSet +="'"+","; //構造ROWID集合字元串 Adoconn.m_pRecordset->MoveNext(); } len=rowidSet.Getlength()-1; Deletesql="DELETE tempstudent WHERE rowid IN"; //構造動態SQL字元串 Deletesql+="("+rowidSet.Left(len)+")"; Adoconn.ExecuteSQl(Deletesql); Count-=10; rowidSet="";}Adoconn.Close; //關閉記錄