轉換數(shù)據(jù) SQL Sever足夠強大,可以在需要的時候把大部分數(shù)值從一種類型轉換為另一種類型。
例如,要比較SMALLINT型和INT型數(shù)據(jù)的大小,你不需要進行顯式的類型轉換。SQL Sever會為你完成這項工作。
但是,當你想在字符型數(shù)據(jù)和其它類型的數(shù)據(jù)之間進行轉換時,你的確需要自己進行轉換操作。 例如,假設你想從一個MONEY型字段中取出所有的值,并在結果后面加上字符串“US Dollars”。
你需要使用函數(shù)CONVERT(),如下例所示: SELECT CONVERT(CHAR (8),price)+'US Dollars' FROM orders 函數(shù)CONVERT()帶有兩個變量。 第一個變量指定了數(shù)據(jù)類型和長度。
第二個變量指定了要進行轉換的字段。在這個例子中,字段price被轉換成長度為8個字符的CHAR型字段。
字段price要被轉換成字符型,才可以在它后面連接上字符串'US Dollars'。 當向BIT型,DATETIME型,INT型,或者NUMERIC型字段添加字符串時,你需要進行同樣的轉換操作。
例如,下面的語句在一個SELECT語句的查詢結果中加入字符串'The vote is',該SELECT語句返回一個BIT型字段的值: SELECT 'The vote is'+CONVERT(CHAR (1),vote) FROM opinion 下面是這個語句的結果示例: The vote is 1 The vote is 1 The vote is 0 (3 row(s) affected) 如果你不進行顯式的轉換,你會收到如下的錯誤信息: Implicit conversion from datatype 'varchar' to 'bit' is not allowec。 Use the CONVERT function to run this query。
操作字符串數(shù)據(jù) SQL Sever有許多函數(shù)和表達式,使你能對字符串進行有趣的操作,包括各種各樣的模式匹配和字符轉換。在這一節(jié)中,你將學習如何使用最重要的字符函數(shù)和表達式。
匹配通配符 假設你想建立一個與Yahoo功能相似的Internet目錄。你可以建立一個表用來保存一系列的站點名稱,統(tǒng)一資源定位器(URL),描述,和類別,并允許訪問者通過在HTML form中輸入關鍵字來檢索這些內容。
假如有一個訪問者想從這個目錄中得到其描述中包含關鍵字trading card的站點的列表。 要取出正確的站點列表,你也許試圖使用這樣的查詢: SELECT site_name FROM site_directory WHERE site_desc='trading card' 這個查詢可以工作。
但是,它只能返回那些其描述中只有trading card這個字符串的站點。 例如,一個描述為We have the greatest collection of trading cards in the world!的站點不會被返回。
要把一個字符串與另一個字符串的一部分相匹配,你需要使用通配符。你使用通配符和關鍵字LIKE來實現(xiàn)模式匹配。
下面的語句使用通配符和關鍵字LIKE重寫了上面的查詢,以返回所有正確站點的名字: SELECT SITE_name FROM site_directory WHERE site_desc LIKE '%trading cark%'。
1.1 運行SQL程序 1.2 Microsoft Access1.3 Microsoft SQL Server1.3.1 SQL Server 20001.3.2 SQL Server 2005/20081.4 Oracle1.5 IBM DB21.6 MySQL1.7 PostgreSQL 2.1 表、列和行2.1.1 表2.1.2 列2.1.3 行2.2 主鍵2.3 外鍵2.4 聯(lián)系2.4.1 一對一2.4.2 一對多2.4.3 多對多2.5 規(guī)范化2.5.1 第一范式2.5.2 第二范式2.5.3 第三范式2.5.4 其他范式2.6 示例數(shù)據(jù)庫2.6.1 表authors2.6.2 表publishers2.6.3 表titles2.6.4 表titles_authors2.6.5 表royalties2.7 創(chuàng)建示例數(shù)據(jù)庫 3.1 SQL語法3.2 SQL標準和一致性3.3 標識符3.4 數(shù)據(jù)類型3.5 字符串類型3.6 二進制大型對象類型3.7 精確數(shù)字類型3.8 近似數(shù)字類型3.9 布爾類型3.10 日期和時間類型3.11 時間間隔類型3.12 唯一標識符3.13 其他數(shù)據(jù)類型3.14 空值 4.1 使用SELECT和FROM檢索列4.2 使用AS創(chuàng)建列的別名4.3 使用DISTINCT消除重復的行4.4 使用ORDER BY排序行4.5 使用WHERE篩選行4.6 使用AND、OR和NOT組合及求反條件4.6.1 AND操作符4.6.2 OR操作符4.6.3 NOT操作符4.6.4 AND、OR和NOT一起使用4.7 使用LIKE匹配模式4.8 使用BETWEEN進行范圍篩選4.9 使用IN進行列表篩選4.10 使用IS NULL測試空值 5.1 創(chuàng)建派生列5.2 執(zhí)行算術運算5.3 確定計算的順序5.4 使用||連接串5.5 使用SUBSTRING()提取子串5.6 使用UPPER()和LOWER()更改串的大小寫5.7 使用TRIM()修整字符5.8 使用CHARACTER_LENGTH()得到串長度5.9 使用POSITION()查找子串5.10 執(zhí)行日期及時間間隔運算5.11 獲得當前日期和時間5.12 獲得用戶信息5.13 使用CAST()轉換數(shù)據(jù)類型5.14 使用CASE計算條件值5.15 使用COALESCE()檢查空值5.16 使用NULLIF()比較表達式 6.1 使用聚合函數(shù)6.2 創(chuàng)建聚合表達式6.3 使用MIN()查找最小值6.4 使用MAX()查找最大值6.5 使用SUM()計算總和6.6 使用AVG()計算平均值6.7 使用COUNT()統(tǒng)計行數(shù)6.8 使用DISTINCT聚合不重復的值6.9 使用GROUP BY分組行6.10 使用HAVING篩選分組 7.1 限定列名7.2 使用AS創(chuàng)建表的別名7.3 使用聯(lián)結7.4 使用JOIN或WHERE創(chuàng)建聯(lián)結7.5 使用CROSS JOIN創(chuàng)建交叉聯(lián)結7.6 使用NATURAL JOIN創(chuàng)建自然聯(lián)結7.7 使用INNER JOIN創(chuàng)建內聯(lián)結7.8 使用OUTER JOIN創(chuàng)建外聯(lián)結7.9 創(chuàng)建自聯(lián)結 8.1 理解子查詢8.2 子查詢語法8.3 子查詢和聯(lián)結8.4 簡單子查詢和相關子查詢8.4.1 簡單子查詢8.4.2 相關子查詢8.5 在子查詢中限定列名8.6 子查詢中的空值8.7 使用子查詢作為列表達式8.8 使用比較操作符比較子查詢的值8.9 使用IN測試集合成員資格8.10 使用ALL比較所有子查詢的值8.11 使用ANY比較某些子查詢的值8.12 使用EXISTS檢測存在性8.13 比較等價查詢 9.1 使用UNION合并行9.2 使用INTERSECT查找相同行9.3 使用EXCEPT查找不同行 10.1 顯示表結構10.2 使用INSERT插入行10.3 使用UPDATE更新行10.4 使用DELETE刪除行 11.1 創(chuàng)建表11.2 理解約束11.3 使用CREATE TABLE創(chuàng)建新表11.4 使用NOT NULL禁止空值11.5 使用DEFAULT確定默認值11.6 使用PRIMARY KEY指定主鍵11.7 使用FOREIGN KEY指定外鍵11.8 使用UNIQUE確保值唯一11.9 使用CHECK創(chuàng)建檢查約束11.10 使用CREATE TEMPORARY TABLE創(chuàng)建臨時表11.11 使用CREATE TABLE AS利用已存在表創(chuàng)建新表11.12 使用ALTER TABLE修改表11.13 使用DROP TABLE刪除表 12.1 使用CREATE INDEX創(chuàng)建索引12.2 使用DROP INDEX刪除索引 13.1 使用CREATE VIEW創(chuàng)建視圖13.2 通過視圖檢索數(shù)據(jù)13.3 通過視圖修改數(shù)據(jù)13.3.1 通過視圖插入行13.3.2 通過視圖更新行13.3.3 通過視圖刪除行13.4 使用DROP VIEW刪除視圖 15.1 動態(tài)統(tǒng)計15.2 產(chǎn)生序列15.3 發(fā)現(xiàn)等差數(shù)列、遞增數(shù)列和等值數(shù)列15.4 限定返回行的數(shù)量15.4.1 Microsoft Access15.4.2 Microsoft SQL Server15.4.3 Oracle15.4.4 IBM DB215.4.5 MySQL15.4.6 PostgreSQL15.5 分配排名15.6 計算修整均值15.7 隨機選取行15.8 處理重復值15.9 創(chuàng)建電話列表15.10 檢索元數(shù)據(jù)15.10.1 Microsoft Access15.10.2 Microsoft SQL Server15.10.3 Oracle15.10.4 IBM DB215.10.5 MySQL15.10.6 PostgreSQL15.11 處理日期15.11.1 Microsoft Access15.11.2 Microsoft SQL Server15.11.3 Oracle15.11.4 IBM DB215.11.5 MySQL15.11.6 PostgreSQL15.12 計算中值15.13 查詢極值15.14 改變動態(tài)統(tǒng)計的中流15.15 旋轉結果15.16 處理層次結構索引。
SQL全稱是「結構化查詢語言(Structured Query Language)」,是數(shù)據(jù)庫中使用的標準數(shù)據(jù)查詢語言,IBM公司最早使用在其開發(fā)的數(shù)據(jù)庫系統(tǒng)中,1986年10月,美國ANSI對SQL進行規(guī)范后作為關系數(shù)據(jù)庫管理系統(tǒng)的標準語言(ANSI X3. 135-1986),1987年得到國際標準化組織的支持成為國際標準。不過各種通行的數(shù)據(jù)庫系統(tǒng)在實現(xiàn)過程中都對SQL規(guī)范作了某些擴充,所以實際上不同的數(shù)據(jù)庫系統(tǒng)的SQL語言不能完全相互通用。
SQL是高級的非過程化編程語言,允許用戶在高層數(shù)據(jù)結構上工作。他不要求用戶指定對數(shù)據(jù)的存放方法,也不需要用戶了解具體的數(shù)據(jù)存放方式,所以具有完全不同底層結構的不同數(shù)據(jù)庫系統(tǒng)可以使用相同的SQL語言作為數(shù)據(jù)輸入與管理的接口。它以記錄集合作為操縱對象,所有SQL語句接受集合作為輸入,返回集合作為輸出,這種集合特性允許一條SQL語句的輸出作為另一條SQL語句的輸入,所以SQL語言可以嵌套,這使他具有極大的靈活性和強大的功能,在多數(shù)情況下,在其他語言中需要一大段程序實現(xiàn)的一個單獨事件只需要一個SQL語句就可以達到目的,這也意味著用SQL語言可以寫出非常復雜的語句。
SQL同時也是數(shù)據(jù)庫文件格式的擴展名。
SQL語言包含4個部分:
* 數(shù)據(jù)查詢語言(SELECT語句)
* 數(shù)據(jù)操縱語言(INSERT, UPDATE, DELETE語句)
* 數(shù)據(jù)定義語言(如CREATE, DROP等語句)
* 數(shù)據(jù)控制語言(如COMMIT, ROLLBACK等語句)
聲明:本網(wǎng)站尊重并保護知識產(chǎn)權,根據(jù)《信息網(wǎng)絡傳播權保護條例》,如果我們轉載的作品侵犯了您的權利,請在一個月內通知我們,我們會及時刪除。
蜀ICP備2020033479號-4 Copyright ? 2016 學習鳥. 頁面生成時間:3.031秒