SQL參考手冊使用說明_第1頁
SQL參考手冊使用說明_第2頁
SQL參考手冊使用說明_第3頁
SQL參考手冊使用說明_第4頁
SQL參考手冊使用說明_第5頁
已閱讀5頁,還剩853頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

頁SQL參考手冊O(shè)racle、DB2、SQLServer、MySQL、SQLite本文檔所使用的數(shù)據(jù)庫版本說明Oracle.0Express(某些代碼為企業(yè)版)DB29.7ExpressSQLServer2005/2008Express(某些代碼為Developer版本)MySQL5.1.50-communitySQLiteRelease3.7.4

基本SQL命令 15啟動程序 15清除輸入緩沖 18顯示表結(jié)構(gòu) 18HelloWorld 21變量定義與賦值 24MERGE語句 25兩表UPDATE處理 29數(shù)據(jù)類型 32數(shù)字類型 32字符類型 36日期類型 39二進(jìn)制類型 1其他類型 1運(yùn)算符號 1算術(shù)運(yùn)算符 1賦值運(yùn)算符 1按位運(yùn)算符 1比較運(yùn)算符 1邏輯運(yùn)算符 1ALL/ANY/SOME 1EXISTS 1IN 1LIKE 1字符串串聯(lián)運(yùn)算符 1一元運(yùn)算符 1運(yùn)算符優(yōu)先級 1DDL 1創(chuàng)建數(shù)據(jù)庫 1創(chuàng)建構(gòu)架 1創(chuàng)建表 1創(chuàng)建表同時定義主鍵 1自動遞增列 1計算列 1約束 1表/字段的備注 1通過查詢創(chuàng)建表 1修改表 1新增主鍵 1新增唯一約束 1新增其他約束 1新增IN方式的約束 1Check約束中調(diào)用自定義函數(shù) 1新增列 1刪除列 1修改列名 1修改列的數(shù)據(jù)類型 1修改列的默認(rèn)值 1變更表名 1表加入緩存 1創(chuàng)建索引 1概述 1創(chuàng)建普通索引 1SQLServer聚集索引/非聚集索引 1SQLServer索引中的INCLUDE 1創(chuàng)建用戶 1創(chuàng)建PROFILE 1用戶權(quán)限設(shè)置 1對用戶撤銷權(quán)限REVOKE 1對用戶分配角色 1禁用、啟用登陸帳戶 1登陸帳戶改名 1登陸帳戶改密碼 1數(shù)據(jù)庫用戶改名 1更改數(shù)據(jù)庫用戶默認(rèn)構(gòu)架(default_schema) 1刪除用戶 1控制結(jié)構(gòu) 1IF/ELSE 1WHILE 1FOR 1LOOP 1REPEAT 1循環(huán)控制Break與Continue 1查詢 1TOP-N 1只取前面N條 1前面N條到N+M條(使用ROWNUM方案) 1前面N條到N+M條(使用TOP方案) 1前面N條到N+M條(使用MINUS/EXCEPT方案) 1分組的TOP-N 1行轉(zhuǎn)換為列 1行轉(zhuǎn)換為列2 1樹形結(jié)構(gòu) 1多行轉(zhuǎn)一行 1JOIN關(guān)聯(lián) 1INNERJOIN 1LEFTOUTERJOIN 1RIGHTOUTERJOIN 1CROSSJOIN 1FULLJOIN 1CROSSAPPLY和OUTERAPPLY(SQLServerOnly) 1UNION-UNIONALL-INTERSECT-MINUS/EXCEPT 1UNION-合并且去除重復(fù)記錄 1UNIONALL-合并且不去除重復(fù)記錄 1INTERSECT–僅僅給出2個表都有的數(shù)據(jù)(去除重復(fù)記錄) 1MINUS/EXCEPT–返回第一個表中有、第二個表中沒有的數(shù)據(jù) 1隨機(jī)獲取數(shù)據(jù)的處理 1視圖 1單表簡單視圖 1只讀視圖 1約束可更新視圖 1單表統(tǒng)計視圖 1多表關(guān)聯(lián)視圖 1帶有“主鍵”的視圖 1同義詞 1存儲過程 1創(chuàng)建時的基本定義與調(diào)用 1修改存儲過程 1參數(shù)定義 1單個參數(shù) 1IN、OUT、INOUT 1參數(shù)的默認(rèn)值 1指定參數(shù)名稱調(diào)用 1存儲過程返回結(jié)果集 1函數(shù) 1創(chuàng)建時的基本定義與調(diào)用 1創(chuàng)建返回結(jié)果集的函數(shù) 1觸發(fā)器 1統(tǒng)一的測試表 1INSERT 1UPDATE 1DELETE 1INSERT/UPDATE/DELETE行為判斷 1Oracle、DB2語句級/行級 1SQLServerINSERT/UPDATE/DELETE多行 1例子二 1針對特定列的觸發(fā) 1針對特定條件的觸發(fā) 1嵌套觸發(fā)器 1遞歸觸發(fā)器 1通過數(shù)據(jù)庫參數(shù)禁止遞歸 1通過代碼避免過度遞歸 1觸發(fā)器實(shí)現(xiàn)數(shù)據(jù)完整性的處理1 1觸發(fā)器實(shí)現(xiàn)數(shù)據(jù)完整性的處理2 1已創(chuàng)建的觸發(fā)器的查詢 1INSTEADOF觸發(fā)器 1DDL觸發(fā)器數(shù)據(jù)庫級別 1DDL觸發(fā)器服務(wù)器級別 1DDL觸發(fā)器服務(wù)器級別-登錄時使用 1小結(jié) 1外鍵約束 1默認(rèn)外鍵約束方式 1DELETECASCADE方式 1UPDATECASCADE方式 1SETNULL方式 1關(guān)于非主鍵的外鍵設(shè)置 1小結(jié) 1游標(biāo)處理 1簡單循環(huán)處理I 1簡單循環(huán)處理II 1支持來回滾動的游標(biāo) 1帶參數(shù)的游標(biāo) 1用于更新的游標(biāo) 1游標(biāo)的狀態(tài) 1FOR的使用 1BULKCOLLECT使用 1SELECTINTO的使用方式 1FETCHINTO的使用方式 1RETURNINGINTO的使用方式 1FORALL使用 1小結(jié) 1數(shù)據(jù)庫系統(tǒng)自帶函數(shù) 1說明 1字符函數(shù) 1由字符獲取ASCII碼ASCII 1格式化為ASCII字符串信息ASCIISTR(OracleOnly) 1由字符獲取UNICODE碼 1返回字符集CHARSET(MySQLOnly) 1由ASCII碼獲取字符CHR/CHAR 1由UNICODE碼獲取字符NCHAR 1字符串連接CONCAT||/+ 1單詞首字母大寫INITCAP(OracleOnly) 1字符替換INSERT(MySQLOnly) 1字符串搜索INSTR/POSSTR/CHARINDEX/LOCATE 1獲取字符串左邊開始指定個數(shù)的字符LEFT 1字符串長度LENGTH/LEN 1加載文件LOAD_FILE(MySQLOnly) 1字符轉(zhuǎn)換為小寫LOWER/LCASE 1左邊字符填充LPAD 1去除左邊空格與字符LTRIM 1MAKE_SET(MySQLOnly) 1檢索指定模式首次出現(xiàn)位置PATINDEX(SQLServerOnly) 1正則表達(dá)式檢索REGEXP_LIKE/REGEXP 1正則表達(dá)式字符截取REGEXP_SUBSTR(OracleOnly) 1正則表達(dá)式字符位置檢索REGEXP_INSTR(OracleOnly) 1正則表達(dá)式字符替換REGEXP_REPLACE(OracleOnly) 1字符替換REPLACE 1增加標(biāo)示符定義QUOTENAME/QUOTE 1重復(fù)字符串REPLICATE/REPEAT 1字符反轉(zhuǎn)REVERSE 1獲取字符串右邊開始指定個數(shù)的字符RIGHT 1右邊字符填充RPAD 1去除右邊空格與字符RTRIM 1取得發(fā)音SOUNDEX 1取得發(fā)音的不同DIFFERENCE 1返回由重復(fù)的空格組成的字符串SPACE 1小數(shù)轉(zhuǎn)換為字符串STR(SQLServerOnly) 1逐字符比較字符串大小STRCMP(MySQLOnly) 1刪除指定長度的字符并在指定的起始點(diǎn)插入另一組字符STUFF(SQLServerOnly) 1返回字符串一部分SUBSTR/SUBSTRING 1SUBSTRING_INDEX(MySQLOnly) 1TRANSLATE 1刪除前后空格或其它字符TRIM 1轉(zhuǎn)換為大寫UPPER 1數(shù)學(xué)函數(shù) 1絕對值A(chǔ)BS 1反余弦ACOS 1反正弦ASIN 1反正切ATAN 1反正切ATAN2/ATN2 1十進(jìn)制轉(zhuǎn)二進(jìn)制BIN(MySQLOnly) 1二進(jìn)制轉(zhuǎn)十進(jìn)制BIN_TO_NUM(OracleOnly) 1按位與操作BITAND(OracleOnly) 1向上取整CEIL/CEILING 1進(jìn)制轉(zhuǎn)換CONV(MySQLOnly) 1余弦COS 1雙曲余弦COSH(OracleOnly) 1三角余切COT(SQLServerOnly) 1CRC32(MySQLOnly) 1度數(shù)為單位的角度DEGREES 1指數(shù)值EXP 1向下取整FLOOR 1保留小數(shù)位數(shù)FORMAT(MySQLOnly) 1轉(zhuǎn)16進(jìn)制HEX 1INTERVAL 1自然對數(shù)LN/LOG 1對數(shù)LOG 1以2為底的對數(shù)LOG2 1以10為底的對數(shù)LOG10 1余數(shù)MOD/% 1PI的常量值PI 1乘指定次方POWER 1度數(shù)值返回弧度值RADIANS 1隨機(jī)數(shù)RAND 1四舍五入ROUND 1表達(dá)式的正(+1)、零(0)或負(fù)(-1)號SIGN 1正弦SIN 1雙曲正弦SINH(OracleOnly) 1平方SQUARE(SQLServerOnly) 1平方根SQRT 1正切TAN 1雙曲正切TANH(OracleOnly) 1截尾TRUNC/ROUND 1數(shù)字格式化顯示 1日期函數(shù) 1取得數(shù)據(jù)庫系統(tǒng)時間SYSDATE/GETDATE() 1日期增減計算 1日期組成部分的取得 1兩個日期之間的差值 1日期的截尾 1日期的名稱DATENAME 1日期/時間的格式化[日期轉(zhuǎn)換為字符串] 1日期/時間的格式化[字符串轉(zhuǎn)換為日期] 1時間/秒轉(zhuǎn)換 1新建日期/時間 1時區(qū)相關(guān) 1一般比較函數(shù) 1取得最大值GREATEST 1取得最小值LEAST 1數(shù)據(jù)字典類函數(shù) 1返回列名COL_NAME 1列屬性COLUMNPROPERTY 1數(shù)據(jù)庫選項設(shè)置DATABASEPROPERTYEX 1數(shù)據(jù)庫中的主體的ID號DATABASE_PRINCIPAL_ID 1取得數(shù)據(jù)庫標(biāo)識號DB_ID(SQLServerOnly) 1取得數(shù)據(jù)庫名DB_NAME/DATABASE 1取得文件標(biāo)識號FILE_IDEX 1取得邏輯文件名FILE_NAME 1取得文件組標(biāo)識號FILEGROUP_ID 1取得文件組名FILEGROUP_NAME 1讀取文件屬性FILEPROPERTY 1取得工作站標(biāo)識號HOST_ID(SQLServerOnly) 1取得工作站名稱HOST_NAME(SQLServerOnly) 1返回定義的源文本OBJECT_DEFINITION 1返回對象標(biāo)識OBJECT_ID 1返回對象名稱OBJECT_NAME 1返回對象構(gòu)架名OBJECT_SCHEMA_NAME 1對象的有關(guān)信息OBJECTPROPERTY 1對象的有關(guān)信息OBJECTPROPERTYEX 1獲取當(dāng)前用戶可用權(quán)限PERMISSIONS 1獲取架構(gòu)名稱SCHEMA_ID 1獲取架構(gòu)名稱SCHEMA_NAME 1獲取服務(wù)器實(shí)例的屬性信息SERVERPROPERTY 1返回會話的SET選項設(shè)置SESSIONPROPERTY 1返回上次更新指定索引的統(tǒng)計信息的日期STATS_DATE 1返回用戶登錄名的安全標(biāo)識號(SID)SUSER_SID(SQLServerOnly) 1從用戶的安全標(biāo)識號(SID)返回登錄標(biāo)識名SUSER_SNAME(SQLServerOnly) 1取得用戶IDUID/USER_ID 1取得用戶名USER_NAME 1獲取數(shù)據(jù)類型名稱的編號TYPE_ID 1獲取指定類型ID的未限定的類型名稱TYPE_NAME 1返回有關(guān)數(shù)據(jù)類型的信息TYPEPROPERTY 1其他函數(shù) 1取得客戶端應(yīng)用程序名字APP_NAME 1數(shù)字或字符轉(zhuǎn)換為BIGINT數(shù)據(jù)類型BIGINT 1數(shù)據(jù)校驗BINARY_CHECKSUM 1數(shù)據(jù)轉(zhuǎn)換為BLOB類型BLOB 1類型轉(zhuǎn)換CAST 1字符串轉(zhuǎn)換為行編號CHARTOROWID(OracleOnly) 1返回最近語句更新行數(shù)CHANGE 1數(shù)據(jù)校驗CHECKSUM 1數(shù)據(jù)校驗CHECKSUM_AGG 1數(shù)據(jù)轉(zhuǎn)換為CLOB類型CLOB 1返回列的定義的長度COL_LENGTH 1條件判斷函數(shù)DECODE(Oracle、DB2Only) 1非空判斷NVL/ISNULL 1非空判斷NVL2 1取得第一個非空數(shù)據(jù)COALESCE 1取得字段所占用字節(jié)數(shù)VSIZE/DATALENGTH 1判斷是否是日期ISDATE(SQLServerOnly) 1判斷是否是數(shù)字ISNUMERIC(SQLServerOnly) 1取得GUID號SYS_GUID/NEWID 1如果兩個指定的表達(dá)式相等,則返回空值NULLIF 1取指定位置的數(shù)據(jù)ELT(MySQLOnly) 1取數(shù)據(jù)的位置FIELD(MySQLOnly) 1FIND_IN_SET(MySQLOnly) 1PARSENAME(SQLServerOnly) 1獲取數(shù)據(jù)庫當(dāng)前的版本 1IP地址轉(zhuǎn)換處理 1統(tǒng)計分析函數(shù) 1測試表/數(shù)據(jù) 1ROW_NUMBER順序編號 1RANK排名不連續(xù) 1DENSE_RANK排名連續(xù) 1NTILE分組 1計算一行在組中的相對位置CUME_DIST 1PERCENT_RANK 1計算百分比RATIO_TO_REPORT 1窗口函數(shù)(Oracle特有) 1逐步累計 1移動平均1 1移動平均2 1移動平均3 1FIRST_VALUEandLAST_VALUE 1LAG/LEAD 1FIRST/LAST 1WITHINGROUP 1PERCENTILE_CONT|PERCENTILE_DISC 1中位數(shù)Median 1MODEL查詢函數(shù)(Oracle特有) 1CURRENTV()取當(dāng)前行 1ISPRESENT/PRESENTV/PRESENTNNV 1IGNORENAV選項 1RULESUPDATE選項 1REFERENCE語句與CV函數(shù) 1Iterative方法 1AUTOMATICORDER 1排序規(guī)則 1安全函數(shù) 1是否可訪問指定數(shù)據(jù)庫HAS_DBACCESS(SQLServerOnly) 1用戶是否是Microsoft?WindowsNT?組或MicrosoftSQLServer?角色的成員IS_MEMBER(SQLServerOnly) 1指明當(dāng)前的用戶登錄是否是指定的服務(wù)器角色的成員IS_SRVROLEMEMBER(SQLServerOnly) 1取得連接到SQLServer實(shí)例的登錄名ORIGINAL_LOGINSYSTEM_USER 1取得用戶名USER 1聚集函數(shù) 1平均值A(chǔ)VG 1相關(guān)系數(shù)CORR(Oracle) 1行的計數(shù)COUNT 1COUNT_BIG 1總體協(xié)方差COVAR_POP 1樣本協(xié)方差COVAR_SAMP 1最大值MAX 1中位數(shù)MEDIAN 1最小值MIN 1標(biāo)準(zhǔn)偏差STDDEV/STDEV 1總體標(biāo)準(zhǔn)方差STDDEV_POP/樣本標(biāo)準(zhǔn)方差STDDEV_SAMP 1填充統(tǒng)計標(biāo)準(zhǔn)偏差STDEVP(SQLServerOnly) 1合計值SUM 1COMPUTESUM(SQLServer) 1方差VARIANCE/VAR 1總體方差VAR_POP/樣本方差VAR_SAMP 1填充的統(tǒng)計方差VARP(SQLServerOnly) 1ROLLUP與CUBE查詢 1ROLLUP-簡單用法 1ROLLUP-GROUPING 1ROLLUP-調(diào)整NULL顯示 1CUBE-簡單用法 1CUBE-GROUPING 1大小寫敏感問題 1表名字段名的例子 1=操作的例子 1LIKE操作的例子 1排序的例子 1排序規(guī)則沖突的處理-JOIN 1排序規(guī)則沖突的處理-UNION 1關(guān)于中文漢字的排序 1異常處理 1簡單異常測試 1沒有異常處理時 1有異常處理時 1取得錯誤代碼與錯誤信息 1自定義錯誤 1簡單命名方式 1與數(shù)據(jù)庫錯誤關(guān)聯(lián) 1應(yīng)用級別的錯誤 1錯誤的傳播 1當(dāng)前代碼塊未處理異常 1當(dāng)前代碼塊處理異常 1數(shù)據(jù)字典表 1構(gòu)架 1用戶 1表 1字段 1表備注說明信息 1字段備注說明信息 1視圖 1視圖列 1觸發(fā)器 1存儲過程 1函數(shù) 1依賴關(guān)系 1約束 1主鍵 1唯一 1外鍵 1其他 1事務(wù)處理 1簡單的正常提交-異?;貪L 1自治事務(wù)(OracleOnly) 1多用戶間鎖的處理 1簡單鎖定 1SQLServer(nolock) 1SQLServer(READPAST) 1死鎖 1隊列處理 1基礎(chǔ)知識 1HelloWorld 1HelloWorld2 1臨時表 1創(chuàng)建臨時表 1插入數(shù)據(jù)-查詢 1總結(jié) 1分區(qū)表 1RANGE分區(qū) 1初期分區(qū)定義 1查詢分區(qū)信息 1新增分區(qū) 1刪除分區(qū) 1分區(qū)的合并 1分區(qū)的拆分 1計算列的分區(qū) 1列表分區(qū)(List分區(qū)) 1初期分區(qū)定義 1新增分區(qū) 1刪除分區(qū) 1分區(qū)的拆分 1分區(qū)的合并 1散列分區(qū)(Hash分區(qū)) 1初期分區(qū)定義 1增加分區(qū) 1減少分區(qū) 1組合分區(qū) 1初期分區(qū)定義 1分區(qū)視圖 1動態(tài)SQL 1測試表/數(shù)據(jù) 1直接執(zhí)行的方式 1簡單執(zhí)行 1參數(shù)的傳入 1單條結(jié)果的獲取 1游標(biāo)方式獲取 1執(zhí)行存儲過程的方式 1簡單的執(zhí)行 1參數(shù)的傳入 1單條結(jié)果的獲取 1游標(biāo)方式獲取 1小結(jié) 1數(shù)據(jù)庫鏈接 1Oracle 1SQLServer 1MySQL 1Access 1Excel 1權(quán)限體系結(jié)構(gòu) 1數(shù)據(jù)庫作業(yè) 1作業(yè)的創(chuàng)建 1作業(yè)的查詢 1作業(yè)的修改 1作業(yè)的刪除 1查詢的優(yōu)化 1獲取執(zhí)行計劃 1獲取查詢計劃與統(tǒng)計信息 1提示Hint 1優(yōu)化器提示 1連接提示 1表反連接提示 1Index提示 1Parallel提示 1表提示 1查詢提示 1數(shù)據(jù)庫系統(tǒng)參數(shù) 1查詢系統(tǒng)參數(shù) 1修改系統(tǒng)參數(shù) 1監(jiān)控運(yùn)行狀況 1數(shù)據(jù)庫會話的基本參數(shù)設(shè)置SET 1日期和時間語句 1設(shè)置一周的第一天 1設(shè)置輸入的年月日順序 1鎖定語句 1死鎖優(yōu)先級設(shè)置 1鎖定超時設(shè)置 1雜項語句 1提交事務(wù)時是否關(guān)閉游標(biāo) 1檢查是否遵從FIPS127-2標(biāo)準(zhǔn) 1允許將顯式值插入表的標(biāo)識列中 1指定會話的語言環(huán)境 1雙引號分隔標(biāo)識符設(shè)置 1查詢執(zhí)行語句 1溢出或被零除錯誤時的處理 1測試響應(yīng)模式 1顯示行數(shù)信息設(shè)置 1僅僅編譯不執(zhí)行 1語法檢查 1查詢開銷設(shè)置 1處理指定行數(shù)后結(jié)束 1SQL-92設(shè)置語句 1ANSI_DEFAULTS設(shè)置 1空/非空的默認(rèn)值設(shè)定 1錯誤警告的提示 1統(tǒng)計語句 1查詢計劃的設(shè)置 1查看查詢計劃的詳細(xì)情況 1查看查詢計劃文本 1XML方式查看查詢計劃 1顯示磁盤活動統(tǒng)計信息 1顯示查詢計劃與實(shí)際執(zhí)行情況信息 1顯示花費(fèi)時間 1事務(wù)語句 1隱式事務(wù)模式 1分布式事務(wù) 1隔離級別的設(shè)定 1是否自動回滾 1導(dǎo)出/導(dǎo)入 1簡單表的導(dǎo)出/導(dǎo)入 1詳細(xì)參數(shù)與用法 1大容量導(dǎo)入/導(dǎo)出操作 1普通表導(dǎo)入導(dǎo)出 1數(shù)據(jù)文件結(jié)構(gòu)與表結(jié)構(gòu)不匹配情況下的導(dǎo)入 1存在特殊字符情況的處理 1使用外部表 1備份與恢復(fù) 1錯誤恢復(fù) 1FlashbackQuery 1執(zhí)行操作系統(tǒng)下的程序 1執(zhí)行外部sql文件 1XML 1簡單格式化 1多行數(shù)據(jù)轉(zhuǎn)化成一行 1SQL查詢 1前提條件 1query查詢 1Exist查詢 1value查詢 1modify查詢 1

基本SQL命令啟動程序OracleC:\DocumentsandSettings\wzq>sqlplusSQL*Plus:Release.0-Productionon星期二8月2411:08:522010Copyright(c)1982,2005,Oracle.Allrightsreserved.Enteruser-name:hrEnterpassword:Connectedto:OracleDatabase10gExpressEditionRelease.0-ProductionSQL>DB2C:\DocumentsandSettings\wzq>DB2CMD.exeDB2SETCP.BATDB2.EXE彈出新窗口(c)CopyrightIBMCorporation1993,2007DB2客戶機(jī)9.7.1的命令行處理器可從命令提示符處發(fā)出數(shù)據(jù)庫管理器命令和SQL語句。例如:db2=>connecttosampledb2=>bindsample.bnd要獲得一般幫助,輸入:?。要獲得命令幫助,輸入:?command,其中command可以是數(shù)據(jù)庫管理器命令的前幾個關(guān)鍵字。例如:?CATALOGDATABASE用于關(guān)于CATALOGDATABASE命令的幫助?CATALOG用于關(guān)于所有CATALOG命令的幫助。要退出db2交互方式,在命令提示符處輸入QUIT。在非交互方式下,所有命令都必須以“db2”作前綴。要列出當(dāng)前命令選項設(shè)置,輸入LISTCOMMANDOPTIONS。要獲取更詳細(xì)的幫助,請參閱OnlineReferenceManual。Db2=>db2=>connecttotest數(shù)據(jù)庫連接信息數(shù)據(jù)庫服務(wù)器=DB2/NT9.7.1SQL授權(quán)標(biāo)識=WZQ本地數(shù)據(jù)庫別名=TEST注意:Db2默認(rèn)情況下,以回車換行,認(rèn)為是語句執(zhí)行結(jié)束。如果要換行,需要使用\符號來標(biāo)記為換行的處理。如果要使用;作為語句結(jié)束的處理,建議使用Db2.exe-t的參數(shù),這種情況下,數(shù)據(jù)庫將遇到分號的時候,才認(rèn)為是語句結(jié)束。后面大部分查詢代碼(非存儲過程),將都是用Db2.exe-t的處理邏輯。E:\IBM\SQLLIB\BIN>db2.exe?optionsdb2[option...][db2-command|sql-statement|[?[phrase|message|sqlstate|class-code]]]option:-a、-c、-d、-e{c|s}、-finfile、-i、-lhistfile、-m、-n、-o、-p、-q、-rreport、-s、-t、-td;、-v、-w、-x和-zoutputfile。選項描述缺省設(shè)置-a顯示SQLCAOFF-c自動落實(shí)ON-d檢索并顯示XML聲明OFF-e顯示SQLCODE/SQLSTATEOFF-f讀取輸入文件OFF-i顯示XML數(shù)據(jù)并帶有縮進(jìn)OFF-l將命令記錄到歷史記錄文件中OFF-m顯示受影響的行數(shù)OFF-n除去換行字符OFF-o顯示輸出ON-p顯示db2交互式提示符ON-q保留空格和換行符OFF-r將輸出報告保存到文件OFF-s在命令出錯時停止執(zhí)行OFF-t設(shè)置語句終止字符OFF-v回傳當(dāng)前命令OFF-w顯示FETCH/SELECT警告消息ON-x不打印列標(biāo)題OFF-z將所有輸出保存到輸出文件OFF注意:使用DB2OPTIONS環(huán)境變量定制選項缺省值。緊跟選項字母后的減號(-)使該選項關(guān)閉。使用UPDATECOMMANDOPTIONS更改選項設(shè)置(以交互方式或文件輸入方式)。對于存儲過程,可以通過db2-td@來使用@字符,作為命令的結(jié)束字符.SQLServerC:\DocumentsandSettings\wzq>sqlcmd-S"HOME-BED592453C\SQLEXPRESS"1>USEstock;2>go已將數(shù)據(jù)庫上下文更改為'Stock'。1>或者C:\DocumentsandSettings\wzq>sqlcmd-S"localhost\SQLEXPRESS"1>usestock2>go已將數(shù)據(jù)庫上下文更改為'Stock'。此處使用MicrosoftWindows身份驗證模式進(jìn)行連接,沒有輸入用戶名與密碼?;蛘逤:\Users\zqwang>osql-E-S"localhost\SQLEXPRESS"1>usestock2>:reset無法打開文件“eset”3>reset1>usetest2>goMySQLE:\MySQL\MySQLServer5.1\bin>mysql-uroot-pEnterpassword:********WelcometotheMySQLmonitor.Commandsendwith;or\g.YourMySQLconnectionidis4Serverversion:5.1.50-communityMySQLCommunityServer(GPL)Copyright(c)2000,2010,Oracleand/oritsaffiliates.Allrightsreserved.ThissoftwarecomeswithABSOLUTELYNOWARRANTY.Thisisfreesoftware,andyouarewelcometomodifyandredistributeitundertheGPLv2licenseType'help;'or'\h'forhelp.Type'\c'toclearthecurrentinputstatement.mysql>usetestDatabasechangedSQLiteE:\SQLite\SQLite\Debug>sqlitetest.dbSQLiteversion3.7.152012-12-1213:36:53Enter".help"forinstructionsEnterSQLstatementsterminatedwitha";"sqlite>注:上面的命令,后面跟了一個test.db,就是使用test數(shù)據(jù)庫。如果數(shù)據(jù)庫文件不存在,那么將自動創(chuàng)建一個。(當(dāng)建表的時候創(chuàng)建)清除輸入緩沖OracleSQLPlus中輸入錯誤,通過多次回車清理SQL>SELECT*2FROM3input_err4SQL>SQLServerSqlCmd中輸入錯誤,通過:reset清理1>SELECT*2>FROM3>inputerror4>5>:reset1>MySQL輸入\c清除mysql>SELECT->FROM->\cmysql>顯示表結(jié)構(gòu)OracleSQLPlus中DESCSQL語句中無效SQL>descall_tab_columnsNameNull?TypeOWNERNOTNULLVARCHAR2(30)TABLE_NAMENOTNULLVARCHAR2(30)COLUMN_NAMENOTNULLVARCHAR2(30)DATA_TYPEVARCHAR2(106)DATA_TYPE_MODVARCHAR2(3)DATA_TYPE_OWNERVARCHAR2(30)DB2db2=>describeselect*fromtest列信息列數(shù):1SQL類型類型長度列名名稱長度497INTEGER4ID2或者db2=>describeTABLEtest數(shù)據(jù)類型列列名模式數(shù)據(jù)類型名稱長小數(shù)位NULLIDSYSIBMINTEGER40是1條記錄已選擇。SQLServerSqlCmd中sp_help1>sp_help'SALE_REPORT'2>go輸出略MySQLmysql>descsale_report;+++++++|Field|Type|Null|Key|Default|Extra|+++++++|SALE_DATE|datetime|NO||NULL|||SALE_ITEM|varchar(2)|NO||NULL|||SALE_MONEY|decimal(10,2)|NO||NULL||+++++++3rowsinset(0.03sec)

HelloWorldOracleSQL>setserveroutputonSQL>BEGIN2dbms_output.put_line('HelloWorld');3END;4/HelloWorldPL/SQLproceduresuccessfullycompleted.DB2注:DB2里面的SYSIBM.SYSDUMMY1等價于Oracle里面的Dual也就是只有1行數(shù)據(jù)的因為Oracle和DB2不能SELECT1必須要SELECT1FROM表DB2沒有print之類的語句。只好把結(jié)果寫入臨時表db2=>CREATETABLEtest_helloworld(\db2(cont.)=>datavarchar(20)\db2(cont.)=>)DB20000ISQL命令成功完成。Db2=>CREATEPROCEDUREHelloWorld\db2(cont.)=>LANGUAGESQL\db2(cont.)=>BEGIN\db2(cont.)=>INSERTINTOtest_helloworld\db2(cont.)=>SELECT‘HelloWorld’FROMSYSIBM.SYSDUMMY1;\db2(cont.)=>ENDDB20000ISQL命令成功完成。Db2=>callHelloWorld返回狀態(tài)=0db2=>select*fromtest_helloworldDATAHelloWorld1條記錄已選擇。SQLServer1>2>BEGINPRINT‘HelloWorld’;4>END;5>goHelloWorldMySQL暫不支持匿名的BEGINEND只能通過mysql>DELIMITER//mysql>CREATEPROCEDUREHelloWorld()->BEGIN->SELECT‘HelloWorld’;->END//QueryOK,0rowsaffected(0.00sec)mysql>callHelloWorld();//++|HelloWorld|++|HelloWorld|++1rowinset(0.00sec)QueryOK,0rowsaffected(0.00sec)注:如果HelloWorld都失敗,那么首先需要檢查數(shù)據(jù)庫的存儲引擎mysql>showvariableslike'%storage_engine%';+++|Variable_name|Value|+++|storage_engine|MyISAM|+++1rowinset(0.00sec)存儲引擎為InnoDB的數(shù)據(jù)庫,能使用存儲過程。mysql>showvariableslike'%storage_engine%';+++|Variable_name|Value|+++|storage_engine|InnoDB|+++1rowinset(0.01sec)

變量定義與賦值OracleSQL>DECLARE2testvalue1VARCHAR2(20);3testvalue2VARCHAR2(20);4BEGIN5testvalue1:='FirstTest!';6SELECT'SecondTest!'INTOtestvalue2FROMDUAL;7dbms_output.put_line(testvalue1||testvalue2);8END;9/FirstTest!SecondTest!PL/SQL過程已成功完成。DB2db2=>CREATEPROCEDUREFirstTest\db2(cont.)=>LANGUAGESQL\db2(cont.)=>BEGIN\db2(cont.)=>DECLAREtestvalueVARCHAR(20);\db2(cont.)=>SETtestvalue='FirstTest!';\db2(cont.)=>INSERTINTOtest_helloworldVALUES(testvalue);\db2(cont.)=>ENDDB20000ISQL命令成功完成。db2=>callFirstTest返回狀態(tài)=0由于一不能print,二不能select,這里只要借用前面的測試表。Db2=>select*fromtest_helloworldDATAHelloWorldFirstTest!2條記錄已選擇。SQLServer1>DECLARE2>@testvalue1ASVARCHAR(20),3>@testvalue2ASVARCHAR(20);4>BEGIN5>SET@testvalue1='FirstTest!';6>SELECT@testvalue2='SecondTest!';7>PRINT(@testvalue1+@testvalue2);8>END;9>goFirstTest!SecondTest!MySQLmysql>DELIMITER//mysql>CREATEPROCEDUREFirstTest()->BEGIN->DECLAREtestvalueVARCHAR(20);->SETtestvalue=‘FirstTest!’;->SELECTtestvalue;->END//QueryOK,0rowsaffected(0.03sec)mysql>callFirstTest()//++|testvalue|++|FirstTest!|++1rowinset(0.00sec)QueryOK,0rowsaffected(0.00sec)MERGE語句OracleOracle9i開始支持MERGE語句Oracle的MERGE相對于SQLServer2008的MERGE。功能上,缺少一個WHENNOTMATCHEDBYSOURCE的情況。--源表CREATETABLEtest_from(idINT,valVARCHAR(20));--目標(biāo)表CREATETABLEtest_to(idINT,valVARCHAR(20));--插入源表INSERTINTOtest_fromVALUES(1,'A');INSERTINTOtest_fromVALUES(2,'B');--合并源表到目標(biāo)表MERGEINTOtest_toUSINGtest_fromON(test_to.id=test_from.id)--條件是id相同WHENMATCHEDTHENUPDATESETtest_to.val=test_from.val--匹配的時候,更新WHENNOTMATCHEDTHENINSERTVALUES(test_from.id,test_from.val)--源表有,目標(biāo)表沒有,插入--第一次檢查目標(biāo)表數(shù)據(jù).SQL>SELECT*FROMtest_to;IDVAL1A2B--更新源表UPDATEtest_fromSETval='A2'WHEREid=1;--刪除源表DELETEFROMtest_fromWHEREid=2;--插入源表INSERTINTOtest_fromVALUES(3,'C');--合并源表到目標(biāo)表MERGEINTOtest_toUSINGtest_fromON(test_to.id=test_from.id)--條件是id相同WHENMATCHEDTHENUPDATESETtest_to.val=test_from.val--匹配的時候,更新WHENNOTMATCHEDTHENINSERTVALUES(test_from.id,test_from.val)--源表有,目標(biāo)表沒有,插入--再次檢查目標(biāo)表數(shù)據(jù).SQL>SELECT*FROMtest_to;IDVAL1A22B3CDB2本處使用db2–t進(jìn)入系統(tǒng)。--源表db2=>CREATETABLEtest_from(idINT,valVARCHAR(20));DB20000ISQL命令成功完成。--目標(biāo)表db2=>CREATETABLEtest_to(idINT,valVARCHAR(20));DB20000ISQL命令成功完成。--插入源表db2=>INSERTINTOtest_fromVALUES(1,'A');DB20000ISQL命令成功完成。db2=>INSERTINTOtest_fromVALUES(2,'B');DB20000ISQL命令成功完成。--合并源表到目標(biāo)表MERGEINTOtest_toUSINGtest_fromON(test_to.id=test_from.id)--條件是id相同WHENMATCHEDTHENUPDATESETtest_to.val=test_from.val--匹配的時候,更新WHENNOTMATCHEDTHENINSERTVALUES(test_from.id,test_from.val)--源表有,目標(biāo)表沒有,插入;--第一次檢查目標(biāo)表數(shù)據(jù).db2=>SELECT*FROMtest_to;IDVAL1A2B2條記錄已選擇。db2=>--更新源表db2=>UPDATEtest_fromSETval='A2'WHEREid=1;DB20000ISQL命令成功完成。db2=>--刪除源表db2=>DELETEFROMtest_fromWHEREid=2;DB20000ISQL命令成功完成。db2=>--插入源表db2=>INSERTINTOtest_fromVALUES(3,'C');DB20000ISQL命令成功完成。再次執(zhí)行mergeMERGEINTOtest_toUSINGtest_fromON(test_to.id=test_from.id)--條件是id相同WHENMATCHEDTHENUPDATESETtest_to.val=test_from.val--匹配的時候,更新WHENNOTMATCHEDTHENINSERTVALUES(test_from.id,test_from.val)--源表有,目標(biāo)表沒有,插入;db2=>--再次檢查目標(biāo)表數(shù)據(jù).db2=>SELECT*FROMtest_to;IDVAL1A22B3C3條記錄已選擇。SQLServerSQLServer2008開始支持MERGE語句--源表CREATETABLEtest_from(idINT,valVARCHAR(20));--目標(biāo)表CREATETABLEtest_to(idINT,valVARCHAR(20));--插入源表INSERTINTOtest_fromVALUES(1,'A');INSERTINTOtest_fromVALUES(2,'B');--合并源表到目標(biāo)表MERGEtest_toUSINGtest_fromON(test_to.id=test_from.id)--條件是id相同WHENMATCHEDTHENUPDATESETtest_to.val=test_from.val--匹配的時候,更新WHENNOTMATCHEDTHENINSERTVALUES(test_from.id,test_from.val)--源表有,目標(biāo)表沒有,插入WHENNOTMATCHEDBYSOURCETHENDELETE;--目標(biāo)表有,源表沒有,目標(biāo)表該數(shù)據(jù)刪除.--第一次檢查目標(biāo)表數(shù)據(jù).SELECT*FROMtest_to;idval1A2B--更新源表UPDATEtest_fromSETval='A2'WHEREid=1;--刪除源表DELETEFROMtest_fromWHEREid=2;--插入源表INSERTINTOtest_fromVALUES(3,'C');--合并源表到目標(biāo)表MERGEtest_toUSINGtest_fromON(test_to.id=test_from.id)--條件是id相同WHENMATCHEDTHENUPDATESETtest_to.val=test_from.val--匹配的時候,更新WHENNOTMATCHEDTHENINSERTVALUES(test_from.id,test_from.val)--源表有,目標(biāo)表沒有,插入WHENNOTMATCHEDBYSOURCETHENDELETE;--目標(biāo)表有,源表沒有,目標(biāo)表該數(shù)據(jù)刪除.--再次檢查目標(biāo)表數(shù)據(jù).SELECT*FROMtest_to;idval1A23C兩表UPDATE處理--源表CREATETABLEtest_from(idINT,valVARCHAR(20));--目標(biāo)表CREATETABLEtest_to(idINT,valVARCHAR(20));--插入源表INSERTINTOtest_fromVALUES(1,'A');INSERTINTOtest_fromVALUES(2,'B');--插入目標(biāo)表INSERTINTOtest_toSELECT*FROMtest_from;--更新源表UPDATEtest_fromSETval='AAA'WHEREid=1;Oracle同步更新到目標(biāo)表.SQL>UPDATE2test_to3SET4test_to.val=5(SELECT6test_from.val7FROM8test_from9WHERE10test_to.id=test_from.id11);2rowsupdated.SQL>select*fromtest_to;IDVAL1AAA2BDB2(同Oracle)db2=>UPDATEdb2(cont.)=>test_todb2(cont.)=>SETdb2(cont.)=>test_to.val=db2(cont.)=>(SELECTdb2(cont.)=>test_from.valdb2(cont.)=>FROMdb2(cont.)=>test_fromdb2(cont.)=>WHEREdb2(cont.)=>test_to.id=test_from.iddb2(cont.)=>);DB20000ISQL命令成功完成。db2=>select*fromtest_to;IDVAL1AAA2B2條記錄已選擇。SQLServer同步更新到目標(biāo)表.1>UPDATE2>test_to3>SET4>test_to.val=test_from.val5>FROM6>test_toJOINtest_from7>ON(test_to.id=test_from.id);8>go(2行受影響)1>SELECT*FROMtest_to;2>goidval1AAA2B(2行受影響)MySQL(同Oracle)mysql>UPDATE->test_to->SET->test_to.val=->(SELECT->test_from.val->FROM->test_from->WHERE->test_to.id=test_from.id->);QueryOK,1rowaffected(0.03sec)Rowsmatched:2Changed:1Warnings:0mysql>select*fromtest_to;+++|id|val|+++|1|AAA||2|B|+++2rowsinset(0.00sec)

數(shù)據(jù)類型數(shù)字類型Oracle基本類型為NUMBER(P,S)P范圍1到38S范圍-84到127以下為與ANSISQL兼容而使用:FLOAT浮點(diǎn)數(shù)REAL單精度浮點(diǎn)數(shù)DOUBLEPRECISION雙精度浮點(diǎn)數(shù)NUMERICDECIMAL小數(shù)INTEGERINT整數(shù)SMALLINT小整數(shù)BINARY_FLOAT浮點(diǎn)數(shù)Oracle10gR1以后。6位精度,5字節(jié)BINARY_DOUBLE浮點(diǎn)數(shù)Oracle10gR1以后,13位精度,9字節(jié)DB2整數(shù):SMALLINT、INTEGER和BIGINT用來存儲整數(shù)。例如,庫存數(shù)量可以定義為INTEGER。SMALLINT可以在2個字節(jié)中存儲從-32,768到32,767的整數(shù)。INTEGER可以在4個字節(jié)中存儲從-2,147,483,648到2,147,483,647的整數(shù)。BIGINT可以在8個字節(jié)中存儲從-9,223,372,036,854,775,808到9,223,372,036,854,775,807的整數(shù)。小數(shù):DECIMAL用來存儲有小數(shù)部分的數(shù)字。要定義這個數(shù)據(jù)類型,需要指定精度(p,表示總的位數(shù))和小數(shù)位(s,表示小數(shù)點(diǎn)右邊的位數(shù))。定義為DECIMAL(10,2)的列可以保存的金額最高可為99999999.99。數(shù)據(jù)庫中需要的存儲空間依賴于精度,按照公式p/2+1計算。所以DECIMAL(10,2)需要10/2+1(即6)字節(jié)。浮點(diǎn)數(shù):REAL和DOUBLE用來存儲數(shù)字的近似值。例如,非常小或非常大的科學(xué)計量值可以定義為REAL。REAL可以定義為具有1到24位之間的長度,需要4字節(jié)的存儲空間。DOUBLE可以定義為具有25到53位之間的長度,需要8字節(jié)的存儲空間。FLOAT可以視為REAL或DOUBLE的同義詞。SQLServerbit整型其值只能是0、1或空值。int整型-2的31次方到2的31次方smallint整型-2的15次方到2的15次方tinyint0到255之間的整數(shù)numericdecimal精確數(shù)值型從-10的38次方-1,到10的38次方-1money數(shù)據(jù)類型用來表示錢和貨幣值。這種數(shù)據(jù)類型能存儲從-9220億到9220億之間的數(shù)據(jù),精確到貨幣單位的萬分之一smallmoney存儲從-214748.3648到214748.3647之間的數(shù)據(jù),精確到貨幣單位的萬分之一float浮點(diǎn)數(shù)real浮點(diǎn)數(shù)MySQLBIT[(M)]位字段類型。M表示每個值的位數(shù),范圍為從1到64。如果M被省略,默認(rèn)為1。·TINYINT[(M)][UNSIGNED][ZEROFILL]很小的整數(shù)。帶符號的范圍是-128到127。無符號的范圍是0到255。·BOOL,BOOLEAN是TINYINT(1)的同義詞。zero值被視為假。非zero值視為真。在將來,將根據(jù)標(biāo)準(zhǔn)SQL引入完全布爾類型的處理。·SMALLINT[(M)][UNSIGNED][ZEROFILL]小的整數(shù)。帶符號的范圍是-32768到32767。無符號的范圍是0到65535。·MEDIUMINT[(M)][UNSIGNED][ZEROFILL]中等大小的整數(shù)。帶符號的范圍是-8388608到8388607。無符號的范圍是0到16777215?!NT[(M)][UNSIGNED][ZEROFILL]普通大小的整數(shù)。帶符號的范圍是-2147483648到2147483647。無符號的范圍是0到4294967295?!NTEGER[(M)][UNSIGNED][ZEROFILL]這是INT的同義詞?!IGINT[(M)][UNSIGNED][ZEROFILL]大整數(shù)。帶符號的范圍是-9223372036854775808到9223372036854775807。無符號的范圍是0到18446744073709551615。應(yīng)清楚BIGINT列的下述內(nèi)容:o使用帶符號的BIGINT或DOUBLE值進(jìn)行所有算法,因此除了位函數(shù),不應(yīng)使用大于9223372036854775807(63位)的無符號的大整數(shù)!如果這樣做,結(jié)果中的最后幾位可能出錯,這是由于將BIGINT值轉(zhuǎn)換為DOUBLE進(jìn)行四舍五入時造成的錯誤。MySQL可以在以下情況下處理BIGINT:§當(dāng)使用整數(shù)在一個BIGINT列保存大的無符號的值時?!煸贛IN(col_name)或MAX(col_name)中,其中col_name指BIGINT列?!焓褂貌僮鞣?+,-,*等等)并且兩個操作數(shù)均為整數(shù)時。o總是可以使用一個字符串在BIGINT列中保存嚴(yán)格整數(shù)值。在這種情況下,MySQL執(zhí)行字符串-數(shù)字轉(zhuǎn)換,其間不存在雙精度表示。o當(dāng)兩個操作數(shù)均為整數(shù)值時,-、+和*操作符使用BIGINT算法。這說明如果乘兩個大整數(shù)(或來自返回整數(shù)的函數(shù)),當(dāng)結(jié)果大于9223372036854775807時,會得到意想不到的結(jié)果?!LOAT[(M,D)][UNSIGNED][ZEROFILL]小(單精度)浮點(diǎn)數(shù)。允許的值是-3.402823466E+38到-1.175494351E-38、0和1.175494351E-38到3.402823466E+38。這些是理論限制,基于IEEE標(biāo)準(zhǔn)。實(shí)際的范圍根據(jù)硬件或操作系統(tǒng)的不同可能稍微小些。M是小數(shù)縱位數(shù),D是小數(shù)點(diǎn)后面的位數(shù)。如果M和D被省略,根據(jù)硬件允許的限制來保存值。單精度浮點(diǎn)數(shù)精確到大約7位小數(shù)位。如果指定UNSIGNED,不允許負(fù)值。使用浮點(diǎn)數(shù)可能會遇到意想不到的問題,因為在MySQL中的所有計算用雙精度完成。參見A.5.7節(jié),“解決與不匹配行有關(guān)的問題”。·DOUBLE[(M,D)][UNSIGNED][ZEROFILL]普通大小(雙精度)浮點(diǎn)數(shù)。允許的值是-1.7976931348623157E+308到-2.2250738585072014E-308、0和2.2250738585072014E-308到1.7976931348623157E+308。這些是理論限制,基于IEEE標(biāo)準(zhǔn)。實(shí)際的范圍根據(jù)硬件或操作系統(tǒng)的不同可能稍微小些。M是小數(shù)總位數(shù),D是小數(shù)點(diǎn)后面的位數(shù)。如果M和D被省略,根據(jù)硬件允許的限制來保存值。雙精度浮點(diǎn)數(shù)精確到大約15位小數(shù)位。如果指定UNSIGNED,不允許負(fù)值。·DOUBLEPRECISION[(M,D)][UNSIGNED][ZEROFILL],REAL[(M,D)][UNSIGNED][ZEROFILL]為DOUBLE的同義詞。除了:如果SQL服務(wù)器模式包括REAL_AS_FLOAT選項,REAL是FLOAT的同義詞而不是DOUBLE的同義詞?!LOAT(p)[UNSIGNED][ZEROFILL]浮點(diǎn)數(shù)。p表示精度(以位數(shù)表示),但MySQL只使用該值來確定是否結(jié)果列的數(shù)據(jù)類型為FLOAT或DOUBLE。如果p為從0到24,數(shù)據(jù)類型變?yōu)闆]有M或D值的FLOAT。如果p為從25到53,數(shù)據(jù)類型變?yōu)闆]有M或D值的DOUBLE。結(jié)果列范圍與本節(jié)前面描述的單精度FLOAT或雙精度DOUBLE數(shù)據(jù)類型相同。FLOAT(p)語法與ODBC兼容。·DECIMAL[(M[,D])][UNSIGNED][ZEROFILL]壓縮的“嚴(yán)格”定點(diǎn)數(shù)。M是小數(shù)位數(shù)(精度)的總數(shù),D是小數(shù)點(diǎn)(標(biāo)度)后面的位數(shù)。小數(shù)點(diǎn)和(負(fù)數(shù))的‘-’符號不包括在M中。如果D是0,則值沒有小數(shù)點(diǎn)或分?jǐn)?shù)部分。DECIMAL整數(shù)最大位數(shù)(M)為65。支持的十進(jìn)制數(shù)的最大位數(shù)(D)是30。如果D被省略,默認(rèn)是0。如果M被省略,默認(rèn)是10。如果指定UNSIGNED,不允許負(fù)值。所有DECIMAL列的基本計算(+,-,*,/)用65位精度完成?!EC[(M[,D])][UNSIGNED][ZEROFILL],NUMERIC[(M[,D])][UNSIGNED][ZEROFILL],FIXED[(M[,D])][UNSIGNED][ZEROFILL]是DECIMAL的同義詞。FIXED同義詞適用于與其它服務(wù)器的兼容性。SQLiteINTINTEGERTINYINTSMALLINTMEDIUMINTBIGINTUNSIGNEDBIGINTINT2INT8內(nèi)部都按照INTEGER來處理。REALDOUBLEDOUBLEPRECISIONFLOAT內(nèi)部都按照REAL來處理。NUMERICDECIMAL(10,5)BOOLEANDATEDATETIME內(nèi)部都按照NUMERIC來處理。

字符類型OracleCHAR定長字符串,最長2000字節(jié)NCHAR定長字符串,存儲的數(shù)據(jù)為NLS字符VARCHAR2變長字符串,最長4000字節(jié)NVARCHAR2變長字符串,存儲的數(shù)據(jù)為NLS字符LONG最大存儲2G字符數(shù)據(jù)不推薦使用(改用CLOB)CLOBOracle9i及以前,最大4G字符數(shù)據(jù)Oracle10g最大4G*數(shù)據(jù)庫塊大小的字符數(shù)據(jù)NCLOB基本同CLOB,就是存儲的數(shù)據(jù)為NLSDB2CHAR或CHARACTER用來存儲最多254字節(jié)的固定長度的字符串。例如,制造商可以給零件分配一個8字符長度的標(biāo)識符,因此這些標(biāo)識符在數(shù)據(jù)庫中存儲為CHAR(8)類型的列。VARCHAR用來存儲可變長度的字符串。例如,制造商用不同長度的標(biāo)識符表示大量零件,因此這些標(biāo)識符存儲為VARCHAR(100)類型的列。VARCHAR列的最大長度為32,672字節(jié)。在數(shù)據(jù)庫中,VARCHAR數(shù)據(jù)只占用恰好所需的空間。下面的數(shù)據(jù)類型用來存儲雙字節(jié)字符串:GRAPHIC用來存儲固定長度的雙字節(jié)字符串。GRAPHIC列的最大長度是127個字符。VARGRAPHIC用來存儲可變長度的雙字節(jié)字符串。VARGRAPH

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論