第5章 表的基本操作

5.1 創(chuàng)建表

語法:

USE `新字段`;
CREATE TABLE 表名(
    列名1 數(shù)據(jù)類型 是否可以為NULL 數(shù)據(jù)約束,
    列名2 數(shù)據(jù)類型 是否可以為NULL 數(shù)據(jù)約束,
    列名3 數(shù)據(jù)類型 是否可以為NULL 數(shù)據(jù)約束,
    ……
    列名n 數(shù)據(jù)類型 是否可以為NULL 數(shù)據(jù)約束,
    PRIMARY KEY (主鍵子段)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

示例:

USE `johnny_college`;
CREATE TABLE `Student`(
    `StudentID`     INT             NOT NULL AUTO_INCREMENT,
    `StudentName`   VARCHAR(25)     NOT NULL,
    `Cellphone`     VARCHAR(11)     NOT NULL UNIQUE,
    `Description`   VARCHAR(500)    NULL,
    `InUser`       VARCHAR(15)  NOT NULL DEFAULT '',
    `InDate`        TIMESTAMP     NOT NULL DEFAULT CURRENT_TIMESTAMP,
    `LastEditUser`  VARCHAR(15)     NOT NULL DEFAULT '',
    `LastEditDate`  TIMESTAMP     NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    PRIMARY KEY (`StudentID`)
) ENGINE=INNODB DEFAULT CHARSET=UTF8;

設(shè)置存儲引擎為InnoDB,InnoDB是MySQL上提供外鍵約束的數(shù)據(jù)存儲引擎懊渡,除了提供事物處理外踏兜,還支持行鎖贰谣,能增加并發(fā)讀的用戶數(shù)量并提高性能,不會增加鎖的數(shù)量薛闪。

5.2 修改表

5.2.1 修改表名

語法:

ALTER TABLE `原表名` RENAME `新表名`;

示例:

ALTER TABLE `table_test` RENAME `table_test1`;

說明:
該命令不常用辛馆。

5.2.2 增加字段

語法:

ALTER TABLE `表名` ADD `新字段` 字段類型 是否可以為NULL;

示例:

ALTER TABLE `college` ADD `description` VARCHAR(100)  NULL;

ALTER TABLE `college` ADD `description` VARCHAR(100)  NOT NULL;

說明:
該命令在實際項目中會經(jīng)常使用。當(dāng)需要為一張表新增一個字段時,該字段可以為NULL也可以不為NULL(即NOT NULL)昙篙,但在實際項目中腊状,如果這張表已經(jīng)在使用并且已經(jīng)有業(yè)務(wù)數(shù)據(jù)時,此時若需要新增字段苔可,為保證數(shù)據(jù)的完整性缴挖,新增的字段一般允許為NULL。

5.2.3 調(diào)整字段順序

語法:

ALTER TABLE `表名` MODIFY COLUMN `字段名` 字段類型 AFTER `字段名`;

示例:

ALTER TABLE `college` MODIFY COLUMN `description` VARCHAR(100) AFTER `collegeFoundedTime`;

說明:
該命令也較為常用焚辅,因為當(dāng)一張增加一個新的字段時映屋,新字段一般位于表的所有字段最后面,當(dāng)查看字段的時候不夠直觀同蜻,所以棚点,為了查看表子段的直觀性,通常在增加字段后湾蔓,需要調(diào)整新字段在表中的順序瘫析。
需要注意的是,字段的類型不能改變默责。

5.2.4 刪除字段

語法:

ALTER TABLE `表名` DROP COLUMN `表名`;

示例:

ALTER TABLE `college` DROP COLUMN `description1`;

說明:
該命令很少使用颁股。因為當(dāng)一張表已經(jīng)在產(chǎn)品中使用并且已經(jīng)有了一部分業(yè)務(wù)數(shù)據(jù)時,不可能輕易刪除任何一個字段傻丝。

5.2.5 修改字段類型

語法:

ALTER TABLE `表名` MODIFY COLUMN `字段名` 字段類型;

示例:

ALTER TABLE `college` MODIFY COLUMN `description` VARCHAR(500);

說明:
雖然從語法上可以修改字段的類型,比如從字符型類型修改為數(shù)值類型诉儒,但在實際項目中葡缰,為了數(shù)據(jù)的正確性,從來不會這么做忱反,一般僅會修改字符類型的長度泛释,而且只是增加長度。

5.3 刪除表

語法:

DROP TABLE `表名`;

示例:

DROP TABLE `college1`;

說明:
該命令在實際項目中温算,當(dāng)產(chǎn)品上線后怜校,幾乎不會用到。因為不可能將正式環(huán)境的表刪除注竿,那么就把正式的表的數(shù)據(jù)也刪除了茄茁,這是不可以的。

5.4 操作表的約束

5.4.1. 設(shè)置非空約束

關(guān)鍵字:

NULL
NOT NULL

示例:


說明:
設(shè)置有些字段為NOT NULL巩割,其目的是為了保證表中的數(shù)據(jù)是完整的裙顽,有意義的。

5.4.2. 設(shè)置自增約束

關(guān)鍵字:

AUTO_INCREMENT

示例:


說明:
設(shè)置自增約束的字段宣谈,在插入數(shù)據(jù)時愈犹,不用為該字段插入數(shù)據(jù),該字段會的值會進行自增(+1)闻丑,并將自增后的結(jié)果作為該字段的值漩怎。
一般會將表的主鍵字段設(shè)置為自增字段勋颖。

5.4.3. 設(shè)置主鍵約束

關(guān)鍵字:

PRIMARY KEY (主鍵字段)

示例:


說明:
為表設(shè)置主鍵的目的,是為了使表中每一行的數(shù)據(jù)都能被唯一的標識勋锤。

5.4.4. 設(shè)置唯一約束

關(guān)鍵字:

UNIQUE

示例:

說明:
使用唯一約束饭玲,其目的也是為了數(shù)據(jù)表中某些字段數(shù)據(jù)是正確且有意義的,比如在一張表中怪得,對于不同人的手機號碼是不能重復(fù)的咱枉,這樣,數(shù)據(jù)才有實際的意義徒恋。

5.4.5. 設(shè)置默認值約束

關(guān)鍵字

DEFAULT

示例:

說明:
設(shè)置默認值蚕断,是為了在插入數(shù)據(jù)時,如果沒有給某個字段插入對應(yīng)的值入挣,該字段使用什么值作為默認值亿乳,以保證數(shù)據(jù)表中數(shù)據(jù)的完整性。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末径筏,一起剝皮案震驚了整個濱河市葛假,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌滋恬,老刑警劉巖聊训,帶你破解...
    沈念sama閱讀 206,482評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異恢氯,居然都是意外死亡带斑,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,377評論 2 382
  • 文/潘曉璐 我一進店門勋拟,熙熙樓的掌柜王于貴愁眉苦臉地迎上來勋磕,“玉大人,你說我怎么就攤上這事敢靡」易遥” “怎么了?”我有些...
    開封第一講書人閱讀 152,762評論 0 342
  • 文/不壞的土叔 我叫張陵啸胧,是天一觀的道長赶站。 經(jīng)常有香客問我,道長纺念,這世上最難降的妖魔是什么亲怠? 我笑而不...
    開封第一講書人閱讀 55,273評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮柠辞,結(jié)果婚禮上团秽,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好习勤,可當(dāng)我...
    茶點故事閱讀 64,289評論 5 373
  • 文/花漫 我一把揭開白布踪栋。 她就那樣靜靜地躺著,像睡著了一般图毕。 火紅的嫁衣襯著肌膚如雪夷都。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,046評論 1 285
  • 那天予颤,我揣著相機與錄音囤官,去河邊找鬼。 笑死蛤虐,一個胖子當(dāng)著我的面吹牛党饮,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播驳庭,決...
    沈念sama閱讀 38,351評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼刑顺,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了饲常?” 一聲冷哼從身側(cè)響起蹲堂,我...
    開封第一講書人閱讀 36,988評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎贝淤,沒想到半個月后柒竞,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,476評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡播聪,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,948評論 2 324
  • 正文 我和宋清朗相戀三年能犯,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片犬耻。...
    茶點故事閱讀 38,064評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖执泰,靈堂內(nèi)的尸體忽然破棺而出枕磁,到底是詐尸還是另有隱情,我是刑警寧澤术吝,帶...
    沈念sama閱讀 33,712評論 4 323
  • 正文 年R本政府宣布计济,位于F島的核電站,受9級特大地震影響排苍,放射性物質(zhì)發(fā)生泄漏沦寂。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,261評論 3 307
  • 文/蒙蒙 一淘衙、第九天 我趴在偏房一處隱蔽的房頂上張望传藏。 院中可真熱鬧,春花似錦、人聲如沸毯侦。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,264評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽侈离。三九已至试幽,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間卦碾,已是汗流浹背铺坞。 一陣腳步聲響...
    開封第一講書人閱讀 31,486評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留洲胖,地道東北人济榨。 一個月前我還...
    沈念sama閱讀 45,511評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像宾濒,于是被迫代替她去往敵國和親腿短。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,802評論 2 345

推薦閱讀更多精彩內(nèi)容