駐馬店廣告制作公司抖音seo教程
文章目錄
一、創(chuàng)建表
1、1 SQL語法
1、2 實(shí)例演示
二、查詢表
三、修改表
3、1 修改表名字
3、2 新增列(字段)
3、3 修改列類型
3、4 修改列名
3、5 刪除表
四、總結(jié)
🙋?♂??作者:@Ggggggtm?🙋?♂?
👀?專欄:MySQL?👀
💥?標(biāo)題:MySQL表的基礎(chǔ)操作💥
????寄語:與其忙著訴苦,不如低頭趕路,奮路前行,終將遇到一番好風(fēng)景???
一、創(chuàng)建表
1、1 SQL語法
? 首先我們先來學(xué)一下創(chuàng)建表的操作。后續(xù)都是對(duì)表進(jìn)行增刪查改操作!創(chuàng)建表的語法:
CREATE TABLE table_name (field1 datatype,field2 datatype,field3 datatype ) character set 字符集 collate 校驗(yàn)規(guī)則 engine 存儲(chǔ)引擎;
? 注意,我們?cè)谏掀恼轮兄v解到了庫的字符集與校驗(yàn)規(guī)則的設(shè)置。表也是可以設(shè)置自己對(duì)應(yīng)的字符集和校驗(yàn)規(guī)則的。其次,上述字符集設(shè)置中,character set 等同于 charset 。
? 語法說明:
- field 表示列名;
- datatype 表示列的類型;
- character set 字符集,如果沒有指定字符集,則以所在數(shù)據(jù)庫的字符集為準(zhǔn);
- collate 校驗(yàn)規(guī)則,如果沒有指定校驗(yàn)規(guī)則,則以所在數(shù)據(jù)庫的校驗(yàn)規(guī)則為準(zhǔn);
- engine是用來指定表所采用的存儲(chǔ)引擎。
1、2 實(shí)例演示
? 下面我們結(jié)合一個(gè)實(shí)際例子來理解一下。具體如下圖:
? 首先說明一下,上述語句中 comment 是用來添加注釋信息的。那么我們來查看一下所見建的表。查看表結(jié)構(gòu)的詳細(xì)信息用到的語句是:desc 表名字。具體如下圖:
? 我們所添加的注釋信息在哪里看呢?這時(shí)候我們就需要用查看創(chuàng)建表時(shí)的語句的詳細(xì)信息了,具體如下圖:
? 我們?cè)賮砜纯词褂锰囟ǖ拇鎯?chǔ)引擎后,創(chuàng)建出來的表有什么不同的。如下圖:
? 當(dāng)我們不指定存儲(chǔ)引擎時(shí),數(shù)據(jù)庫會(huì)使用默認(rèn)的存儲(chǔ)引擎:innodb。我們通過linux下對(duì)應(yīng)的文件可以也看出,不同的存儲(chǔ)引擎所創(chuàng)建出來的表也是有所不同的。
? t1?表存儲(chǔ)引擎是 MyISAM ,在數(shù)據(jù)目中有三個(gè)不同的文件,分別是:
- t1.frm:表結(jié)構(gòu);
- t1.MYD:表數(shù)據(jù);
- t1.MYI:表索引。
? t2?表存儲(chǔ)引擎是 innodb,在數(shù)據(jù)目中有兩個(gè)不同的文件,分別是:
- t2.frm:表結(jié)構(gòu);
- t2.ibd:表數(shù)據(jù)和表索引;
? 后續(xù)文章我們也會(huì)對(duì)他們之間的詳細(xì)區(qū)別進(jìn)行詳解的。這里我們知道不同的存儲(chǔ)引擎創(chuàng)建出來的表是有所不同的即可。
二、查詢表
? 查詢某個(gè)庫中都有那幾個(gè)表,可以用語句:show tables。具體如下圖:
? 我們?cè)谏鲜鰟?chuàng)建中也提到了查詢表結(jié)構(gòu)的詳細(xì)信息,所用到的語句是:desc 表名字。具體如下:
? 說明一下,desc表中的每一行都表示一個(gè)字段,并包含以下屬性:
Field
:字段名稱。Type
:數(shù)據(jù)類型。例如,VARCHAR(64)、INT、FLOAT 等。Null
:是否允許 NULL 值。如果是 'YES',則可以是 NULL;如果是 'NO',則必須有值。Key
:主鍵、唯一鍵或普通索引的類型。'PRI' 是主鍵,'UNI' 是唯一鍵,'MUL' 是多列鍵,'ALL' 是全索引。Default
:字段的默認(rèn)值。如果沒有默認(rèn)值,則為空。Extra
:字段的一些額外信息。例如,'auto_increment' 表示該字段是自動(dòng)遞增的,'on update CURRENT_TIMESTAMP' 表示該字段在更新時(shí)會(huì)自動(dòng)設(shè)置當(dāng)前時(shí)間戳。? 這里就先了解一下,不做過多解釋,后續(xù)文章會(huì)對(duì)此屬性進(jìn)行詳解。
? 我們也可通過show create table 表名字來查看創(chuàng)建表時(shí)的具體的細(xì)節(jié)。如下圖:?
? 我們?cè)趺床榭幢碇兴鎯?chǔ)的信息呢?可直接使用select語句進(jìn)行查看。具體如下圖:
? 我們是先插入了兩條數(shù)據(jù)再進(jìn)行查詢。這里也就不再對(duì)查詢做過多解釋。我們所說的插入一個(gè)字段,對(duì)應(yīng)到表中也就是插入了一列。
三、修改表
? 修改表主要用到的語句是:alter table 表名字 要修改的操作及內(nèi)容。 下面我們通過實(shí)例來一一理解。
3、1 修改表名字
? 再次提醒,一般情況下是不支持對(duì)數(shù)據(jù)庫的名字進(jìn)行修改的。但是可以修改表的名字。語句:alter table 表名字 rename to 新表名字。該語句中的 to 是可以省去的。具體實(shí)例如下:
3、2 新增列(字段)
? ?在不斷的開發(fā)中,可能會(huì)向表中新增一列。這個(gè)也是可以的。所用到的語句:
alter table 表名字 add 新增列明 新增列屬性;
? 具體如下圖:
? 我們看到新增的一列默認(rèn)是在表中的最后的位置。當(dāng)然,我們想要增加到其他位置呢?具體如下圖:
? 可以使用語句:alter table 表名字 add 新增列明 新增列屬性 after 列名。
3、3 修改列類型
? ?有時(shí)候我們定義的列類型時(shí),后續(xù)因?yàn)閿?shù)據(jù)原因,需要變動(dòng)。比如修改某個(gè)字段類型的最大長度等等。所用到的語句:alter table 表名字 modify 列名字 修改后列類型。下面我們看一個(gè)實(shí)例:
? 上圖中,我們就是把名字的最大長度進(jìn)行了修改。注意:如果還需要注釋信息時(shí),我們?cè)傩薷臅r(shí)也應(yīng)該寫上。從這里我們也看出來了,修改并不是指定式的修改內(nèi)容,而是覆蓋式的去修改內(nèi)容。
3、4 修改列名
? 列的名字也是可以被修改的。所用語句:
alter table 表名字 change 列名字 新列名字 新列屬性。?
? 我們看一個(gè)實(shí)例:
? 這里的修改也是覆蓋式的進(jìn)行修改,原來的建表時(shí)的注釋信息也會(huì)被覆蓋掉。如下圖:
3、5 刪除表
? 刪除表也就意味著刪除表中的所有數(shù)據(jù)。所以當(dāng)在刪除表的時(shí)候,要確定表中的信息沒有用了,否則不要輕易刪除。具體語句:
drop table 表名字;
?具體實(shí)例如下:
四、總結(jié)
? 本文章主要對(duì)表的操作進(jìn)行的詳細(xì)講解,下面對(duì)本文章所用到的語句進(jìn)行一個(gè)簡(jiǎn)單的總結(jié)。具體如下:
CREATE TABLE [IF NOT EXISTS] table_name(field1 datatype1 [COMMENT '注釋信息'],field2 datatype2 [COMMENT '注釋信息'],field3 datatype3 [COMMENT '注釋信息'] )[CHARSET=字符集] [COLLATE=校驗(yàn)規(guī)則] [ENGINE=存儲(chǔ)引擎];DESC 表名字;SHOW TABLES;ALTER TABLE table_name RENAME [TO] 新表名字; ALTER TABLE table_name ADD 新增列名字 新增列類型; ALTER TABLE table_name MODIFY 列名字 修改后列類型; ALTER TABLE table_name DROP 列名字; ALTER TABLE table_name CHANGE 列名字 新列名 新列類型;DROP TABLE;
? ?我們應(yīng)該多加練習(xí)這些語句的使用,也應(yīng)該熟練掌握這些語句的使用。本篇文章的內(nèi)容就到這里,感謝閱讀ovo~