freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

mysql教學(xué)課件php支持(文件)

2024-10-16 19:15 上一頁面

下一頁面
 

【正文】 ? 屬性有以下類型: ? ■ 專用屬性用于指定列。還可以用 D E FA U LT def_value 來表示在創(chuàng)建一個(gè)新行但未明確給出該列的值時(shí),該列可賦予值 d e f _ v a l u e。類似地,如果需要給出多個(gè)通用屬性,也可按任意順序給出它們,只要將它們放在列類型和可能給出的列專用屬性之后即可。整型值也可以賦予浮點(diǎn)列,這時(shí)將它們表示為小數(shù)部分為零的浮點(diǎn)值。整數(shù)列可定義為 UNSIGNED 從而禁用負(fù)值;這使列的取值范圍為 0 以上。與整型不同,浮點(diǎn)類型不能是 UNSIGNED 的,其取值范圍也與整型不同,這種不同不僅在于這些類型有最大值,而且還有最小非零值。 F L O AT(4) 和 F L O AT(8) 是為了與 ODBC 兼容而提供的。 MEDIUMINT 能夠表示數(shù)百萬的值并且可用于更多類型的值,但存儲(chǔ)代價(jià)較大。 ? 在定義整型列時(shí),可以指定可選的顯示尺寸 M。如果定義了一個(gè)沒有明確寬度的整數(shù)列,將會(huì)自動(dòng)分配給它一個(gè)缺省的寬度。 M 的值應(yīng)該取 1 到 2 5 5。下面的語句創(chuàng)建了一個(gè)表,它說明了數(shù)值列類型的 M 和 D 的缺省值(其中不包括 D E C I M A L,因?yàn)?M 和 D 對(duì)這種類型不是可選的): ? Create table my_table ( itiny TINYINT,itiny_u TINYINT UNSIGNED, ismall SMALLINT, ismall_u SMALLINT UNSIGNED, imedium MEDIUMINT, imedium_u MEDIUMINT UNSIGNED, ireg INT, ireg_u INT UNSIGNED, ibig BIGINT, ibig_u BIGINT UNSIGNED, fp_single FLOAT, fp_double DOUBLE )。值的剪裁根據(jù)列類型的范圍而不是顯示寬度進(jìn)行。以后在檢索中將以值 3 2 7 6 7檢索該值。這表示應(yīng)該定義具有足夠位數(shù)的浮點(diǎn)列以便得到盡可能精確的值。如果改變 M 而固定 D,則其取值范圍將隨 M 的變大而變大。因此,類型為 DECIMAL(5, 2) 的列,其取值范圍為 到 9 9 . 9 9,因?yàn)樗鼈兏采w了所有可能的 5 個(gè)字符的值。對(duì)于DECIMAL(5, 2), “ 最長 ” 的值( 9 9 9 . 9 9)需要 7個(gè)字節(jié)。這樣做的結(jié)果是擴(kuò)充了列的取值范圍,因?yàn)檫^去用來存儲(chǔ)小數(shù)點(diǎn)的字節(jié)現(xiàn)在可用來存放其他數(shù)字了 MySQL 的列類型 ? 數(shù)值列的類型屬性 ? 可對(duì)所有數(shù)值類型指定 ZEROFILL 屬性。使用下列語句可看到這一點(diǎn) ? Create table my_table(my_zerofill int(5) zerofill)。請(qǐng)注意最后一行值,它比列的顯示寬度更寬,但仍然完全顯示出來 MySQL 的列類型 ? 如下所示兩個(gè)屬性只用于整數(shù)列: ■ AUTO_INCREMENT。一個(gè)表中最多只能有一個(gè) A U TO_INCREMENT 列。將列定義為 UNSIGNED 并不改變其基本數(shù)據(jù)類型的取值范圍;它只是前移了取值的范圍。 ? 在指定以上屬性之后(它們是專門用于數(shù)值列的),可以指定通用屬性 NULL 或N O T N U L L。對(duì)于所有數(shù)值列類型,那些可以包含 NULL 的列的缺省將為 N U L L,不能包含NULL 的列其缺省為 0。 A UTO_INCREMENT 序列從 1 開始,因此插入表中的第一個(gè)記錄得到為 1 的序列值,而后繼插入的記錄分別得到序列值 3 等等。 MySQL 的列類型 ■如果插入一個(gè)記錄并明確指定 A U TO_INCREMENT 列的一個(gè)值,將會(huì)發(fā)生兩件事之一。增大計(jì)數(shù)器會(huì)使序列出現(xiàn)空白,但這個(gè)特性也有用。另一個(gè)辦法是插入 A U TO_INCREMENT 列值為 999 的假記錄。如果刪除了表中的所有記錄,則所有值都可以重用;相應(yīng)的序列重新從 1開始。如果試圖更新該列為一個(gè)已經(jīng)存在的值,將出錯(cuò)(除非碰巧設(shè)置此列的值為它所具有的值,才不會(huì)出錯(cuò),但這沒有任何意義)。 L A S T _ I N S E RT_ID( ) 依賴于當(dāng)前服務(wù)器會(huì)話中生成的 A U TO_INCREMENT 值; 它不受與其他客戶機(jī)相關(guān)的 A U TO_INCREMENT 活動(dòng)的影響。首先,序列中頂上的記錄被刪除時(shí),序列值的重用使得難于生成可能刪除和插入記錄的應(yīng)用的一系列單調(diào)(嚴(yán)格遞增)值。 ■ 在創(chuàng)建表時(shí),可以明確指定初始的序列編號(hào)。 MySQL 早于 的版本并不嚴(yán)格服從這個(gè)約束,允許定義諸如 CHAR 這樣的列類型具有 A U TO_INCREMENT 屬性。這樣做的優(yōu)點(diǎn)是在到達(dá)列類型的取值范圍上限前可以進(jìn)行兩倍的序列編號(hào)。 ? ■ 不要認(rèn)為對(duì)某個(gè)列定義增加 A U TO_INCREMENT 是一個(gè)得到無限的編號(hào)序列的奇妙方法。 MySQL 的列類型 ? MySQL 引入了不重用序列編號(hào)的新 A U TO_INCREMENT 性能,并且允許在 C R E ATE TABLE 語句中指定一個(gè)初始的序列編號(hào)。出現(xiàn)這種情形的原因在于 MySQL 優(yōu)化完全刪空一個(gè)表的 DELETE 語句的方法上;它從頭開始重新創(chuàng)建數(shù)據(jù)文件和索引文件而不是去刪除每個(gè)記錄,這樣就丟失了所有的序列號(hào)信息。然后對(duì)希望包含序列編號(hào)的列使用 L A S T _ I N S E RT_ID( ) 的值將該記錄插入主表,如下所示: ? Insert into ai_tbl set ai_col=null。 MySQL 的列類型 ? 串列類型 ? MySQL 提供了幾種存放字符數(shù)據(jù)的串類型。但是串類型的取值范圍很不同,有的取值范圍很小,有的則很大。這個(gè)長度在表中用 L 表示 MySQL 的列類型 L 以外所需的額外字節(jié)為存放該值的長度所需的字節(jié)數(shù)。例如, MEDIUMBLOB 值可能最多 22 4 1字節(jié)長并需要 3 個(gè)字節(jié)記錄其結(jié)果。它們是有差異的, CHAR 是定長類型而 VARCHAR 是可變長類型。如果所有的值長度相同,由于需要額外的字節(jié)來記錄值的長度, VARCHAR 實(shí)際占用了更多的空間。以后可以用 A LT E RTABLE 來加寬這個(gè)列。 MySQL 的列類型 ? 除少數(shù)情況外,在同一個(gè)表中不能混用 CHAR 和 VA R C H A R。即使表中只有一列是可變長的,該表的行也是可變長的。這樣做的原因如下: ■ 行定長的表比行可變長的表容易處理(其理由請(qǐng)參閱 2 . 3節(jié) “ 選擇列的類型 ” )。這樣的列可能取兩個(gè)值, NULL 和空串。 ? 從 MySQL 開始, CHAR(0) 也是合法的了。 VARCHAR(M) 列的值只用所必需的字節(jié)數(shù)來存放(結(jié)尾的空格在存儲(chǔ)時(shí)去掉,這與 ANSI SQL 的 VARCHAR 值的標(biāo)準(zhǔn)不同),然后再加一個(gè)字節(jié)記錄其長度。這并非偶然。這些額外的字節(jié)是無符號(hào)整數(shù)。因此,應(yīng)該使串足夠長以免您的信息被切斷(由于受客戶機(jī) /服務(wù)器通信協(xié)議的最大塊尺寸限制,列值的最大限額為 2 4 M B)。例如,可用串類型來存儲(chǔ)二進(jìn)制數(shù)據(jù),如影像或聲音,或者存儲(chǔ) gzip 的輸出結(jié)果,即存儲(chǔ)壓縮數(shù)據(jù)。 ? 如果表是空的,則插入記錄并明確地對(duì)序列編號(hào)列指定值 1 0 0。在這種情況下,獨(dú)立表中的值永遠(yuǎn)不會(huì)重用。 ? 在此情形下,序列重新從 1開始而不按嚴(yán)格的增量順序繼續(xù)增加。例如,如果使用 TINYINT UNSIGNED 列,則最大的序列號(hào)為 2 5 5。如果您決定要試一下,應(yīng)該保證進(jìn)行充分的試驗(yàn),并且在升級(jí)到不同的 MySQL 版本時(shí)需要重新測試。 MySQL 的列類型 ■ A U TO_INCREMENT 機(jī)制的主要目的是生成一個(gè)正整數(shù)序列,并且如果以這種方式使用,則 A U TO_INCREMENT 列效果最好。 ? 在使用 A U TO_INCREMENT 列時(shí),應(yīng)該記住下列要點(diǎn): ■ A U TO_INCREMENT 不是一種列類型 ,它只是一種列類型屬性。 MySQL 的列類型 ? MySQL 版以后的 A U TO_INCREMENT的性能進(jìn)行了下列變動(dòng)以便能夠處理上述問題: ■ 自動(dòng)順序生成的值嚴(yán)格遞增且不重用。 ? 能夠自動(dòng)生成順序編號(hào)這個(gè)功能特別有用。 ■ 最近自動(dòng)產(chǎn)生的序列編號(hào)值可調(diào)用 L A S T _ I N S E RT_ID( ) 函數(shù)得到。 MySQL 的列類型 ■ U P D ATE 語句按類似插入新記錄的規(guī)則起作用。 ■ 如果將一個(gè)不合規(guī)定的值插入 A U TO_INCREMENT 列,將會(huì)出現(xiàn)難以預(yù)料的結(jié)果。則可以用后述的兩種辦法之一達(dá)到此目的。如果不存在具有該值的記錄,那么新記錄將被插入,并且如果新記錄的 A U TO_INCREMENT 列中的值是新的最大值,那么后續(xù)行將用該值的下一個(gè)值。 ■ 插入 0 到 A U TO_INCREMENT 與插入 NULL 到列中的效果一樣。這些列可自動(dòng)生成順序編號(hào)。也可以用D E FA U LT 屬性來指定一個(gè)缺省值。 ? itiny 和 itiny_u 兩列都是 T I N Y I N T列,并且都可取 2 5 6個(gè)值,但是 i t i n y的取值范圍為 1 2 8 到 1 2 7,而 itiny_u 的取值范圍為 0 到 2 5 5。 ? U N S I G N E D。 A U TO_INCREMENT 值一般從 1開始,每行增加 1。 ? Select my_zerofill from my_table。在希望確定列值總是以給定的數(shù)字位數(shù)顯示時(shí)可利用 Z E R O F I L L。如 DECIMAL(5, 2) 的最大值為 9 9 9 9 . 9 9,因?yàn)橛?7 個(gè)字節(jié)可用。例如, DECIMAL(5, 2) 必須能夠表示從 到 的所有值。 MySQL 的列類型 ? 給定的 DECIMAL 類型的取值范圍取決于 MySQL 的版本。 MySQL 的列類型 ? DECIMAL 類型不同于 F L O AT 和 D E C I M A L,其中 DECIMAL 實(shí)際是以串存放的。如果在一個(gè) F L O AT(8, 1)的列中存儲(chǔ) 1 . 2 3 4 5 6,則結(jié)果為 1 . 2。值12345 比顯示寬度大,但在該列的取值范圍內(nèi),因此它可以插入而不用剪裁并且作為 12345 檢索。如果打算插入一個(gè)不在列范圍內(nèi)的值,將會(huì)進(jìn)行截?。?MySQL 將剪裁該值為取值范圍的邊界值并使用這個(gè)結(jié)果。(如果熟悉ODBC 術(shù)語,就會(huì)知道 M 和 D 對(duì)應(yīng)于 ODBC 概念的 “ 精度 ” 和 “ 小數(shù)點(diǎn)位數(shù) ” ) M 和 D 對(duì) F L O AT 和 DOUBLE 都是可選的,但對(duì)于 DECIMAL 是必須的。如果某個(gè)特定值的可打印表示需要不止 M 個(gè)字符,則顯示完全的值;不會(huì)將值截?cái)嘁赃m合 M 個(gè)字符。它表示用來顯示列中值的字符數(shù)。對(duì)于浮點(diǎn)值, D O U B L E占用 F L O AT 的兩倍空間。選擇較大類型會(huì)對(duì)空間造成浪費(fèi),使表不必要地增大,處理起來沒有選擇較小類型那樣有效。 ? DOUBLE PRECISION[(M, D)] 和 REAL[(M, D)] 為 DOUBLE[(M, D)] 的同義詞。取值范圍較大的類型所需的存儲(chǔ)量較大。 I N T 為 I N T E G E R的縮寫。用于無小數(shù)部分的數(shù),■ 浮點(diǎn)數(shù)。不能對(duì) BLOB 或 TEXT 列指定缺省值。 ? ■ 通用屬性除少數(shù)列之外可用于任意列。有的類型說明符允許指定最大的顯示寬度(即顯示值時(shí)使用多少個(gè)字符)。對(duì)于某些類型,可用一個(gè)數(shù)值明確地說明其長度。 M y S Q L保留諸如 S E L E C T、 DELETE 和 C R E ATE 這樣的詞,這些詞不能用做列名。而且還提供了一種在不需要完整的日期時(shí)有效地表示年份的類型。串在進(jìn)行比較時(shí)可以設(shè)定是否區(qū)分大小寫。 M y S Q L有整數(shù)和浮點(diǎn)數(shù)值的列類型,如表 2 2所示。 ■ 此類型是否允許 NULL 值。 ? MySQL 的列類型是一種手段,通過這種手段可以描述一個(gè)表列包含什么類型的值,這又決定了 MySQL 怎樣處理這些值。 MySQL 的列類型 ? 數(shù)據(jù)庫中的每個(gè)表都是由一個(gè)或多個(gè)列構(gòu)成的??梢岳?D AT E _ F O R M AT( ) 函數(shù)以任意形式顯示日期值,但是缺省顯示格式首先顯示年,而且輸入值也必須首先給出年。 用 MySQL 處理數(shù)據(jù) ? 日期和時(shí)間值 ? 日期和時(shí)間是一些諸如 “ 1 9 9 9 0 6 1 7”或 “ 1 2 : 3 0 : 4 3”這樣的值。如: ?I can\?t?。 ? ■ 如果串是用另外的引號(hào)括起來的,則不需要雙寫相應(yīng)引號(hào)。注意 NUL 字節(jié)與 NULL 值不同; NUL 為一個(gè)零值字節(jié),而 NULL 為沒有值。 用 MySQL 處理數(shù)據(jù)
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1