午夜视频在线网站,日韩视频精品在线,中文字幕精品一区二区三区在线,在线播放精品,1024你懂我懂的旧版人,欧美日韩一级黄色片,一区二区三区在线观看视频

分享

標(biāo)準(zhǔn)SQL語(yǔ)法使用

 冰紅荼 2006-04-18

標(biāo)準(zhǔn)SQL語(yǔ)法使用

發(fā)布日期:2005-09-03 12:11:54.0 發(fā)布人:萬(wàn)思軟件[萬(wàn)思軟件] 閱讀次數(shù):798
關(guān)鍵字: 來(lái)源:zt
SQL語(yǔ)法的分類(lèi)
其實(shí)SQL命令并不是非常多,可是要把SQL用到出神入化,卻也只需要短短幾個(gè)命令便夠,因?yàn)镾QL命令是針對(duì)關(guān)系型數(shù)據(jù)庫(kù)所建立出來(lái)的語(yǔ)法敘述,所以SQL在這類(lèi)數(shù)據(jù)庫(kù)中所發(fā)揮的功能非常的強(qiáng)。在說(shuō)明SQL的命令以及使用語(yǔ)法之前,以下將SQL做一個(gè)簡(jiǎn)單的分類(lèi)。
第一類(lèi)、屬性詞(Predicates)
在SQL命令中用來(lái)指明所要選擇的記錄的方式。如ALL、TOP與DISTINCT等等。
第二類(lèi)、聲明(Declaration)
 針對(duì)SQL Parameter或Parameter Query 的名稱(chēng)與數(shù)據(jù)類(lèi)型做聲明,如PARAMETERS的聲明等等。
第三類(lèi)、條件子句(Clause)
在SQL的查詢(xún)中,利用一些表達(dá)式定義出查詢(xún)的條件,以縮小尋找的范圍,如WHERE。
第四類(lèi)、運(yùn)算符(Operator)與操作數(shù)(Operation)
在SQL的查詢(xún)中,與Operation共同組成表達(dá)式(Expression),如BETWEEN....AND 運(yùn)算符與INNER JOIN操作數(shù)。
第五類(lèi)、函數(shù)(Function)
一些SQL常見(jiàn)的函數(shù),像是AVG()是求算數(shù)平均數(shù)的函數(shù)。
第六類(lèi)、SQL語(yǔ)句(Statement)
SQL的語(yǔ)句,可以說(shuō)是SQL語(yǔ)法的主體,用來(lái)對(duì)某一個(gè)特定的數(shù)據(jù)庫(kù)發(fā)出指示,并返回相關(guān)的數(shù)據(jù),而SQL的語(yǔ)法結(jié)構(gòu),基本上可以利用下面的式子來(lái)表示:命令+條件子句
例如:SELECT*FROM TAB WHERE TAB.NAME=‘A‘
其中的“FROM....WHERE”便是一個(gè)條件子句,其實(shí)SQL的語(yǔ)法并不難,您只需記住這樣的一個(gè)規(guī)則,相信可以很快的了解SQL用法。

SQL語(yǔ)法與命令
SELECT 語(yǔ)句
SELECT[predicate]{*|table.*|[table.]field [,[table.]field2[,...]]} [AS alias1 [,alias2[,...]]]
FROM tableexpression [,...][IN externaldatabase]
[WHERE...]
[GROUP BY...]
[HAVING...]
[ORDER BY...]
[WITH OWNERACCESS OPTION]

SELECT 語(yǔ)句包括下面幾個(gè)部分
predicate 包括了ALL,DISTINCT,DISTINCTROW,與TOP 我們可以利用這樣的語(yǔ)句去限制查詢(xún)后所得的結(jié)果。
*  從指定表格中指定所有的字段。
table  針對(duì)被選擇出的記錄的字段,所指定表格的名稱(chēng)。
field1,field2  想要讀取數(shù)據(jù)的字段名稱(chēng),如果包含了一個(gè)以上的字段,會(huì)依照列出的順序來(lái)讀取數(shù)據(jù)。
alias1,alias2  用來(lái)替代在表格實(shí)際字段名稱(chēng)的化名。
tableexpression  表格名稱(chēng)或包含我們所想要的數(shù)據(jù)的表格。
externaldatabase  若使用到不是目前的數(shù)據(jù)庫(kù)則將其名字定義在externaldatabase當(dāng)中。
 
ALL,DISTINCT,DISTINCTROW,TOP屬性詞用法
SELECT [ALL|DISTINCT|DISTINCTROW|[TOP n[PERCENT]]] FROM table
ALL  若是您不指定任何的字段數(shù)據(jù),則Microsoft Jet數(shù)據(jù)庫(kù)引擎(database engine)將會(huì)選擇所有的字段,并依據(jù)所定的條件查詢(xún)出需求數(shù)據(jù)集。
例如下面這兩個(gè)例子將會(huì)具有相同的效果,都會(huì)從職員表格中返回所有字段的數(shù)據(jù)。
  若是我們要查詢(xún)出職員表格中的所有記錄,可以通過(guò)下面的語(yǔ)句來(lái)完成。
SELECT ALL* FROM 職員表格;
 
DISTINCT  對(duì)某個(gè)表格所選擇的字段數(shù)據(jù),略過(guò)重復(fù)的情況,也就是說(shuō),針對(duì)某個(gè)字段查詢(xún)出來(lái)的記錄結(jié)果是唯一的。
例如有許多存放在職員表格的職員數(shù)據(jù),也許會(huì)具有相同的姓名,所以若是我們用SQL語(yǔ)句中的SELECT DISTINCT,則查詢(xún)出來(lái)的結(jié)果將會(huì)針對(duì)不一樣的姓名加以篩選。若是您把DISTINCT 加以省略,則這樣的查詢(xún)會(huì)顯示所有的記錄。
 
DISTINCTROW  將整條記錄重復(fù)的記錄忽略掉,而不是只有針對(duì)某一個(gè)字段的數(shù)據(jù)。
table  指定查詢(xún)記錄所需要的表格。
例如:SELECT DISTINCTROW 公司名稱(chēng) FROM 顧客表格 INNER JOIN 訂單表格 ON 顧客表格.顧客ID=訂單表格.顧客ID ORDER BY 公司名稱(chēng);
  如果您忽略 DISTINCTROW 則會(huì)對(duì)每個(gè)公司產(chǎn)生一行以下的訂單數(shù)據(jù)。此外,若是DISTINCTROW只有用在一個(gè)表格當(dāng)中,則會(huì)被省略掉。

TOP  從第一條或最后一條開(kāi)始(利用ORDER BY條件子句),返回特定條數(shù)的數(shù)據(jù)。
  例如:當(dāng)您想要知道在2000年,班上前25名的學(xué)生姓名數(shù)據(jù)時(shí),您可以輸入這樣的語(yǔ)句:
  SELECT TOP 25 學(xué)生姓名 FORM 學(xué)生表格 WHERE 畢業(yè)年份=1994 ORDER BY 畢業(yè)成績(jī)平均分?jǐn)?shù) DESC;
  如果您沒(méi)有加上ORDER BY 這行條件的話,您所得到的數(shù)據(jù),將會(huì)隨機(jī)的數(shù)據(jù)。此外,在TOP語(yǔ)句之后,除了可以加上數(shù)字以外,還可以利用保留字PERCENT來(lái)查詢(xún)。
  例如:SELECT TOP 10 PERCENT學(xué)生姓名 FROM學(xué)生表格 WHERE畢業(yè)年份=1994 ORDER BY畢業(yè)成績(jī)平均DESC;
 
PARAMETERS(參數(shù))聲明的用法
對(duì)于參數(shù)型的查詢(xún)語(yǔ)法中,對(duì)參數(shù)的名稱(chēng)以及數(shù)據(jù)類(lèi)型作 聲明的操作。
  PARAMETERS name datatype[,name datatype[,...]]  name
  PARAMETERS的名稱(chēng)。您可以把參數(shù)名稱(chēng)當(dāng)作字符串來(lái)使用,若是名稱(chēng)中包含了空字符串,可以利用中括號(hào)來(lái)處理,例如:“VBeden”。
datatype  輸入?yún)?shù)的數(shù)據(jù)類(lèi)型。
  例如:若是您在查詢(xún)時(shí),需要機(jī)動(dòng)的輸入姓名 ,可以利用下列的方式完成:
  PARAMETERS “輸入姓名” Text;
  SELECT * FROM 職員表格 WHERE姓名=“輸入姓名:”;

ORDER BY條件語(yǔ)句  此條件子句,通常與SELECT語(yǔ)句合并使用目的是將查詢(xún)的結(jié)果,依照指定字段加以排序。
 SELECT fieldlist FROM table WHERE selectcriteria ORDER BY field[ASC|DESC][,field2[ASC|DESC][,...]]
 
fieldlist  欲查詢(xún)的字段名稱(chēng)。其中可以與ALL,DISTINCT,DISINCTROW,或TOP一起來(lái)使用。
table  欲查詢(xún)的表格名稱(chēng)。
selectcriteria  查詢(xún)的標(biāo)準(zhǔn)設(shè)置。
field1  指定要依照那個(gè)字段作為排序的依據(jù),若是你沒(méi)有加上ORDER BY查詢(xún)出的數(shù)據(jù)集將不會(huì)作排序的操作。
ASC 遞增順序類(lèi)別。(默認(rèn)值)
DESC  遞減順序類(lèi)別。
  例如:我們要將輸出數(shù)據(jù)依據(jù)出生的先后次序排列,可以利用下面的命令。
   SELECT 姓名,生日 FROM 職員表格 ORDER BY 生日
 SELECT LastName,FirstName FROM Employees  ORDER BY LastName ASC;

HAVING 條件子句  指定一特定的分組記錄,并滿(mǎn)足HAVING 所指定的條件或狀態(tài),但條件是針對(duì)分組的條件設(shè)置。

SELECT fieldlist
FROM table
WHERE selectcriteria
GROUP BY groupfieldlist
HAVING groupcriteria
fieldlist
顯示被查詢(xún)的字段名稱(chēng)。(可與ALL,DISTINCT,DISTINCTROW,或TOP相結(jié)合)
table
欲查詢(xún)數(shù)據(jù)的表格名稱(chēng)。
selectcriteria
選取標(biāo)準(zhǔn)。
groupfieldlist
分組記錄的字段名稱(chēng),到多10個(gè)字段。而這些字段的順序決定最高到最低的分組階層。
groupcriteria
決定什么樣的分組記錄要被顯示。
HAVING跟WHERE 的用法相當(dāng)類(lèi)似,不同之處在于HAVING必須用于GROUP之后的分組數(shù)據(jù)上。
例如:
SELECT 分類(lèi)編,Sum(庫(kù)存數(shù)量)
FROM 產(chǎn)品表格
GROUP BY 分類(lèi)編號(hào)
HAVING Sum(庫(kù)存數(shù)量)>100 AND 產(chǎn)品名稱(chēng) LIKE "*紙";
 
GROUP BY 條件子句  依據(jù)指定的字段,將具有相同數(shù)值的記錄合并成一條。
SELECT fieldlist
FROM table
WHERE criteria
GROUP BY groupfieldlist
fieldlist
欲讀取的字段名稱(chēng)。(可與ALL,DISTINCT,DISTINCTROW,或TOP合并使用)
table
被查詢(xún)的表格名稱(chēng)。
groupfieldlist
分組記錄的字段名稱(chēng),到多10個(gè)字段,而這些字段的順序決定最高到最低的分組層次。
例如:
SELECT 姓名,Count(姓名)AS 職員姓名
FROM 職員表格
WHERE 部門(mén)名稱(chēng)=‘業(yè)務(wù)部‘
GROUP BY 姓名
 
FROM 條件子句  指定表格名稱(chēng)或是查詢(xún),其中包含列在SELECT語(yǔ)句的字段數(shù)據(jù)。
SELECT fieldlist
FROM tableexpression[IN externaldatabase]
fieldlist
表格中的字段名稱(chēng)。(可與ALL,DISTINCT,DISTINCTROW,或TOP相結(jié)合)
tableexpression
表格名稱(chēng),或多個(gè)表格的算式。
externaldatabase
若該表格參考到外部的數(shù)據(jù)庫(kù)時(shí),將其完整的路徑名稱(chēng)記下。
例如:
從職員表格下,查詢(xún)出所有姓名字段的數(shù)據(jù)(只有姓名字段被查詢(xún),其他則不顯示)。
SELECT 姓名 FROM 職員表格;
 
WHERE 條件子句  指定查詢(xún)的條件與限制。
SELECT fieldlist
FROM tableexpression
WHERE criteria
fieldlist
字段名稱(chēng)。(可與ALL,DISTINCT,DISTINCTROW,或TOP相結(jié)合)
tableexpression
表格名稱(chēng),或多個(gè)表格的算式。
criteria
查詢(xún)的結(jié)果,必須依照這一限制標(biāo)準(zhǔn)。
例如:
要查詢(xún)出職員表格中,所有姓氏是李的數(shù)據(jù),可以用下面的語(yǔ)句。
SELECT 姓名
FROM 職員表格
WHERE 姓氏=‘李‘;
 
BETWEEN...AND 運(yùn)算符  決定某一人數(shù)值是否介于特定的范圍之內(nèi),此運(yùn)算符只可以用在SQL的語(yǔ)句中。

expr[Not]BETWEEN value1 AND value2
expr
指定要加以計(jì)算的字段與表達(dá)式的組合。
value1,value2
所指明的數(shù)值范圍。
例如:
若是要從職員表格查詢(xún)出所有年齡介于25-30歲的員工,可以利用下面的程序來(lái)做。
SELECT 姓名,年齡 BETWEEN 25 AND 30
FROM 職員表格;
 
LIKE 操作數(shù)  用來(lái)將一字符串與另一特定字符串樣式(pattern)比較,并將符合該字符串樣式的記錄過(guò)濾出來(lái)。
expression LIKE "pattern"
expression
使用在WHERE條件子句,SQL表達(dá)式。
pattern
用以比較的字符串樣式。
例如:
若是你要查詢(xún)出所有以“李”為首的姓氏,可以利用下面的式子。
Like "李*"
LIKE操作數(shù)的多種范例:
1、多個(gè)字符:
(1)"a*a"
可篩選:"aa","aBa","aBBBa",不能篩選:"aBC"
(2)"*ab*"
可篩選:"abc","AABB","Xab",不能篩選:"aZb","bac"
2、特殊字符:
"a“*”a"
可篩選:"a*a",不能篩選:"aaa"
3、單一字符:
"a?a"
可篩選:"aaa","a3a","aBa",不能篩選:"aBBBa"
4、單一數(shù)字:
"a#a"
可篩選:"a0a","a1a","a2a",不能篩選:"aaa","a10a"
5、字符范圍:
"“a-z”"
可篩選:"f","p","j",不能篩選:"2","&"
6、指定字符以外部范圍:
"“!a-z”"
7、指定非數(shù)字:
"“!0-9”"
可篩選:"A","a","&","~",不能篩選:"0","1","9"
8、組合式結(jié)構(gòu):
"a“!b-m”#"
可篩選:"An9","az0","a99",不能篩選:"abc","aj0"
 
SQL數(shù)字函數(shù)
  1、AVG:算數(shù)平均數(shù)  AVG(expr)  expr  字段名稱(chēng)或表達(dá)式。
  例如:若要計(jì)算職員身高超過(guò)165厘米的職員平均身高,可以利用下面的SQL語(yǔ)句來(lái)完成。
  SELECT Avg(身高) AS 平均身高 FROM 職員表格 WHERE 身高>165;
2、COUNT:計(jì)算記錄條數(shù)  COUNT(expr)  expr 字段名稱(chēng)或表達(dá)式。
  例如:若是要統(tǒng)計(jì)出業(yè)務(wù)部門(mén)的職員人數(shù),并查詢(xún)出職員的姓名,可以利用下面的程序。
  SELECT Count(姓名) AS 職員姓名 FROM 職員表格 WHERE 部門(mén)名稱(chēng)=‘業(yè)務(wù)部‘;
  3、FIRST與LAST:返回某字段的第一條數(shù)據(jù)與最后一條數(shù)據(jù)。FIRST(expr) expr 字段名稱(chēng)或表達(dá)式。
  例如:若是要找出貨品數(shù)量字段的第一條數(shù)據(jù)與貨品價(jià)格字段的最后一條數(shù)據(jù)時(shí),可以利用下面的查詢(xún)方式。
  SELECT FIRST(貨品數(shù)量),LAST(貨品價(jià)格) FROM 訂單表格
  4、MAX,與MIN:返回某字段的最大值與最小值。用法同F(xiàn)IRST與LAST。
  5、SUM:返回某特定字段或是運(yùn)算的總和數(shù)值。SUM(expr)  expr  字段名稱(chēng)或表達(dá)式。
  例如:要計(jì)算出貨品總價(jià),可使用下面的程序。
  SELECT Sum(單位價(jià)格*貨品數(shù)量) AS 貨品總價(jià) FROM 訂單表格
 
多層SQL查詢(xún)  顧名思義,多層的SQL查詢(xún)的便在于:“在一個(gè)SQL語(yǔ)句中可以包含另一個(gè)SQL查詢(xún)語(yǔ)句,形成內(nèi)部嵌套的查詢(xún)類(lèi)型。”
comparison[ANY|ALL|SOME](sqlstatement)
expression[NOT]IN (sqlstatement)
[NOT]EXISTS(sqlstatement)
comparison
將表達(dá)式與內(nèi)層查詢(xún)的結(jié)果比較的操作。
expression
對(duì)內(nèi)層查詢(xún)的結(jié)果作搜索的表達(dá)式。
sqlstatement
為SELECT語(yǔ)句構(gòu)成的SQL查詢(xún),必須用()將該語(yǔ)句括起來(lái)。

例如:
  我們先從訂單表格當(dāng)中,查詢(xún)出所有的單位,再將產(chǎn)品表格中的單位與的一一對(duì)比,查詢(xún)出所有高于訂單表格的單位價(jià)格的記錄。
  SELECT * FROM 產(chǎn)品表格 WHERE 單位價(jià)格>ANY (SELECT 單位價(jià)格 FROM 訂單表格 WHERE 折扣>=.25);
 
SQL與數(shù)據(jù)庫(kù)的維護(hù)
  表格的建立
  將SQL中的基本語(yǔ)法作了一番介紹以后,但大多是偏向于數(shù)據(jù)庫(kù)數(shù)據(jù)的查詢(xún)與過(guò)濾,但實(shí)際上,我們通過(guò)SQL命令所可以做的事還有很多,接下來(lái)要介紹的便是如何利用SQL的語(yǔ)法命令來(lái)建立一個(gè)數(shù)據(jù)庫(kù)中的表格。
   CREATE TABLE語(yǔ)句
  我們可以利用這個(gè)命令,來(lái)建立一個(gè)全新的表格,但前提則是:數(shù)據(jù)庫(kù)必須已經(jīng)存在。
CREATE TABLE table(field1 type[(size)][index1][,field2 type[(size)][index2][,...]][,nultifieldindex[,...]])
table
欲建立的新的表格名稱(chēng)。
field1,field2
在新表格中的新的字段名稱(chēng),到少要一個(gè)字段以上。
type
字段的數(shù)據(jù)類(lèi)型。
size
字段的大小。
index1,index2
利用CONSTRAINT條件子句定義一個(gè)單一字段的索引名稱(chēng)。
multifieldindex
利用CONSTRAINT條件子句定義一個(gè)多重字段的索引名稱(chēng)。

  例如:
  建立一個(gè)擁有職員姓名與部門(mén)字段的表格。
CREATE TABLE 職員表格 (姓名TEST,部門(mén)TEST,職員編號(hào) INTEGER CONSTRAINT職員字段索引PRIMARY KEY)
在這一個(gè)范例中,我們建立了一個(gè)表格名稱(chēng)為“職員表格”的表格,并且定義了該表格的主鍵值,以限制數(shù)據(jù)不能重復(fù)輸入。

  表格索引的建立  CREATE INDEX語(yǔ)句
  這個(gè)命令主要是對(duì)一個(gè)已存在的表格建立索引,其用法如下:
CREATE[UNIQUE]INDEX index ON table(field[ASC|DESC][,field[ASC|DESC],...])
[WITH {PRIMARY|DISALLOWNULL|IGNORENULL}]
index
欲被建立的索引名稱(chēng)。
table 欲建立索引的表格名稱(chēng)。
field  欲被建立的索引的字段名稱(chēng)。并可通過(guò)DESC保留字,來(lái)決定索引的順序。
  例如:
在職員表格中建立一個(gè)索引。
CREATE INDEX 新索引名稱(chēng)
ON 職員表格(姓名部門(mén));
 
表格的字段更新
CONSTRAINT條件子句
CONSTRAINT 的功能是類(lèi)似索引(INDEX)的,雖然CONSTRAINT 也可以建立表格之間的關(guān)聯(lián)性。
單一字段索引:
CONSTRAINT name{PRIMARY KEY|UNIQUE|REFERENCES foreigntable[(foreignfield1,foreignfield2)]}
多字段索引:
CONSTRAINT name
{PRIMARY KEY(primary1[,primary2[,...]])
|UNIQUE(unique1[,unique2[,...]])
|FOREIGN KEY (ref1[,ref2[,...]])
|REFERENCES foreigntable[(foreignfield1[,foreignfield2[,...]])]}
name
要被建立的CONSTRAINT名稱(chēng)。
primary1,primary2
被用來(lái)設(shè)計(jì)成主鍵值的字段名稱(chēng)(可一個(gè)以上)。
unique1,unique2
被用來(lái)設(shè)計(jì)成唯一鍵值的字段名稱(chēng)(可一個(gè)以上)。
foreign key
字段名稱(chēng),或是參考到別的表格中字段的字段名稱(chēng)。
foreigntable
如前所述,被參考到的表格。
foreignfield1,foreignfield2
在參考到的表格當(dāng)中,被ref1,ref2字段所指定的字段。如果被參考的字段是參考表格中的主鍵值,你也可以省略這個(gè)條件子句。
例如:
當(dāng)我們要建立一個(gè)新的職員數(shù)據(jù)表格,表格包含姓名、部門(mén)名稱(chēng)與生日三個(gè)字段,且由這三個(gè)字段建立一個(gè)唯一的索引時(shí),可以使用下面這段SQL的語(yǔ)句。
CREATE TABLE 職員數(shù)據(jù)表格
(姓名 TEST,部門(mén)名稱(chēng) TEST,生日 DATETIME,CONSTRAINT 職員數(shù)據(jù)表格限制 UNIQUE(姓名,部門(mén)名稱(chēng),生日));
以上是SQL中,與數(shù)據(jù)庫(kù)表格建立相關(guān)的命令,你可以利用這些命令,通過(guò)SQL的語(yǔ)句,將數(shù)據(jù)庫(kù)表格完整的建立出來(lái),接下來(lái)的章節(jié),將針對(duì)數(shù)據(jù)庫(kù)建立之后的維護(hù)與增刪所要使用的SQL語(yǔ)句作一介紹。
記錄的刪除
  DELETE語(yǔ)句 我們可以利用DELETE語(yǔ)句,將表格中的記錄刪除。(注意:記錄被刪除后,無(wú)法再?gòu)?fù)原,所以條件設(shè)置要正確)

DELETE[table.*]
FROM tableexpression
WHERE criteria
table
欲刪除記錄的表格名稱(chēng),也可以用*來(lái)取代。
tableexpression
一個(gè)或一個(gè)以上表格的名稱(chēng)。此一參數(shù)可以為單一的表格名稱(chēng)或是從INNER JOIN,LEFT JOIN,或RIGHTJOIN 等運(yùn)算所得到的結(jié)果。
criteria
決定表格中記錄要被刪除的標(biāo)準(zhǔn)。
例如:若是我們要將職員表格中姓名姓名叫做‘李名‘的記錄刪除,我們可以利用下面的SQL語(yǔ)句來(lái)完成。
  DELETE * FROM 職員表格 WHERE 姓名=‘李名‘;
 

SELECT...INTO語(yǔ)句
  我們可以通過(guò)這個(gè)命令,利用既存表格查詢(xún),來(lái)建立一個(gè)新表格的查詢(xún)語(yǔ)句。
SELECT field1[,field2[,...]]INTO newtable[IN externaldatabase]
FROM source
field1,field2
欲拷貝到新表格的字段名稱(chēng)。
newtable
欲建立之新表格的名稱(chēng),不可是已經(jīng)存在的表格。
externaldatabase
若是該表格在另外的外部數(shù)據(jù)庫(kù)時(shí),該數(shù)據(jù)庫(kù)的名稱(chēng)。
source
記錄數(shù)據(jù)拷貝的來(lái)源表格名稱(chēng),可以是單一的表格或是一段SQL查詢(xún)之語(yǔ)句。
例如:
你可以通過(guò)下面的SQL語(yǔ)句,來(lái)建立一個(gè)新的“訓(xùn)練名冊(cè)”表格。
SELECT 職員表格.姓名,職員表格.部門(mén)
INTO 訓(xùn)練名冊(cè) FROM 職員表格
WHERE 職稱(chēng)=‘新進(jìn)人員‘;
 
INNER JOIN操作數(shù)  當(dāng)某一個(gè)共同的字段數(shù)據(jù)相等時(shí),將兩個(gè)表格的記錄加以組合。
 
SELECT fields
FROM table1 INNER JOIN table2
ON table1.field1 compopr table2.field2
table1,table2
欲進(jìn)行記錄組合的表格名稱(chēng)。
field1,field2
欲組合的字段名稱(chēng)。(必須具有相同的數(shù)據(jù)類(lèi)型)
compopr
比較關(guān)系運(yùn)算符如下:“=”,“<”,“>”,“<=”,“<>”等。
例如:
若是你要把分類(lèi)表格與產(chǎn)品表格作組合,可參考下面的SQL語(yǔ)句。
SELECT 分類(lèi)名稱(chēng),產(chǎn)品名稱(chēng)
FROM 分類(lèi)表格 INNER JOIN 產(chǎn)品表格
ON 分類(lèi)表格.分類(lèi)編號(hào)=產(chǎn)品表格.分類(lèi)編號(hào);
 
UNION操作數(shù)  我們可以通過(guò)UNION操作數(shù)來(lái)建立連接的查詢(xún)條件,UNION操作數(shù)可以將兩個(gè)以上的表格或是查詢(xún)的結(jié)果組合起來(lái)。
[TABLE]query1 UNION [ALL][TABLE]query2 [UNION [ALL]
[TABLE]queryn [...]]
query1,query2,queryn
為一個(gè)SELECT的語(yǔ)句,或是一個(gè)已存在的查詢(xún)名稱(chēng),或是一個(gè)已存在的表格名稱(chēng)。
  例如:你可以利用下面的SQL語(yǔ)句,將訂單數(shù)量超過(guò)1000的顧客表格記錄,與新客戶(hù)表格作UNION的操作。
TABLE 新客戶(hù)表格 UNION ALL
SELECT *
FROM 顧客表格
WHERE 訂單數(shù)量>1000;
 
DROP語(yǔ)句 針對(duì)所指定的表格或字段加以刪除,或是把索引刪除。
DROP {TABLE table|INDEX index ON table}
table
欲刪除之表格或索引依附之表格名稱(chēng)。
index
欲從表格中刪除的索引名稱(chēng)。
例如:
從職員表格中,刪除編號(hào)索引。
DROP INDEX MyIndex ON Employees;
例如:
從數(shù)據(jù)庫(kù)中,刪除整個(gè)表格。
DROP TABLE 職員表格;
 
INSERT INTO語(yǔ)句 新建一條數(shù)據(jù)到表格當(dāng)中。
多條記錄新建查詢(xún):
INSERT INTO target [IN externaldatabase][(field1[,field2[,...]])]
SELECT [source.]field1[,field2[,...]
FROM tableexpression
單條記錄新建查詢(xún):
INSERT INTO target[(field1[,field2[,...]])]
VALUES(value1[,value2[,...])
target
新建記錄的表格名稱(chēng)。
externaldatabase
外部數(shù)據(jù)庫(kù)的路徑,搭配IN條件子句使用。
source
若是記錄從其它表格中拷貝時(shí),指明該表格的名稱(chēng)。
field1,field2
欲增加數(shù)據(jù)的字段名稱(chēng)。
tableexpression
表格名稱(chēng)或描述記錄是從哪一個(gè)表格中插入的表格名稱(chēng)。配合INNER JOIN,LEFT JOIN,或 RIGHT JOIN 運(yùn)算符一起使用。
value1,value2
欲插入表格中的數(shù)值。
例如:
在客戶(hù)數(shù)據(jù)表格中,從新的表格插入數(shù)據(jù)。
INSERT INTO 客戶(hù)數(shù)據(jù)表格
SELECT 新客戶(hù)數(shù)據(jù)表格.*
FROM 新客戶(hù)數(shù)據(jù)表格;
例如:
在職員表格中插入數(shù)據(jù)。
INSERT INTO 職員表格(姓名,生日,職稱(chēng))
VALUES("王榮","57/12/11","經(jīng)理");
例如:
從訓(xùn)練人員表格中,將職員雇用時(shí)間超過(guò)30天者,加入到正式職員表格中。
INSERT INTO 職員表格
SELECT 訓(xùn)練人員表格.*
FROM 訓(xùn)練人員表格
WHERE 雇用天數(shù)>30;
 
UPDATE語(yǔ)句 建立一個(gè)UPDATE的查詢(xún),通過(guò)條件的限制來(lái)修改特定的數(shù)據(jù)。
UPDATE table
SET newvalue
WHERE criteria;
table
欲修改數(shù)據(jù)的表格名稱(chēng)。
newvalue
欲修改成的數(shù)值(將該項(xiàng)數(shù)值插入到特定的字段當(dāng)中)。
criteria
查詢(xún)條件,用來(lái)決定要修改哪些記錄。
例如:
若是要把訂單表格中的訂單數(shù)量修改成1.1倍,運(yùn)費(fèi)為1.03倍,可利用下列之SQL語(yǔ)句來(lái)完成。
UPDATE 訂單表格
SET 訂單數(shù)量=訂單數(shù)量 * 1.1,運(yùn)費(fèi)=運(yùn)費(fèi) * 1.03倍
WHERE 運(yùn)達(dá)地點(diǎn)=‘美國(guó)‘;
當(dāng)我們完成修改后,你可以利用 SELECT 語(yǔ)句,配合同樣的 WHERE 條件子句,來(lái)察看修改的數(shù)據(jù)是否正確。
事實(shí)上,要利用SQL完成某些看似復(fù)雜的操作,并不需要繁瑣的SQL命令組合,或是許許多多的步驟才能完成,其實(shí)最重要的還是要活用SQL命令,才會(huì)在最精簡(jiǎn)的SQL語(yǔ)句里獲得最高的效率。
 

 

 

 

 

 

地址:杭州市文三路369號(hào)文三數(shù)碼大廈
電話:0571-56772927,5672928,56772930
Powered by Wisesoft 萬(wàn)思軟件技術(shù)支持

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶(hù)發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章 更多