MySQL基礎(chǔ)教程3-DDL(創(chuàng)建表)

  • 注意: 撰寫本文目的主要是為了給自己做一個(gè)備忘錄颈畸,如果你學(xué)過(guò)Mysql并且希望從本文中找到一些忘記的知識(shí)點(diǎn),那么你可以閱讀本文章碳褒。由于文章內(nèi)講解并不是很多腌零,因此此文章并不適合小白入門使用。

DDL-創(chuàng)建表

  • 所謂建表情组,就是一個(gè)聲明字段的過(guò)程
    列選什么類型哲银,列選什么屬性

簡(jiǎn)單建個(gè)表:

create table people(
     -> age int,
     -> name varchar(10)
     -> );

建表語(yǔ)句:

建表語(yǔ)句

一、列

列的類型:

  • 數(shù)值型---整形呻惕、型荆责,浮點(diǎn)型,定點(diǎn)型
  • 字符串型---char亚脆,varchar做院,text
  • 日期時(shí)間類型---2020-12-30 23:59:59

1.1.整型列

(1).各整型類型所占字節(jié)大小:

各整型類型所占字節(jié)大小

(2).整型列可選參數(shù):

  • unsigned: 無(wú)符號(hào),列的值從0開始,不為負(fù)
  • zerofill: 適用于 學(xué)號(hào)键耕、編碼 等寺滚,固定寬度的數(shù)字,可以用0填充至固定寬度
    學(xué)號(hào)-->1-->0001
    學(xué)號(hào)-->123-->0123
    思路: zerofill填充至多寬屈雄?M
    注意: zerofill屬性默認(rèn)決定列為unsigned類型
  • M: 為zerofill 指定填充的寬度村视。只使用M沒(méi)有任何意義,必須配合zerofill使用
    注意: M的數(shù)值不是為了限制數(shù)值寬度酒奶,只是為了當(dāng)數(shù)值寬度不到M時(shí)蚁孔,為其填充至寬度為M

例:

/* 為user表添加帶有unsigned屬性的number字段 */
alter table user add number tinyint unsigned;

/* 為user表添加帶有zerofill屬性的number字段,并為其指定寬度 */
alter table user add number tinyint(5) zerofill;

1.2.浮點(diǎn)列與定點(diǎn)列

  • flocat(M,D): 浮點(diǎn)型
    M是精度,即總位數(shù)
    D是標(biāo)度,即小數(shù)點(diǎn)后面的位數(shù)
  • double: 浮點(diǎn)型
  • decimal: 定點(diǎn)型
    float/double浮點(diǎn)型數(shù)據(jù)會(huì)有精度損失,decmail定點(diǎn)型,更精確

float/double官方文檔:

float/double官方文檔

1.3.字符型

MySQL字符串類型:

  • Char: 定長(zhǎng)類型
    char型惋嚎,傳入數(shù)據(jù)如果不夠M個(gè)字符杠氢,內(nèi)部用空格補(bǔ)齊,取出時(shí)再把右側(cè)空格刪掉另伍。這意味著:如果數(shù)據(jù)本身右側(cè)有空格鼻百,將會(huì)丟失
  • Varchar: 變長(zhǎng)類型

注意:char(M)限制的是字符,不是字節(jié)摆尝。即char(2) charset utf8温艇,能存兩個(gè)utf8字符,比如中國(guó);
**char與varchar型的選擇原則:

  • 1.空間利用率:
    四字成語(yǔ)表:char(4)堕汞;
    微博個(gè)人簡(jiǎn)介140字:varchar(140)
  • 2.速度:
    用戶名: char

Char與Varchar:

MySQL字符串類型

Char右側(cè)空格丟失:
注: 從截圖中可以看出中贝,最后輸出的數(shù)據(jù)中的char型數(shù)據(jù)丟失了右側(cè)的空格
Char右側(cè)空格丟失

其他類型的字符類型及容量:

  • Text: 文本類型,可以存比較大的文本段臼朗,搜索速度慢邻寿。因此,如果不是特別大的內(nèi)容视哑,建議用char绣否、varchar來(lái)代替。test不用默認(rèn)值(加了也沒(méi)用)
  • Blob:二進(jìn)制類型挡毅,用來(lái)存儲(chǔ)圖像蒜撮、音頻等二進(jìn)制信息。
    意義:2進(jìn)制跪呈,0-255都有可能出現(xiàn)段磨。Blob在于防止因?yàn)樽址鴮?dǎo)致信息丟失的問(wèn)題。比如: 一張圖片中有0xFF字節(jié)耗绿,這個(gè)在ascii字符集中認(rèn)為非法苹支,在入庫(kù)的時(shí)候被過(guò)濾了。
  • Enum:枚舉類型误阻。意思是值是定義好的债蜜,就在幾個(gè)枚舉范圍內(nèi)晴埂。
    例: gender('男','女');insert時(shí)只能選"男","女"寻定。
  • Set:同Enum儒洛。但insert時(shí)可同時(shí)選多個(gè)值。
其他類型的字符類型及容量

1.4.日期時(shí)間類型

日期時(shí)間類型

二狼速、列的默認(rèn)值

列的默認(rèn)值

  • 1.NULL 查詢不便
  • 2.NULL的索引效果不高
    所以琅锻,實(shí)用中要避免列的值為NULL
  • 如何避免--聲明列 :
    NOT NULL default 默認(rèn)值

三、主鍵與自增

  • 主鍵:primary key向胡,此列不重復(fù)恼蓬,能夠區(qū)分每一行
/* 第一重指定方式 */
create table t1(
     -> id int primary key,
     -> name char(2)
);
/* 第一重指定方式 */
create table t2(
     -> id int,
     -> name char(2),
     -> primary key(id)
);
  • 自增(auto_increment): 一張表只能有1列為auto_increment,且此列必須加索引(index/key)
    一般實(shí)用中自增與主鍵搭配使用
create table t3(
     -> id int auto_increment,
     -> name char(2),
     -> key id(id)
);
  • 表設(shè)計(jì)案例:某社交網(wǎng)站

建表秘訣:
1.定長(zhǎng)與變長(zhǎng)分離
2.常用與不常用分離

表設(shè)計(jì)案例

上面表設(shè)計(jì)的并不是很好捷枯,還可以優(yōu)化
分析:張這表除了username/intro列之外,每一行都是定長(zhǎng)的专执,我們不妨讓其所有列都定長(zhǎng)淮捆。可以極大地提高查詢速度本股。
表設(shè)計(jì)優(yōu)化

MySQL建立上述表表指令:

create table regist3(
    -> id int unsigned primary key auto_increment,
    -> username char(10) not null default ' ',
    -> gender tinyint not null default 0,
    -> weight tinyint unsigned not null default 0,
    -> Birth Date not null default '0000-00-00',
    -> Salary Decimal(8,2) not null default '000000.00',
    -> lastlogin int unsigned not null default 0
);

create table regist1(
    -> id int unsigned primary key auto_increment,
    -> username char(10) not null default ' ',
    -> intro varchar(1500) not null default ''
);

效果圖:

效果圖

四攀痊、列的增刪改

4.1.添加列

/*格式:*/
alter table 表名
     -> add 列名 列類型 列屬性... 
注意: 默認(rèn)將該列添加到表的最后

/*實(shí)例1:*/
alter table student
     -> add height tinyint unsigned not null default 0;

/*實(shí)例2: 添加到weight列后面*/
alter table student
     -> add height tinyint unsigned after weight;

4.2.刪除列

alter table student
     -> drop column height;

4.3.修改列

/*修改列名并修改該列的屬性*/
alter table student
     -> change height shengao smallint;

/*修改列的屬性*/
alter table student
     -> change shengao tinyint;

五、表管理語(yǔ)句

5.1.查看所有表

show tables;

5.2.查看表結(jié)構(gòu)

desc 表名/視圖名;

5.3.查看建表過(guò)程

/*查看建表過(guò)程*/
show create table 表名;

/*查看建視圖過(guò)程*/
show create view 視圖名;

5.4.查看表詳細(xì)信息

/*查看所有表詳細(xì)信息*/
show table status;

/*查看某張表詳細(xì)信息*/
show table status where name='表名';

/*豎列顯示表信息*/
show table status \G;

5.5.刪除表

/*刪除表*/
drop table 表名;

/*刪除視圖*/
drop view 視圖名;

5.6.為表改名

rename table oldName to newName;

5.7.清空表數(shù)據(jù)

truncate 表名;
/*相當(dāng)于刪除表拄显,再重建*/

友情鏈接:

MySQL基礎(chǔ)教程全網(wǎng)最全1(基本指令操作)
MySQL基礎(chǔ)教程2-DQL(select查詢)
MySQL基礎(chǔ)教程4-細(xì)節(jié)知識(shí)點(diǎn)

文集推薦:

Java基礎(chǔ)方法集1
Python基礎(chǔ)知識(shí)完整版
Spring Boot學(xué)習(xí)筆記
Linux指令進(jìn)階
Java高并發(fā)編程
SpringMVC基礎(chǔ)知識(shí)進(jìn)階
Mysql基礎(chǔ)知識(shí)完整版
健康管理系統(tǒng)學(xué)習(xí)花絮(學(xué)習(xí)記錄)
Node.js基礎(chǔ)知識(shí)(隨手筆記)
MongoDB基礎(chǔ)知識(shí)
Dubbo學(xué)習(xí)筆記
Vue學(xué)習(xí)筆記(隨手筆記)

聲明:發(fā)表此文是出于傳遞更多信息之目的苟径。若有來(lái)源標(biāo)注錯(cuò)誤或侵犯了您的合法權(quán)益,請(qǐng)作者持權(quán)屬證明與本我們(QQ:981086665躬审;郵箱:981086665@qq.com)聯(lián)系聯(lián)系棘街,我們將及時(shí)更正、刪除承边,謝謝遭殉。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市博助,隨后出現(xiàn)的幾起案子险污,更是在濱河造成了極大的恐慌,老刑警劉巖富岳,帶你破解...
    沈念sama閱讀 218,451評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蛔糯,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡窖式,警方通過(guò)查閱死者的電腦和手機(jī)蚁飒,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,172評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)萝喘,“玉大人飒箭,你說(shuō)我怎么就攤上這事狼电。” “怎么了弦蹂?”我有些...
    開封第一講書人閱讀 164,782評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵肩碟,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我凸椿,道長(zhǎng)削祈,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,709評(píng)論 1 294
  • 正文 為了忘掉前任脑漫,我火速辦了婚禮髓抑,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘优幸。我一直安慰自己吨拍,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,733評(píng)論 6 392
  • 文/花漫 我一把揭開白布网杆。 她就那樣靜靜地躺著羹饰,像睡著了一般。 火紅的嫁衣襯著肌膚如雪碳却。 梳的紋絲不亂的頭發(fā)上队秩,一...
    開封第一講書人閱讀 51,578評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音昼浦,去河邊找鬼馍资。 笑死,一個(gè)胖子當(dāng)著我的面吹牛关噪,可吹牛的內(nèi)容都是我干的鸟蟹。 我是一名探鬼主播,決...
    沈念sama閱讀 40,320評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼使兔,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼戏锹!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起火诸,我...
    開封第一講書人閱讀 39,241評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤锦针,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后置蜀,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體奈搜,經(jīng)...
    沈念sama閱讀 45,686評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,878評(píng)論 3 336
  • 正文 我和宋清朗相戀三年盯荤,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了馋吗。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,992評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡秋秤,死狀恐怖宏粤,靈堂內(nèi)的尸體忽然破棺而出脚翘,到底是詐尸還是另有隱情,我是刑警寧澤绍哎,帶...
    沈念sama閱讀 35,715評(píng)論 5 346
  • 正文 年R本政府宣布来农,位于F島的核電站,受9級(jí)特大地震影響崇堰,放射性物質(zhì)發(fā)生泄漏沃于。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,336評(píng)論 3 330
  • 文/蒙蒙 一海诲、第九天 我趴在偏房一處隱蔽的房頂上張望繁莹。 院中可真熱鬧,春花似錦特幔、人聲如沸咨演。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,912評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)薄风。三九已至,卻和暖如春溉跃,著一層夾襖步出監(jiān)牢的瞬間村刨,已是汗流浹背告抄。 一陣腳步聲響...
    開封第一講書人閱讀 33,040評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工撰茎, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人打洼。 一個(gè)月前我還...
    沈念sama閱讀 48,173評(píng)論 3 370
  • 正文 我出身青樓龄糊,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親募疮。 傳聞我的和親對(duì)象是個(gè)殘疾皇子炫惩,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,947評(píng)論 2 355

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

  • 本文基于MySQL5.6版本進(jìn)行描述從大的方面來(lái)講,MySQL的數(shù)據(jù)類型分為4種 數(shù)值類型 日期和時(shí)間 字符串類型...
    黑哥兒666閱讀 747評(píng)論 0 0
  • 數(shù)據(jù)庫(kù)基礎(chǔ)知識(shí) 數(shù)據(jù)庫(kù)客戶端MySQL作為數(shù)據(jù)庫(kù)服務(wù)器來(lái)運(yùn)行阿浓,任何滿足mysql通信規(guī)范的軟件都可以作為客戶端來(lái)連...
    littlexjing閱讀 906評(píng)論 0 2
  • 回顧 數(shù)據(jù)庫(kù)基礎(chǔ)知識(shí):關(guān)系型數(shù)據(jù)庫(kù)(磁盤)和非關(guān)系型數(shù)據(jù)庫(kù)(內(nèi)存) 關(guān)系型數(shù)據(jù)庫(kù):建立在關(guān)系模型上的數(shù)據(jù)庫(kù)數(shù)據(jù)結(jié)構(gòu)...
    翊溪閱讀 529評(píng)論 0 1
  • Mysql 基礎(chǔ) SQL分類: DDL—數(shù)據(jù)定義語(yǔ)言(create他嚷,alter,drop)DML—數(shù)據(jù)操縱語(yǔ)言(s...
    零一間閱讀 5,214評(píng)論 0 10
  • 一年又一年芭毙,字節(jié)跳動(dòng) Lark(飛書) 研發(fā)團(tuán)隊(duì)又雙叒叕開始招新生啦筋蓖!【內(nèi)推碼】:GTPUVBA【內(nèi)推鏈接】:ht...
    盧卡斯嗶嗶嗶閱讀 806評(píng)論 0 9