国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

讀SQL學(xué)習(xí)指南(第3版)筆記11_字符串函數(shù)和數(shù)值函數(shù)

這篇具有很好參考價(jià)值的文章主要介紹了讀SQL學(xué)習(xí)指南(第3版)筆記11_字符串函數(shù)和數(shù)值函數(shù)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

讀SQL學(xué)習(xí)指南(第3版)筆記11_字符串函數(shù)和數(shù)值函數(shù)文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-694782.html

1.?盡管SQL標(biāo)準(zhǔn)指定了部分函數(shù),但數(shù)據(jù)庫(kù)廠商并沒(méi)有遵循這些函數(shù)規(guī)范

2.?字符串

2.1.?char

2.1.1.?固定長(zhǎng)度、不足部分用空格填充的字符串

2.1.2.?MySQL允許的char類(lèi)型的最大長(zhǎng)度為255個(gè)字符

2.1.3.?Oracle Database允許的最大長(zhǎng)度為2,000個(gè)字符

2.1.4.?SQL Server允許的最大長(zhǎng)度為8,000個(gè)字符

2.2.?varchar

2.2.1.?變長(zhǎng)字符串

2.2.2.?MySQL允許的varchar類(lèi)型的最大長(zhǎng)度為65,536個(gè)字符

2.2.3.?Oracle Database(通過(guò)varchar2類(lèi)型)允許的最大長(zhǎng)度為4,000個(gè)字符

2.2.4.?SQL Server允許的最大長(zhǎng)度為8,000個(gè)字符

2.3.?text

2.3.1.?MySQL和SQL Server

2.4.?clob

2.4.1.?Oracle Database

2.5.?保存非常大的可變長(zhǎng)字符串

2.5.1.?文檔

2.5.2.?MySQL有多種text類(lèi)型(tinytext、text、mediumtext和longtext),可用于最大4GB的文檔

2.5.3.?SQL Server為最大2GB的文檔提供了單一的text類(lèi)型

2.5.3.1.?SQL Server 2005還包括varchar(max)數(shù)據(jù)類(lèi)型,并建議使用其代替text類(lèi)型,text類(lèi)型將在未來(lái)的某個(gè)版本中被刪除

2.5.4.?Oracle Database包括clob數(shù)據(jù)類(lèi)型,可保存最大為128TB的巨大文檔

2.6.?可以配置MySQL和SQL Server以實(shí)現(xiàn)悄無(wú)聲息地截?cái)嘧址?,而不是拋出異?/h2>

2.7.?從MySQL 6.0版開(kāi)始,默認(rèn)行為是“strict”模式,意味著在發(fā)生問(wèn)題時(shí)拋出異常,而在早先版本的服務(wù)器中,字符串會(huì)被截?cái)?,并發(fā)出警告,如果希望數(shù)據(jù)庫(kù)引擎采取這種方式,可以選擇ANSI模式

2.8.?避免字符串被截?cái)啵ɑ蚴窃贠racle Database和MySQL的strict模式下拋出異常)的最好方法是將列長(zhǎng)度的上限設(shè)置得足夠大,以容納可能存儲(chǔ)在其中的最長(zhǎng)的字符串(服務(wù)器只會(huì)分配足以存儲(chǔ)字符串的空間,所以為varchar列設(shè)置長(zhǎng)度更大的上限并不會(huì)浪費(fèi)存儲(chǔ)資源

2.9.?包含單引號(hào)

2.9.1.?需要在字符串中添加轉(zhuǎn)義字符,以便服務(wù)器將字符串中的撇號(hào)視為普通字符

2.9.2.?直接在單引號(hào)前再添加一個(gè)單引號(hào)進(jìn)行轉(zhuǎn)義

2.9.3.?mysql

 -> UPDATE string_tbl
    -> SET text_fld = 'This string didn''t work, but it does now';

2.9.4.?Oracle Database和MySQL用戶(hù)也可以選擇使用反斜杠字符來(lái)轉(zhuǎn)義單引號(hào)

2.9.5.?sql

UPDATE string_tbl SET text_fld =

 ?'This string didn\'t work, but it does now'

2.9.6.?如果要檢索字符串,以用于屏幕顯示或報(bào)表字段,則無(wú)須對(duì)內(nèi)嵌引號(hào)作任何特殊處理

2.9.7.?如果要將檢索出的字符串添加到其他程序要讀取的文件中,就需要將轉(zhuǎn)義字符加入字符串

2.9.7.1.?如果使用的是MySQL,可以通過(guò)內(nèi)建函數(shù)quote()來(lái)實(shí)現(xiàn),該函數(shù)會(huì)將整個(gè)字符串放入引號(hào)內(nèi)并對(duì)其中任意的引號(hào)/撇號(hào)進(jìn)行轉(zhuǎn)義

2.9.7.2.?mysql

-> SELECT quote(text_fld)
    -> FROM string_tbl;

2.9.7.3.?在檢索數(shù)據(jù)用于數(shù)據(jù)導(dǎo)出時(shí),可以對(duì)所有非系統(tǒng)生成的字符列(比如customer_notes列)使用quote()函數(shù)

2.10.?包含特殊字符

2.10.1.?SQL Server和MySQL服務(wù)器包含內(nèi)建函數(shù)char()

2.10.2.?Oracle Database用戶(hù)可以使用chr()函數(shù)

2.10.3.?用于從ASCII字符集的255個(gè)字符中任意構(gòu)建字符串

2.10.4.?需要熟悉字符集的布局,從中定位特定的字符

2.10.5.?可以使用concat()函數(shù)來(lái)拼接若干字符串,可以自行輸入這些字符串,也可以通過(guò)char()函數(shù)生成

2.10.5.1.?Oracle Database用戶(hù)可以使用拼接運(yùn)算符(||)代替concat()函數(shù)

2.10.5.2.?SQL Server并未提供concat()函數(shù),需要使用拼接運(yùn)算符(+)代替

2.10.6.?可以使用ascii()函數(shù),該函數(shù)接受字符串最左側(cè)的字符,并返回其編碼數(shù)值

2.10.7.?使用char()、ascii()和concat()函數(shù)(或者拼接運(yùn)算符),應(yīng)該能夠處理任何羅馬字符,即使所用的鍵盤(pán)不包括重音字符或其他特殊字符

2.10.8.?返回?cái)?shù)值的字符串函數(shù)

2.10.8.1.?length()

2.10.8.1.1.?該函數(shù)返回字符串所包含的字符數(shù)
2.10.8.1.2.?SQL Server用戶(hù)需要使用len()函數(shù)

2.10.8.2.?position()函數(shù)

2.10.8.2.1.?字符串中查找子串的位置
2.10.8.2.2.?在使用數(shù)據(jù)庫(kù)時(shí),一定要記住,字符串的第一個(gè)字符的位置為1
2.10.8.2.3.?如果沒(méi)有找到指定的子串,position()函數(shù)返回0
2.10.8.2.4.?SQL:2003標(biāo)準(zhǔn)的一部分

2.10.8.3.?locate()函數(shù)

2.10.8.3.1.?MySQL專(zhuān)有的
2.10.8.3.2.?從目標(biāo)字符串的其他位置開(kāi)始搜索
2.10.8.3.3.?可以接受可選的第3個(gè)參數(shù),該參數(shù)用于指定搜索的起始位置

2.10.8.4.?instr()函數(shù)

2.10.8.4.1.?Oracle Database專(zhuān)有
2.10.8.4.2.?Oracle Database未提供函數(shù)position()或locate()
2.10.8.4.3.?該函數(shù)在使用兩個(gè)參數(shù)時(shí),能夠模擬position()函數(shù)
2.10.8.4.4.?使用三個(gè)參數(shù)時(shí),能夠模擬locate()函數(shù)
2.10.8.4.5.?返回值0 表示沒(méi)有找到指定的子串,而不是表示該子串位于字符串的位置0

2.10.8.5.?charindx()函數(shù)

2.10.8.5.1.?SQL Server專(zhuān)有
2.10.8.5.2.?SQL Server也沒(méi)有提供position()或locate()函數(shù)
2.10.8.5.3.?該函數(shù)和Oracle的instr()函數(shù)類(lèi)似,也可以接受兩個(gè)或三個(gè)參數(shù)

2.10.8.6.?strcmp()

2.10.8.6.1.?MySQL專(zhuān)有
2.10.8.6.1.1.?不區(qū)分大小寫(xiě)
2.10.8.6.2.?無(wú)法在Oracle Database和SQL Server中模擬
2.10.8.6.3.?一個(gè)接受字符串作為參數(shù)并返回?cái)?shù)值的字符串比較函數(shù)
2.10.8.6.3.1.??1(第一個(gè)字符串的排序位于第二個(gè)字符串之前)
2.10.8.6.3.2.?0(兩個(gè)字符串相同)
2.10.8.6.3.3.?1(第一個(gè)字符串的排序位于第二個(gè)字符串之后)
2.10.8.6.4.?MySQL還允許在select子句中使用運(yùn)算符like和regexp來(lái)比較字符串
2.10.8.6.4.1.?比較的結(jié)果為1(true)或0(false)

2.10.9.?返回字符串的字符串函數(shù)

2.10.9.1.?concat()函數(shù)

2.10.9.1.1.?通過(guò)數(shù)據(jù)片段構(gòu)建字符串
2.10.9.1.2.?Oracle中使用,可以使用拼接運(yùn)算符(||)來(lái)代替
2.10.9.1.3.?SQL Server的拼接運(yùn)算符(+)代替||

2.10.9.2.?在字符串中間添加或替換部分字符

2.10.9.2.1.?insert()函數(shù)
2.10.9.2.1.1.?MySQL提供的函數(shù)接受4個(gè)參數(shù):原始字符串、起始位置、要替換的字符數(shù)量和替換字符串
2.10.9.2.1.2.?mysql> SELECT INSERT('goodbye world', 1, 7, 'hello') string;
2.10.9.2.2.?replace()函數(shù)
2.10.9.2.2.1.?Oracle Database
2.10.9.2.2.2.?SELECT REPLACE('goodbye world', 'goodbye', 'hello') FROM dual;
2.10.9.2.3.?SQL Server也有replace()函數(shù),其功能與Oracle Database的相同
2.10.9.2.4.?SQL Server還提供了與MySQL的insert()函數(shù)功能相似的stuff()函數(shù)
2.10.9.2.4.1.?SELECT STUFF('hello world', 1, 5, 'goodbye cruel')
2.10.9.2.5.?從字符串中提取子串
2.10.9.2.5.1.?三種數(shù)據(jù)庫(kù)服務(wù)器均提供了substring()函數(shù)
2.10.9.2.5.2.?Oracle Database提供的是substr()函數(shù)

3.?算術(shù)函數(shù)

3.1.?acos(X)

3.1.1.?計(jì)算x的反余弦

3.2.?asin(x)

3.2.1.?計(jì)算x的反正弦

3.3.?atan(x)

3.3.1.?計(jì)草x的反正切

3.4.?cos(x)

3.4.1.?計(jì)軍x的余弦

3.5.?cot(x)

3.5.1.?計(jì)算x的余切

3.6.?exp(x)

3.6.1.?計(jì)算e

3.7.?ln(x)

3.7.1.?計(jì)算x的自然對(duì)數(shù)

3.8.?sin(x)

3.8.1.?計(jì)軍x的正弦

3.9.?sqrt(x)

3.9.1.?計(jì)軍x的平方根

3.10.?tan(x)

3.10.1.?計(jì)算x的正切

3.11.?mod()函數(shù)

3.11.1.?用于計(jì)算余數(shù)

3.11.2.?常用于整數(shù)參數(shù)

3.11.3.?MySQL中也可以使用實(shí)數(shù)

3.11.3.1.?mysql> SELECT MOD(22.75, 5);

3.11.4.?SQL Server未提供mod()函數(shù),可以使用運(yùn)算符%來(lái)代替

3.12.?pow()函數(shù)

3.12.1.?返回第一個(gè)參數(shù)的第二個(gè)參數(shù)次冪

3.12.2.?Oracle Database或SQL Server,則為power()函數(shù)

3.12.3.?pow(2,8)是MySQL中用于計(jì)算2^8的方式

3.12.4.?計(jì)算機(jī)內(nèi)存通常是以2x字節(jié)為單位分配的,所以pow()函數(shù)可以非常方便地確定某段內(nèi)存確切的字節(jié)數(shù)

3.12.4.1.?mysql

-> SELECT POW(2,10) kilobyte, POW(2,20) megabyte,
    -> POW(2,30) gigabyte, POW(2,40) terabyte;

4.?數(shù)值精度

4.1.?在處理浮點(diǎn)數(shù)時(shí),可能并不總是需要使用或顯示數(shù)值的全精度

4.2.?ceil()

4.2.1.?SQL Server使用ceiling()替代ceil()

4.2.2.?向上取整

4.2.2.1.?哪怕小數(shù)部分非常小

4.3.?floor()

4.3.1.?向下取整

4.3.1.1.?哪怕小數(shù)部分非常大

4.4.?round()

4.4.1.?四舍五入

4.4.2.?使用負(fù)數(shù)作為第2個(gè)參數(shù),表示小數(shù)點(diǎn)左側(cè)的部分需要被截取或取整多少位

4.5.?truncate()

4.5.1.?Oracle Database使用trunc()替代truncate()

4.5.2.?將不需要的小數(shù)位直接丟棄

4.5.3.?SQL Server并未提供truncate()函數(shù),而round()函數(shù)的第3個(gè)可選參數(shù)如果存在且不為0,則表明要執(zhí)行截取操作,而非取整

4.5.4.?使用負(fù)數(shù)作為第2個(gè)參數(shù),表示小數(shù)點(diǎn)左側(cè)的部分需要被截取或取整多少位

5.?有符號(hào)數(shù)

5.1.?abs()函數(shù)

5.1.1.?絕對(duì)值

5.2.?sign()函數(shù)

5.2.1.?負(fù)數(shù),則返回?1

5.2.2.?0,則返回0

5.2.3.?正數(shù),則返回1

到了這里,關(guān)于讀SQL學(xué)習(xí)指南(第3版)筆記11_字符串函數(shù)和數(shù)值函數(shù)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 讀SQL學(xué)習(xí)指南(第3版)筆記01_背景知識(shí)

    讀SQL學(xué)習(xí)指南(第3版)筆記01_背景知識(shí)

    2.1.3.1.?單根層次結(jié)構(gòu) 2.1.5.1.?Microsoft的Active Directory 2.1.5.2.?開(kāi)源的Apache Directory Server 3.1.3.1.?大型共享數(shù)據(jù)銀行的數(shù)據(jù)關(guān)系模型 3.2.2.1.?不用操心跟蹤已分配的數(shù)字 3.2.4.1.?由兩個(gè)或多于兩個(gè)列組成的主鍵 4.4.1.1.?用于定義存儲(chǔ)在數(shù)據(jù)庫(kù)中的數(shù)據(jù)結(jié)構(gòu) 4.4.1.2.?通過(guò)SQL模式語(yǔ)句所創(chuàng)

    2024年02月12日
    瀏覽(25)
  • 讀SQL學(xué)習(xí)指南(第3版)筆記02_數(shù)據(jù)類(lèi)型

    讀SQL學(xué)習(xí)指南(第3版)筆記02_數(shù)據(jù)類(lèi)型

    Database changed 2.1.1.1.?單字節(jié)字符集 2.1.1.2.?字符數(shù)量很少,只需要單字節(jié)就能存儲(chǔ)每個(gè)字符 2.1.1.3.?之前版本的MySQL服務(wù)器中,默認(rèn)字符集是latin1 2.1.2.1.?日語(yǔ) 2.1.2.2.?韓語(yǔ) 2.1.2.3.?多字節(jié)來(lái)存儲(chǔ)每個(gè)字符 2.1.2.4.?版本8中改為了utf8mb4 2.1.5.1.?varchar(20) character set latin1 2.1.6.1.?creat

    2024年02月12日
    瀏覽(22)
  • Hive學(xué)習(xí)(11)hive去除空格或去掉字符串前后或中間的某一字符串

    問(wèn)題: 需求:需要去除字符串中前N位/后N位指定字符 例如:11ABC11 MySQL中可使用以下函數(shù)解決: Hive中可使用以下函數(shù)解決: 其他函數(shù)亦可利用正則表達(dá)式規(guī)則自行變換替代。

    2024年02月12日
    瀏覽(54)
  • 讀SQL學(xué)習(xí)指南(第3版)筆記06_連接和集合

    讀SQL學(xué)習(xí)指南(第3版)筆記06_連接和集合

    1.1.2.1.?兩個(gè)數(shù)據(jù)表的所有排列組合 1.1.3.1.?使用頻率并不高 1.1.5.1.?涉及交叉連接、外連接、日期函數(shù)、分組、集合運(yùn)算(union all)和聚合函數(shù)(count()) 1.1.5.2.?sql 1.1.5.3.?mysql 1.1.5.4.?如果生成{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}、{0, 10, 20, 30, 40, 50, 60, 70, 80, 90}和{0,100, 200, 300}這3個(gè)集合的

    2024年02月11日
    瀏覽(20)
  • 讀SQL學(xué)習(xí)指南(第3版)筆記08_視圖和索引

    讀SQL學(xué)習(xí)指南(第3版)筆記08_視圖和索引

    3.1.3.1.?Oracle Database用戶(hù)另一種選擇可以保護(hù)數(shù)據(jù)表的行列數(shù)據(jù)安全 3.1.3.2.?VPD允許用戶(hù)對(duì)數(shù)據(jù)表施加策略,服務(wù)器據(jù)此對(duì)用戶(hù)的查詢(xún)進(jìn)行修改 5.10.4.1.?sql 5.12.1.1.?平衡樹(shù)索引(balanced-tree index) 5.12.1.1.1.?B樹(shù)索引(B-tree index) 5.12.1.2.?MySQL、Oracle Database和SQL Server均默認(rèn)采用B樹(shù)

    2024年02月10日
    瀏覽(46)
  • 讀SQL學(xué)習(xí)指南(第3版)筆記09_條件邏輯與事務(wù)

    讀SQL學(xué)習(xí)指南(第3版)筆記09_條件邏輯與事務(wù)

    1.3.1.1.?Oracle的decode()函數(shù) 1.3.1.2.?MySQL的if()函數(shù) 1.3.1.3.?SQL Server的coalesce()函數(shù) 1.3.2.1.?在Oracle Database、SQL Server、MySQL、PostgreSQL、IBM UDB等數(shù)據(jù)庫(kù)中實(shí)現(xiàn) 1.3.3.1.?用于select、insert、update和delete語(yǔ)句 1.3.4.1.?sql 1.3.4.2.?mysql 1.3.5.1.?simple case expression 1.3.5.2.?類(lèi)似于搜索型case表達(dá)式,但

    2024年02月10日
    瀏覽(18)
  • 讀SQL學(xué)習(xí)指南(第3版)筆記07_分組和子查詢(xún)

    讀SQL學(xué)習(xí)指南(第3版)筆記07_分組和子查詢(xún)

    2.1.1.1.?查詢(xún)返回的每個(gè)值都是由聚合函數(shù)生成的 2.1.1.2.?沒(méi)有使用group by子句 2.1.1.3.?只有一個(gè)隱式分組 2.1.1.3.1.?payment數(shù)據(jù)表中的所有行 2.2.1.1.?添加一個(gè)group by子句來(lái)指定聚合函數(shù)應(yīng)該應(yīng)用于哪個(gè)分組 2.6.2.1.?因?yàn)樵谠u(píng)估where子句時(shí),分組尚未生成,因而必須將分組過(guò)濾條件

    2024年02月11日
    瀏覽(22)
  • 讀SQL學(xué)習(xí)指南(第3版)筆記12_時(shí)間函數(shù)和分析函數(shù)

    讀SQL學(xué)習(xí)指南(第3版)筆記12_時(shí)間函數(shù)和分析函數(shù)

    1.6.3.1.?SQL Server的getutcdate() 1.6.3.2.?MySQL的utc_timestamp() 1.8.2.1.?對(duì)于每個(gè)登錄的用戶(hù)可能有所不同 1.8.2.2.?改變當(dāng)前會(huì)話(huà)的時(shí)區(qū)設(shè)置 1.8.2.3.?mysql> SET time_zone = \\\'Europe/Zurich\\\'; 2.4.1.1.?年份,包括世紀(jì) 2.4.1.2.?1000--9999 2.4.2.1.?月份 2.4.2.2.?01 (1月)~12 (12月) 2.4.3.1.?日 2.4.3.2.?01~31 2.4.4.1

    2024年02月10日
    瀏覽(28)
  • 讀SQL學(xué)習(xí)指南(第3版)筆記03_創(chuàng)建和填充數(shù)據(jù)庫(kù)

    讀SQL學(xué)習(xí)指南(第3版)筆記03_創(chuàng)建和填充數(shù)據(jù)庫(kù)

    3.2.3.1.?ALTER TABLE person MODIFY person_id SMALLINT UNSIGNED AUTO_INCREMENT; 5.4.3.1.?sql 5.4.3.2.?%a 星期幾的簡(jiǎn)寫(xiě),比如Sun、Mon、... 5.4.3.3.?%b 月份名稱(chēng)的簡(jiǎn)寫(xiě),比如Jan、Feb、... 5.4.3.4.?%c 月份的數(shù)字形式(0…12) 5.4.3.5.?%d 月份中的天數(shù)(00…31) 5.4.3.6.?%f 微秒數(shù)(000000…999999) 5.4.3.7.?%H 24小

    2024年02月11日
    瀏覽(32)
  • 讀SQL學(xué)習(xí)指南(第3版)筆記10_元數(shù)據(jù)與大數(shù)據(jù)

    讀SQL學(xué)習(xí)指南(第3版)筆記10_元數(shù)據(jù)與大數(shù)據(jù)

    1.3.19.1.?system catalog 5.7.2.1.?服務(wù)器會(huì)檢查數(shù)據(jù)表的元數(shù)據(jù),以確定實(shí)際需要包含哪些分區(qū) 5.7.3.1.?只有那些包含查詢(xún)所需數(shù)據(jù)的分區(qū)才會(huì)被包含在內(nèi) 5.7.4.1.?財(cái)務(wù)數(shù)據(jù)可能需要在線保存7年,如果數(shù)據(jù)表已根據(jù)事務(wù)日期進(jìn)行分區(qū),就可以撤銷(xiāo)數(shù)據(jù)保存時(shí)長(zhǎng)超過(guò)7年的分區(qū) 5.9.1.1.?

    2024年02月10日
    瀏覽(45)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包