欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
SQL語(yǔ)法,SQL語(yǔ)句大全,SQL基礎
《SQL 語(yǔ)法參考手冊(SQL)》
DB2 提供了關(guān)連式資料庫的查詢(xún)語(yǔ)言 SQL (Structured Query Language),是一種非??谡Z(yǔ)化、既易學(xué)又易懂的語(yǔ)法。此一語(yǔ)言幾乎是每個(gè)資料庫系統都必須提供的,用以表示關(guān)連式的*作,包含了資料的定義(DDL)以及資料的處理(DML)。SQL原來(lái)拼成SEQUEL,這語(yǔ)言的原型以“系統 R“的名字在 IBM 圣荷西實(shí)驗室完成,經(jīng)過(guò)IBM內部及其他的許多使用性及效率測試,其結果相當令人滿(mǎn)意,并決定在系統R 的技術(shù)基礎發(fā)展出來(lái) IBM 的產(chǎn)品。而且美國國家標準學(xué)會(huì )(ANSI)及國際標準化組織(ISO)在1987遵循一個(gè)幾乎是以 IBM SQL 為基礎的標準關(guān)連式資料語(yǔ)言定義。 

一、資料定義 DDL(Data Definition Language) 
資料定語(yǔ)言是指對資料的格式和形態(tài)下定義的語(yǔ)言,他是每個(gè)資料庫要建立時(shí)候時(shí)首先要面對的,舉凡資料分哪些表格關(guān)系、表格內的有什麼欄位主鍵、表格和表格之間互相參考的關(guān)系等等,都是在開(kāi)始的時(shí)候所必須規劃好的。 

1、建表格: 
Create TABLE table_name( 
column1 DATATYPE [NOT NULL] [NOT NULL PRIMARY KEY], 
column2 DATATYPE [NOT NULL], 
...) 
說(shuō)明:  
DATATYPE --是資料的格式,詳見(jiàn)表。 
NUT NULL --可不可以允許資料有空的(尚未有資料填入)。 
PRIMARY KEY --是本表的主鍵。 

2、更改表格  
Alter TABLE table_name 
ADD COLUMN column_name DATATYPE 
說(shuō)明:增加一個(gè)欄位(沒(méi)有刪除某個(gè)欄位的語(yǔ)法。 
Alter TABLE table_name 
ADD PRIMARY KEY (column_name) 
說(shuō)明:更改表得的定義把某個(gè)欄位設為主鍵。 
Alter TABLE table_name 
Drop PRIMARY KEY (column_name) 
說(shuō)明:把主鍵的定義刪除。 

3、建立索引  
Create INDEX index_name ON table_name (column_name) 
說(shuō)明:對某個(gè)表格的欄位建立索引以增加查詢(xún)時(shí)的速度。 

4、刪除  
Drop table_name 
Drop index_name 

二、的資料形態(tài) DATATYPEs 
smallint 
16 位元的整數。 
interger 
32 位元的整數。 
decimal(p,s) 
p 精確值和 s 大小的十進(jìn)位整數,精確值p是指全部有幾個(gè)數(digits)大小值,s是指小數 
點(diǎn)後有幾位數。如果沒(méi)有特別指定,則系統會(huì )設為 p=5; s=0 。 
float 
32位元的實(shí)數。 
double 
64位元的實(shí)數。 
char(n) 
n 長(cháng)度的字串,n不能超過(guò) 254。 
varchar(n) 
長(cháng)度不固定且其最大長(cháng)度為 n 的字串,n不能超過(guò) 4000。 
graphic(n) 
和 char(n) 一樣,不過(guò)其單位是兩個(gè)字元 double-bytes, n不能超過(guò)127。這個(gè)形態(tài)是為 
了支援兩個(gè)字元長(cháng)度的字體,例如中文字。 
vargraphic(n) 
可變長(cháng)度且其最大長(cháng)度為 n 的雙字元字串,n不能超過(guò) 2000。 
date 
包含了 年份、月份、日期。 
time 
包含了 小時(shí)、分鐘、秒。 
timestamp 
包含了 年、月、日、時(shí)、分、秒、千分之一秒。 

三、資料*作 DML (Data Manipulation Language) 
資料定義好之後接下來(lái)的就是資料的*作。資料的*作不外乎增加資料(insert)、查詢(xún)資料(query)、更改資料(update) 、刪除資料(delete)四種模式,以下分 別介紹他們的語(yǔ)法: 

1、增加資料: 
Insert INTO table_name (column1,column2,...) 
valueS ( value1,value2, ...) 
說(shuō)明: 
1.若沒(méi)有指定column 系統則會(huì )按表格內的欄位順序填入資料。 
2.欄位的資料形態(tài)和所填入的資料必須吻合。 
3.table_name 也可以是景觀(guān) view_name。 

Insert INTO table_name (column1,column2,...) 
Select columnx,columny,... FROM another_table 
說(shuō)明:也可以經(jīng)過(guò)一個(gè)子查詢(xún)(subquery)把別的表格的資料填入。 

2、查詢(xún)資料: 
基本查詢(xún) 
Select column1,columns2,... 
FROM table_name 
說(shuō)明:把table_name 的特定欄位資料全部列出來(lái) 
Select * 
FROM table_name 
Where column1 = xxx 
[AND column2 〉 yyy] [OR column3 〈〉 zzz] 
說(shuō)明: 
1.’*’表示全部的欄位都列出來(lái)。 
2.Where 之後是接條件式,把符合條件的資料列出來(lái)。 

Select column1,column2 
FROM table_name 
orDER BY column2 [DESC] 
說(shuō)明:ORDER BY 是指定以某個(gè)欄位做排序,[DESC]是指從大到小排列,若沒(méi)有指明,則是從小到大 
排列 

組合查詢(xún) 
組合查詢(xún)是指所查詢(xún)得資料來(lái)源并不只有單一的表格,而是聯(lián)合一個(gè)以上的 
表格才能夠得到結果的。 
Select * 
FROM table1,table2 
Where table1.colum1=table2.column1 
說(shuō)明: 
1.查詢(xún)兩個(gè)表格中其中 column1 值相同的資料。 
2.當然兩個(gè)表格相互比較的欄位,其資料形態(tài)必須相同。 
3.一個(gè)復雜的查詢(xún)其動(dòng)用到的表格可能會(huì )很多個(gè)。 

整合性的查詢(xún): 
Select COUNT (*) 
FROM table_name 
Where column_name = xxx 
說(shuō)明: 
查詢(xún)符合條件的資料共有幾筆。 
Select SUM(column1) 
FROM table_name 
說(shuō)明: 
1.計算出總和,所選的欄位必須是可數的數字形態(tài)。 
2.除此以外還有 AVG() 是計算平均、MAX()、MIN()計算最大最小值的整合性查詢(xún)。 
Select column1,AVG(column2) 
FROM table_name 
GROUP BY column1 
HAVING AVG(column2) 〉 xxx 
說(shuō)明: 
1.GROUP BY: 以column1 為一組計算 column2 的平均值必須和 AVG、SUM等整合性查詢(xún)的關(guān)鍵字 
一起使用。 
2.HAVING : 必須和 GROUP BY 一起使用作為整合性的限制。 

復合性的查詢(xún) 
Select * 
FROM table_name1 
Where EXISTS ( 
Select * 
FROM table_name2 
Where conditions ) 
說(shuō)明: 
1.Where 的 conditions 可以是另外一個(gè)的 query。 
2.EXISTS 在此是指存在與否。 
Select * 
FROM table_name1 
Where column1 IN ( 
Select column1 
FROM table_name2 
Where conditions ) 
說(shuō)明:  
1. IN 後面接的是一個(gè)集合,表示column1 存在集合里面。 
2. Select 出來(lái)的資料形態(tài)必須符合 column1。 

其他查詢(xún) 
Select * 
FROM table_name1 
Where column1 LIKE ’x%’ 
說(shuō)明:LIKE 必須和後面的’x%’ 相呼應表示以 x為開(kāi)頭的字串。 
Select * 
FROM table_name1 
Where column1 IN (’xxx’,’yyy’,..) 
說(shuō)明:IN 後面接的是一個(gè)集合,表示column1 存在集合里面。 
Select * 
FROM table_name1 
Where column1 BETWEEN xx AND yy 
說(shuō)明:BETWEEN 表示 column1 的值介於 xx 和 yy 之間。 

3、更改資料: 
Update table_name 
SET column1=’xxx’ 
Where conditoins 
說(shuō)明: 
1.更改某個(gè)欄位設定其值為’xxx’。 
2.conditions 是所要符合的條件、若沒(méi)有 Where 則整個(gè) table 的那個(gè)欄位都會(huì )全部被更改。 

4、刪除資料: 
Delete FROM table_name 
Where conditions 
說(shuō)明:刪除符合條件的資料。 

說(shuō)明:關(guān)于Where條件后面如果包含有日期的比較,不同數據庫有不同的表達式。具體如下: 
(1)如果是ACCESS數據庫,則為:Where mydate〉#2000-01-01# 
(2)如果是ORACLE數據庫,則為:Where mydate〉cast(’2000-01-01’ as date) 
或:Where mydate〉to_date(’2000-01-01’,’yyyy-mm-dd’) 
在Delphi中寫(xiě)成: 
thedate=’2000-01-01’; 
query1.SQL.add(’select * from abc where mydate〉cast(’+’’’’+thedate+’’’’+’ as date)’); 

如果比較日期時(shí)間型,則為: 
Where mydatetime〉to_date(’2000-01-01 10:00:01’,’yyyy-mm-dd hh24:mi:ss’)



Recordset對象一些有用的屬性"/〉 引用來(lái)自 增加一個(gè) :Recordset對象一些有用的屬性
rs.CursorType=
rs.CursorLocation=
rs.LockType = 
rs.CacheSize=
rs.Pagesize=
rs.Pagecount=
rs.RecordCount=

’’---- CursorType Values ----
Const adOpenForwardOnly = 0 僅向前
Const adOpenKeyset = 1 鍵集游標
Const adOpenDynamic = 2 動(dòng)態(tài)游標
Const adOpenStatic = 3 靜態(tài)游標

’’---- LockType Values ----
Const adLockReadOnly = 1 默認值,只讀
Const adLockPessimistic = 2 保守式記錄鎖定 
Const adLockOptimistic = 3 開(kāi)放式記錄鎖定,只在調用Update方法時(shí)鎖定記錄
Const adLockBatchOptimistic = 4 開(kāi)放式批更新

’’---- CursorLocation Values ----
Const adUseServer = 2
Const adUseClient = 3 

Set rs=Server.CreateObject("ADODB.Rrecordset") 
rs.Open.sqlst,conn,1,1 ’讀取 
rs.Open sqlst,conn,1,2 ’新增,修改,或刪除)



下一頁(yè) :《SQL SERVER的數據類(lèi)型》
〉〉〉---------我想分頁(yè)!--這么長(cháng)的文章,在這里來(lái)個(gè)分頁(yè)多好??!哈哈----------〈〈〈
《SQL SERVER的數據類(lèi)型》

1.SQL SERVER的數據類(lèi)型 

  數據類(lèi)弄是數據的一種屬性,表示數據所表示信息的類(lèi)型。任何一種計算機語(yǔ)言都定義了自己的數據類(lèi)型。當然,不同的程序語(yǔ)言都具有不同的特點(diǎn),所定義的數據類(lèi)型的各類(lèi)和名稱(chēng)都或多或少有些不同。SQLServer 提供了 25 種數據類(lèi)型:
  ·Binary [(n)]
  ·Varbinary [(n)]
  ·Char [(n)]
  ·Varchar[(n)]
  ·Nchar[(n)]
  ·Nvarchar[(n)]
  ·Datetime
  ·Smalldatetime
  ·Decimal[(p[,s])]
  ·Numeric[(p[,s])]
  ·Float[(n)]
  ·Real
  ·Int
  ·Smallint
  ·Tinyint
  ·Money
  ·Smallmoney
  ·Bit
  ·Cursor
  ·Sysname
  ·Timestamp
  ·Uniqueidentifier
  ·Text
  ·Image
  ·Ntext 
(1)二進(jìn)制數據類(lèi)型 

  二進(jìn)制數據包括 Binary、Varbinary 和 Image
  Binary 數據類(lèi)型既可以是固定長(cháng)度的(Binary),也可以是變長(cháng)度的。
  Binary[(n)] 是 n 位固定的二進(jìn)制數據。其中,n 的取值范圍是從 1 到 8000。其存儲窨的大小是 n + 4 個(gè)字節。
  Varbinary[(n)] 是 n 位變長(cháng)度的二進(jìn)制數據。其中,n 的取值范圍是從 1 到 8000。其存儲窨的大小是 n + 4個(gè)字節,不是n 個(gè)字節。
  在 Image 數據類(lèi)型中存儲的數據是以位字符串存儲的,不是由 SQL Server 解釋的,必須由應用程序來(lái)解釋。例如,應用程序可以使用BMP、TIEF、GIF 和 JPEG 格式把數據存儲在 Image 數據類(lèi)型中。 
(2)字符數據類(lèi)型 

  字符數據的類(lèi)型包括 Char,Varchar 和 Text
  字符數據是由任何字母、符號和數字任意組合而成的數據。
  Varchar 是變長(cháng)字符數據,其長(cháng)度不超過(guò) 8KB。Char 是定長(cháng)字符數據,其長(cháng)度最多為 8KB。超過(guò) 8KB 的ASCII 數據可以使用Text數據類(lèi)型存儲。例如,因為 Html 文檔全部都是 ASCII 字符,并且在一般情況下長(cháng)度超過(guò) 8KB,所以這些文檔可以 Text 數據類(lèi)型存儲在SQL Server 中。 
(3)Unicode 數據類(lèi)型 

  Unicode 數據類(lèi)型包括 Nchar,Nvarchar 和Ntext
  在 Microsoft SQL Server 中,傳統的非 Unicode 數據類(lèi)型允許使用由特定字符集定義的字符。在 SQL Server安裝過(guò)程中,允許選擇一種字符集。使用 Unicode 數據類(lèi)型,列中可以存儲任何由Unicode 標準定義的字符。在 Unicode 標準中,包括了以各種字符集定義的全部字符。使用Unicode數據類(lèi)型,所戰勝的窨是使用非 Unicode 數據類(lèi)型所占用的窨大小的兩倍。 
  在 SQL Server 中,Unicode 數據以 Nchar、Nvarchar 和 Ntext 數據類(lèi)型存儲。使用這種字符類(lèi)型存儲的列可以存儲多個(gè)字符集中的字符。當列的長(cháng)度變化時(shí),應該使用Nvarchar 字符類(lèi)型,這時(shí)最多可以存儲 4000 個(gè)字符。當列的長(cháng)度固定不變時(shí),應該使用 Nchar 字符類(lèi)型,同樣,這時(shí)最多可以存儲4000 個(gè)字符。當使用 Ntext 數據類(lèi)型時(shí),該列可以存儲多于 4000 個(gè)字符。 
(4)日期和時(shí)間數據類(lèi)型 

  日期和時(shí)間數據類(lèi)型包括 Datetime 和 Smalldatetime兩種類(lèi)型
  日期和時(shí)間數據類(lèi)型由有效的日期和時(shí)間組成。例如,有效的日期和時(shí)間數據包括“4/01/98 12:15:00:00:00 PM”和“1:28:29:15:01AM 8/17/98”。前一個(gè)數據類(lèi)型是日期在前,時(shí)間在后一個(gè)數據類(lèi)型是霎時(shí)間在前,日期在后。在 Microsoft SQL Server中,日期和時(shí)間數據類(lèi)型包括Datetime 和 Smalldatetime 兩種類(lèi)型時(shí),所存儲的日期范圍是從 1753 年 1 月 1 日開(kāi)始,到9999 年12 月 31 日結束(每一個(gè)值要求 8 個(gè)存儲字節)。使用 Smalldatetime 數據類(lèi)型時(shí),所存儲的日期范圍是 1900年 1 月 1日 開(kāi)始,到 2079 年 12 月 31 日結束(每一個(gè)值要求 4 個(gè)存儲字節)。
  日期的格式可以設定。設置日期格式的命令如下:
  Set DateFormat {format | @format _var|
  其中,format | @format_var 是日期的順序。有效的參數包括 MDY、DMY、YMD、YDM、MYD 和 DYM。在默認情況下,日期格式為MDY。
  例如,當執行 Set DateFormat YMD 之后,日期的格式為年 月 日 形式;當執行 Set DateFormat DMY 之后,日期的格式為日 月有年 形式 
(5)數字數據類(lèi)型 

  數字數據只包含數字。數字數據類(lèi)型包括正數和負數、小數(浮點(diǎn)數)和整數
  整數由正整數和負整數組成,例如 39、25、0-2 和 33967。在 Micrsoft SQL Server 中,整數存儲的數據類(lèi)型是    Int,Smallint和 Tinyint。Int 數據類(lèi)型存儲數據的范圍大于 Smallint 數據類(lèi)型存儲數據的范圍,而 Smallint 據類(lèi)型存儲數據的范圍大于Tinyint 數據類(lèi)型存儲數據的范圍。使用 Int 數據狗昔存儲數據的范圍是從 -2 147 483 648 到 2 147 483 647(每一個(gè)值要求4個(gè)字節存儲空間)。使用 Smallint 數據類(lèi)型時(shí),存儲數據的范圍從 -32 768 到 32 767(每一個(gè)值要求2個(gè)字節存儲空間)。使用Tinyint 數據類(lèi)型時(shí),存儲數據的范圍是從0 到255(每一個(gè)值要求1個(gè)字節存儲空間)。
  精確小婁數據在 SQL Server 中的數據類(lèi)型是 Decimal 和 Numeric。這種數據所占的存儲空間根據該數據的位數后的位數來(lái)確定。
  在SQL Server 中,近似小數數據的數據類(lèi)型是 Float 和 Real。例如,三分之一這個(gè)分數記作。3333333,當使用近似數據類(lèi)型時(shí)能準確表示。因此,從系統中檢索到的數據可能與存儲在該列中數據不完全一樣。 
(6)貨幣數據表示正的或者負的貨幣數量 。 

  在 Microsoft SQL Server 中,貨幣數據的數據類(lèi)型是Money 和 Smallmoney 
  Money數據類(lèi)型要求 8 個(gè)存儲字節,Smallmoney 數據類(lèi)型要求 4 個(gè)存儲字節。 

(7)特殊數據類(lèi)型 

  特殊數據類(lèi)型包括前面沒(méi)有提過(guò)的數據類(lèi)型。特殊的數據類(lèi)型有3種,即    Timestamp、Bit 和 Uniqueidentifier。
  Timestamp 用于表示SQL Server 活動(dòng)的先后順序,以二進(jìn)投影的格式表示。Timestamp 數據與插入數據或者日期和時(shí)間沒(méi)有關(guān)系。
  Bit 由 1 或者 0 組成。當表示真或者假、ON 或者 OFF 時(shí),使用 Bit 數據類(lèi)型。例如,詢(xún)問(wèn)是否是每一次訪(fǎng)問(wèn)的客戶(hù)機請求可以存儲在這種數據類(lèi)型的列中。
  Uniqueidentifier 由 16 字節的十六進(jìn)制數字組成,表示一個(gè)全局唯一的。當表的記錄行要求唯一時(shí),GUID是非常有用。例如,在客戶(hù)標識號列使用這種數據類(lèi)型可以區別不同的客戶(hù)。 
2.用戶(hù)定義的數據類(lèi)型 

  用戶(hù)定義的數據類(lèi)型基于在 Microsoft SQL Server 中提供的數據類(lèi)型。當幾個(gè)表中必須存儲同一種數據類(lèi)型時(shí),并且為保證這些列有相同的數據類(lèi)型、長(cháng)度和可空性時(shí),可以使用用戶(hù)定義的數據類(lèi)型。例如,可定義一種稱(chēng)為   postal_code 的數據類(lèi)型,它基于 Char 數據類(lèi)型。
  當創(chuàng )建用戶(hù)定義的數據類(lèi)型時(shí),必須提供三個(gè)數:數據類(lèi)型的名稱(chēng)、所基于的系統數據類(lèi)型和數據類(lèi)型的可空性。 
(1)創(chuàng )建用戶(hù)定義的數據類(lèi)型 

  創(chuàng )建用戶(hù)定義的數據類(lèi)型可以使用 Transact-SQL 語(yǔ)句。系統存儲過(guò)程 sp_addtype 可以來(lái)創(chuàng )建用戶(hù)定義的數據類(lèi)型。其語(yǔ)法形式如下:
  sp_addtype {type},[,system_data_bype][,’null_type’]
  其中,type 是用戶(hù)定義的數據類(lèi)型的名稱(chēng)。system_data_type 是系統提供的數據類(lèi)型,例如 Decimal、Int、Char   等等。 null_type 表示該數據類(lèi)型是如何處理空值的,必須使用單引號引起來(lái),例如’NULL’、’NOT NULL’或者’NONULL’。
  例子:
  Use cust
  Exec sp_addtype ssn,’Varchar(11)’,"Not Null’
  創(chuàng )建一個(gè)用戶(hù)定義的數據類(lèi)型 ssn,其基于的系統數據類(lèi)型是變長(cháng)為11 的字符,不允許空。
  例子:
  Use cust
  Exec sp_addtype birthday,datetime,’Null’
  創(chuàng )建一個(gè)用戶(hù)定義的數據類(lèi)型 birthday,其基于的系統數據類(lèi)型是 DateTime,允許空。
  例子:
  Use master
  Exec sp_addtype telephone,’varchar(24),’Not Null’
  Eexc sp_addtype fax,’varchar(24)’,’Null’
  創(chuàng )建兩個(gè)數據類(lèi)型,即 telephone 和 fax 
(2)刪除用戶(hù)定義的數據類(lèi)型 

  當用戶(hù)定義的數據類(lèi)型不需要時(shí),可刪除。刪除用戶(hù)定義的數據類(lèi)型的命令是 sp_droptype {’type’}。
  例子:
  Use master
  Exec sp_droptype ’ssn’
  注意:當表中的列還正在使用用戶(hù)定義的數據類(lèi)型時(shí),或者在其上面還綁定有默認或者規則時(shí),這種用戶(hù)定義的數據類(lèi)型不能刪除。 
  以下為SQL SERVER7.0以上版本的字段類(lèi)型說(shuō)明。SQL SERVER6.5的字段類(lèi)型說(shuō)明請參考SQL SERVER提供的說(shuō)明。

字段類(lèi)型 描述 
bit 0或1的整型數字 
int 從-2^31(-2,147,483,648)到2^31(2,147,483,647)的整型數字 
smallint 從-2^15(-32,768)到2^15(32,767)的整型數字 
tinyint 從0到255的整型數字 

decimal 從-10^38到10^38-1的定精度與有效位數的數字 
numeric decimal的同義詞 

money 從-2^63(-922,337,203,685,477.5808)到2^63-1(922,337,203,685,477.5807)的貨幣數據,最小貨幣單位千分之十 
smallmoney 從-214,748.3648到214,748.3647的貨幣數據,最小貨幣單位千分之十 

float 從-1.79E+308到1.79E+308可變精度的數字 
real 從-3.04E+38到3.04E+38可變精度的數字 

datetime 從1753年1月1日到9999年12日31的日期和時(shí)間數據,最小時(shí)間單位為百分之三秒或3.33毫秒 
smalldatetime 從1900年1月1日到2079年6月6日的日期和時(shí)間數據,最小時(shí)間單位為分鐘 

timestamp 時(shí)間戳,一個(gè)數據庫寬度的唯一數字 
uniqueidentifier 全球唯一標識符GUID 

char 定長(cháng)非Unicode的字符型數據,最大長(cháng)度為8000 
varchar 變長(cháng)非Unicode的字符型數據,最大長(cháng)度為8000 
text 變長(cháng)非Unicode的字符型數據,最大長(cháng)度為2^31-1(2G) 

nchar 定長(cháng)Unicode的字符型數據,最大長(cháng)度為8000 
nvarchar 變長(cháng)Unicode的字符型數據,最大長(cháng)度為8000 
ntext 變長(cháng)Unicode的字符型數據,最大長(cháng)度為2^31-1(2G) 

binary 定長(cháng)二進(jìn)制數據,最大長(cháng)度為8000 
varbinary 變長(cháng)二進(jìn)制數據,最大長(cháng)度為8000 
image 變長(cháng)二進(jìn)制數據,最大長(cháng)度為2^31-1(2G) 
〉〉〉---------我想分頁(yè)!--這么長(cháng)的文章,在這里來(lái)個(gè)分頁(yè)多好??!哈哈----------〈〈〈
《SQL語(yǔ)句的基本語(yǔ)法》

一.Select語(yǔ)句的完整語(yǔ)法為:
Select[ALL|DISTINCT|DISTINCTROW|TOP]
{*|talbe.*|[table.]field1[AS alias1][,[table.]field2[AS alias2][,…]]}
FROM tableexpression[,…][IN externaldatabase]
[Where…]
[GROUP BY…]
[HAVING…]
[ORDER BY…]
[WITH OWNERACCESS OPTION]
說(shuō)明:
用中括號([])括起來(lái)的部分表示是可選的,用大括號({})括起來(lái)的部分是表示必須從中選擇其中的一個(gè)。

1 FROM子句
FROM子句指定了Select語(yǔ)句中字段的來(lái)源。FROM子句后面是包含一個(gè)或多個(gè)的表達式(由逗號分開(kāi)),其中的表達式可為單一表名稱(chēng)、已保存的查詢(xún)或由 INNER JOIN、LEFT JOIN 或 RIGHT JOIN 得到的復合結果。如果表或查詢(xún)存儲在外部數據庫,在IN 子句之后指明其完整路徑。
例:下列SQL語(yǔ)句返回所有有定單的客戶(hù):
Select orderID,Customer.customerID
FROM orders Customers
Where orders.CustomerID=Customers.CustomeersID

2 ALL、DISTINCT、DISTINCTROW、TOP謂詞
(1) ALL 返回滿(mǎn)足SQL語(yǔ)句條件的所有記錄。如果沒(méi)有指明這個(gè)謂詞,默認為ALL。
例:Select ALL FirstName,LastName
FROM Employees
(2) DISTINCT 如果有多個(gè)記錄的選擇字段的數據相同,只返回一個(gè)。
(3) DISTINCTROW 如果有重復的記錄,只返回一個(gè)
(4) TOP顯示查詢(xún)頭尾若干記錄。也可返回記錄的百分比,這是要用 TOP N PERCENT子句(其中N 表示百分比)
例:返回5%定貨額最大的定單
Select TOP 5 PERCENT*
FROM [ order Details]
orDER BY UnitPrice*Quantity*(1-Discount) DESC

3 用 AS 子句為字段取別名
如果想為返回的列取一個(gè)新的標題,或者,經(jīng)過(guò)對字段的計算或總結之后,產(chǎn)生了一個(gè)新的值,希望把它放到一個(gè)新的列里顯示,則用AS保留。
例:返回FirstName字段取別名為NickName
Select FirstName AS NickName ,LastName ,City
FROM Employees
例:返回新的一列顯示庫存價(jià)值
Select ProductName ,UnitPrice ,UnitsInStock ,UnitPrice*UnitsInStock AS valueInStock
FROM Products


二 .Where 子句指定查詢(xún)條件

1 比較運算符
比較運算符 含義
= 等于
〉 大于
〈 小于
〉= 大于等于
〈= 小于等于
〈〉 不等于
!〉 不大于
!〈 不小于
例:返回96年1月的定單
Select orderID, CustomerID, orderDate
FROM orders
Where orderDate〉#1/1/96# AND orderDate〈#1/30/96#
注意:
Mcirosoft JET SQL 中,日期用‘#’定界。日期也可以用Datevalue()函數來(lái)代替。在比較字符型的數據時(shí),要加上單引號’’,尾空格在比較中被忽略。
例:
Where orderDate〉#96-1-1#
也可以表示為:
Where orderDate〉Datevalue(‘1/1/96’)
使用 NOT 表達式求反。
例:查看96年1月1日以后的定單
Where Not orderDate〈=#1/1/96#

2 范圍(BETWEEN 和 NOT BETWEEN)
BETWEEN …AND…運算符指定了要搜索的一個(gè)閉區間。
例:返回96年1月到96年2月的定單。
Where orderDate Between #1/1/96# And #2/1/96#

3 列表(IN ,NOT IN)
IN 運算符用來(lái)匹配列表中的任何一個(gè)值。IN子句可以代替用OR子句連接的一連串的條件。
例:要找出住在 London、Paris或Berlin的所有客戶(hù)
Select CustomerID, CompanyName, ContactName, City
FROM Customers
Where City In(‘London’,’ Paris’,’ Berlin’)

4 模式匹配(LIKE)
LIKE運算符檢驗一個(gè)包含字符串數據的字段值是否匹配一指定模式。
LIKE運算符里使用的通配符
通配符 含義
? 任何一個(gè)單一的字符
* 任意長(cháng)度的字符
# 0~9之間的單一數字
[字符列表] 在字符列表里的任一值
[!字符列表] 不在字符列表里的任一值
- 指定字符范圍,兩邊的值分別為其上下限
例:返回郵政編碼在(171)555-0000到(171)555-9999之間的客戶(hù)
Select CustomerID ,CompanyName,City,Phone
FROM Customers
Where Phone Like ‘(171)555-####’
LIKE運算符的一些樣式及含義
樣式 含義 不符合
LIKE ‘A*’ A后跟任意長(cháng)度的字符 Bc,c255
LIKE’5 
’ 5*5 555
LIKE’5?5’ 5與5之間有任意一個(gè)字符 55,5wer5
LIKE’5##5’ 5235,5005 5kd5,5346
LIKE’[a-z]’ a-z間的任意一個(gè)字符 5,%
LIKE’[!0-9]’ 非0-9間的任意一個(gè)字符 0,1
LIKE’[[]’ 1,*

三 .用ORDER BY子句排序結果
orDER子句按一個(gè)或多個(gè)(最多16個(gè))字段排序查詢(xún)結果,可以是升序(ASC)也可以是降序(DESC),缺省是升序。ORDER子句通常放在SQL語(yǔ)句的最后。
orDER子句中定義了多個(gè)字段,則按照字段的先后順序排序。
例:
Select ProductName,UnitPrice, UnitInStock
FROM Products
orDER BY UnitInStock DESC , UnitPrice DESC, ProductName 
orDER BY 子句中可以用字段在選擇列表中的位置號代替字段名,可以混合字段名和位置號。
例:下面的語(yǔ)句產(chǎn)生與上列相同的效果。
Select ProductName,UnitPrice, UnitInStock
FROM Products
orDER BY 1 DESC , 2 DESC,3 

四 .運用連接關(guān)系實(shí)現多表查詢(xún)
例:找出同一個(gè)城市中供應商和客戶(hù)的名字
Select Customers.CompanyName, Suppliers.ComPany.Name
FROM Customers, Suppliers
Where Customers.City=Suppliers.City
例:找出產(chǎn)品庫存量大于同一種產(chǎn)品的定單的數量的產(chǎn)品和定單
Select ProductName,OrderID, UnitInStock, Quantity
FROM Products, [Order Deails]
Where Product.productID=[Order Details].ProductID
AND UnitsInStock〉Quantity
另一種方法是用 Microsof JET SQL 獨有的 JNNER JOIN
語(yǔ)法:
FROM table1 INNER JOIN table2
ON table1.field1 comparision table2.field2
其中comparision 就是前面Where子句用到的比較運算符。
Select FirstName,lastName,OrderID,CustomerID,OrderDate
FROM Employees
INNER JOIN orders ON Employees.EmployeeID=Orders.EmployeeID
注意:
INNER JOIN不能連接Memo OLE Object Single Double 數據類(lèi)型字段。
在一個(gè)JOIN語(yǔ)句中連接多個(gè)ON子句
語(yǔ)法:
Select fields
FROM table1 INNER JOIN table2
ON table1.field1 compopr table2.field1 AND
ON table1.field2 compopr table2.field2 or
ON table1.field3 compopr table2.field3
也可以
Select fields
FROM table1 INNER JOIN
(table2 INNER JOIN [( ]table3
[INNER JOER] [( ]tablex[INNER JOIN]
ON table1.field1 compopr table2.field1 
ON table1.field2 compopr table2.field2 
ON table1.field3 compopr table2.field3
外部連接返回更多記錄,在結果中保留不匹配的記錄,不管存不存在滿(mǎn)足條件的記錄都要返回另一側的所有記錄。
FROM table [LEFT|RIGHT]JOIN table2
ON table1.field1comparision table.field2
用左連接來(lái)建立外部連接,在表達式的左邊的表會(huì )顯示其所有的數據
例:不管有沒(méi)有定貨量,返回所有商品
Select ProductName ,OrderID
FROM Products
LEFT JOIN orders ON Products.PrductsID=Orders.ProductID
右連接與左連接的差別在于:不管左側表里有沒(méi)有匹配的記錄,它都從左側表中返回所有記錄。
例:如果想了解客戶(hù)的信息,并統計各個(gè)地區的客戶(hù)分布,這時(shí)可以用一個(gè)右連接,即使某個(gè)地區沒(méi)有客戶(hù),也要返回客戶(hù)信息。
空值不會(huì )相互匹配,可以通過(guò)外連接才能測試被連接的某個(gè)表的字段是否有空值。
Select *
FROM talbe1
LEFT JOIN table2 ON table1.a=table2.c

1 連接查詢(xún)中使用Iif函數實(shí)現以0值顯示空值
Iif表達式: Iif(IsNull(Amount,0,Amout)
例:無(wú)論定貨大于或小于¥50,都要返回一個(gè)標志。
Iif([Amount]〉50,?Big order?,?Small order?)

五. 分組和總結查詢(xún)結果
在SQL的語(yǔ)法里,GROUP BY和HAVING子句用來(lái)對數據進(jìn)行匯總。GROUP BY子句指明了按照哪幾個(gè)字段來(lái)分組,而將記錄分組后,用HAVING子句過(guò)濾這些記錄。
GROUP BY 子句的語(yǔ)法
Select fidldlist
FROM table
Where criteria
[GROUP BY groupfieldlist [HAVING groupcriteria]]
注:Microsoft Jet數據庫 Jet 不能對備注或OLE對象字段分組。
GROUP BY字段中的Null值以備分組但是不能被省略。
在任何SQL合計函數中不計算Null值。
GROUP BY子句后最多可以帶有十個(gè)字段,排序優(yōu)先級按從左到右的順序排列。
例:在‘WA’地區的雇員表中按頭銜分組后,找出具有同等頭銜的雇員數目大于1人的所有頭銜。
Select Title ,Count(Title) as Total
FROM Employees
Where Region = ‘WA’
GROUP BY Title
HAVING Count(Title)〉1
JET SQL 中的聚積函數
聚集函數 意義
SUM ( ) 求和
AVG ( ) 平均值
COUNT ( ) 表達式中記錄的數目
COUNT (* ) 計算記錄的數目
MAX 最大值
MIN 最小值
VAR 方差
STDEV 標準誤差
FIRST 第一個(gè)值
LAST 最后一個(gè)值

六. 用Parameters聲明創(chuàng )建參數查詢(xún)
Parameters聲明的語(yǔ)法:
PARAMETERS name datatype[,name datatype[, …]]
其中name 是參數的標志符,可以通過(guò)標志符引用參數.
Datatype說(shuō)明參數的數據類(lèi)型.
使用時(shí)要把PARAMETERS 聲明置于任何其他語(yǔ)句之前.
例:
PARAMETERS[Low price] Currency,[Beginning date]datatime
Select orderID ,OrderAmount
FROM orders
Where orderAMount〉[low price]
AND orderDate〉=[Beginning date]

七. 功能查詢(xún)
所謂功能查詢(xún),實(shí)際上是一種操作查詢(xún),它可以對數據庫進(jìn)行快速高效的操作.它以選擇查詢(xún)?yōu)槟康?挑選出符合條件的數據,再對數據進(jìn)行批處理.功能查詢(xún)包括更新查詢(xún),刪除查詢(xún),添加查詢(xún),和生成表查詢(xún).

1 更新查詢(xún)
Update子句可以同時(shí)更改一個(gè)或多個(gè)表中的數據.它也可以同時(shí)更改多個(gè)字段的值.
更新查詢(xún)語(yǔ)法:
Update 表名
SET 新值
Where 準則
例:英國客戶(hù)的定貨量增加5%,貨運量增加3%
Update OEDERS
SET orderAmount = orderAmount *1.1
Freight = Freight*1.03
Where ShipCountry = ‘UK’

2 刪除查詢(xún)
Delete子句可以使用戶(hù)刪除大量的過(guò)時(shí)的或冗于的數據.
注:刪除查詢(xún)的對象是整個(gè)記錄.
Delete子句的語(yǔ)法:
Delete [表名.*]
FROM 來(lái)源表
Where 準則
例: 要刪除所有94年前的定單
Delete *
FROM orders
Where orderData〈#94-1-1#

3 追加查詢(xún) 
Insert子句可以將一個(gè)或一組記錄追加到一個(gè)或多個(gè)表的尾部.
INTO 子句指定接受新記錄的表
valueS 關(guān)鍵字指定新記錄所包含的數據值.
Insert 子句的語(yǔ)法:
INSETR INTO 目的表或查詢(xún)(字段1,字段2,…)
valueS(數值1,數值2,…)
例:增加一個(gè)客戶(hù)
Insert INTO Employees(FirstName,LastName,title)
valueS(‘Harry’,’Washington’,’Trainee’)

4 生成表查詢(xún)
可以一次性地把所有滿(mǎn)足條件的記錄拷貝到一張新表中.通常制作記錄的備份或副本或作為報表的基礎.
Select INTO子句用來(lái)創(chuàng )建生成表查詢(xún)語(yǔ)法:
Select 字段1,字段2,…
INTO 新表[IN 外部數據庫]
FROM 來(lái)源數據庫
Where 準則
例:為定單制作一個(gè)存檔備份
Select *
INTO ordersArchive
FROM orders

八. 聯(lián)合查詢(xún)
UNION運算可以把多個(gè)查詢(xún)的結果合并到一個(gè)結果集里顯示.
UNION運算的一般語(yǔ)法:
[表]查詢(xún)1 UNION [ALL]查詢(xún)2 UNION …
例:返回巴西所有供給商和客戶(hù)的名字和城市
Select CompanyName,City
FROM Suppliers
Where Country = ‘Brazil’
UNION
Select CompanyName,City
FROM Customers
Where Country = ‘Brazil’
注:
缺省的情況下,UNION子句不返回重復的記錄.如果想顯示所有記錄,可以加ALL選項
UNION運算要求查詢(xún)具有相同數目的字段.但是,字段數據類(lèi)型不必相同.
每一個(gè)查詢(xún)參數中可以使用GROUP BY 子句 或 HAVING 子句進(jìn)行分組.要想以指定的順序來(lái)顯示返回的數據,可以在最后一個(gè)查詢(xún)的尾部使用OREER BY子句.

九. 交叉查詢(xún)
交叉查詢(xún)可以對數據進(jìn)行總和,平均,計數或其他總和計算法的計算,這些數據通過(guò)兩種信息進(jìn)行分組:一個(gè)顯示在表的左部,另一個(gè)顯示在表的頂部.
Microsoft Jet SQL 用TRANSFROM語(yǔ)句創(chuàng )建交叉表查詢(xún)語(yǔ)法:
TRANSFORM aggfunction
Select 語(yǔ)句
GROUP BY 子句
PIVOT pivotfield[IN(value1 [,value2[,…]]) ]
Aggfounction指SQL聚積函數,
Select語(yǔ)句選擇作為標題的的字段,
GROUP BY 分組
說(shuō)明:
Pivotfield 在查詢(xún)結果集中創(chuàng )建列標題時(shí)用的字段或表達式,用可選的IN子句限制它的取值.
value代表創(chuàng )建列標題的固定值.
例:顯示在1996年里每一季度每一位員工所接的定單的數目:
TRANSFORM Count(OrderID)
Select FirstName&’’&LastName AS FullName
FROM Employees INNER JOIN orders
ON Employees.EmployeeID = orders.EmployeeID
Where DatePart(“yyyy”,OrderDate)= ‘1996’
GROUP BY FirstName&’’&LastName
orDER BY FirstName&’’&LastName
POVOT DatePart(“q”,OrderDate)&’季度’

十 .子查詢(xún)
子查詢(xún)可以理解為 套查詢(xún).子查詢(xún)是一個(gè)Select語(yǔ)句.

1 表達式的值與子查詢(xún)返回的單一值做比較
語(yǔ)法: 
表達式 comparision [ANY|ALL|SOME](子查詢(xún))
說(shuō)明:
ANY和SOME謂詞是同義詞,與比較運算符(=,〈,〉,〈〉,〈=,〉=)一起使用.返回一個(gè)布爾值True或False.ANY的意思是,表達式與子查詢(xún)返回的一系列的值逐一比較,只要其中的一次比較產(chǎn)生True結果,ANY測試的返回 True值(既Where子句的結果),對應于該表達式的當前記錄將進(jìn)入主查詢(xún)的結果中.ALL測試則要求表達式與子查詢(xún)返回的一系列的值的比較都產(chǎn)生True結果,才回返回True值.
例:主查詢(xún)返回單價(jià)比任何一個(gè)折扣大于等于25%的產(chǎn)品的單價(jià)要高的所有產(chǎn)品
Select * FROM Products
Where UnitPrice〉ANY
(Select UnitPrice FROM[Order Details] Where Discount〉0.25)

2 檢查表達式的值是否匹配子查詢(xún)返回的一組值的某個(gè)值
語(yǔ)法:
[NOT]IN(子查詢(xún))
例:返回庫存價(jià)值大于等于1000的產(chǎn)品.
Select ProductName FROM Products
Where ProductID IN
(Select PrdoctID FROM [Order DEtails]
Where UnitPrice*Quantity〉= 1000)

3檢測子查詢(xún)是否返回任何記錄
語(yǔ)法:
[NOT]EXISTS (子查詢(xún))
例:用EXISTS檢索英國的客戶(hù)
Select ComPanyName,ContactName
FROM orders
Where EXISTS
(Select *
FROM Customers
Where Country = ‘UK’ AND
Customers.CustomerID= orders.CustomerID)
〉〉〉---------我想分頁(yè)!--這么長(cháng)的文章,在這里來(lái)個(gè)分頁(yè)多好??!哈哈----------〈〈〈
Sql Server 和 Access 操作數據庫結構Sql語(yǔ)句
下面是Sql Server 和 Access 操作數據庫結構的常用Sql,希望對你有所幫助。
內容由海娃整理,不正確與不完整之處還請提出,謝謝。

新建表:
create table [表名]
(
[自動(dòng)編號字段] int IDENTITY (1,1) PRIMARY KEY ,
[字段1] nVarChar(50) default ’默認值’ null ,
[字段2] ntext null ,
[字段3] datetime,
[字段4] money null ,
[字段5] int default 0,
[字段6] Decimal (12,4) default 0,
[字段7] image null ,
)

刪除表:
Drop table [表名]

插入數據:
Insert INTO [表名] (字段1,字段2) VALUES (100,’51WINDOWS.NET’)

刪除數據:
Delete FROM [表名] Where [字段名]〉100

更新數據:
Update [表名] SET [字段1] = 200,[字段2] = ’51WINDOWS.NET’ Where [字段三] = ’HAIWA’

新增字段:
Alter TABLE [表名] ADD [字段名] NVARCHAR (50) NULL

刪除字段:
Alter TABLE [表名] Drop COLUMN [字段名]

修改字段:
Alter TABLE [表名] Alter COLUMN [字段名] NVARCHAR (50) NULL

重命名表:(Access 重命名表,請參考文章:在A(yíng)ccess數據庫中重命名表)


 引用來(lái)自 在A(yíng)ccess數據庫中重命名表

Dim Conn,ConnStr,oCat,oTbl
ConnStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("data.mdb")
Set oCat=Server.CreateObject("ADOX.Catalog") 
oCat.ActiveConnection = ConnStr

Set oTbl = Server.CreateObject("ADOX.Table")
Set oTbl = oCat.Tables("OldTable") ’要重命名的表名:OldTable
oTbl.Name = "NewTable" ’新表名
Set oCat = Nothing
Set oTbl = Nothing


sp_rename ’表名’, ’新表名’, ’OBJECT’

新建約束:
Alter TABLE [表名] ADD CONSTRAINT 約束名 CHECK ([約束字段] 〈= ’2000-1-1’)

刪除約束:
Alter TABLE [表名] Drop CONSTRAINT 約束名

新建默認值
Alter TABLE [表名] ADD CONSTRAINT 默認值名 DEFAULT ’51WINDOWS.NET’ FOR [字段名]

刪除默認值
Alter TABLE [表名] Drop CONSTRAINT 默認值名

刪除Sql Server 中的日志,減小數據庫文件大小
dump transaction 數據庫名 with no_log
backup log 數據庫名 with no_log
dbcc shrinkdatabase(數據庫名)
exec sp_dboption ’數據庫名’, ’autoshrink’, ’true’
 
【摘要】 select *(列名) from table_name(表名) where column_name operator value ex:(宿主) select * from stock_information where stockid = str(nid) stockname = ‘str_name‘ stockname like ‘% find this %‘ stockname like ‘[a-zA-Z]%‘ --------- ([]指定值的范圍) stockname like ‘[^F-M]%‘ --------- (^排除指定范圍)
SQL語(yǔ)句大全

--語(yǔ) 句 功 能
--數據操作
SELECT --從數據庫表中檢索數據行和列
INSERT --向數據庫表添加新數據行
DELETE --從數據庫表中刪除數據行
UPDATE --更新數據庫表中的數據
--數據定義
CREATE TABLE --創(chuàng )建一個(gè)數據庫表
DROP TABLE --從數據庫中刪除表
ALTER TABLE --修改數據庫表結構
CREATE VIEW --創(chuàng )建一個(gè)視圖
DROP VIEW --從數據庫中刪除視圖
CREATE INDEX --為數據庫表創(chuàng )建一個(gè)索引
DROP INDEX --從數據庫中刪除索引
CREATE PROCEDURE --創(chuàng )建一個(gè)存儲過(guò)程
DROP PROCEDURE --從數據庫中刪除存儲過(guò)程
CREATE TRIGGER --創(chuàng )建一個(gè)觸發(fā)器
DROP TRIGGER --從數據庫中刪除觸發(fā)器
CREATE SCHEMA --向數據庫添加一個(gè)新模式
DROP SCHEMA --從數據庫中刪除一個(gè)模式
CREATE DOMAIN --創(chuàng )建一個(gè)數據值域
ALTER DOMAIN --改變域定義
DROP DOMAIN --從數據庫中刪除一個(gè)域
--數據控制
GRANT --授予用戶(hù)訪(fǎng)問(wèn)權限
DENY --拒絕用戶(hù)訪(fǎng)問(wèn)
REVOKE --解除用戶(hù)訪(fǎng)問(wèn)權限
--事務(wù)控制
COMMIT --結束當前事務(wù)
ROLLBACK --中止當前事務(wù)
SET TRANSACTION --定義當前事務(wù)數據訪(fǎng)問(wèn)特征
--程序化SQL
DECLARE --為查詢(xún)設定游標
EXPLAN --為查詢(xún)描述數據訪(fǎng)問(wèn)計劃
OPEN --檢索查詢(xún)結果打開(kāi)一個(gè)游標
FETCH --檢索一行查詢(xún)結果
CLOSE --關(guān)閉游標
PREPARE --為動(dòng)態(tài)執行準備SQL 語(yǔ)句
EXECUTE --動(dòng)態(tài)地執行SQL 語(yǔ)句
DESCRIBE --描述準備好的查詢(xún)
---局部變量
declare @id char(10)
--set @id = ‘10010001‘
select @id = ‘10010001‘
---全局變量
---必須以@@開(kāi)頭

--IF ELSE
declare @x int @y int @z int
select @x = 1 @y = 2 @z=3
if @x > @y
print ‘x > y‘ --打印字符串‘x > y‘
else if @y > @z
print ‘y > z‘
else print ‘z > y‘

--CASE
use pangu
update employee
set e_wage =
case
when job_level = ’1’ then e_wage*1.08
when job_level = ’2’ then e_wage*1.07
when job_level = ’3’ then e_wage*1.06
else e_wage*1.05
end

--WHILE CONTINUE BREAK
declare @x int @y int @c int
select @x = 1 @y=1
while @x < 3
begin
print @x --打印變量x 的值
while @y < 3
begin
select @c = 100*@x + @y
print @c --打印變量c 的值
select @y = @y + 1
end
select @x = @x + 1
select @y = 1
end

--WAITFOR
--例 等待1 小時(shí)2 分零3 秒后才執行SELECT 語(yǔ)句
waitfor delay ’01:02:03’
select * from employee
--例 等到晚上11 點(diǎn)零8 分后才執行SELECT 語(yǔ)句
waitfor time ’23:08:00’
select * from employee


***SELECT***

select *(列名) from table_name(表名) where column_name operator value
ex:(宿主)
select * from stock_information where stockid = str(nid)
stockname = ‘str_name‘
stockname like ‘% find this %‘
stockname like ‘[a-zA-Z]%‘ --------- ([]指定值的范圍)
stockname like ‘[^F-M]%‘ --------- (^排除指定范圍)
--------- 只能在使用like關(guān)鍵字的where子句中使用通配符)
or stockpath = ‘stock_path‘
or stocknumber < 1000
and stockindex = 24
not stocksex = ‘man‘
stocknumber between 20 and 100
stocknumber in(10,20,30)
order by stockid desc(asc) --------- 排序,desc-降序,asc-升序
order by 1,2 --------- by列號
stockname = (select stockname from stock_information where stockid = 4)
--------- 子查詢(xún)
--------- 除非能確保內層select只返回一個(gè)行的值,
--------- 否則應在外層where子句中用一個(gè)in限定符
select distinct column_name form table_name --------- distinct指定檢索獨有的列值,不重復
select stocknumber ,"stocknumber + 10" = stocknumber + 10 from table_name
select stockname , "stocknumber" = count(*) from table_name group by stockname
--------- group by 將表按行分組,指定列中有相同的值
having count(*) = 2 --------- having選定指定的組

select *
from table1, table2
where table1.id *= table2.id -------- 左外部連接,table1中有的而table2中沒(méi)有得以null表示
table1.id =* table2.id -------- 右外部連接

select stockname from table1
union [all] ----- union合并查詢(xún)結果集,all-保留重復行
select stockname from table2

***insert***

insert into table_name (Stock_name,Stock_number) value ("xxx","xxxx")
value (select Stockname , Stocknumber from Stock_table2)---value為select語(yǔ)句

***update***

update table_name set Stockname = "xxx" [where Stockid = 3]
Stockname = default
Stockname = null
Stocknumber = Stockname + 4

***delete***

delete from table_name where Stockid = 3
truncate table_name ----------- 刪除表中所有行,仍保持表的完整性
drop table table_name --------------- 完全刪除表

***alter table*** --- 修改數據庫表結構

alter table database.owner.table_name add column_name char(2) null .....
sp_help table_name ---- 顯示表已有特征
create table table_name (name char(20), age smallint, lname varchar(30))
insert into table_name select ......... ----- 實(shí)現刪除列的方法(創(chuàng )建新表)
alter table table_name drop constraint Stockname_default ---- 刪除Stockname的default約束

***function(/*常用函數*/)***

----統計函數----
AVG --求平均值
COUNT --統計數目
MAX --求最大值
MIN --求最小值
SUM --求和

--AVG
use pangu
select avg(e_wage) as dept_avgWage
from employee
group by dept_id

--MAX
--求工資最高的員工姓名
use pangu
select e_name
from employee
where e_wage =
(select max(e_wage)
from employee)

--STDEV()
--STDEV()函數返回表達式中所有數據的標準差

--STDEVP()
--STDEVP()函數返回總體標準差

--VAR()
--VAR()函數返回表達式中所有值的統計變異數

--VARP()
--VARP()函數返回總體變異數

----算術(shù)函數----

/***三角函數***/
SIN(float_expression) --返回以弧度表示的角的正弦
COS(float_expression) --返回以弧度表示的角的余弦
TAN(float_expression) --返回以弧度表示的角的正切
COT(float_expression) --返回以弧度表示的角的余切
/***反三角函數***/
ASIN(float_expression) --返回正弦是FLOAT 值的以弧度表示的角
ACOS(float_expression) --返回余弦是FLOAT 值的以弧度表示的角
ATAN(float_expression) --返回正切是FLOAT 值的以弧度表示的角
ATAN2(float_expression1,float_expression2)
--返回正切是float_expression1 /float_expres-sion2的以弧度表示的角
DEGREES(numeric_expression)
--把弧度轉換為角度返回與表達式相同的數據類(lèi)型可為
--INTEGER/MONEY/REAL/FLOAT 類(lèi)型
RADIANS(numeric_expression) --把角度轉換為弧度返回與表達式相同的數據類(lèi)型可為
--INTEGER/MONEY/REAL/FLOAT 類(lèi)型
EXP(float_expression) --返回表達式的指數值
LOG(float_expression) --返回表達式的自然對數值
LOG10(float_expression)--返回表達式的以10 為底的對數值
SQRT(float_expression) --返回表達式的平方根
/***取近似值函數***/
CEILING(numeric_expression) --返回>=表達式的最小整數返回的數據類(lèi)型與表達式相同可為
--INTEGER/MONEY/REAL/FLOAT 類(lèi)型
FLOOR(numeric_expression) --返回<=表達式的最小整數返回的數據類(lèi)型與表達式相同可為
--INTEGER/MONEY/REAL/FLOAT 類(lèi)型
ROUND(numeric_expression) --返回以integer_expression 為精度的四舍五入值返回的數據
--類(lèi)型與表達式相同可為INTEGER/MONEY/REAL/FLOAT 類(lèi)型
ABS(numeric_expression) --返回表達式的絕對值返回的數據類(lèi)型與表達式相同可為
--INTEGER/MONEY/REAL/FLOAT 類(lèi)型
SIGN(numeric_expression) --測試參數的正負號返回0 零值1 正數或-1 負數返回的數據類(lèi)型
--與表達式相同可為INTEGER/MONEY/REAL/FLOAT 類(lèi)型
PI() --返回值為π 即3.1415926535897936
RAND([integer_expression]) --用任選的[integer_expression]做種子值得出0-1 間的隨機浮點(diǎn)數


----字符串函數----
ASCII() --函數返回字符表達式最左端字符的ASCII 碼值
CHAR() --函數用于將ASCII 碼轉換為字符
--如果沒(méi)有輸入0 ~ 255 之間的ASCII 碼值CHAR 函數會(huì )返回一個(gè)NULL 值
LOWER() --函數把字符串全部轉換為小寫(xiě)
UPPER() --函數把字符串全部轉換為大寫(xiě)
STR() --函數把數值型數據轉換為字符型數據
LTRIM() --函數把字符串頭部的空格去掉
RTRIM() --函數把字符串尾部的空格去掉
LEFT(),RIGHT(),SUBSTRING() --函數返回部分字符串
CHARINDEX(),PATINDEX() --函數返回字符串中某個(gè)指定的子串出現的開(kāi)始位置
SOUNDEX() --函數返回一個(gè)四位字符碼
--SOUNDEX函數可用來(lái)查找聲音相似的字符串但SOUNDEX函數對數字和漢字均只返回0 值
DIFFERENCE() --函數返回由SOUNDEX 函數返回的兩個(gè)字符表達式的值的差異
--0 兩個(gè)SOUNDEX 函數返回值的第一個(gè)字符不同
--1 兩個(gè)SOUNDEX 函數返回值的第一個(gè)字符相同
--2 兩個(gè)SOUNDEX 函數返回值的第一二個(gè)字符相同
--3 兩個(gè)SOUNDEX 函數返回值的第一二三個(gè)字符相同
--4 兩個(gè)SOUNDEX 函數返回值完全相同


QUOTENAME() --函數返回被特定字符括起來(lái)的字符串
/*select quotename(‘a(chǎn)bc‘, ‘{‘) quotename(‘a(chǎn)bc‘)
運行結果如下
----------------------------------{
{abc} [abc]*/

REPLICATE() --函數返回一個(gè)重復character_expression 指定次數的字符串
/*select replicate(‘a(chǎn)bc‘, 3) replicate( ‘a(chǎn)bc‘, -2)
運行結果如下
----------- -----------
abcabcabc NULL*/

REVERSE() --函數將指定的字符串的字符排列順序顛倒
REPLACE() --函數返回被替換了指定子串的字符串
/*select replace(‘a(chǎn)bc123g‘, ‘123‘, ‘def‘)
運行結果如下
----------- -----------
abcdefg*/

SPACE() --函數返回一個(gè)有指定長(cháng)度的空白字符串
STUFF() --函數用另一子串替換字符串指定位置長(cháng)度的子串


----數據類(lèi)型轉換函數----
CAST() 函數語(yǔ)法如下
CAST() (<expression> AS <data_ type>[ length ])
CONVERT() 函數語(yǔ)法如下
CONVERT() (<data_ type>[ length ], <expression> [, style])

select cast(100+99 as char) convert(varchar(12), getdate())
運行結果如下
------------------------------ ------------
199 Jan 15 2000

----日期函數----
DAY() --函數返回date_expression 中的日期值
MONTH() --函數返回date_expression 中的月份值
YEAR() --函數返回date_expression 中的年份值
DATEADD(<datepart> ,<number> ,<date>)
--函數返回指定日期date 加上指定的額外日期間隔number 產(chǎn)生的新日期
DATEDIFF(<datepart> ,<number> ,<date>)
--函數返回兩個(gè)指定日期在datepart 方面的不同之處
DATENAME(<datepart> , <date>) --函數以字符串的形式返回日期的指定部分
DATEPART(<datepart> , <date>) --函數以整數值的形式返回日期的指定部分
GETDATE() --函數以DATETIME 的缺省格式返回系統當前的日期和時(shí)間

----系統函數----
APP_NAME() --函數返回當前執行的應用程序的名稱(chēng)
COALESCE() --函數返回眾多表達式中第一個(gè)非NULL 表達式的值
COL_LENGTH(<‘table_name‘>, <‘column_name‘>) --函數返回表中指定字段的長(cháng)度值
COL_NAME(<table_id>, <column_id>) --函數返回表中指定字段的名稱(chēng)即列名
DATALENGTH() --函數返回數據表達式的數據的實(shí)際長(cháng)度
DB_ID([‘database_name‘]) --函數返回數據庫的編號
DB_NAME(database_id) --函數返回數據庫的名稱(chēng)
HOST_ID() --函數返回服務(wù)器端計算機的名稱(chēng)
HOST_NAME() --函數返回服務(wù)器端計算機的名稱(chēng)
IDENTITY(<data_type>[, seed increment]) [AS column_name])
--IDENTITY() 函數只在SELECT INTO 語(yǔ)句中使用用于插入一個(gè)identity column列到新表中
/*select identity(int, 1, 1) as column_name
into newtable
from oldtable*/
ISDATE() --函數判斷所給定的表達式是否為合理日期
ISNULL(<check_expression>, <replacement_value>) --函數將表達式中的NULL 值用指定值替換
ISNUMERIC() --函數判斷所給定的表達式是否為合理的數值
NEWID() --函數返回一個(gè)UNIQUEIDENTIFIER 類(lèi)型的數值
NULLIF(<expression1>, <expression2>)
--NULLIF 函數在expression1 與expression2 相等時(shí)返回NULL 值若不相等時(shí)則返回expression1 的值



--------------------------------------------------------------------------------

sql中的保留字

action add aggregate all
alter after and as
asc avg avg_row_length auto_increment
between bigint bit binary
blob bool both by
cascade case char character
change check checksum column
columns comment constraint create
cross current_date current_time current_timestamp
data database databases date
datetime day day_hour day_minute
day_second dayofmonth dayofweek dayofyear
dec decimal default delayed
delay_key_write delete desc describe
distinct distinctrow double drop
end else escape escaped
enclosed enum explain exists
fields file first float
float4 float8 flush foreign
from for full function
global grant grants group
having heap high_priority hour
hour_minute hour_second hosts identified
ignore in index infile
inner insert insert_id int
integer interval int1 int2
int3 int4 int8 into
if is isam join
key keys kill last_insert_id
leading left length like
lines limit load local
lock logs long longblob
longtext low_priority max max_rows
match mediumblob mediumtext mediumint
middleint min_rows minute minute_second
modify month monthname myisam
natural numeric no not
null on optimize option
optionally or order outer
outfile pack_keys partial password
precision primary procedure process
processlist privileges read real
references reload regexp rename
replace restrict returns revoke
rlike row rows second
select set show shutdown
smallint soname sql_big_tables sql_big_selects
sql_low_priority_updates sql_log_off sql_log_update sql_select_limit
sql_small_result sql_big_result sql_warnings straight_join
starting status string table
tables temporary terminated text
then time timestamp tinyblob
tinytext tinyint trailing to
type use using unique
unlock unsigned update usage
values varchar variables varying
varbinary with write when
where year year_month zerofill
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
oracle數據庫開(kāi)發(fā)規范
SQL的基本操作
分享一份大佬的MySQL數據庫設計規范,值得收藏
sql學(xué)習資料
這是我見(jiàn)過(guò)最有用的Mysql面試題,面試了無(wú)數公司總結的(內附答案)
MySQL簡(jiǎn)介
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久