預(yù)備閱讀:
前言
在學(xué)習(xí)了MySQL常見(jiàn)的數(shù)據(jù)類型之后,讓我們進(jìn)入正題,操作表。在關(guān)系數(shù)據(jù)庫(kù)中,數(shù)據(jù)表是最基本和最常用的。今天我們來(lái)學(xué)習(xí)一下手表的常見(jiàn)操作。
創(chuàng)建表格
MySQL中,CREATETABLE語(yǔ)句用于創(chuàng)建數(shù)據(jù)表,基本語(yǔ)法格式如下:
創(chuàng)建表tb1 _名稱
(
字段名1數(shù)據(jù)類型[列級(jí)完整性約束][默認(rèn)值]
[,字段名2數(shù)據(jù)類型[列級(jí)完整性約束][默認(rèn)值]]
[, … …]
[,表級(jí)完整性約束]
)[ENgine = ENgine type];
我們已經(jīng)創(chuàng)建了數(shù)據(jù)庫(kù)db_school,所以我們將使用這個(gè)數(shù)據(jù)庫(kù),然后創(chuàng)建一個(gè)具有以下表結(jié)構(gòu)的學(xué)生表tb _ student,它需要InnoDB引擎來(lái)存儲(chǔ)表數(shù)據(jù)。
USE db _ school
創(chuàng)建表tb _學(xué)生(
學(xué)生編號(hào)字符(10)非空唯一,
學(xué)生名變量字符(20)不為空,
sex CHAR(2),
生日,
原生VARCHAR(20),
nation VARCHAR(20),
分類編號(hào)CHAR(6)
)ENGINE = InnoDB
語(yǔ)法描述:
1、指定表名和字段名
創(chuàng)建表時(shí),必須指定表名并遵守標(biāo)識(shí)符的命名規(guī)則。表中每個(gè)字段的定義從字段名開(kāi)始,后跟字段的數(shù)據(jù)類型和可選參數(shù)。如果創(chuàng)建了多個(gè)字段,它們必須用逗號(hào)分隔。字段名必須唯一。
2.完整性約束
創(chuàng)建表時(shí),可以定義與表相關(guān)的完整性約束。例如實(shí)體完整性、引用完整性和用戶定義的約束。如果完整性約束涉及表的多個(gè)字段,則必須在表級(jí)定義,否則可以在表級(jí)或列級(jí)定義。
3.空和非空
空值表示沒(méi)有值或缺少值空,而非空值的列不接受沒(méi)有值的記錄,即該列必須有值。默認(rèn)設(shè)置為空。
4、自動(dòng)增量
將該字段設(shè)置為自增屬性可以給記錄一個(gè)唯一且容易確定的標(biāo)識(shí)號(hào),并且該字段可以唯一地標(biāo)識(shí)表中的每條記錄。在MySQL中,AUTO_INCREMENT用于設(shè)置列的自增屬性,該屬性只能為整數(shù)列設(shè)置。默認(rèn)初始值為1。每個(gè)表只能定義一個(gè)自動(dòng)增量列,并且必須在該列中定義主鍵約束或唯一候選鍵約束。我們可以直接在上面學(xué)生表的學(xué)號(hào)列設(shè)置這個(gè)屬性,但是類型必須被替換,可以設(shè)置為INT(10)。
5、默認(rèn)
默認(rèn)值是指在插入數(shù)據(jù)時(shí),沒(méi)有明確給出字段的對(duì)應(yīng)值,DBMS允許為此字段指定一個(gè)值。在MySQL中,DEFAULT關(guān)鍵字是用來(lái)指定的,比如在學(xué)生表中,我們指定民族默認(rèn)為“漢族”,那么nation varchar (20)默認(rèn)為“漢族”。
注意:沒(méi)有聲明AUTO _ INDENTATE屬性的數(shù)值類型,默認(rèn)值為0。對(duì)于自動(dòng)增量列,默認(rèn)值是序列中的下一個(gè)值。對(duì)于時(shí)間戳以外的日期和時(shí)間類型,默認(rèn)值是該類型的適當(dāng)?shù)摹傲恪敝担粚?duì)于表中的第一個(gè)時(shí)間戳列,默認(rèn)值是當(dāng)前日期和時(shí)間。
6.存儲(chǔ)引擎類型
存儲(chǔ)引擎是如何存儲(chǔ)數(shù)據(jù)、如何對(duì)存儲(chǔ)的數(shù)據(jù)進(jìn)行索引、如何更新和查詢數(shù)據(jù)的實(shí)現(xiàn)方法。在關(guān)系型數(shù)據(jù)庫(kù)中,存儲(chǔ)引擎只是簡(jiǎn)單的指表的類型,數(shù)據(jù)庫(kù)的存儲(chǔ)引擎決定了表在計(jì)算機(jī)中的存儲(chǔ)方式。
MySQL的核心是存儲(chǔ)引擎,對(duì)于Oracle、SQL server等數(shù)據(jù)庫(kù)只有一個(gè)存儲(chǔ)引擎。使用SHOW ENGINES查看系統(tǒng)支持的引擎類型和默認(rèn)引擎。
MySQL版本在5.5.5以上,InnoDB是系統(tǒng)默認(rèn)的存儲(chǔ)引擎,支持可靠的事務(wù)處理,是事務(wù)數(shù)據(jù)庫(kù)的首選引擎。
查看表格
1.檢查表格的名稱
SHOW TABLES[{ From | IN } db _ name];
使用下列選項(xiàng)顯示非當(dāng)前數(shù)據(jù)庫(kù)中數(shù)據(jù)庫(kù)表的名稱。
2.檢查數(shù)據(jù)表的基本結(jié)構(gòu)
在MySQL中,您可以使用DESCRIPT/desc或SHOW COLUMNS來(lái)查看指定數(shù)據(jù)表的結(jié)構(gòu)。
[描述| desc]TB _ name;
SHow COLUMNS[{ FROM | IN }]TB _ name[{ FROM | IN } db _ name];
3.檢查數(shù)據(jù)表的詳細(xì)結(jié)構(gòu)
在MySQL中,可以使用SHOW CREATETABLE查看創(chuàng)建表的語(yǔ)句。
SHOW CREATE TABLE tb _ name
修改表格
在MySQL中,ALTER TABLE用于修改原表結(jié)構(gòu)。
1.添加字段
添加新字段時(shí)
ALTER TABLE tb_name ADD [COLUMN]新字段名數(shù)據(jù)類型[約束] [FIRST | AFTER有字段名];
FIRST表示新添加的字段被設(shè)置為第一個(gè)字段,AFTER表示新添加的字段被添加到指定的現(xiàn)有字段之后。如果沒(méi)有參數(shù),默認(rèn)情況下會(huì)將其添加到最后一列。
2.修改字段
三種方式:
說(shuō)明:CHANGE可以同時(shí)修改指定列的名稱和數(shù)據(jù)類型,也可以同時(shí)添加多個(gè)變更,只需用逗號(hào)分隔即可。
ALTER可以修改或刪除表中指定列的默認(rèn)值。
MODIFY只修改列的數(shù)據(jù)類型,也可以通過(guò)FIRST或AFTER修改表中指定列的位置。
alter table TB _ name change[column]原始字段名新字段名數(shù)據(jù)類型[constraint];
ALTER TABLE tb_name ALTER [COLUMN]字段名{ SET | DROP } DEFAULT
alter table TB _ name modify[column]字段名數(shù)據(jù)類型[constraint] [FIRST | AFTER有字段名];
3.刪除字段
ALTER TABLE tb _ name DROP列]字段名稱;
重命名表格
MySQL可以用alter table修改或者重命名。
更改表原表名將[重命名為]新表名;
將表原表名1重命名為新表名1 [,將原表名2重命名為新表名2]。
刪除表格
刪除表可用于刪除表。刪除多個(gè)表時(shí),表之間用逗號(hào)隔開(kāi)。IF EXISTS用于在刪除表之前判斷表是否存在,可以避免報(bào)錯(cuò)。
刪除表[如果存在]表1 [,表2]...;
總結(jié)
今天主要講一下MySQL中表的常見(jiàn)操作,方便后面學(xué)習(xí)。等我們熟悉了之后,可以更好的應(yīng)用到我們的數(shù)據(jù)庫(kù)中,使用合適的存儲(chǔ)引擎來(lái)存儲(chǔ)合適的數(shù)據(jù),既節(jié)省了空的空間和資源,也方便了后期的維護(hù)和優(yōu)化。
希望以上操作能對(duì)大家有所幫助。如果您有什么好的意見(jiàn)、建議或不同意見(jiàn),希望您能留言與我們溝通討論。
如果想快速聯(lián)系我,請(qǐng)關(guān)注微信微信官方賬號(hào):AiryData。
1.《mysql刪除表 MySQL中表的操作》援引自互聯(lián)網(wǎng),旨在傳遞更多網(wǎng)絡(luò)信息知識(shí),僅代表作者本人觀點(diǎn),與本網(wǎng)站無(wú)關(guān),侵刪請(qǐng)聯(lián)系頁(yè)腳下方聯(lián)系方式。
2.《mysql刪除表 MySQL中表的操作》僅供讀者參考,本網(wǎng)站未對(duì)該內(nèi)容進(jìn)行證實(shí),對(duì)其原創(chuàng)性、真實(shí)性、完整性、及時(shí)性不作任何保證。
3.文章轉(zhuǎn)載時(shí)請(qǐng)保留本站內(nèi)容來(lái)源地址,http://f99ss.com/yule/801207.html