MySQL數(shù)據(jù)庫技術(shù)與應(yīng)用課件第4章 MySQL表_第1頁
MySQL數(shù)據(jù)庫技術(shù)與應(yīng)用課件第4章 MySQL表_第2頁
MySQL數(shù)據(jù)庫技術(shù)與應(yīng)用課件第4章 MySQL表_第3頁
MySQL數(shù)據(jù)庫技術(shù)與應(yīng)用課件第4章 MySQL表_第4頁
MySQL數(shù)據(jù)庫技術(shù)與應(yīng)用課件第4章 MySQL表_第5頁
已閱讀5頁,還剩32頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

14.1表的基本概念4.1.1表和表結(jié)構(gòu)在工作和生活中,表是經(jīng)常使用的一種表示數(shù)據(jù)及其關(guān)系的形式。在學(xué)生信息數(shù)據(jù)庫stusys中,學(xué)生表student如表4.1所示。表4.1學(xué)生表(student)

MySQL數(shù)據(jù)庫技術(shù)與應(yīng)用學(xué)號(hào)姓名性別出生日期專業(yè)總學(xué)分191001劉清泉男1998-06-21計(jì)算機(jī)52191002張慧玲女1999-11-07計(jì)算機(jī)50191003馮濤男1999-08-12計(jì)算機(jī)52196001董明霞女1999-05-02通信48196002李茜女1998-07-25通信52196004周俊文男1998-03-08通信5024.1表的基本概念

表包含以下基本概念:(1)表

表是數(shù)據(jù)庫中存儲(chǔ)數(shù)據(jù)的數(shù)據(jù)庫對象,每個(gè)數(shù)據(jù)庫包含了若干個(gè)表,表由行和列組成。例如,表4.1由6行6列組成。(2)表結(jié)構(gòu)

每個(gè)表具有一定的結(jié)構(gòu),表結(jié)構(gòu)包含一組固定的列,列由數(shù)據(jù)類型、長度、允許Null值、鍵、默認(rèn)值等組成。(3)記錄

每個(gè)表包含若干行數(shù)據(jù),表中一行稱為一個(gè)記錄(Record)。表4.1有6個(gè)記錄。(4)字段

表中每列稱為字段(Field),每個(gè)記錄由若干個(gè)數(shù)據(jù)項(xiàng)(列)構(gòu)成,構(gòu)成記錄的每個(gè)數(shù)據(jù)項(xiàng)就稱為字段。表4.1有6個(gè)字段。

MySQL數(shù)據(jù)庫技術(shù)與應(yīng)用34.1表的基本概念(5)空值空值(Null)通常表示未知、不可用或?qū)⒃谝院筇砑拥臄?shù)據(jù)。(6)關(guān)鍵字關(guān)鍵字用于唯一標(biāo)識(shí)記錄,如果表中記錄的某一字段或字段組合能唯一標(biāo)識(shí)記錄,則該字段或字段組合稱為候選鍵。如果一個(gè)表有多個(gè)候選鍵,則選定其中的一個(gè)為主鍵(PrimaryKey)。表4.1的主鍵為“學(xué)號(hào)”。(7)默認(rèn)值默認(rèn)值指在插入數(shù)據(jù)時(shí),當(dāng)沒有明確給出某列的值,系統(tǒng)為此列指定一個(gè)值。在MySQL中,默認(rèn)值即關(guān)鍵字DEFAULT。

MySQL數(shù)據(jù)庫技術(shù)與應(yīng)用44.1表的基本概念4.1.2表結(jié)構(gòu)設(shè)計(jì)在數(shù)據(jù)庫設(shè)計(jì)過程中,最重要的是表結(jié)構(gòu)設(shè)計(jì),好的表結(jié)構(gòu)設(shè)計(jì),對應(yīng)著較高的效率和安全性,而差的表設(shè)計(jì),對應(yīng)著差的效率和安全性。創(chuàng)建表的核心是定義表結(jié)構(gòu)及設(shè)置表和列的屬性,創(chuàng)建表以前,首先要確定表名和表的屬性,表所包含的列名、列的數(shù)據(jù)類型、長度、是否為空、鍵、默認(rèn)值等,這些屬性構(gòu)成表結(jié)構(gòu)。在基本數(shù)據(jù)庫stusys中的學(xué)生表student、課程表course、成績表score、教師表teacher、講課表lecture的表結(jié)構(gòu),參見頁“附錄B基本數(shù)據(jù)庫stusys的表結(jié)構(gòu)和樣本數(shù)據(jù)”。其中,學(xué)生表student的表結(jié)構(gòu)介紹如下:學(xué)生表student包含sno,sname,ssex,sbirthday,speciality,tc等列。

MySQL數(shù)據(jù)庫技術(shù)與應(yīng)用54.1表的基本概念(1)sno列是學(xué)生的學(xué)號(hào),例如191001中19表示2019年入學(xué),01表示學(xué)生的序號(hào),sno列的數(shù)據(jù)類型選字符型char[(n)],n的值為6,不允許空,無默認(rèn)值,在student表中,只有sno列能唯一標(biāo)識(shí)一個(gè)學(xué)生,所以將sno列設(shè)為主鍵;(2)sname列是學(xué)生的姓名,姓名一般不超過4個(gè)中文字符,所以選字符型char[(n)],n的值為8,不允許空,無默認(rèn)值;(3)ssex列是學(xué)生的性別,選字符型char[(n)],n的值為2,不允許空,默認(rèn)值為”男”;(4)sbirthday列是學(xué)生的出生日期,選date數(shù)據(jù)類型,不允許空,無默認(rèn)值;(5)speciality列是學(xué)生的專業(yè),選字符型char[(n)],n的值為12,允許空,無默認(rèn)值;

MySQL數(shù)據(jù)庫技術(shù)與應(yīng)用64.1表的基本概念(6)tc列是學(xué)生的總學(xué)分,選tinyint數(shù)據(jù)類型,允許空,無默認(rèn)值。student的表結(jié)構(gòu)設(shè)計(jì)如表4.2所示。表4.2student的表結(jié)構(gòu)

MySQL數(shù)據(jù)庫技術(shù)與應(yīng)用列名數(shù)據(jù)類型允許null值鍵默認(rèn)值說明SnoChar(6)×主鍵無學(xué)號(hào)SnameChar(8)×無姓名SsexChar(2)×男性別SbirthdayDate×無出生日期SpecialityChar(12)√無專業(yè)tctinyint√無總學(xué)分74.2數(shù)據(jù)類型MySQL的數(shù)據(jù)類型包括數(shù)值類型、字符串類型、日期和時(shí)間類型、二進(jìn)制數(shù)據(jù)類型、其它類型等。下面分別介紹MySQL的數(shù)據(jù)類型。4.2.1數(shù)值類型1.整數(shù)類型整數(shù)類型包括tinyint、smallint、mediumint、int、bigint等類型,integer是int的同義詞,其字節(jié)數(shù)和取值范圍如表4.3所示。表4.3數(shù)值型

MySQL數(shù)據(jù)庫技術(shù)與應(yīng)用數(shù)據(jù)類型字節(jié)數(shù)無符號(hào)數(shù)取值范圍有符號(hào)數(shù)取值范圍tinyint10~255-128~127smallint20~65535-32768~32767mediumint30~16777215-8388608~8388607intinteger40~4294967295-2147483648~2147483647bigint80~1.84×1019±9.22×101884.2數(shù)據(jù)類型2.定點(diǎn)數(shù)類型定點(diǎn)數(shù)類型用于存儲(chǔ)定點(diǎn)數(shù),保存必須為確切精度的值。在MySQL中,decimal(m,d)和numeric(m,d)視為相同的定點(diǎn)數(shù)類型,m是小數(shù)總位數(shù),d是小數(shù)點(diǎn)后面的位數(shù)。m的取值范圍為1~65,取0時(shí)會(huì)被設(shè)為默認(rèn)值,超出范圍會(huì)報(bào)錯(cuò)。d的取值范圍為0~30,而且必須d<=m,超出范圍會(huì)報(bào)錯(cuò)。m的默認(rèn)取值為10,d默認(rèn)取值為0。dec是decimal的同義詞。3.浮點(diǎn)數(shù)類型浮點(diǎn)數(shù)類型包括單精度浮點(diǎn)數(shù)float類型和雙精度浮點(diǎn)數(shù)double類型。MySQL中的浮點(diǎn)數(shù)類型有float(m,d),double(m,d),m是小數(shù)位數(shù)的總數(shù),d是小數(shù)點(diǎn)后面的位數(shù)。

MySQL數(shù)據(jù)庫技術(shù)與應(yīng)用94.2數(shù)據(jù)類型(1)float占4字節(jié),其中,1位為符號(hào)位,8位表示指數(shù),23位為尾數(shù)。在float(m,d)中,m<=6時(shí),數(shù)字通常是準(zhǔn)確的,即float只保證6位有效數(shù)字的準(zhǔn)確性。(2)double占8字節(jié),其中,1位為符號(hào)位,11位表示指數(shù),52位為尾數(shù)。在double(m,d)中,m<=16時(shí),數(shù)字通常是準(zhǔn)確的,即double只保證16位有效數(shù)字的準(zhǔn)確性。說明:數(shù)字類型的選擇應(yīng)遵循如下原則:(1)選擇最小的可用類型,如果該字段的值不超過127,則使用tinyint比int效果好。(2)對于完全都是數(shù)字的,即無小數(shù)點(diǎn)時(shí),可以選擇整數(shù)類型,比如年齡。(3)浮點(diǎn)類型用于可能具有的小數(shù)部分的數(shù),比如學(xué)生成績。(4)在需要表示金額等貨幣類型時(shí)優(yōu)先選擇decimal數(shù)據(jù)類型。

MySQL數(shù)據(jù)庫技術(shù)與應(yīng)用104.2數(shù)據(jù)類型4.2.2字符串類型常用的字符串類型有char(n)、varchar(n)、tinytext、text等,如表4.4所示。表4.4字符串類型

MySQL數(shù)據(jù)庫技術(shù)與應(yīng)用數(shù)據(jù)類型取值范圍說明char(n)0~255個(gè)字符固定長度字符串varchar(n)0~65535個(gè)字符可變長度字符串tinytext0~255個(gè)字符可變長度短文本text0~65535個(gè)字符可變長度長文本114.2數(shù)據(jù)類型說明:(1)char(n)和varchar(n)中括號(hào)中n代表字符的個(gè)數(shù),并不代表字節(jié)個(gè)數(shù),所以當(dāng)使用了中文的時(shí)候(UTF8)意味著可以插入n個(gè)中文,但是實(shí)際會(huì)占用n*3個(gè)字節(jié)。(2)char和varchar最大的區(qū)別就在于char不管實(shí)際值都會(huì)占用n個(gè)字符的空間,而varchar只會(huì)占用實(shí)際字符應(yīng)該占用的空間+1,并且實(shí)際空間+1<=n。(3)實(shí)際超過char和varchar的n設(shè)置后,字符串后面超過部分會(huì)被截?cái)?。?)char的上限為255字節(jié),varchar的上限65535字節(jié),text的上限為65535。(5)char在存儲(chǔ)的時(shí)候會(huì)截?cái)辔膊康目崭瘢瑅archar和text不會(huì)。

MySQL數(shù)據(jù)庫技術(shù)與應(yīng)用124.2數(shù)據(jù)類型4.2.3日期和時(shí)間類型MySQL主要支持5種日期和時(shí)間類型:date、time、datetime、timestamp、year,取值范圍和格式如表4.5所示。表4.5日期和時(shí)間類型

MySQL數(shù)據(jù)庫技術(shù)與應(yīng)用數(shù)據(jù)類型取值范圍格式說明date1000-01-01YYYY-MM-DD日期time-838:58:59~835:59:59HH:MM:SS時(shí)間datetime1000-01-0100:00:00~9999-12-3123:59:59YYYY-MM-DDHH:MM:SS日期和時(shí)間timestamp1970-01-0100:00:00~2037年YYYY-MM-DDHH:MM:SS時(shí)間標(biāo)簽year1901-2155YY或YYYY年份134.2數(shù)據(jù)類型4.2.4二進(jìn)制數(shù)據(jù)類型二進(jìn)制串類型包含binary和blob類。1.binarybinary和varbinary類型類似于char和varchar類型,但是不同的是,它們存儲(chǔ)的不是字符字符串,而是二進(jìn)制串。所以它們沒有字符集,并且排序和比較需要基于列字節(jié)的數(shù)值。當(dāng)保存binary值時(shí),在它們右邊填充0x00值以達(dá)到指定長度。取值時(shí)不刪除尾部的字節(jié)。比較時(shí)注意空格和0x00是不同的(0x00<空格),插入'a'會(huì)變成'a\0'。對于varbinary,插入時(shí)不填充字符,選擇時(shí)不裁剪字節(jié)。2.blobblob是一個(gè)二進(jìn)制大對象,可以容納可變數(shù)量的數(shù)據(jù),可以存儲(chǔ)數(shù)據(jù)量很大的二進(jìn)制數(shù)據(jù),如圖片、音頻、視頻等二進(jìn)制數(shù)據(jù)。在大多數(shù)情況下,可以將blob列視為能夠足夠大的varbinary列。有4種blob類型:tinyblob、blob、mediumblob和longblob,它們只是可容納值的最大長度不同。

MySQL數(shù)據(jù)庫技術(shù)與應(yīng)用144.2數(shù)據(jù)類型4.2.5其它數(shù)據(jù)類型1.枚舉類型enum(成員1,成員2,…)enum數(shù)據(jù)類型就是定義了一種枚舉,最多包含65535個(gè)不同的成員。當(dāng)定義了一個(gè)enum的列時(shí),該列的值限制為列定義中聲明的值。如果列聲明包含NULL屬性,則NULL將被認(rèn)為是一個(gè)有效值,并且是默認(rèn)值。如果聲明了NOTNULL,則列表的第一個(gè)成員是默認(rèn)值。2.集合類型set(成員1,成員2,…)set數(shù)據(jù)類型為指定一組預(yù)定義值中的零個(gè)或多個(gè)值提供了一種方法,這組值最多包括64個(gè)成員。值的選擇限制為列定義中聲明的值。

MySQL數(shù)據(jù)庫技術(shù)與應(yīng)用154.2數(shù)據(jù)類型4.2.6數(shù)據(jù)類型的選擇一般來講,數(shù)據(jù)類型的選擇遵循以下原則:(1)在符合應(yīng)用要求(取值范圍、精度)的前提下,盡量使用“短”數(shù)據(jù)類型。(2)數(shù)據(jù)類型越簡單越好。(3)盡量采用精確小數(shù)類型(例如decimal),而不采用浮點(diǎn)數(shù)類型。(4)在MySQL中,應(yīng)該用內(nèi)置的日期和時(shí)間數(shù)據(jù)類型,而不是用字符串來存儲(chǔ)日期和時(shí)間。(5)盡量避免字段的屬性為NULL,建議將字段指定為NOTNULL約束。

MySQL數(shù)據(jù)庫技術(shù)與應(yīng)用164.3定義表4.3.1創(chuàng)建表1.創(chuàng)建新表在MySQL數(shù)據(jù)庫中,創(chuàng)建新表使用CREATETABLE語句。語法格式:CREATE[TEMPORARY]TABLE[IFNOTEXISTS]table_name[([column_definition],...[index_definition])][table_option][SELECT_statement];說明:(1)TEMPORARY:用CREATE命令創(chuàng)建臨時(shí)表。(2)IFNOTEXISTS:只有該表目前尚不存在時(shí)才執(zhí)行CREATETABLE操作,以避免出現(xiàn)表已存在無法再新建的錯(cuò)誤。(3)column_definition:列定義,包括列名、數(shù)據(jù)類型、寬度、是否允許空值、默認(rèn)值、主鍵約束、唯一性約束、列注釋、外鍵等,格式如下。col_nametype[NOTNULL|NULL][DEFAULTdefault_value][AUTO_INCREMENT][UNIQUE[KEY]|[PRIMARY]KEY][COMMENT'string'][reference_definition]

MySQL數(shù)據(jù)庫技術(shù)與應(yīng)用174.3定義表●

col_name:列名?!?/p>

type:數(shù)據(jù)類型,有的數(shù)據(jù)類型需要指明長度n,并使用括號(hào)括起來?!?/p>

NOTNULL或NULL:指定該列非空或允許空,如果不指定,則默認(rèn)為空?!?/p>

DEFAULT:為列指定默認(rèn)值,默認(rèn)值必須為一個(gè)常數(shù)。●

AUTO_INCREMENT:設(shè)置自增屬性,只有整數(shù)類型列才能設(shè)置此屬性?!?/p>

UNIQUEKEY:設(shè)置該列為唯一性約束?!?/p>

PRIMARYKEY:設(shè)置該列為主鍵約束,一個(gè)表只能定義一個(gè)主鍵,主鍵必須是NOTNULL?!?/p>

COMMENTstring:注釋字符串?!?/p>

reference_definition:設(shè)置該列為外鍵約束。

MySQL數(shù)據(jù)庫技術(shù)與應(yīng)用184.3定義表【例4.1】在基本數(shù)據(jù)庫stusys中創(chuàng)建student表,student表是基本表之一。在MySQL命令行客戶端輸入如下SQL語句:mysql>USEstusys;Databasechangedmysql>CREATETABLEstudent->(->snochar(6)NOTNULLPRIMARYKEY,->snamechar(8)NOTNULL,->ssexchar(2)NOTNULLDEFAULT'男',->sbirthdaydateNOTNULL,->specialitychar(12)NULL,->tctinyintNULL->);執(zhí)行結(jié)果:QueryOK,0rowsaffected(0.26sec)

MySQL數(shù)據(jù)庫技術(shù)與應(yīng)用194.3定義表2.復(fù)制已有表使用直接復(fù)制數(shù)據(jù)庫中已有表的結(jié)構(gòu)和數(shù)據(jù)來創(chuàng)建一個(gè)表,更加方便和快捷。語法格式:CREATE[TEMPORARY]TABLE[IFNOTEXISTS]table_name[()LIKEold_table_name[]]|[AS(SELECT_statement)];說明:

LIKEold_table_name:使用LIKE關(guān)鍵字創(chuàng)建一個(gè)與”源表名”相同結(jié)構(gòu)的新表,但是表的內(nèi)容不會(huì)復(fù)制。

●AS(SELECT_statement):使用AS關(guān)鍵字可以復(fù)制表的內(nèi)容,但索引和完整性約束不會(huì)復(fù)制。

MySQL數(shù)據(jù)庫技術(shù)與應(yīng)用204.3定義表【例4.2】在stusys數(shù)據(jù)庫中,使用復(fù)制方式創(chuàng)建student1表,表結(jié)構(gòu)取自student表。mysql>USEstusys;Databasechangedmysql>CREATETABLEstudent1likestudent;執(zhí)行結(jié)果:QueryOK,0rowsaffected(0.23sec)

MySQL數(shù)據(jù)庫技術(shù)與應(yīng)用214.3定義表4.3.2查看表1.查看表的名稱可以使用SHOWTABLES語句查看表的名稱。語法格式:SHOWTABLES[{FROM|IN}db_name];其中,使用選項(xiàng){FROM|IN}db_name可以顯示非當(dāng)前數(shù)據(jù)庫中的表名。

MySQL數(shù)據(jù)庫技術(shù)與應(yīng)用224.3定義表【例4.3】查看數(shù)據(jù)庫stusys中所有表名。mysql>USEstusys;Databasechangedmysql>SHOWTABLES;執(zhí)行結(jié)果:+----------------------+|Tables_in_stusys|+----------------------+|student||student1|+----------------------+2rowsinset(0.18sec)

MySQL數(shù)據(jù)庫技術(shù)與應(yīng)用234.3定義表2.查看表的基本結(jié)構(gòu)使用SHOWCOLUMNS語句或DESCRIBE/DESC語句可以查看表的基本結(jié)構(gòu),包括列名、列的數(shù)據(jù)類型、長度、是否為空、是否為主鍵、是否有默認(rèn)值等。(1)使用SHOWCOLUMNS語句查看表的基本結(jié)構(gòu)語法格式:SHOWCOLUMNS{FROM|IN}tb_name[{FROM|IN}db_name];(2)使用DESCRIBE/DESC語句查看表的基本結(jié)構(gòu)語法格式:{DESCRIBE|DESC}tb_name;

MySQL數(shù)據(jù)庫技術(shù)與應(yīng)用244.3定義表【例4.4】查看數(shù)據(jù)庫stusys中student表的基本結(jié)構(gòu)。mysql>SHOWCOLUMNSFROMstudent;或mysql>DESCstudent;執(zhí)行結(jié)果:+------------+------------+-------+------+----------+-------+|Field|Type|Null|Key|Default|Extra|+------------+------------+-------+------+----------+-------+|sno

|char(6)

|NO

|PRI|NULL|||sname

|char(8)

|NO

|

|NULL|||ssex|char(2)

|NO

|

|男

|||sbirthday|date|NO||NULL|||speciality|char(12)|YES||NULL|||tc|tinyint(4)|YES|

|NULL||+------------+------------+-------+------+-----------+-------+6rowsinset(0.10sec)

MySQL數(shù)據(jù)庫技術(shù)與應(yīng)用254.3定義表3.查看表的詳細(xì)結(jié)構(gòu)可以使用SHOWCREATETABLE語句查看表的詳細(xì)結(jié)構(gòu)。語法格式:SHOWCREATETABLEtb_name;【例4.5】查看數(shù)據(jù)庫stusys中student表的詳細(xì)結(jié)構(gòu)。mysql>SHOWCREATETABLEstudent\G執(zhí)行結(jié)果:***************************1.row***************************

MySQL數(shù)據(jù)庫技術(shù)與應(yīng)用264.3定義表Table:studentCreateTable:CREATETABLE`student`(`sno`char(6)NOTNULL,`sname`char(8)NOTNULL,`ssex`char(2)NOTNULLDEFAULT'男',`sbirthday`dateNOTNULL,`speciality`char(12)DEFAULTNULL,`tc`tinyint(4)DEFAULTNULL,PRIMARYKEY(`sno`))ENGINE=InnoDBDEFAULTCHARSET=utf8mb4COLLATE=utf8mb4_0900_ai_ci1rowinset(0.00sec)

MySQL數(shù)據(jù)庫技術(shù)與應(yīng)用274.3定義表4.3.3修改表修改表使用ALTERTABLE語句。語法格式:ALTER[IGNORE]TABLEtbl_namealter_specification[,alter_specification]...alter_specification:

MySQL數(shù)據(jù)庫技術(shù)與應(yīng)用284.3定義表ADD[COLUMN]column_definition[FIRST|AFTERcol_name]

/*添加列*/|ALTER[COLUMN]col_name{SETDEFAULTliteral|DROPDEFAULT} /*修改默認(rèn)值*/|CHANGE[COLUMN]old_col_namecolumn_definition[FIRST|AFTERcol_name]

/*對列重命名*/|MODIFY[COLUMN]column_definition[FIRST|AFTERcol_name]

/*修改列類型*/|DROP[COLUMN]col_name /*刪除列*/|RENAME[TO]new_tbl_name

/*重命名該表*/|ORDERBYcol_name

/*排序*/|CONVERTTOCHARACTERSETcharset_name[COLLATEcollation_name]

/*將字符集轉(zhuǎn)換為二進(jìn)制*/|[DEFAULT]CHARACTERSETcharset_name[COLLATEcollation_name]

/*修改默認(rèn)字符集*/

MySQL數(shù)據(jù)庫技術(shù)與應(yīng)用294.3定義表1.添加列在ALTERTABLE語句中,可使用ADD[COLUMN]子句添加列:增加無完整性約束條件的列,增加有完整性約束條件的列,在表的第一個(gè)位置增加列,在表的指定位置之后增加列?!纠?.6】在數(shù)據(jù)庫stusys的student表中增加一列sid,添加到表的第1列,不為空,取值唯一并自動(dòng)增加。mysql>ALTERTABLEstusys.student->ADDCOLUMNsidintNOTNULLUNIQUEAUTO_INCREMENTFIRST;執(zhí)行結(jié)果:QueryOK,0rowsaffected(0.35sec)Records:0Duplicates:0Warnings:0使用DESC語句查看表student。mysql>DESCstusys.student1;

MySQL數(shù)據(jù)庫技術(shù)與應(yīng)用304.3定義表顯示結(jié)果:+------------+------------+--------+------+----------+-------------------+|Field

|Type

|Null|Key|Default|Extra

|+------------+------------+--------+------+----------+-------------------+|sid

|int(11)|NO

|UNI|NULL|auto_increment||sno

|char(6)|NO|PRI|NULL|

||sname

|char(8)

|NO||NULL|

||ssex

|char(2)|NO||男

|||sbirthday|date

|NO

|

|NULL|||speciality|char(12)

|YES|

|NULL|||tc

|tinyint(4)|YES|

|NULL|

|+------------+--------------+------+------+-----------+-------------------+7rowsinset(0.01sec)

MySQL數(shù)據(jù)庫技術(shù)與應(yīng)用314.3定義表2.修改列ALTERTABLE語句有3個(gè)修改列的子句:

●ALTER[COLUMN]子句:該子句用于修改或刪除表中指定列的默認(rèn)值。

●CHANGE[COLUMN]子句:該子句可同時(shí)修改表中指定列的名稱和數(shù)據(jù)類型。

●MODIFY[COLUMN]子句:該子句只可修改表中指定列的名稱,還可修改指定列在表中的位置。

MySQL數(shù)據(jù)庫技術(shù)與應(yīng)用324.3定義表【例4.7】將stusys數(shù)據(jù)庫的student1表的列sbirthday修改為sage,將數(shù)據(jù)類型改為tinyint,可空,默認(rèn)值為18。mysql>ALTERTABLEstusys.student1->CHANGECOLUMNsbirthdaysagetinyintDEFAULT18;執(zhí)行結(jié)果:QueryOK,0rowsaffected(0.33sec)Records:0Duplicates:0Warnings:0使用DESC語句查看表student1。mysql>DESCstusys.student1;

MySQL數(shù)據(jù)庫技術(shù)與應(yīng)用334.3定義表顯示結(jié)果:+------------+------------+-------+------+----------+--------+|Field

|Type

|Null|Key

|Default|Extra|+------------+------------+-------+------+----------+--------+|sno

|char(6)

|NO|PRI|NULL

|

||sname

|char(8)

|NO

|

|NULL|

||ssex

|char(2)|NO

|

|男

溫馨提示

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

評論

0/150

提交評論