access文法大全

來源:互聯網
上載者:User

access文法大全
 


 
like查詢用*
SELECT *
FROM flash
WHERE filename like '*http*';


DELETE *
FROM company_guangxi
WHERE 機構名稱 not like '*公司*' and 機構名稱 not like '*工廠*';


刪除查詢
DELETE * FROM 訂單 WHERE 訂單.下單日期 <=#1/1/2002#


更新查詢
UPDATE 產品 SET 產品.建議售價 = [建議售價]*1.2 WHERE 產品.廠牌="MOTOROLA"

 

access sql語句查詢
查詢時產生序號
SELECT (SELECT Count([xlh].[aa]) AS AutoNum FROM xlh WHERE (((xlh.aa) <=xlh_Alias.aa));) AS 序號, xlh.aa
FROM xlh AS xlh_Alias INNER JOIN xlh ON xlh_Alias.aa=xlh.aa
ORDER BY xlh.aa;


多表sql查詢
SELECT test.aa AS 第一個欄位, test1.bb AS 第二個欄位, test1.cc
FROM test, test1
WHERE test.aa=test1.aa;

 

多表sql查詢1
SELECT a.aa, b.bb, b.cc, b.cc*100 AS 合計
FROM test AS a, test1 AS b
WHERE a.aa=b.aa;

 

多表sql查詢排序
SELECT a.aa, b.bb, b.cc AS 第三個欄位
FROM test AS a, test1 AS b
WHERE a.aa=b.aa
ORDER BY b.cc;

 

查詢例子
SELECT a.dhhm
FROM xl11a AS a, xl919 AS b
WHERE a.dhhm=b.dhhm and aa <>"1";

 

日期時間分隔字元是#而不是引號
Select * From Tab1 Where [Date]>#2002-1-1#;

 

函數及計算
合計的群組,運算式及條件
SELECT 訂單.客戶編碼, Sum(訂單.含稅價) AS 含稅價之總計, Last(訂單.訂單日期) AS 訂單日期之最後一筆, Date()-[訂單日期之最後一筆] AS 距今天數 FROM 訂單 WHERE (訂單.訂單日期>=#12/1/2006#) GROUP BY 訂單.客戶編碼
11-2 查詢指令
群組
條件
多個計算欄位
多資料表查詢指令
INNER JOIN-最基本的JOIN方式
SELECT 客戶.公司名稱, 訂單.訂單編號, 訂單.訂單日期 FROM 客戶 INNER JOIN 訂單 ON 客戶.客戶編碼 = 訂單.客戶編碼
11-2 查詢指令
多資料表查詢指令
LEFT及RIGHT JOIN
SELECT 客戶.公司名稱, 客戶.連絡人姓名, 訂單.客戶編碼 FROM 客戶 LEFT JOIN 訂單 ON 客戶.客戶編碼 = 訂單.客戶編碼 WHERE (訂單.客戶編碼 Is Null)
11-2 查詢指令
四種巨集指令查詢指令
製成資料表
SELECT 客戶.客戶編碼, 客戶.公司名稱, 訂單.下單日期, 訂單.含稅價 INTO 客戶及訂單 FROM 客戶 INNER JOIN 訂單 ON 客戶.客戶編碼 = 訂單.客戶編碼
新增查詢
INSERT INTO 客戶及訂單 ( 客戶編碼, 公司名稱, 下單日期, 含稅價 ) SELECT 客戶.客戶編碼, 客戶.公司名稱, 訂單.下單日期, 訂單.含稅價 FROM 客戶 INNER JOIN 訂單 ON 客戶.客戶編碼 = 訂單.客戶編碼
11-3 巨集指令查詢指令
四種巨集指令查詢指令

 

下邊列出sql server與access的文法差別,方便大家在更換程式資料庫時查詢。

日期分隔符號
  access:英鎊符(#)
  sql server:撇號(’)

Boolean 常量
  access:True、False;On、Off;Yes、No;整數:-1(真)、0(假)。
  sql server:整數:1(真)、0(假)


字串串連
  access:和號(&)
  sql server:加號(+)

萬用字元
  access:星號(*)與零個或更多字元匹配。 
      問號(?)與單個字元匹配。
      歎號(!)意味著不在列表中。
      英鎊符(#)意味著單個數字。
  sql server:百分比符號(%)與零個或更多字元匹配。 
        底線(_)與單個字元匹配。
        上插入符(^)意味著不在列表中。
        沒有與英鎊符(#)對應的字元。

DROP INDEX
  access:Drop Index <索引名> ON <表名>
  sql server:Drop Index <表名>. <索引名>

表添加識別欄位
  access:alter table <表名> add <列名> Counter(1,1)
  sql server:alter table <表名> add <列名> bigint identity(1,1) not null

 

1.基本的sql語句
select 欄位,'字串' from 表名 where 條件 order by desc/asc
update 表名 set 欄位=值 where 條件
delete from 表名 where 條件
insert into 表名(欄位名1,欄位名2) VALUES('值1','值2')
注意:欄位名,表名最好使用[]括起來 以免碰到保留字報錯 即使不是保留字 也用下方括弧 養成個好習慣
我這裡使用網站維護管理系統來示範
首先建立一個資料庫
SELECT * FROM [public]
最基本的語句 顯示表裡所有的欄位 如果我們只要顯示一個text那麼,如果需要顯示其他的內容呢。這裡有個好處是access的sql語句 可以對資料做簡單處理 比如一些資料過長 我們只要顯示20字元 下面看
怎麼樣 效果很明顯吧 欄位名可以按照一個變數來處理 調用一些基本函數 這些函數可以參考access的協助
看到了吧
那麼是不是能直接輸出字串呢。我另外設定個常量列 做字串
不過這樣的東西 就不能用這個工具直接改了 畢竟我這個是用來黑站的 不是做實驗……
那麼在實際的應用中 是不是可以直接處理成html代碼直接輸出。
我們看看比如我們需要這樣的<a href="?id=使用者ID>使用者名稱</a>這樣的資料格式 常規做法是從資料庫調ID和使用者名稱出來 再到asp裡分別設定成2個變數處理 那麼我們看看直接在sql裡操作。字串前後要用單引號 串連使用"&"符號
出來了 沒錯吧
SELECT '<a href=?id='&id&'>'&user&'</a>' FROM [user]
我分析下 這裡把'<a href=?id='做常量 之後資料庫的欄位按變數處理 之後串連 就是'常量'&變數&'常量'
這個應該很熟悉了吧 之後要注意的是 這樣把幾個變數合成了一列 一列是按照文字格式設定處理的 長度如果超過了255 後面的資料就會丟失 所以在實際運用的時候 應該注意下分解長度 把很長的一列 分成多列 比如
用,表示分列 之後分別調用就可以了
之後是條件 表名後加where order是排列順序desc倒序/asc順序
很明白了吧
update 表名 set 欄位=值 where 條件
修改就更簡單了 條件最好不要用字元型 要不效率低 也容易出錯
delete 也一樣了DELETE FROM [test] WHERE name='test'
這條資料就刪除了
(欄位名1,欄位名2)這個是可以省略的 省略時表示按順序插入所有欄位(欄位名1,欄位名2)
insert into test VALUES('test',2,now)
注意這個now也是一個函數 表示目前時間 一般的說 時間的值用now的可能性比較大 不用專門設定
sql="select * from 資料表 where 欄位名=欄位值 order by 欄位名 [desc]"

sql="select * from 資料表 where 欄位名 like '%欄位值%' order by 欄位名 [desc]"

sql="select top 10 * from 資料表 where 欄位名 order by 欄位名 [desc]"

sql="select * from 資料表 where 欄位名 in ('值1','值2','值3')"

sql="select * from 資料表 where 欄位名 between 值1 and 值2"

(2) 更新資料記錄:

sql="update 資料表 set 欄位名=欄位值 where 條件運算式"

sql="update 資料表 set 欄位1=值1,欄位2=值2 …… 欄位n=值n where 條件運算式"

(3) 刪除資料記錄:

sql="delete from 資料表 where 條件運算式"

sql="delete from 資料表" (將資料表所有記錄刪除)

(4) 添加資料記錄:

sql="insert into 資料表 (欄位1,欄位2,欄位3 …) valuess (值1,值2,值3 …)"

sql="insert into 目標資料表 select * from 來源資料表" (把來源資料表的記錄添加到目標資料表)

(5) 資料記錄統計函數:

AVG(欄位名) 得出一個表格欄平均值
COUNT(*|欄位名) 對資料行數的統計或對某一欄有值的資料行數統計
MAX(欄位名) 取得一個表格欄最大的值
MIN(欄位名) 取得一個表格欄最小的值
SUM(欄位名) 把資料欄的值相加

引用以上函數的方法:

sql="select sum(欄位名) as 別名 from 資料表 where 條件運算式"
set rs=conn.excute(sql)

用 rs("別名") 擷取統的計值,其它函數運用同上。

(5) 資料表的建立和刪除:

CREATE TABLE 資料表名稱(欄位1 類型1(長度),欄位2 類型2(長度) …… )

例:CREATE TABLE tab01(name varchar(50),datetime default now())

DROP TABLE 資料表名稱 (永久性刪除一個資料表)

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.