第5章MySQL表結構管理-習題_第1頁
第5章MySQL表結構管理-習題_第2頁
第5章MySQL表結構管理-習題_第3頁
第5章MySQL表結構管理-習題_第4頁
全文預覽已結束

付費下載

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

溫馨提示

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

評論

0/150

提交評論