版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
SQL的學(xué)習(xí)資料
SELECT
名稱
SELECT—從表或視圖中取出若干行.
SELECT[ALLIDISTINCT[ON(expression[,...])]]
expression[ASname][,…]
INTO[TEMPORARYITEMP][TABLE]new_table]
[FROMtable[alias][,...]]
[WHEREcondition]
[GROUPBYcolumn[,...]]
[HAVINGcondition[,...]]
[{UNION[ALL]|INTERSECT|EXCEPT}select]
[ORDERBYcolumn[ASC|DESC|USINGoperator][,...]]
[FORUPDATE[OFclass_name[,...]]]
LIMIT{count|ALL}[{OFFSET|,)start]
輸入
expression
表的列/字段名或一個(gè)表達(dá)式.
name
使用AS子句為一個(gè)列/字段或一個(gè)表達(dá)式聲明另一個(gè)名稱.這個(gè)名稱主要用于標(biāo)記
輸出列。name不能在WHERE,GROUPBY或HAVING子句中使用。但是它可
以在與ORDERBY子句里引用。
TEMPORARY,TEMP
該表是在這次會(huì)話中唯一的,并且將在會(huì)話結(jié)束后自動(dòng)刪除。
new_table
如果聲明了INTOTABLE子句,查詢的結(jié)果將存儲(chǔ)在指出名稱的另一個(gè)表中.目
標(biāo)表(new_table)將被自動(dòng)創(chuàng)建并且在此命令執(zhí)行之前不應(yīng)該存在。請(qǐng)參考
SELECTINTO獲取更多信息.
注意:CREATETABLEAS語(yǔ)句也將從選擇查詢中創(chuàng)建新表.
table
FORM子句引用的一個(gè)現(xiàn)存的表的名稱.
alias
正在處理的表table的別名,用于縮寫或消除一個(gè)表內(nèi)部聯(lián)合時(shí)的含混.
condition
一個(gè)結(jié)果為真或假布爾表達(dá)式.參閱WHERE子句獲取更多信息.
column
表的列/字段的名稱.
select
一個(gè)可以有除ORDERBY子句外的所有特性的選擇語(yǔ)句.
輸出
Rows
查詢返回的所有結(jié)果集的行.
count
查詢返回的行的記數(shù).
描述
SELECT將從一個(gè)或更多表中返回記錄行。選擇的侯選行是滿足WHERE條件的所
有行?;蛘呷绻÷粤薟HERE語(yǔ)句則選擇表中的所有行.(參閱WHERE子句)
DISTINCT將從選擇出來(lái)的結(jié)果集中刪除所有的重復(fù)的行。ALL(缺?。⒎祷?/p>
所有侯選行,包括重復(fù)的行。
DISTINCTON刪除匹配所有表達(dá)式的行,只保留每個(gè)重復(fù)集的第一行。注意這里
每個(gè)重復(fù)集的"第一行”是不可預(yù)料的,除非我們用ORDERBY來(lái)保證我們希望的
行最先出現(xiàn)。例如,
SELECTDISTINCTON(location)location,time,report
FROMweatherReports
ORDERBYlocation,timeDESC;
檢索出每個(gè)地區(qū)的最近的天氣預(yù)報(bào)。但是如果我們沒(méi)有使用ORDERBY來(lái)強(qiáng)制每
個(gè)地區(qū)按時(shí)間值降續(xù)排列,我們得到的將是每個(gè)地區(qū)的不可預(yù)料的時(shí)間的報(bào)告。
GROUPBY子句允許用戶將一個(gè)表分成概念上的組.(參閱GROUPBY子句。)
HAVING子句聲明一個(gè)分組了的表,該表是從前面聲明的子句的結(jié)果集中去除了
一些組后生成的.(參閱HAVING子句。)
ORDERBY子句允許用戶根據(jù)模式操作符(ASCending或DESCending)來(lái)表明他
/她所希望的行的排序模式(參閱ORDERBY了句)。
UNION操作符允許結(jié)果集是那些涉及到的查詢所返回的行的集合。(參閱UNION
子句。)
INTERSECT給出兩個(gè)查詢公共的行。(參閱INTERSECT子句。)
EXCEPT給出存在于第一個(gè)查詢而不存在于第二個(gè)查詢的行。(參閱EXCEPT了
攵。)
FORUPDATE子句允許SELECT語(yǔ)句對(duì)選出的行執(zhí)行排他鎖。
LIMIT子句允許給用戶返回一個(gè)查詢生成的結(jié)果的子集。(參閱LIMIT)
你必須有SELECT權(quán)限用來(lái)從表中讀取數(shù)值(參閱GRANT/REVOKE語(yǔ)句).
WHERE子句
可選的WHERE條件有如下常見(jiàn)的形式:
WHEREboolean_expr
boolean_expr可以包含任意個(gè)得出布爾值的表達(dá)式。通常表達(dá)式會(huì)是
exprcond_opexpr
或
log_opexpr
這里cond_op可以是下面之一:=,<,<=,>,>=,<>或條件操作符象ALL,
ANY,IN,LIKE等,或者用戶定義的操作符,而log_op可以為:AND,OR,NOT.比
較返回的結(jié)果要么是TRUE要么是FALSET并且如果表達(dá)式的值是FALSE,所有
記錄都將被丟棄.
GROUPBY子句
GROUPBY聲明一個(gè)分了組的表,該表源于應(yīng)用使用下面的子句:
GROUPBYcolumn[,...]
GROUPBY將把所有在組合了的列上共享同樣的值的行壓縮成一行。如果存在聚
集函數(shù),這些聚集函數(shù)將計(jì)算每個(gè)組的所有行,并且為每個(gè)組計(jì)算一個(gè)獨(dú)立的值
(如果沒(méi)有GROUPBY,聚集函數(shù)對(duì)選出的所有行計(jì)算出一個(gè)數(shù)值)。存在GROUP
BY時(shí),除了在聚集函數(shù)里面,對(duì)任何非組合列的引用都是非法的,因?yàn)閷?duì)一個(gè)
非組合列會(huì)有多于一個(gè)可能的返回值。
HAVING子句
可選的HAVING條件有如下形式:
HAVINGcond_expr
這里cond_expr與為WHERE子句里聲明的相同.
HAVING子句聲明一個(gè)從前面的子句的結(jié)果集中去除了一些不符合cond_expr
組后分組的表.
在cond_expr里引用的每個(gè)列/字段應(yīng)該清晰地指明一個(gè)組的列/字段,除非引
用在一個(gè)聚集函數(shù)里。
ORDERBY子句
ORDERBYcolumn[ASC|DESC][,...]
column既可以是一個(gè)列/字段名也可以是一個(gè)序數(shù)。
序數(shù)指的是列/字段按順序(從左到右)的位置.這個(gè)特性可以使得對(duì)沒(méi)有一個(gè)
合適名稱的列/字段的排序成為可能.這一點(diǎn)可能永遠(yuǎn)沒(méi)有用,因?yàn)榭偸强梢酝?/p>
過(guò)AS子句給一個(gè)要計(jì)算的列/字段賦予一個(gè)名稱,例如:
SELECTtitle,date_prod+1ASnewlenFROMfilmsORDERBYnewlen;
從PostgreSQL版本6.4開始,還可以O(shè)RDERBY任意表達(dá)式,包括那些沒(méi)有
出現(xiàn)在SELECT結(jié)果列表里面的域。因此下面的語(yǔ)句現(xiàn)在是合法的:
SELECTnameFROMdistributorsORDERBYcode;
我們可以給ORDERBY子句里每個(gè)列/字段加一個(gè)關(guān)鍵字DESC(降序)或ASC
(升序).如果不聲明,ASC是缺省.我們還可以聲明一個(gè)排序操作符來(lái)實(shí)現(xiàn)排
序。ASC等效于使用而DESC等效于使用。
UNION子句
table_queryUNION[ALL]table_query
[ORDERBYcolumn[ASC|DESC][,...]]
這里table_query表明任何沒(méi)有ORDERBY子句的選擇表達(dá)式.
UNION操作符允許結(jié)果集是那些涉及到的查詢所返回的結(jié)果的集合。兩個(gè)做為
UNION直接操作數(shù)的SELECT必須生成相同數(shù)目的字段,并且對(duì)應(yīng)的字段必須有
兼容的數(shù)據(jù)類型。
缺省地,UNION的結(jié)果不包含任何重復(fù)的行,除非聲明了ALL子句.
同一SELECT語(yǔ)句中的多個(gè)UNION操作符是從左向右計(jì)算的.注意ALL關(guān)鍵字
不一定是全局的,只是應(yīng)用在當(dāng)前一對(duì)表的結(jié)果上.
INTERSECT子句
table_queryINTERSECTtable_query
[ORDERBYcolumn[ASC|DESC][,...]]
這里table_query聲明任何沒(méi)有ORDERBY子句的選擇表達(dá)式。
INTERSECT給出兩個(gè)查詢公共的行。兩個(gè)做為INTERSECT直接操作數(shù)的
SELECT的結(jié)果必須有相同數(shù)目的字段,并且對(duì)應(yīng)的字段必須有兼容的數(shù)據(jù)類型。
除非用圓括號(hào)指明順序,同一SELECT語(yǔ)句中的多個(gè)INTERSECT操作符是從左
向右計(jì)算的。
EXCEPT子句
table_queryEXCEPTtable_query
fORDERBYcolumn[ASCIDESC][,...]]
這里table_query聲明任何沒(méi)有ORDERBY子句的選擇表達(dá)式。
EXCEPT給出存在于第一個(gè)查詢而不存在于第二個(gè)查詢的行。(參閱EXCEPT子
句)。兩個(gè)做為EXCEPT直接操作數(shù)的SELECT的結(jié)果必須有相同數(shù)目的字段,
并且對(duì)應(yīng)的字段必須有兼容的數(shù)據(jù)類型。
除非用圓括號(hào)指明順序,同一SELECT語(yǔ)句中的多個(gè)EXCEPT操作符是從左向右
計(jì)算的。
LIMIT子句
LIMIT{count|ALL}[{OFFSET|,}start]
OFFSETstart
這里count聲明返回的最大行數(shù),而start聲明開始返回行之前忽略的行數(shù)。
LIMIT允許你檢索有查詢其他部分生成的行的某一部分。如果給出了限制計(jì)數(shù),
那么返回的行數(shù)不會(huì)超過(guò)哪個(gè)限制。如果給出了一個(gè)偏移量,那么開始返回行之
前會(huì)忽略那個(gè)數(shù)量的行。
在使用LIMIT時(shí),一個(gè)好習(xí)慣是使用一個(gè)ORDERBY子句把結(jié)果行限制成一個(gè)
唯一的順序。否則你會(huì)得到無(wú)法預(yù)料的查詢返回的子集--你可能想要第十行
到第二十行,但以什么順序?除非你聲明ORDERBY,否則你不知道什么順序。
在Postgres7.0,查詢優(yōu)化器在生成查詢規(guī)劃時(shí)把LIMIT考慮進(jìn)去了,所以你
很有可能因給出的LIMIT和OFFSET值不同而得到不同的規(guī)劃(生成不同的行
序)。因此用不同的LIMIT/OFFSET值選擇不同的查詢結(jié)果的子集將不會(huì)產(chǎn)生一
致的結(jié)果,除非你用ORDERBY強(qiáng)制生成一個(gè)可預(yù)計(jì)的結(jié)果順序。這可不是毛?。?/p>
這是SQL生來(lái)的特點(diǎn),因?yàn)槌怯昧薕RDERBYE約束順序,SQL不保證查詢生
成的結(jié)果有任何特定的順序。
用法
將表films和表distributors聯(lián)合在?起:
SELECTf.title,f.did,d.name,f.date_prod,f.kind
FROMdistributorsd,filmsf
WHEREf.did=d.did
title|did|name|date_prod|kind
?+——+-----------------+----------+-
TheThirdMan|101BritishLion|1949-12-23|Drama
TheAfricanQueen|101BritishLion11951-08-111Romantic
UneFemmeestuneFemme102JeanLucGodard|1961-03-12|Romantic
Vertigo103IParamount1958-11-14Action
Becket103Paramount|1964-02-03|Drama
48Hrs103Paramount1982-10-22Action
WarandPeace|104Mosfilm|1967-02-12|Drama
WestSideStory,105UnitedArtists|1961-01-03|Musical
Bananas105UnitedArtists|1971-07-13|Comedy
Yojimbo1106Toho11961-06-161Drama
There,saGirlinmySoup107Columbia|1970-06-11|Comedy
TaxiDriver107Columbia1975-05-15Action
AbsenceofMalice107Columbia|1981-11-15|Action
Storiadiunadonna108Westward|1970-08-15|Romantic
TheKingandI109|20thCenturyFox|1956-08-11|Musical
DasBoot,1101BavariaAtelier11981-11-111Drama
BedKnobsandBroomsticks111IWaltDisneyIMusical
統(tǒng)計(jì)用kind分組的所有電影和組的歹V字段的len(長(zhǎng)度)的和:
SELECTkind,SUM(len)AStotalFROMfilmsGROUPBYkind;
kind|total
Action|07:34
Comedy|02:58
Drama|14:28
Musical|06:42
Romantic|04:38
統(tǒng)計(jì)所有電影(films),組的列/字段len(長(zhǎng)度)的和,用kind分組并且
顯示小于5小時(shí)的組總和:
SELECTkind,SUM(len)AStotal
FROMfilms
GROUPBYkind
HAVINGSUM(len)<INTERVAL'5hour';
kind|total
Comedy|02:58
Romantic|04:38
下面兩個(gè)例子是根據(jù)第二列(name)的內(nèi)容對(duì)單獨(dú)的結(jié)果排序的經(jīng)典的方法.
SELECT*FROMdistributorsORDERBYname;
SELECT*FROMdistributorsORDERBY2;
didname
——+-----------------
109|20thCenturyFox
110IBavariaAtelier
101|BritishLion
107|Columbia
102|JeanLucGodard
113|Lusofilms
104|Mosfilm
103|Paramount
106|Toho
105|UnitedArtists
111|WaltDisney
112|WarnerBros.
108|Westward
這個(gè)例子演示如何獲得表distributors和actors的聯(lián)合,只將每個(gè)表中以字
母W開頭的取出來(lái).因?yàn)橹蝗×瞬幌嚓P(guān)的行,所以關(guān)鍵字ALL被省略了:
distributors:actors:
did|nameid|name
——+------------一一+---------------
108IWestward11WoodyAllen
111WaltDisney2|WarrenBeatty
112|WarnerBros.3|WalterMatthau
SELECTdistributors,name
FROMdistributors
WHEREdistributors,nameLIKE'W%'
UNION
SELECTactors,name
FROMactors
WHEREactors,nameLIKE'W%'
name
WaltDisney
WalterMatthau
WarnerBros.
WarrenBeatty
Westward
WoodyAllen
兼容性
擴(kuò)展
Postgres允許我們?cè)谝粋€(gè)查詢里省略FROM子句。這個(gè)特性是從最初的
PostQuel查詢語(yǔ)言里保留下來(lái)的:
SELECTdistributors.*WHEREname='Westwood';
did|name
108|Westward
SQL92
SELECT子句
在SQL92規(guī)范里,可選的關(guān)鍵字"AS”是多余的,可以忽略掉而不對(duì)語(yǔ)句產(chǎn)生
任何影響.Postgres分析器在重命名列/字段時(shí)需要這個(gè)關(guān)鍵字,因?yàn)轭愋蛿U(kuò)展
的特性會(huì)導(dǎo)致上下文語(yǔ)意不清.
DISTINCTON語(yǔ)法不是SQL92的標(biāo)準(zhǔn)。LIMIT和OFFSET也不是。
UNION子句
SQL92的UNION語(yǔ)法允許一個(gè)附加的CORRESPONDINGBY子句:
table_queryUNION[ALL]
[CORRESPONDING[BY(column[,...])]]
table_query
CORRESPONDINGBY目前還不被Postgres支持.
SELECTINTO
名稱
SELECTINTO一從當(dāng)前表或視圖中創(chuàng)建一個(gè)新表
SELECT[ALL|DISTINCT[ON(expression[,...])]]
expression[ASname][,...]
[INTO[TEMPORARY|TEMP][TABLE]new_table]
[FROMtable[alias][,...]]
[WHEREcondition]
[GROUPBYcolumn[,...]]
[HAVINGcondition[,...]]
[{UNION[ALL]|INTERSECT|EXCEPT}select]
[ORDERBYcolumn[ASC|DESC|USINGoperator][,…]
[FORUPDATE[OFclass_name[,...]]]
LIMIT{count|ALL}[{OFFSET|,)start]
輸入
所有輸入的域都在SELECT中有詳細(xì)描述.
輸出
所有輸入的域都在SELECT中有詳細(xì)描述.
描述
SELECTINTO從一個(gè)查詢中創(chuàng)建一個(gè)新表.比較典型的是這個(gè)查詢從一個(gè)現(xiàn)存的
表中提取數(shù)據(jù),但實(shí)際上任何SQL查詢都可以.
注意:CREATETABLEAS功能上和SELECTINTO命令相等.
CREATETABLE
名稱
CREATETABLE一創(chuàng)建一個(gè)新表
CREATE[TEMPORARY|TEMP]TABLEtable(
columntype
[NULL|NOTNULL][UNIQUE][DEFAULTvalue]
[column_constraint_clause\PRIMARYKEY}[...]]
[,PRIMARYKEY(column[,...])]
[,CHECK(condition)]
[,table_constraint_clause]
)[INHERITS(inherited_table[,???])]
輸入
TEMPORARY
此表只是為這次會(huì)話創(chuàng)建,并且在會(huì)話結(jié)束后自動(dòng)刪除。當(dāng)臨時(shí)表存在時(shí),同名的
永久表是不可見(jiàn)的。
table
將要?jiǎng)?chuàng)建的新表的名稱.
column
列/字段名.
type
列/字段類型.這里可以包括數(shù)組的聲明.請(qǐng)參考PostgreSQL用戶手冊(cè)獲取關(guān)于數(shù)
據(jù)類型和數(shù)組的詳細(xì)信息.
DEFAULTvalue
一個(gè)列/字段的缺省值.請(qǐng)參考DEFAULT子句獲取更多信息.
column_constraint_clause
可選的列/字段約束子句,聲明一系列整合的約束和測(cè)試,當(dāng)對(duì)表進(jìn)行更新或插入操
作時(shí)必須滿足這些約束條件才能成功.每個(gè)約束必須生成一個(gè)布爾式.盡管SQL92
需要column_constraint_clause用于指定某一行,Postgres允許在用■?個(gè)列/
字段的約束索引多個(gè)列.請(qǐng)/考列約束子句獲取更多信息.
table_constraint_clause
可選的表(約束)CONSTRAINT子句,聲明一系列整合的約束,當(dāng)對(duì)表進(jìn)行更新
或插入時(shí)必須滿足這些約束.每個(gè)約束必須生成一個(gè)布爾表達(dá)式.可以對(duì)多列使用
同一個(gè)約束.一個(gè)表只能聲明一個(gè)PRIMARYKEY子句:PRIMARYKEYcolumn
(表約束)和PRIMARYKEY(列/字段約束)是互斥的.請(qǐng)參考表約束子句獲取
更多信息.
INHERITSinherited_table
可選的(繼承)INHERITS子句聲明一系列表名,這個(gè)表將自動(dòng)從這些表繼承所有
字段.如果任何繼承域出現(xiàn)的次數(shù)超過(guò)一次,Postgres將報(bào)告一個(gè)錯(cuò)誤.Postgres自
動(dòng)地允許所創(chuàng)建的表繼承所有其父表的函數(shù).
另外:函數(shù)的繼承是按照通用Lisp對(duì)象系統(tǒng)(CLOS)的習(xí)慣進(jìn)行的.
輸出
CREATE
成功創(chuàng)建表后的返回信息.
ERROR
如果創(chuàng)建表失敗,返回此信息.通常還跟隨一些描述文本,例如:ERROR:Relation
'tabl^alreadyexists在運(yùn)行時(shí)出現(xiàn),因?yàn)樗暶鞯谋硪呀?jīng)在數(shù)據(jù)庫(kù)中存在.
ERROR:DEFAULT:typemismatched
如果缺省數(shù)值的類型和字段定義的類型不一樣,返回此錯(cuò)誤.
描述
CREATETABLE將向當(dāng)前數(shù)據(jù)庫(kù)中追加一個(gè)表.表將為執(zhí)行命令者''所有
每個(gè)type可以是簡(jiǎn)單類型,復(fù)合(集)類型或者一個(gè)數(shù)組類型。每個(gè)屬性都可
以聲明為非空并且每個(gè)都可以有一個(gè)缺省值,用DEFAULT子句聲明。
注意:對(duì)于Postgresv6.0,一個(gè)屬性內(nèi)的數(shù)組唯數(shù)的一致性不是強(qiáng)制的。這一
點(diǎn)在以后的版本中將改變。
可選的INHERITS子句聲明一個(gè)表集合,所創(chuàng)建的表自動(dòng)從這個(gè)表集合里的表繼
承所有字段。如果任何繼承的字段出現(xiàn)次數(shù)多于一次,Postgres報(bào)告一個(gè)錯(cuò)誤。
Postgres自動(dòng)允許所創(chuàng)建的表繼承那些在繼承分級(jí)中級(jí)別比它高的表的函數(shù)。
函數(shù)的繼承是根據(jù)公共Lisp對(duì)象系統(tǒng)(CommonLispObjectSystem(CLOS))
的習(xí)慣進(jìn)行的。
每個(gè)新表或表table自動(dòng)被創(chuàng)建為一個(gè)類型。因此表中的一條或更多實(shí)例自動(dòng)
就是一個(gè)類型,因而可以用于ALTERTABLE或其他CREATETABLE語(yǔ)句。
新表將作為一個(gè)沒(méi)有初始值的堆創(chuàng)建.一個(gè)表可以有不超過(guò)1600(事實(shí)上,這
是因?yàn)槭茏侄未笮”仨毿∮?192字節(jié)的限制)歹U,但是這個(gè)限制在一些節(jié)點(diǎn)上
可以通過(guò)配置降低.一個(gè)表不能和系統(tǒng)表同名.
DEFAULT子句
DEFAULTvalue
輸入
value
缺省的表達(dá)式值可以是:
?一個(gè)文本值
?一個(gè)用戶函數(shù)
?a(譯注:?不會(huì)翻譯)niladicfunction
輸出
無(wú)
描述
DEFAULT子句向某列賦一個(gè)初始值.(通過(guò)在CREATETABLE語(yǔ)句里面定義).缺
省值的類型必須和列/字段定義的數(shù)據(jù)類型.
一個(gè)INSERT操作如果包括一個(gè)沒(méi)有缺省值的列/字段,這時(shí)如果沒(méi)有顯式地提
供該/列字段的數(shù)據(jù)值,將用一個(gè)NULL代替.缺省的literal意味著缺省值是
聲明的常量.缺省的niladic-function或user-function意味著缺省值是在
INSERT時(shí)聲明的函數(shù)值.
有兩類(?)niladic函數(shù):
niladicUSER
CURRENT_USER/USER
參閱CURRENTUSER函數(shù)
SESSION_USER
還不支持
SYSTEM_USER
還不支持
niladicdatetime
CURRENTDATE
參閱CURRENT_DATE函數(shù)
CURRENTTIME
參閱CURRENTDATE函數(shù)
CURRENT_TIMESTAMP
參閱CURRENTTIMESTAMP函數(shù)
在當(dāng)前的版本(v6.5),Postgres在定義表的時(shí)候就計(jì)算所有缺省表達(dá)式的
值.因?yàn)檫@樣一些"不可緩存"的函數(shù)像CURRENT」IMESTAMP可能不會(huì)產(chǎn)生預(yù)期
的結(jié)果.對(duì)于日期/時(shí)間類型的一些特殊情況,馥們可以通過(guò)使用一些手段繞過(guò)
這些情況,象用“DEFAULTTEXT'now'”代替"DEFAULT'now'"或
“DEFAULTCURRENT/IMESTAMP”.這就強(qiáng)制Postgres把日期/時(shí)間類型看成字
符串常量然后在運(yùn)行時(shí)將它們轉(zhuǎn)換成(時(shí)標(biāo))timestamp值.
用法
給列/字段did和number賦予一個(gè)常量值作為缺省值,一個(gè)字串賦予列/字段
did:
CREATETABLEvideo_sales(
didVARCHAR(40)DEFAULT'lusofilms),
numberINTEGERDEFAULT0,
totalCASHDEFAULT'$0.0'
);
將…個(gè)現(xiàn)有的序列作為列did的缺省值,并且給列/字段name一個(gè)字符串值:
CREATETABLEdistributors(
didDECIMAL(3)DEFAULTNEXTVAL('serial'),
nameVARCHAR(40)DEFAULT'lusofilms)
);
歹”字段CONSTRAINT子句
[CONSTRAINTname]{[
NULL|NOTNULL]|UNIQUE|PRIMARYKEY|CHECKconstraint}
輸入
name
賦予整個(gè)約束的任意名稱.如果沒(méi)有聲明name,將從表和列名稱中生成一個(gè)唯一
的名稱用于name.
NULL
列允許包含NULL值。這是缺省值。
NOTNULL
列不允許包含NULL值.與包含CHECK的列/字段相同(C。/“而aNOTNULL).
UNIQUE
列/字段必須有一個(gè)唯一值.在Postgres這是通過(guò)在表上隱含地創(chuàng)建?個(gè)唯一索引實(shí)
現(xiàn)的.
PRIMARYKEY
本列是一個(gè)主鍵,暗示著其唯一性是由系統(tǒng)強(qiáng)制提供的而且其他表可能依賴此列/
字段作為行標(biāo)識(shí).請(qǐng)參考PRIMARYKEY獲取更多的信息.
constraint
約束的定義.
描述
可選的約束子句聲明某種約束或者測(cè)試,當(dāng)進(jìn)行插入或者更新操作時(shí),新的或者
更新的記錄必須滿足這個(gè)約束或測(cè)試時(shí)操作才能成功。每個(gè)約束必須得出一個(gè)布
爾表達(dá)式。多個(gè)字段/屬性可以在一個(gè)約束里面引用。作為表約束的PRIMARYKEY
的使用是與作為列約束的PRIMARYKEY互相沖突不可兼容的。
約束是一個(gè)命名的規(guī)則:它是一個(gè)SQL對(duì)象,它通過(guò)對(duì)INSERT,UPDATE或
DELETE等對(duì)基本表的操作結(jié)果進(jìn)行限制,進(jìn)而可以獲得有效的結(jié)果集.
有兩種方法定義整合約束:表約束(隨后提到),歹U/字段約束(將在這里說(shuō)明).
一個(gè)列/字段約束是作為列定義的一部分定義的一個(gè)整合約束,而且邏輯上一旦
創(chuàng)建就會(huì)成為表約束.可用的列約束:
PRIMARYKEY
REFERENCES
UNIQUE
CHECK
NOTNULL
注意:Postgres還不支持(版本6.5)REFERENCES整合約束.分析器接受
REFERENCES語(yǔ)法,但將忽略之.
NOTNULL約束
[CONSTRAINTname]NOTNULL
NOTNULL約束表明一個(gè)列只能包含非空(non-null)數(shù)值的規(guī)則.NOTNULL約
束只是一個(gè)列約束,不允許作為一個(gè)表約束.
輸出
status
ERROR:ExecAppend:Failtoaddnullvalueinnotnullattribute
“columrt'.
當(dāng)試圖向一個(gè)有NOTNULL約束的列插入一個(gè)空值時(shí)返回此運(yùn)行時(shí)錯(cuò)誤.
描述
用法
在表distributors上定義兩個(gè)(非空)NOTNULL列約束,其中一個(gè)是命名約
束:
CREATETABLEdistributors(
didDECIMAL(3)CONSTRAINTno_nullNOTNULL,
nameVARCHAR(40)NOTNULL
);
UNIQUE約束
[CONSTRAINTname]UNIQUE
輸入
CONSTRAINTname
賦予一個(gè)約束的任意標(biāo)記.
輸出
status
ERROR:Cannotinsertaduplicatekeyintoauniqueindex.
如果試圖向列/字段中插入一個(gè)重復(fù)數(shù)值,返回此運(yùn)行時(shí)錯(cuò)誤.
描述
UNIQUE約束表明一個(gè)這樣的規(guī)則:表中一組由一個(gè)或多個(gè)獨(dú)立列組成的集合中
只能包含一個(gè)唯一的數(shù)值.
一個(gè)列/字段定義包含了UNIQUE約束,不一定要包含NOTNULL約束.在一個(gè)
沒(méi)有NOTNULL約束的列/字段列如果有多個(gè)空值并不違反UNIQUE約束.(這
與SQL92定義不一致,但卻是更有意義的習(xí)慣.請(qǐng)參閱兼容性部分獲取更多細(xì)
節(jié).)
每個(gè)UNIQUE列約束必須賦予一個(gè)該表中沒(méi)有被其他UNIQUE或PRIMARYKEY
約束定義過(guò)的列/字段上.
注意:Postgres自動(dòng)為每個(gè)UNIQUE約束創(chuàng)建…個(gè)唯一索引,以保證數(shù)據(jù)完整
性.請(qǐng)參閱CREATEINDEX獲取更多信息.
用法
為表distributors定義一個(gè)UNIQUE列約束.UNIQUE列約束只能給表中一個(gè)
列定義:
CREATETABLEdistributors(
didDECIMALS),
nameVARCHAR(40)UNIQUE
);
與下面的表約束相同:
CREATETABLEdistributors(
didDECIMAL(3),
nameVARCHAR(40),
UNIQUE(name)
);
CHECK(檢查)約束
[CONSTRAINTname]CHECK
(condition[,...1)
輸入
name
賦予約束的任意名稱.
condition
任何有效的產(chǎn)生一個(gè)布爾值的條件表達(dá)式.
輸出
status
ERROR:ExecAppend:rejectedduetoCHECKconstraint〃table_columri\
如果試圖向列/字段中插入一個(gè)違反CHECK約束的數(shù)值,生成此運(yùn)行時(shí)錯(cuò)誤.
描述
CHECK約束聲明一個(gè)列中允許的數(shù)據(jù)的限制.CHECK約束也可以做表約束.
SQL92CHECK列約束只能對(duì)表中的一列/字段進(jìn)行定義或使用.Postgres沒(méi)有這
個(gè)限制.
PRIMARYKEY約束
[CONSTRAINTname]PRIMARYKEY
輸入
CONSTRAINTname
約束的任意名稱.
輸出
ERROR:Cannotinsertaduplicatekeyintoauniqueindex.
當(dāng)你試圖向一個(gè)有PRIMARYKEY約束的列插入一個(gè)重復(fù)的數(shù)值時(shí),將返回這個(gè)運(yùn)
行時(shí)信息.
描述
PRIMARYKEY列約束表明表中的一個(gè)列/字段只能包含唯一的(不重復(fù)),非空
的數(shù)值.在該列/字段的PRIMARYKEY約束定義中不需要顯式的包括NOTNULL約
束.
一個(gè)表只能聲明一個(gè)PRIMARYKEY.
注意
Postgres自動(dòng)創(chuàng)建一個(gè)唯一索引以保證數(shù)據(jù)的完整性.(參閱CREATEINDEX語(yǔ)句)
在同一個(gè)表中PRIMARYKEY約束定義的列應(yīng)該應(yīng)該和其他定義了UNIQUE約束
的列不同名(不是同一列).因?yàn)檫@會(huì)導(dǎo)致等價(jià)索引的重復(fù)和增加不必要的處
理.然而,Postgres并沒(méi)有明文禁止這些.
表(約束)CONSTRAINT子句
[CONSTRAINTname]{PRIMARYKEY|UNIQUE}(column[,...])
[CONSTRAINTname]CHECK(constraint)
輸入
CONSTRAINTname
整合約束的任意名稱.
column
用于定義唯一索引,或PRIMARYKEY,或NOTNULL約束的列/字段名.
CHECK(constraint)
要作為約束進(jìn)行估值的布爾表達(dá)式.
輸出
表約束子句的可能輸出和對(duì)應(yīng)的列/字段約束的輸出一樣.
描述
表約束是對(duì)一個(gè)基本表的一個(gè)或多個(gè)列/字段定義的整合約束.”表約束”的四個(gè)
元素是:
UNIQUE
CHECK
PRIMARYKEY
FOREIGNKEY
注意:Postgres目前(版本6.5)還不支持FOREIGNKEY整合約束.分析器
可以理解FOREIGNKEY語(yǔ)法,但只是打印一個(gè)聲明或者是忽略這個(gè)子句.外部
鍵字(Foreignkeys)可以部分的用觸發(fā)器防真.(參考CREATETRIGGER語(yǔ)
句).(譯注:在版本7.0中已經(jīng)支持外鍵了。Y2K-03-13)
UNIQUE約束
[CONSTRAINTname]UNIQUE(column[,...])
輸入
CONSTRAINTname
賦予約束的任意名稱.
column
某表中的列/字段名.
輸出
status
ERROR:Cannotinsertaduplicatekeyintoauniqueindex
如果試圖向列中插入個(gè)重復(fù)的值,將返回此錯(cuò)誤.
描述
UNIQUE約束表明表中由一個(gè)或若干個(gè)獨(dú)立的列/字段組成的集合只能包含唯一
的數(shù)值.表的UNIQUE約束和對(duì)應(yīng)的列/字段約束的特性是一樣的,區(qū)別是表約
束可以跨越多個(gè)列/字段.
請(qǐng)參考列/字段的UNIQUE約束獲取更多細(xì)節(jié).
用法
給一個(gè)表distributors定義一個(gè)UNIQUE表約束:
CREATETABLEdistributors(
didDECIMAL(03),
nameVARCHAR(40),
UNIQUE(name)
);
PRIMARYKEY約束
[CONSTRAINTname]PRIMARYKEY(column[,...])
輸入
CONSTRAINTname
賦予約束的任意名稱.
column[,...]
表中的一個(gè)或者多個(gè)列.
輸出
status
ERROR:Cannotinsertaduplicatekeyintoauniqueindex.
如果試圖向一個(gè)有PRIMARYKEY約束的表中插入重復(fù)值,返回這個(gè)運(yùn)行時(shí)命令。
描述
PRIMARYKEY約束表明某個(gè)表的由一個(gè)或多個(gè)列/字段組成的集合只能包含唯
一,(不重復(fù)),非空數(shù)值.對(duì)聲明的列定義的PRIMARYKEY約束不需要包括NOT
NULL約束.
PRIMARYKEY表約束與歹!J/字段約束相似,區(qū)別是它具有控制多歹U/字段的能力.
請(qǐng)參考PRIMARYKEY歹U/字段約束部分獲取更多信息.
用法
創(chuàng)建表films和表distributors:
CREATETABLEfilms(
codeCHARACTER(5)CONSTRAINTfirstkeyPRIMARYKEY,
titleCHARACTERVARYING(40)NOTNULL,
didDECIMALS)NOTNULL,
date_prodDATE,
kindCHAR(10),
lenINTERVALHOURTOMINUTE
);
CREATETABLEdistributors(
didDECIMAL(03)PRIMARYKEYDEFAULTNEXTVALfserial*),
nameVARCHAR(40)NOTNULLCHECK(name<>'')
);
創(chuàng)建一個(gè)有2維數(shù)組的表:
CREATETABLEarray(
vectorINT[][]
);
給films表定義一個(gè)UNIQUE表約束.UNIQUE可以定義在表的一?個(gè)或多個(gè)列/
字段上:
CREATETABLEfilms(
codeCHAR(5),
titleVARCHAR(40),
didDECIMAL(03),
date_prodDATE,
kindCHAR(10),
lenINTERVALHOURTOMINUTE,
CONSTRAINTproductionUNIQUE(date_prod)
);
定義一個(gè)CHECK列約束:
CREATETABLEdistributors(
didDECIMAL(3)CHECK(did>100),
nameVARCHAR(40)
定義一個(gè)CHECK表約束:
CREATETABLEdistributors(
didDECIMAL(3),
nameVARCHAR(40)
CONSTRAINTconiCHECK(did>100ANDname>'')
);
為表films定義一個(gè)PRIMARYKEY表約束.PRIMARYKEY表約束可以對(duì)一個(gè)或
多個(gè)列/字段進(jìn)行定義:
CREATETABLEfilms(
codeCHAR(05),
titleVARCHAR(40),
didDECIMAL(03),
date_prodDATE,
kindCHAR(10),
lenINTERVALHOURTOMINUTE,
CONSTRAINTcode_titlePRIMARYKEY(code,title)
);
為表distributors定義一個(gè)PRIMARYKEY列約束.PRIMARYKEY列約束只能
對(duì)表中的一個(gè)列/字段定義.(下面兩個(gè)例子是相當(dāng)?shù)模?/p>
CREATETABLEdistributors(
didDECIMAL(03),
nameCHARVARYING(40),
PRIMARYKEY(did)
);
CREATETABLEdistributors(
didDECIMAL(03)PRIMARYKEY,
nameVARCHAR(40)
);
注意
CREATETABLE/INHERITS是Postgres語(yǔ)言擴(kuò)展.
兼容性
SQL92
除了本地可見(jiàn)的臨時(shí)表外,SQL92還定義了一條CREATEGLOBALTEMPORARYTABLE
語(yǔ)句,和一個(gè)可選的ONCOMMIT子句:
CREATEGLOBALTEMPORARYTABLEtable(columntype[
DEFAULTvalue][CONSTRAINTcolumn_constraint][,...])
[CONSTRAINTtable_constraint][ONCOMMIT{DELETE|PRESERVE}
ROWS]
對(duì)于臨時(shí)表,CREATETEMPORARYTABLE語(yǔ)句定義一個(gè)其他客戶端可見(jiàn)的新表和
定義表的列/字段和約束。
CREATETEMPORARYTABLE可選的ONCOMMIT子句用于聲明當(dāng)COMMIT事務(wù)時(shí),
是否需要將臨時(shí)表的行清空.如果ONCOMMIT子句省略了,(缺省值),就設(shè)
為ONCOMMITDELETEROWS(當(dāng)COMMIT時(shí)清空).
要?jiǎng)?chuàng)建一個(gè)臨時(shí)表:
CREATETEMPORARYTABLEactors(
idDECIMAL(03),
nameVARCHAR(40),
CONSTRAINTactor_idCHECK(id<150)
)ONCOMMITDELETEROWS;
UNIQUE子句
SQL92對(duì)UNIQUE定義了一些附加的功能.
表約束定義:
[CONSTRAINTname]UNIQUE(column[,...])
[{INITIALLYDEFERRED|INITIALLYIMMEDIATE}]
[[NOT]DEFERRABLE]
列/字段約束定義:
[CONSTRAINTname]UNIQUE
[{INITIALLYDEFERRED|INITIALLYIMMEDIATE}]
[[NOT]DEFERRABLE]
NULL子句
NULL"約束"(實(shí)際上不是一個(gè)約束)是一?個(gè)Postgres對(duì)SQL92的擴(kuò)展,把它
包含進(jìn)來(lái)是為了和NOTNULL子句對(duì)稱。因?yàn)檫@是任何列的缺省,它的出現(xiàn)只是
添亂。
[CONSTRAINTname]NULL
NOTNULL子句
SQL92對(duì)NOTNULL聲明了一些附加的功能:
[CONSTRAINTname]NOTNULL
[{INITIALLYDEFERRED|INITIALLYIMMEDIATE}]
[[NOT]DEFERRABLE]
CONSTRAINT子句
SQL92對(duì)約束聲明了一些附加的功能,并且還定義了斷言和域(domain)約束.
注意:Postgres還不支持域(domain)和斷言.
一個(gè)斷言是一種特殊類型的整合約束,并且和其他約束共享相同的名字空間
(namespace).不過(guò),一個(gè)斷言不象約束那樣必須依賴于某個(gè)基本表,所以
SQL-92提供了一個(gè)CREATEASSERTION語(yǔ)句作為定義約束的一個(gè)可選的手段:
CREATEASSERTIONnameCHECK(condition)
域約束是用CREATEDOMAIN或ALTERDOMAIN語(yǔ)句定義的:
域約束:
[CONSTRAINTname]CHECKconstraint
[{INITIALLYDEFERRED|INITIALLYIMMEDIATE}]
[[NOT]DEFERRABLE]
表約束定義:
[CONSTRAINTname]{PRIMARYKEY(column,...)|FOREIGNKEYconstraint
IUNIQUEconstraint|CHECKconstraint}
[{INITIALLYDEFERRED|INITIALLYIMMEDIATE}]
[[NOT]DEFERRABLE]
列約束定義:
[CONSTRAINTname]{NOTNULL|PRIMARYKEY|FOREIGNKEYconstraint|
UNIQUE|CHECKconstraint}
[{INITIALLYDEFERRED|INITIALLYIMMEDIATE}]
[[NOT]DEFERRABLE]
一個(gè)CONSTRAINT(約束)定義可以包含一個(gè)任意順序的延遲屬性的子句和/或
一個(gè)初始化約束式子句.
NOTDEFERRABLE
意味著每條SQL語(yǔ)句執(zhí)行后都必須校驗(yàn)是否違反約束規(guī)則.
DEFERRABLE
意味著,當(dāng)事務(wù)開始后,對(duì)約束的檢查可以推遲到晚些時(shí)候,但不晚于當(dāng)前事務(wù)的
結(jié)束
每個(gè)約束的約束模式總是有一個(gè)初始化缺省值,該值在事務(wù)開始時(shí)為該約束設(shè)
定。
INITIALLYIMMEDIATE
意思是,從事務(wù)開始時(shí)開始,在每條SQL語(yǔ)句執(zhí)行后約束都必須對(duì)其規(guī)則進(jìn)行合
法性檢查,看看有無(wú)違反。
INITIALLYDEFERRED
意思是,從事務(wù)開始時(shí)開始,對(duì)約束的檢查可以推遲到稍后進(jìn)行,但是不遲于本次
事務(wù)的結(jié)束。
CHECK子句
SQL92對(duì)CHECK聲明了一些附加功能,不管是表約束還是列/字段約束.
表約束定義:
[CONSTRAINTname]CHECK(VALUEcondition)
[{INITIALLYDEFERRED|INITIALLYIMMEDIATE}]
[[NOT]DEFERRABLE]
列約束定義:
[CONSTRAINTname]CHECK(VALUEcondition)
[{INITIALLYDEFERRED|INITIALLYIMMEDIATE)]
[[NOT]DEFERRABLE]
PRIMARYKEY子句
SQL92為PRIMARYKEY聲明了一些附加的功能:
表約束定義:
[CONSTRAINTname]PRIMARYKEY(column[,...])
[{INITIALLYDEFERRED|INITIALLYIMMEDIATE}]
[[NOT]DEFERRABLE]
列約束定義:
[CONSTRAINTname]PRIMARYKEY
[{INITIALLYDEFERRED|INITIALLYIMMEDIATE}]
[[NOT]DEFERRABLE]
4.1ORACLE的SQL介紹
SQL成了關(guān)系數(shù)據(jù)庫(kù)事實(shí)上的工業(yè)標(biāo)準(zhǔn)。全部主要的關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)都
支持SQL的某些型式,大多數(shù)RDBMS開發(fā)商打算ANSI標(biāo)準(zhǔn)去完善自己的產(chǎn)
品,Oracle也不例外。
一、SQL命令集
命令說(shuō)明
SELECT這是用得最普遍的命令,它用來(lái)從數(shù)據(jù)庫(kù)查索數(shù)據(jù)。
INSERT這三個(gè)命令分別用來(lái)在數(shù)據(jù)庫(kù)表中插入
UPDATE新行(ROWS)、改變已存在的行和去掉
DELETE不需要的行。它們有時(shí)被統(tǒng)稱為DML,即數(shù)據(jù)操縱語(yǔ)言
命令。
CREATE這三個(gè)命令用來(lái)動(dòng)態(tài)地創(chuàng)建、改變和去掉。
ALTER任何數(shù)據(jù)結(jié)構(gòu),例如表、視圖和索引等。
DROP有時(shí)被統(tǒng)稱為DDL,即數(shù)據(jù)定義語(yǔ)言命令。
GRANT這兩個(gè)命令用來(lái)對(duì)ORACLE數(shù)據(jù)庫(kù)。
REVOKE和其中的結(jié)構(gòu)授與或去掉訪問(wèn)權(quán)限。
注意:還有更多的其它SQL命令詳見(jiàn)ORACLE軟件的幫助。
二、基本的查詢語(yǔ)句
SELECT語(yǔ)句從數(shù)據(jù)庫(kù)中查索信息,執(zhí)行全部關(guān)系代數(shù)的運(yùn)算符。
其最簡(jiǎn)單的語(yǔ)句型式必須包括:
(1)一個(gè)SELECT子句,列出要顯示的列(Columns)0
(2)一個(gè)FROM子句,指定所包含的表。
例4.1:顯示EMP表中的部門號(hào)、雇員名和員工號(hào),可用如下語(yǔ)句:
SELECT部門號(hào),雇員名,員工號(hào)
FROMEMP;
部門號(hào)雇員名員工號(hào)
20劉炎6801
10郭潔6702
10周敏6705
30郭丹丹7008
30局山7018
注意:列名由逗號(hào)分隔開。
三、ORDERBY子句
通常查詢結(jié)果行的順序沒(méi)有限定。ORDERBY子句可以用來(lái)排序行。使用時(shí),
ORDERBY子句必須總是放在SELECT語(yǔ)句的最后。
例4.2:以員工號(hào)排序,可用如下語(yǔ)句:
SELECT員工號(hào),雇員名,職務(wù),工資
FROMEMP
ORDERBY員工號(hào);
員工號(hào)雇員名職務(wù)工資*12
6702郭潔秘書6000
6705周敏高級(jí)工程師12000
6801劉炎軟件工程師7200
7008郭丹丹硬件工程師7200
7018局山辦事員6000
數(shù)據(jù)的默認(rèn)排序是升序(ASCENDING):
.最小的數(shù)值放最前面。
.最早的日期放最前面。
.字符值按字母順序。
四、WHERE子句
WHERE子句與關(guān)系代數(shù)的限制(Restriction)運(yùn)算符對(duì)應(yīng),它包括將顯示的行
必須滿足的條件。使用時(shí),WHERE子句必須跟在FROM子句后面,
其格式如下:
SELECT〈查詢的列〉
FROM〈表)
[WHERE〈條件〉]
這里WHERE子句表示要滿足一定的條件,即可以比較列中的值、文字值、算
術(shù)表達(dá)式或函數(shù)。WHERE子句一般要求三個(gè)部分:
(1)一個(gè)列名。
⑵比較運(yùn)算符。
(3)一個(gè)列名、常數(shù)或值的列表。
在WHERE子句中使用的比較運(yùn)算符分為邏輯和SQL兩類。
五、SQL運(yùn)算符
有四個(gè)SQL運(yùn)算符用于全部數(shù)據(jù)類型的操作:
運(yùn)算符意義
BETWEEN...AND...在兩個(gè)值之間(包含兩值)。
IN(list)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024高中語(yǔ)文第二單元置身詩(shī)境緣景明情自主賞析夢(mèng)游天姥吟留別學(xué)案新人教版選修中國(guó)古代詩(shī)歌散文欣賞
- 2024高考化學(xué)一輪復(fù)習(xí)第十一章有機(jī)化學(xué)基礎(chǔ)第三講烴的含氧衍生物規(guī)范演練含解析新人教版
- 2024高考地理一輪復(fù)習(xí)第七章區(qū)域產(chǎn)業(yè)活動(dòng)第24講工業(yè)區(qū)位因素與工業(yè)地域聯(lián)系教案湘教版
- DB42-T 2341-2024 綜合管廊頂管工程技術(shù)規(guī)程
- 二零二五年版環(huán)保建材板材買賣合同范本3篇
- 2024年海南經(jīng)貿(mào)職業(yè)技術(shù)學(xué)院高職單招語(yǔ)文歷年參考題庫(kù)含答案解析
- 2024年海南體育職業(yè)技術(shù)學(xué)院高職單招語(yǔ)文歷年參考題庫(kù)含答案解析
- 危險(xiǎn)化學(xué)品典型案例課件
- 2024年河南對(duì)外經(jīng)濟(jì)貿(mào)易職業(yè)學(xué)院高職單招職業(yè)適應(yīng)性測(cè)試歷年參考題庫(kù)含答案解析
- 二零二五年城市夜景照明設(shè)施改造與維護(hù)服務(wù)合同范本3篇
- 江蘇省蘇州市昆山、太倉(cāng)、常熟、張家港四市2024-2025學(xué)年九年級(jí)上學(xué)期期末陽(yáng)光測(cè)試道法卷(含答案)
- 溫濕度記錄管理制度模版(3篇)
- wps計(jì)算機(jī)二級(jí)選擇押題單選題100道及答案
- 2025的委托拍賣合同范本
- 管理制度醫(yī)療器械質(zhì)量管理制度
- 顱腦損傷的高壓氧治療
- 公司章程模板五篇
- 機(jī)械工程師招聘筆試題及解答
- 2023年基礎(chǔ)會(huì)計(jì)學(xué)課后習(xí)題及參考答案
- GB/T 44265-2024電力儲(chǔ)能電站鈉離子電池技術(shù)規(guī)范
- 醫(yī)療機(jī)構(gòu)病歷管理規(guī)定(2024 年版)
評(píng)論
0/150
提交評(píng)論