2020国产成人精品视频,性做久久久久久久久,亚洲国产成人久久综合一区,亚洲影院天堂中文av色

分享

MySQL數(shù)據(jù)庫技術(shù)(07)

 Ralf_Jones 2006-07-19

 

根據(jù)定義,數(shù)據(jù)庫管理系統(tǒng)的目的就是管理數(shù)據(jù)。即使一條簡單的SELECT 1 語句也涉及表達式求值以產(chǎn)生一個整型數(shù)據(jù)值。MySQL 中的每個數(shù)據(jù)值都有類型。例如, 37.4 是一個數(shù),而“ a b c”是一個串。有時,數(shù)據(jù)的類型是明顯的,因為在使用C R E ATE TABLE 語句時指定了作為表的組成部分定義的每個列的類型,如:

    而有時,數(shù)據(jù)類型是不明確的,如在一個表達式中引用直接值時,將值傳送給一個函數(shù),或使用從該函數(shù)返回的值,如:

   I N S E RT 語句完成下列操作,這些操作全都涉及數(shù)據(jù)類型:
   ■ 將整數(shù)值14 賦給整數(shù)列i n t _ c o l。
   ■ 將串值“ a”和“b”傳遞給函數(shù)C O N C AT( )。C O N C AT( ) 返回串值“a b”,這個串值被賦予串列s t r _ c o l。
   ■ 將整數(shù)值1 9 9 9 0 115 賦給日期列d a t e _ c o l。而這是不匹配的,因此, MySQL 將自動進行數(shù)據(jù)類型轉(zhuǎn)換。要有效地利用M y S Q L,必須理解其怎樣處理數(shù)據(jù)。本章描述了MySQL 能夠處理的數(shù)據(jù)類型,并討論了在處理這些數(shù)據(jù)類型時所出現(xiàn)的問題,主要內(nèi)容如下:
   ■ 通用數(shù)據(jù)類型,包括NULL 值。
   ■ 特殊數(shù)據(jù)類型,以及描述每種列類型的屬性。有些列類型是相當常見的,如CHAR 串類型。而有的如A U TO_INCREMENT 整型和T I M E S TAMP 日期類型,其性能很特殊,應(yīng)該加以理解以免出錯。
   ■ 恰當?shù)剡x擇表的列類型。在創(chuàng)建表時,重要的是要了解怎樣為自己的目的選擇最好的類型,以及在幾種類型都可以用于想要存儲的值時選擇一種類型。
   ■ 表達式求值規(guī)則。MySQL 提供了許多可用于表達式的運算符和函數(shù),以便對數(shù)據(jù)進行檢索、顯示和處理。表達式求值的規(guī)則包括類型轉(zhuǎn)換規(guī)則,在一種類型的值用于另一類型的值的情況時需用到類型轉(zhuǎn)換規(guī)則。理解何時進行類型轉(zhuǎn)換以及怎樣進行轉(zhuǎn)換很重要;有的轉(zhuǎn)換沒有意義而且會產(chǎn)生錯誤值。將串“1 3”賦給整數(shù)列結(jié)果為值1 3,但是將串“a b c” 賦給該列得到0 值,因為“a b c”不是一個數(shù)。更壞的是,如果進行比較而不了解值的轉(zhuǎn)換,可能會帶來很大的危險,如在打算只對幾行進行操作時,可能會更新或刪除了表中的所有行。附錄B和附錄C提供了MySQL 列類型、運算和函數(shù)的更多信息。
   2.1 MySQL 數(shù)據(jù)類型
   MySQL 有幾種數(shù)據(jù)類型,下面分別進行介紹。
   1. 數(shù)值值
   數(shù)值是諸如48 或193.62 這樣的值。MySQL 支持說明為整數(shù)(無小數(shù)部分)或浮點數(shù)(有小數(shù)部分)的值。整數(shù)可按十進制形式或十六進制形式表示。整數(shù)由數(shù)字序列組成。以十六進制形式表示的整數(shù)由“ 0 x”后跟一個或多個十六進制數(shù)字(” 0”到“9”及“a”到“f”)組成。例如, 0x0a 為十進制的1 0,而0 x ffff 為十進制的6 5 5 3 5。十六進制數(shù)字不區(qū)分大小寫,但其前綴“ 0 x”不能為“ 0 X”。即0x0a 和0x0A 都是合法的,但0X0a 和0X0A 不是合法的。浮點數(shù)由一個阿拉伯數(shù)字序列、一個小數(shù)點和另一個阿拉伯數(shù)字序列組成。兩個阿拉伯數(shù)字序列可以分別為空,但不能同時為空。MySQL 支持科學(xué)表示法??茖W(xué)表示法由整數(shù)或浮點數(shù)后跟“ e”或“E”、一個符號(“+”或“-”)和一個整數(shù)指數(shù)來表示。1.34E+12 和43.27e-1 都是合法的科學(xué)表示法表示的數(shù)。而1.34E12 不是合法的,因為指數(shù)前的符號未給出。指數(shù)前的“ e”也是一個合法的十六進制數(shù)字,因此有可能會弄錯。數(shù)值前可放一個負號“ -”以表示負值。
  2. (字符)串值 串是諸如“Madison, Wi s c o n s i n”或“patient shows improvement”這樣的值。既可用單引號也可用雙引號將串值括起來。串中可使用幾個轉(zhuǎn)義序列,它們用來表示特殊的字符,見表2 - 1。每個序列以一個反斜杠(“\”)開始,指出臨時不同于通常的字符解釋。注意NUL 字節(jié)與NULL 值不同;NUL 為一個零值字節(jié),而NULL 為沒有值。

    要在串中包括一個引號,可有如下三種選擇:
    ■ 如果串是用相同的引號括起來的,那么在串中需要引號的地方雙寫引號即可。如:

    ■ 如果串是用另外的引號括起來的,則不需要雙寫相應(yīng)引號。如:

    ■ 用反斜杠方式表示;這種方法不去管用來將串括起的是單引號還是雙引號。如:

    在串的環(huán)境中,可用十六進制常數(shù)來指定串值。其語法與前面描述的數(shù)值值相同,但是每對十六進制的數(shù)字都被看作ASCII 代碼并轉(zhuǎn)換為字符,其結(jié)果用于串。例如, 0 x 6 1 6 2 6 3作為串時為“ a b c”。
    3. 日期和時間值
    日期和時間是一些諸如“ 1 9 9 9 - 0 6 - 1 7”或“1 2 : 3 0 : 4 3”這樣的值。MySQL 還支持日期/時間的組合,如“ 1999-06-17 12:30:43”。要特別注意這樣一個事實,即MySQL 是按年-月-日的順序表示日期的。MySQL 的初學(xué)者通常對這一點很驚奇,其實這是ANSI SQL 的標準格式??梢岳肈 AT E _ F O R M AT( ) 函數(shù)以任意形式顯示日期值,但是缺省顯示格式首先顯示年,而且輸入值也必須首先給出年。
    4. NULL 值
    NULL 是一種“無類型”的值。它過去慣常表示的意思是“無值”、“未知值”、“丟失的值”、“溢出值”以及“沒有上述值”等??蓪ULL 值插入表中、從表中檢索它們,測試某個值是否是N U L L,但不能對NULL 值進行算術(shù)運算(如果對NULL 進行算術(shù)運算,其結(jié)果為N U L L)。

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

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多