库程式设计-RFID-建国科技大学资管系RFID应用与发.ppt
资料库程式设计-RFID-建国科技大学资管系RFID应用与发 Still waters run deep.流静水深流静水深,人静心深人静心深 Where there is life,there is hope。有生命必有希望。有生命必有希望SELECT 敘述對資料庫進行選取查詢的動作將查詢結果指定給Recordset物件的Recordsource屬性就可以將資料顯示出來SELECT 語法SELECT 欄位 FROM 資料表例如:SELECT 書名,分類,作者 FROM 書籍SELECT*FROM 書籍SELECT書籍.書名,書籍.分類,書籍.作者,作者.聯絡電話FROM 書籍,作者SELECT 語法 排序SELECT 欄位 FROM 資料表 ORDER BY 排序方式排序方式:ASC遞增排序,DESC遞減排序例如:SELECT*FROM 書籍 ORDER BY 頁數 ASCSELECT*FROM書籍 ORDER BY 頁數 DESCSELECT*FROM書籍 ORDER BY 頁數 ASC,分類 DESCSELECT 語法 篩選不重複的紀錄SELECT DISTINCT 欄位 FROM 資料表SELECT 語法 使用別名SELECT 欄位1 AS 別名1,欄位2 AS 別名2 FROM 資料表例如:SELECT 作者 AS 程式設計專家 FROM 書籍SELECT 作者 FROM 書籍資料內容一樣,顯示的欄位名稱不同SELECT 語法 限定選取筆數SELECT TOP n FROM 資料表SELECT TOP n Percent FROM 資料表例如:SELECT TOP 5*FROM 書籍 ORDER BY 售價 DESC SELECT 語法 統計函數SELECT 統計函數 AS 別名 FROM 資料表例如:SELECT AVG(售價)AS 平均售價 FROM 書籍COUNT:統計資料比數SUM:總合MIN,MAX:求最小與最大STDEV:取標準差VAR:取變異數SELECT 語法 分組統計SELECT 欄位FROM 資料表 GROUP BY 欄位例如:SELECT 分類,AVG(售價)AS 平均售價 FROM 書籍 GROUP BY 分類SELECT 語法 分組統計再篩選SELECT 欄位FROM 資料表 GROUP BY 欄位 HAVING 條件例如:SELECT 分類,AVG(售價)AS 平均售價 FROM 書籍 GROUP BY 分類 HAVING AVG(售價)400SELECT 語法 子集合查詢SELECT 欄位FROM 資料表 WHERE 欄位 IN 子集合例如:SELECT*FROM 書籍 WHERE 作者 IN(陳徹,陳臻)SELECT*FROM 書籍 WHERE 作者名 IN(SELECT 作者名 FROM 作者 WHERE 專長=程式設計)執行SELECT 敘述使用Recordset物件的Open方法使用Connection物件的Execute方法使用Command物件的Execute方法使用Recordset物件的Open方法Rs.open 書籍,cn,adOpenStaticsql=“SELECT*FROM 書籍”Rs.open sql,cn,adOpenStatic使用Connection物件的Execute方法Set recordset=Connection.execute(SQL敘述,recordaffected,options)這種recordset為唯讀,所以不能進行編修的動作如果要指定給DATAGRID Cn.CursorLocation=adUseClient使用Command物件的Execute方法Set recordset=command.execute這種recordset為唯讀,所以不能進行編修的動作需設定command物件的Commandtext(SQL敘述)與ActiveConnection(Connection物件)屬性動作查詢(Action Query)nRecordSet內容的更新,新增,刪除等要求(Query),稱之為動作查詢(Action Query)n不可以使用RecordSet的Open方法n使用Command物件或是Connection物件的Execute方法動作查詢(Action Query)更新n使用Update敘述語法:Update 資料表名稱Set 欄位欄位值Ex:Update 書籍Set 分類=“程式設計”動作查詢(Action Query)新增n使用Inset Into敘述語法:Insert Into 資料表名稱(欄位1,欄位2,.)Value(值1,值2,)Ex:Insert Into 書籍(書名,分類,售價)Value(“Delphi”,”程式設計”,500)動作查詢(Action Query)刪除n使用Delete敘述語法:Delete From 資料表名稱Ex:Delete from 書籍使用Connection物件來執行動作查詢(Action Query)語法:Connection.Execute 動作查詢,RecordsAffected,OptionsRecordset.Requery執行動作查詢後會產生一新的Recordset,所以需用Recordset物件的Requery方法取得新的Recordset物件使用Command物件來執行動作查詢(Action Query)須先設定Command物件的CommandText和ActionConnection屬性語法:Command.ExecuteRecordset.Requery執行動作查詢後會產生一新的Recordset,所以需用Recordset物件的Requery方法取得新的Recordset物件連SQL Server連SQL ServerPublic cn As New ADODB.ConnectionPublic rs As New ADODB.Recordset 查詢Public cmd As New ADODB.Command 新增/刪除/修改Private Sub Form_Load()cn.ConnectionString=Provider=SQLOLEDB.1;Password=1234;Persist Security Info=True;User ID=sa;Initial Catalog=Northwind;Data Source=192.168.51.43cn.CursorLocation=adUseClientcn.Open 使用connection的excute方法Set rs=cn.Execute(SELECT*FROM employees)Set DataGrid1.DataSource=rs 使用command的excute方法 mysql=SELECT*FROM employees cmd.ActiveConnection=cn cmd.CommandText=mysql Set rs=cmd.Execute Set DataGrid1.DataSource=rsEnd Sub連SQL Server 新增(方法一使用command)Private Sub Command3_Click()mysql=insert into employees(FirstName,LastName)values(cc,&Trim(Text1.Text)&)cmd.ActiveConnection=cncmd.CommandText=mysqlcmd.Executers.RequeryEnd Sub新增(方法二使用connection)Private Sub Command7_Click()cn.Execute insert into employees(FirstName,LastName)values(cc,&Trim(Text1.Text)&)rs.RequeryEnd Sub連SQL Server 修改Private Sub Command5_Click()mysql=update employees set FirstName=cc,LastName=&Trim(Text1.Text)&where employeeid=&rs(0)cmd.ActiveConnection=cncmd.CommandText=mysqlcmd.Executers.RequeryEnd Sub連SQL Server刪除Private Sub Command4_Click()mysql=delete from employees where employeeid=&rs(0)cmd.ActiveConnection=cncmd.CommandText=mysqlcmd.Executers.RequeryEnd Sub連SQL Server 查詢Private Sub Command6_Click()If rs.State adStateClosed Then rs.CloseEnd Ifrs.Open SELECT*FROM employees where lastname like%&Text1.Text&%,cn,adOpenStatic,adLockOptimisticIf rs.RecordCount 0 Then Label1.Caption=rs(lastname)Set DataGrid1.DataSource=rsElse Label1.Caption=沒有資料End IfEnd Sub連SQL ServerPrivate Sub Form_Unload(Cancel As Integer)Set DataGrid1.DataSource=Nothingcn.CloseSet cn=NothingEnd Sub