第5章MySQL表結(jié)構(gòu)管理-習(xí)題_第1頁(yè)
第5章MySQL表結(jié)構(gòu)管理-習(xí)題_第2頁(yè)
第5章MySQL表結(jié)構(gòu)管理-習(xí)題_第3頁(yè)
第5章MySQL表結(jié)構(gòu)管理-習(xí)題_第4頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡(jiǎn)介

習(xí)題5MySQL提供了哪幾種字符數(shù)據(jù)類型?它們的區(qū)別是什么?答:MySQL中的字符串?dāng)?shù)據(jù)類型包括CHAR、VARCHAR、BINARY>VARBINARY.BLOB、TEXT、ENUM和SET。CHAR和VARCHAR的區(qū)別為:CHAR列的長(zhǎng)度固定為聲明的長(zhǎng)度。長(zhǎng)度可以是。到255之間的任意值。存儲(chǔ)時(shí),會(huì)使用空格右填充到指定的長(zhǎng)度。VARCHAR列中的值是可變長(zhǎng)度字符串。長(zhǎng)度可以指定為0到65535之間的值。VARCHAR的有效最大長(zhǎng)度取決于最大行大小(65535字節(jié))和使用的字符集。VARCHAR值在存儲(chǔ)時(shí)不進(jìn)行填充,在存儲(chǔ)和檢索值時(shí)保留尾隨空格。(2)與CHAR不同,VARCHAR值存儲(chǔ)為1字節(jié)或2字節(jié)長(zhǎng)度前綴加數(shù)據(jù)。長(zhǎng)度前綴表示值中的字節(jié)數(shù)。如果值不超過255字節(jié),則使用一個(gè)長(zhǎng)度字節(jié);如果值超過255字節(jié),則使用兩個(gè)長(zhǎng)度字節(jié)。(4)對(duì)于VARCHAR歹!J,超出列長(zhǎng)度的尾隨空格在插入之前被截?cái)嗖⑸删妗?duì)于CHAR歹U,都會(huì)從插入的值中截?cái)喽嘤嗟奈搽S空格。BINARY和VARBINARY類型與CHAR和VARCHAR類似,只是它們存儲(chǔ)字節(jié)字符串而不是字符串,這意味著它們具有二進(jìn)制字符集和排序規(guī)則,比較和排序基于值中字節(jié)的數(shù)值。BINARY和VARBINARY的允許最大長(zhǎng)度與CHAR和VARCHAR的相同,只是BINARY和VARBINARY的長(zhǎng)度是以字節(jié)為單位而不是字符。ENUM類型又稱為枚舉類型,在創(chuàng)建表時(shí),使用ENUMC值1?值2;…;值n)的形式定義一個(gè)列,該列的值只能取列表中的某一個(gè)元素。ENUM類型的取值列表中最多只能包含65535個(gè)值。SET類型為集合類型,在創(chuàng)建表時(shí),使用SET。值1;值2;…;值n)的形式定義的列的值可以取列表中的一個(gè)元素或者多個(gè)元素的組合。MySQL提供了哪幾種數(shù)值數(shù)據(jù)類型?它們的區(qū)別是什么?答:MySQL中的數(shù)值數(shù)據(jù)類型包括整數(shù)類型、定點(diǎn)數(shù)類型、浮點(diǎn)數(shù)類型和位值類型。整數(shù)類型包括TINYINT、INTEGER(或INT)、SMALLINT、MEDIUMINT和BIGINT,各類型的存儲(chǔ)字節(jié)和取值范圍不同。定點(diǎn)數(shù)類型包括DECIMAL和NUMERIC,用于存儲(chǔ)精確的數(shù)值數(shù)據(jù)。浮點(diǎn)數(shù)類型包括單精度FLOAT類型和雙精度DOUBLE類型,代表近似的數(shù)據(jù)值。MySQL提供了哪幾種日期時(shí)間數(shù)據(jù)類型?它們的區(qū)別是什么?答:MySQL中的日期時(shí)間數(shù)據(jù)類型包括DATE、TIME、DATETIME>TIMESTAMP和YEARo各類型的存儲(chǔ)字節(jié)數(shù)和取值范圍不同。MySQL中創(chuàng)建表的方法有哪些?答:MySQL中可以通過以下幾種方式創(chuàng)建表:(1)可以使用CREATETABLE語(yǔ)句倉(cāng)ij建表,其語(yǔ)法格式為:CREATE[TEMPORARY]TABLE[IFNOTEXISTS]tbl_name(coLnamedata_type[(n[,m])][NOTNULL|NULL][DEFAULT{literal|(expr)}][AUTOJNCREMENT1[COMMENTString![index_definition],[constraint_definition])[table_options](2)可以通過復(fù)制創(chuàng)建表:使用CREATETABLE...LIKE語(yǔ)句基于另一個(gè)表的定義創(chuàng)建一個(gè)新表,語(yǔ)法格式為:CREATETABLEnew_tblLIKEorig_tbl;使用CREATETABLE...SELECT語(yǔ)句,通過在CREATETABLE語(yǔ)句末尾添力口SELECT語(yǔ)句,可以從一個(gè)表創(chuàng)建另一個(gè)表,語(yǔ)法格式為:CREATETABLEnew_tbl[(column_definition,[index_definition],fconstraint_definition])[table_options]][AS]SELECT*FROMorig_tbl;什么是約束?MySQL有哪幾種約束?答:約束是數(shù)據(jù)庫(kù)中實(shí)現(xiàn)數(shù)據(jù)完整性的一種重要手段,通過對(duì)表中數(shù)據(jù)的取值加以限制來保證數(shù)據(jù)的正確性、有效性和一致性。MySQL中的約束主要有:主鍵約束、唯一性約束、檢查約束、外鍵約束、非空約束、默認(rèn)值等。什么是主鍵約束?什么是唯一性約束?二者的區(qū)別是什么?答:主鍵約束可以用來實(shí)現(xiàn)實(shí)體完整性。主鍵可以是表中的一列,也可以是多個(gè)列的組合。由多個(gè)列組成的主鍵稱為復(fù)合主鍵。如果表中某一列或者一些列的組合不允許有重復(fù)值,可以定義唯一性約束。唯一性約束和主鍵約束的區(qū)別是:一個(gè)表只能定義一個(gè)主鍵約束,但是可以定義多個(gè)唯一性約束;設(shè)置為主鍵的列不允許空值,即使列的定義中沒有NOTNULL,而定義唯一性約束的列如果沒有NOTNULL,則可以有空值。.如何定義主鍵約束?答:可以通過以下方法定義主鍵約束:(1)在CREATETABLE語(yǔ)句中,在要定義為主鍵的列的屬性定義中加上PRIMARYKEY,語(yǔ)法格式為:col_namedata_type[(n[,m])][DEFAULT{literal|(expr)}]PRIMARYKEY(2)在CREATETABLE語(yǔ)句中,在表中所有列的定義之后,加上主鍵約束的定義,其語(yǔ)法格式為:[CONSTRAINTconstraint_name]PRIMARYKEY(col_name[,col_name...])(3)如果表已經(jīng)存在并且需要?jiǎng)?chuàng)建主鍵約束,可以用ALTERTABLE語(yǔ)句對(duì)表結(jié)構(gòu)進(jìn)行修改增加主鍵約束,語(yǔ)法格式如下:ALTERTABLEtbl_nameADD[CONSTRAINTconstraint_name]PRIMARYKEY(col_name[,col_name...]);.如何定義唯一性約束?答:可以通過以下方法定義唯一性約束:(1)在CREATETABLE語(yǔ)句中,在要定義唯一性約束的列的屬性定義中加上UNIQUE,語(yǔ)法格式為:col_namedata_type[(n[,m])][DEFAULT{literal|(expr)}]UNIQUE(2)在CREATETABLE語(yǔ)句中,在表中所有列的定義之后,加上唯一性約束的定義,其語(yǔ)法格式為:[CONSTRAINTconstraint_name]UNIQUE(col_name[,col_name...])(3)如果表已經(jīng)存在并且需要?jiǎng)?chuàng)建唯一性約束,可以用ALTERTABLE語(yǔ)句對(duì)表結(jié)構(gòu)進(jìn)行修改增加唯一性約束,語(yǔ)法格式如下:ALTERTABLEtbl_nameADD[CONSTRAINTconstraint_name]UNIQUE(col_name[,colname...]);.如何定義Check約束?答:可以通過以下方法定義CHECK約束:(1)在CREATETABLE語(yǔ)句中,在要定以檢查約束的列的屬性定義中加上CHECK定義,語(yǔ)法格式為:col_namedata_type[(n[,m])][DEFAULT{literal|(expr)}]CHECK(expr)(2)在CREATETABLE語(yǔ)句中,在表中所有列的定義之后,加上check約束的定義,其語(yǔ)法格式為:[CONSTRAINTconstraint_name]CHECK(expr)(3)如果表已經(jīng)存在并且需要?jiǎng)?chuàng)建check約束,可以用ALTERTABLE語(yǔ)句對(duì)表結(jié)構(gòu)進(jìn)行修改增加check約束,語(yǔ)法格式如下:ALTERTABLEtbl_nameADD[CONSTRAINTconstraint_name]CHECK(expr);.外鍵約束的作用是什么?如何定義外鍵約束?答:外鍵約束用于實(shí)現(xiàn)參照完整性,可以通過以下方法定義外鍵約束:(1)在CREATETABLE語(yǔ)句中,在表中所有列的定義之后,加上外鍵約束的定義,其語(yǔ)法格式為:[CONSTRAINT[constraint_name]]FOREIGNKEY(col_name,...)REFERENCEStbl_name(col_name,...)[ONDELETERESTRICT|CASCADE|SETNULL|NOACTION][ONUPDATERESTRICT|CASCADE|SETNULL|NOACTION](2)如果表已經(jīng)存在并且需要?jiǎng)?chuàng)建外鍵約束,可以用ALTERTABLE語(yǔ)句對(duì)表結(jié)構(gòu)進(jìn)行修改增加外鍵約束,語(yǔ)法格式如下:ALTERTABLEtbl_nameADD[CONSTRAINT[constraint_name]]FOREIGNKEY(col_name,...)REFERENCEStbl_name(col_name,...)[ONDELETERESTRICT|CASCADE|SETNULL|NOACTION][ONUPDATERESTRICT|CASCADE|SETNULL|NOACTION].如何查看表的結(jié)構(gòu)?答:可以通過以下方式查看表的結(jié)構(gòu):(1)使用DESCRIBE語(yǔ)句,DESCRIBE語(yǔ)句的語(yǔ)法格式如下:DESC[RIBE][db_name.]tbl_name(2)使用SHOWCOLUMNS|FIELDS語(yǔ)句,SHOWCOLUMNS|FIELDS語(yǔ)句的語(yǔ)法格式如下:SHOW{COLUMNS|FIELDS}{FROM|IN}tbl_name[{FROM|IN}db_name].如何查看表的定義語(yǔ)句?答:可以使用SHOWCREATETABLEtbl_name查看表的定義語(yǔ)句。.如何為已創(chuàng)建的表添加列?答:可以使用ALTERTABLE語(yǔ)句為己創(chuàng)建的表添加列,語(yǔ)句格式如下:ALTERTABLEtbl_nameADD[COLUMN]col_namecolumn_definition[FIRST|AFTERcol_name].修改列的集幾種方法ALTERCOLUMN、CHANGECOLUMN和MODIFYCOLUMN的區(qū)別是什么?答:CHANGE>MODIFY>RENAMECOLUMN和ALTER子句允許對(duì)表中現(xiàn)有歹U進(jìn)行更改,它們的區(qū)別為:MODIFY

溫馨提示

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

評(píng)論

0/150

提交評(píng)論