<form id="hz9zz"></form>
  • <form id="hz9zz"></form>

      <nobr id="hz9zz"></nobr>

      <form id="hz9zz"></form>

    1. 明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

      SQL語句的一些集合

      [摘要]1.ASP與Access數據庫連接: <%@language=VBscript%> <% dimconn,mdbfile mdbfile=server.mappath("數據庫名稱.mdb") setconn=server.createobject("...

      1.ASP與Access數據庫連接:
      <%@language=VBscript%>
      <%
      dimconn,mdbfile
      mdbfile=server.mappath("數據庫名稱.mdb")
      setconn=server.createobject("adodb.connection")
      conn.open"driver={microsoft access driver
      (*.mdb)};uid=admin;pwd=數據庫密碼;dbq="&mdbfile
      %>
      2.ASP與SQL數據庫連接:
      <%@language=VBscript%>
      <%
      dimconn
      setconn=server.createobject("ADODB.connection")
      con.open"PROVIDER=SQLOLEDB;DATA
      SOURCE=SQL服務器名稱或IP地址;UID=sa;PWD=數據庫密碼;DATABASE=數據庫名稱
      %>

      建立記錄集對象:

      setrs=server.createobject("adodb.recordset")
      rs.openSQL語句,conn,3,2

      3.SQL常用命令使用方法:
      (1)數據記錄篩選:
      sql="select*from數據表where字段名=字段值orderby字段名[desc]"
      sql="select*from數據表where字段名like'%字段值%'orderby字段名[desc]"
      sql="selecttop10*from數據表where字段名orderby字段名[desc]"
      sql="select*from數據表where字段名in('值1','值2','值3')"
      sql="select*from數據表where字段名between值1and值2"

      (2)更新數據記錄:
      sql="update數據表set字段名=字段值where條件表達式"
      sql="update數據表set字段1=值1,字段2=值2……字段n=值nwhere條件表達式"

      (3)刪除數據記錄:
      sql="deletefrom數據表where條件表達式"
      sql="deletefrom數據表"(將數據表所有記錄刪除)

      (4)添加數據記錄:
      sql="insertinto數據表(字段1,字段2,字段3…)values(值1,值2,值3…)"
      sql="insertinto目標數據表select*from源數據表"(把源數據表的記錄添加到目標數據表)

      (5)數據記錄統計函數:
      AVG(字段名)得出一個表格欄平均值
      COUNT(*&brvbar;字段名)對數據行數的統計或對某一欄有值的數據行數統計
      MAX(字段名)取得一個表格欄最大的值
      MIN(字段名)取得一個表格欄最小的值
      SUM(字段名)把數據欄的值相加
      引用以上函數的方法:
      sql="selectsum(字段名)as別名from數據表where條件表達式"
      setrs=conn.excute(sql)
      用rs("別名")獲取統的計值,其它函數運用同上。

      (5)數據表的建立和刪除:
      CREATETABLE數據表名稱(字段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條記錄
      rs.pagecount根據pagesize的設置返回總頁數
      rs.recordcount返回記錄總數
      rs.bof返回記錄指針是否超出數據表首端,true表示是,false為否
      rs.eof返回記錄指針是否超出數據表末端,true表示是,false為否
      rs.delete刪除當前記錄,但記錄指針不會向下移動
      rs.addnew添加記錄到數據表末端
      rs.update更新數據表記錄
      ---------------------------------------
      Recordset對象方法
      Open方法
      recordset.OpenSource,ActiveConnection,CursorType,LockType,Options
      Source
      Recordset對象可以通過Source屬性來連接Command對象。Source參數可以是一個Command對象名稱、一段SQL命令、一個指定的數據表名稱或是一個Stored
      Procedure。假如省略這個參數,系統則采用Recordset對象的Source屬性。

      ActiveConnection
      Recordset對象可以通過ActiveConnection屬性來連接Connection對象。這里的ActiveConnection可以是一個Connection對象或是一串包含數據庫連接信息(ConnectionString)的字符串參數。

      CursorType
      Recordset對象Open方法的CursorType參數表示將以什么樣的游標類型啟動數據,包括adOpenForwardOnly、adOpenKeyset、adOpenDynamic及adOpenStatic,分述如下:
      --------------------------------------------------------------
      常數常數值說明
      -------------------------------------------------------------
      adOpenForwardOnly0缺省值,啟動一個只能向前移動的游標(ForwardOnly)。
      adOpenKeyset1啟動一個Keyset類型的游標。
      adOpenDynamic2啟動一個Dynamic類型的游標。
      adOpenStatic3啟動一個Static類型的游標。
      -------------------------------------------------------------
      以上幾個游標類型將直接影響到Recordset對象所有的屬性和方法,以下列表說明他們之間的區別。
      -------------------------------------------------------------
      Recordset屬性adOpenForwardOnlyadOpenKeysetadOpenDynamicadOpenStatic
      -------------------------------------------------------------
      AbsolutePage不支持不支持可讀寫可讀寫
      AbsolutePosition不支持不支持可讀寫可讀寫
      ActiveConnection可讀寫可讀寫可讀寫可讀寫
      BOF只讀只讀只讀只讀
      Bookmark不支持不支持可讀寫可讀寫
      CacheSize可讀寫可讀寫可讀寫可讀寫
      CursorLocation可讀寫可讀寫可讀寫可讀寫
      CursorType可讀寫可讀寫可讀寫可讀寫
      EditMode只讀只讀只讀
      只讀
      EOF只讀只讀只讀
      只讀
      Filter可讀寫可讀寫可讀寫可讀寫
      LockType可讀寫可讀寫可讀寫可讀寫
      MarshalOptions可讀寫可讀寫可讀寫可讀寫
      MaxRecords可讀寫可讀寫可讀寫可讀寫
      PageCount不支持不支持只讀只讀
      PageSize可讀寫可讀寫可讀寫可讀寫
      RecordCount不支持不支持只讀只讀
      Source可讀寫可讀寫可讀寫可讀寫
      State只讀只讀只讀只讀
      Status只讀只讀只讀只讀
      AddNew支持支持支持支持
      CancelBatch支持支持支持支持
      CancelUpdate支持支持支持支持
      Clone不支持不支持
      Close支持支持支持支持
      Delete支持支持支持支持
      GetRows支持支持支持支持
      Move不支持支持支持支持
      MoveFirst支持支持支持支持
      MoveLast不支持支持支持支持
      MoveNext支持支持支持支持
      MovePrevious不支持支持支持支持
      NextRecordset支持支持支持支持
      Open支持支持支持支持
      Requery支持支持支持支持
      Resync不支持不支持支持支持
      Supports支持支持支持支持
      Update支持支持支持支持
      UpdateBatch支持支持支持支持
      --------------------------------------------------------------
      其中NextRecordset方法并不適用于MicrosoftAccess數據庫。

      LockType
      Recordset對象Open方法的LockType參數表示要采用的Lock類型,如果忽略這個參數,那么系統會以Recordset對象的LockType屬性為預設值。LockType參數包含adLockReadOnly、adLockPrssimistic、adLockOptimistic及adLockBatchOptimistic等,分述如下:
      -------------------------------------------------------------
      常數常數值說明
      --------------------------------------------------------------
      adLockReadOnly1缺省值,Recordset對象以只讀方式啟動,無法運行AddNew、Update及Delete等方法
      adLockPrssimistic2當數據源正在更新時,系統會暫時鎖住其他用戶的動作,以保持數據一致性。
      adLockOptimistic3當數據源正在更新時,系統并不會鎖住其他用戶的動作,其他用戶可以對數據進行增、刪、改的操作。
      adLockBatchOptimistic4當數據源正在更新時,其他用戶必須將CursorLocation屬性改為adUdeClientBatch才能對數據進行增、
      刪、改的操作。
      Sqlserver數據庫asp調用的特殊部分
      <%
      response.writews2(1)
      w2=ws2(2)
      response.write"a"
      response.write"b"&ws2(3)&"c"
      response.write"d"&w2
      %>

      建立一個表
      createtablefriends(name1varchar(10),phonevarchar(15))


      跟access不同,sqlserver默認的數據庫只能向后讀取,非常嚴格。

      在數據庫之間拷貝復制表格
      select*intocoolhe.dbo.mainfrommain

      刪除數據庫
      dropdatabasecoolhe

      查找替換功能

      updatecommend
      setGIF圖片=stuff(GIF圖片,1,21,"http://192.168.1.2")//替換GIF圖片字段從頭開始的21個字符為<http://192.168.1.2>

      更改記錄
      自動增加的字段無法更改
      解決辦法如下

      CREATETABLEnew_employees
      (
      id_numintIDENTITY(1,1),
      fnamevarchar(20),
      minitchar(1),
      lnamevarchar(30)
      )

      INSERTnew_employees
      (fname,minit,lname)
      valueS
      ('Karin','F','Josephs')


      修改某個記錄
      updatemain
      setGIF圖片=’新的’whereid=4331

      添加一條記錄
      insertarticles
      (category,title,link,updatetime)
      values
      ('CPU','AMDAthlonXP處理器技術與架構','20011024/01.asp','10-24-2001')

      從一個表添加記錄道另一個表
      insertmain
      selecta,b,c,dfromnew

      當main有一個字段為自動增加時,新表不能選取自動增加的字段,而避開該字段以上例的形式書寫

      查找數據庫中所有的表

      select*fromsysobjectswherextype='u'

      計算某個字段的和

      select'downloadcount'=sum(下載次數)

      檢索表定義信息

      sp_help表名

      修改表名

      sp_rename'cool','commend'

      添加表字段(如果一次添加多字段后面不加bit)

      ALTERTABLEmain
      ADD開關bit

      altertablemainadd年齡char(3),姓名varchar(8),性別char(2)

      修改表字段類型
      原先姓名字段的類型是char(10)
      altertabletablenamealtercolumn姓名varchar(20)

      修改密碼
      EXECsp_passwordNULL,'ok','Victoria'(密碼為空時)Victoria為login的用戶名
      EXECsp_password'ok','coffee'密碼從ok改到coffee

      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','column';
      column不要變動

      注釋
      /*select*fromnews*/或者--select*fromnews--
      其中橫線用于插入式注釋

      setrs=cn.execute(sql)此語句返回一個SQL語句執行后的結構,把結果賦值給RS
      cn.Executesql此語句只是執行SQL語句

      數據類型+++++++++++++++++++++++++++++++++++++++++++++++++datatypes
      smallint
      16位元的整數。

      interger
      32位元的整數。

      decimal(p,s)
      p精確值和s大小的十進位整數,精確值p是指全部有幾個數(digits)大小值,s是指小數後有幾位數。如果沒有特別指定,則系統會設為p=5;s=0。

      float
      32位元的實數。

      double
      64位元的實數。

      char(n)
      n長度的字串,n不能超過254。

      varchar(n)
      長度不固定且其最大長度為n的字串,n不能超過4000。

      graphic(n)
      和char(n)一樣,不過其單位是兩個字元double-bytes,n不能超過127。這個形態是為支援兩個字元長度的字體,例如中文字。

      vargraphic(n)
      可變長度且其最大長度為n的雙字元字串,n不能超過2000。

      date
      包含了年份、月份、日期。

      time
      包含了小時、分鐘、秒。

      timestamp
      包含了年、月、日、時、分、秒、千分之一秒。



      在SQLServer中提供了這種恢復方式的存儲過程。

      1.sp_attach_db[@dbname=]dbname,[@filename1=]filename_n

      給系統添加一個數據庫,在dbname指定數據庫名稱,filename_n指定數據庫的文件和日志文件。比如我有一個voogiya的庫,停止SQLServer服務備份voogiya_data.mdf,voogiya_log.ldf,啟動SQLserver,刪除掉這個庫,然后再把這兩上文件拷到sqlserverDATA目錄中,在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中


      日韩精品一区二区三区高清