ACCESS數據庫SQL語句問題
select * from 數據庫名.*ects where xtype = 'U' order by name asc 差數據庫下的表名 SELECT * FROM 數據庫名.*umns WHERE id=Object_Id('數據庫名.dbo.表名') sp_helpdb ----------查本服務器中所有數據庫 可跟庫名 例:sp_helpdb 庫名 ------------------------------------------------------------- sp_databases -------------查看本服務器中可用的數據庫 -------------------------------------------------------------------- sp_helpfile -------------------查看當前工作著的數據庫 ----------------------------------------------------------- sp_helpfilegroup ---------------查看當前工作著的組的信息。
可加參數,跟組名 例:sp_helpdb 庫名 ---------------------------------------------------------------- sp_renamedb -----------改數據庫名 例:sp_renamedb 舊庫名,新庫名 ---------------------------------------------------------------- select groupname from sysfilegroups where status=24 ---------查看文件組 =8是查只讀文件組 =16是查默認文件組 =24是查即只讀又默認 --------------------------------------------------------------------------- sp_dboption ----------修改數據庫選項值 例:sp_dboption 庫名 選項 值 值決定真假 一般用:true/faule 或off/on表示 選項一般常用為:use only(數據庫擁有者)single user(單一用戶)read only(只讀) -------------------------------------------------------------------------- dbcc shrinkdatabase ---------收縮數據庫 例:dbcc shrinkdatabase (庫名,10) 收縮庫,剩余空間保留10%,后面如果不加notruncate,則釋放空間操作系統, 加truncateonly,歸還空間給操作系統,但忽略所給的百分比數值。 ---------------------------------------------------------------------- dbcc shrinkfile ---------收縮文件 用法與ddcc shrinkdatabase相同。
---------------------------------------------------------------------- alter database ---------------修改數據庫 用法:這是起始句,告訴要做的是修改數據庫,然后再接要做什么工作。每次只做一項工作 alter database 庫名 add file 文件名。
.to filegroup 文件組名 ----------------增加庫文件,格式與建庫時括號里指定大小時的格式一樣 add log file 文件名 -------------增加日志文件 remove file 文件名 ---------刪除庫內的文件 add filegroup 文件組名 -----------增加一個文件組 modify file 文件名 -------------修改文件屬性 modify filegroup 組名 ------------修改文件組屬性 --------------------------------------------------------------------------- drop database --------------刪除數據庫 例:drop database 庫名1,庫名2 ---------可同時刪除兩個庫 ------------------------------------------------------------------------ create table 表名 (列名 類型, 列名 類型) -------------------建立表 -------------------------------------------------------------------- select * from 表名 ---------查詢表結構 -------------------------------------------------------------------- select @@dbts ----------查詢最后一次操作 -------------------------------------------------------------------- insert into 表名 (列名,列名) values (變量,變量。..) ------------向表中插入數據 如省略列名,則必須把每列的變量填全,不可缺少。
可以省略 into -------------------------------------------------------------------- sp_addtype 自定義類型名 系統類型名 -------用戶自定義類型 -------------------------------------------------------------------- sp_droptype 自定義類型名 -----------刪除自定義類型 如有數據庫正在使用該自定義類型,則不能刪除 -------------------------------------------------------------------- alter table ---------修改表結構 用法: alter table 表名 alter column 列名 類型 ---------修改列的類型 drop column 列名 --------刪除列 add (column) 列名 --------增加列,實際用時不加 column ----------------------------------------------------------------- sp_help -------------查看數據庫中對象信息 用法: sp_help 表名 ---------------查表的信息 或 sp_help 庫名 --------------查庫信息 后面可以跟庫名或者表名,是查數據庫或者表的信息 ----------------------------------------------------------------- sp_spaceused --------查看對象占用的空間信息 用法: sp_spaceused ----------查當前庫占用空間信息 或 sp_spaceused 表名 ----------查指定表占用空間信息 后面可以加表名查看表占空間信息。如不加,則查看當前數據庫。
------------------------------------------------------------------ sp_depends ------------查看對象的相關性 用法: sp_depends 表名 -----------后面加表名 ------------------------------------------------------------------ sp_rename ---------------重新命名 用法: sp_rename 舊表名,新表名 ---------改表名 或 sp_rename '表名.舊列名','新列名' 'column' -------修改列名 -------------------------------------------------------------------- create index --------------創建索引 用法: create index 索引名 on 表名 (列名) ------創建索引 或: create unique clustered index 索引名 on 表名 (列名) ------創建簇集唯一索引 unique是建唯一索引 clustered是建簇集索引 ---非簇集索引用:nonclustered ---------------------------------------------------------------------- select top ---------查表中前幾行 用法: select top 3 * from 表名 -------查表中前三行 或: select top 10 percent * from 表名 -------顯示表中前10%數據 ------------加入percent是百分比的意思。只以大于。
Access中如何實現類似于with as的子查詢
access的查詢是可以保存的,保存后可以當做視圖來用。舉例:
比如這么個表:
隨便寫個查詢,統計姓張和姓李各有多少個人吧:
select left(姓名,1) as 姓,count(*) as 人數 from 員工表 group by left(姓名,1)ctrl+S保存,查詢名就起“查詢1”
然后查詢有3個人的姓有哪些
select 姓 from 查詢1 where 人數=3結果:
誰能給出Access和SQLServer中SQL語句對比
后臺數據庫: [Microsoft Access] 與 [Microsoft Sql Server] 更換之后,ASP代碼應注意要修改的一些地方: [一]連接問題(舉例) [Microsoft Access] constr = "DBQ=c:\data\*; DRIVER={Microsoft Access Driver (*.mdb)}" [Microsoft Sql Server] constr = "DRIVER={SQL Server};SERVER=host;DATABASE=mydata;uid=sa;pwd=" [二]相似函數(舉例) [1]DATEDIFF(datepart, startdate, enddate) 其中“datepart”參數可選項如下: 設置 描述 [Microsoft Access] 年 yyyy 季度 q 月 m 一年的日數 y 日 d 一周的日數 w 周 ww 小時 h 分鐘 n 秒 s [Microsoft Sql Server] year yy, yyyy quarter qq, q month mm, m dayofyear dy, y day dd, d week wk, ww hour hh minute mi, n second ss, s millisecond ms 基本上差不多,但注意的是在寫的時候, [Microsoft Access]要加引號,如:datediff('d',enddate,'2004/08/01') [Microsoft Sql Server]則不需要,如:datediff(d,enddate,'2004/08/01') [2][Microsoft Access]中可用如cstr等轉數據類型函數,而 [Microsoft Sql Server]中則用convert或cast函數,如: convert(varchar,[amount])等。
[3][Microsoft Sql Server] 取當前時間用getdate等等。 [三]語句 [Microsoft Sql Server] 可以用 CASE WHEN THEN WHEN THEN 。
ELSE END 語句,而 [Microsoft Access] 不支持。 [Microsoft Access]也不支持between語句 [Microsoft Sql Server]則可以這樣寫: [date] between @date1 and @date2 [四]查詢表 [Microsoft Sql Server] 可三個及以上表join查詢,而 [Microsoft Access] 好像只能兩個表聯接查詢(待權威確認), 而且[Microsoft Sql Server]可用“*=”和“=*”連接符。
[五]除零問題 [Microsoft Access] 在碰到除數為零時,自動丟掉相關記錄,而 [Microsoft Sql Server] 則會報錯,且查詢中止。刪除代碼: [Microsoft Access] 可以這樣寫:delete * from [table] [Microsoft SQL Server] 只能這樣寫:delete from [table] 多*會報錯 當前日期: [Microsoft Access] 用date() [Microsoft SQL Server] 用getdate()如果數據庫可能會更換類型的話,可以 在ASP代碼中加上如這樣: if inStr(constr,"Microsoft Access") > 0 then sqlstr=[Microsoft Access][sql代碼] else sqlstr=[Microsoft Sql Server][sql代碼] end if (constr--連接字符串) 這樣即使改了數據庫,也不用改數據庫查詢更新代碼了。
再加:access中有true、false的字段記錄,而sql里只有smallint,對應如果在access里有“字段名=true”的,在sql里要改成“字段名=1” 網上大部分的免費asp程序使用的是access數據庫。但是access數據庫作為一個中小型的單機數據庫系統,在承擔訪問量、數據量大的網站應用時,往往就不堪重負了。
一般認為,超過50M的access數據庫性能就開始明顯下降,超過100M以后,出錯、運行慢的問題會更加突出。盡管可以如動網7.0以后那樣,從程序的角度盡量優化以圖提高性能,但是不能從根本上解決問題。
這時也許使用微軟的SQL Server數據庫就是最可能的辦法,當然也可以使用其它的如Oracle、MySQL等等,但是作為改寫來說,由于同為微軟的產品,改寫成SQL Server應該是最省力的辦法。
access數據庫中sql語句怎么通過A表和B表的相同字段賦值個數
不好意思之前忘記了這是ACCESS數據庫,使用了MSSQL的SQL語法,現在修改一下之前提供的實現方案
先創建一個數據表
Temp(SAP序號 文本 主鍵,r 數字,c 數字)
假設“配件”和“庫存”這兩個窗體已將打開,為“庫存”窗體添加一個命令按鈕,然后編寫該按鈕單擊事件過程即可實現:
假設“庫存”窗體綁定“庫存”表,配件窗體綁定“配件”表
Private Sub Command1_Click()
Dim strSql As String
轉載請注明出處華閱文章網 » accesswith語句