2022-01-10 day67 MySQL 增刪改 索引

今天的內(nèi)容:

1.建庫(kù) 建表

2.介紹 增刪改

3.索引 Btree+

第1章 建表語(yǔ)句

1.建表語(yǔ)句

SQL語(yǔ)句:

2.引擎

InnoDB 默認(rèn)新的引擎

MyISAM? mysql系統(tǒng)庫(kù)用的是他

3.主鍵

PRIMARY KEY

每個(gè)表都必須包含一個(gè)主鍵列

主鍵特性:

唯一 不能重復(fù)

非空

自增

3.字符集

默認(rèn) latin1

常用 UTF8

推薦 utf8mb4 emoji

4.字段類(lèi)型

數(shù)字類(lèi)型:

整數(shù):

tinyint? 1字節(jié)? =? 8位 = 00000000 - 11111111? = 2^8個(gè)? = 0? - 255? ? , -127-128? ?

int? ? ? 4字節(jié)? =? 32位? ? ? ? ? ? ? ? ? ? ? = 2^32個(gè) = 0? - 2^32-1? ,-2^31-2^31-1 ,10位數(shù)

bigint? ? 8字節(jié)? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 0? - 2^64-1? ,-2^63-2^63-1 ,20位數(shù)

浮點(diǎn)數(shù):

decimal(m,n)

字符串類(lèi)型:

char(N)? ? :

N字符個(gè)數(shù),最大不超過(guò)255

定長(zhǎng)的字符串類(lèi)型蟀俊。

例如: char(10) ,最多存10個(gè)字符,只要10個(gè)字符以?xún)?nèi)效诅,都10個(gè)字符長(zhǎng)度的存儲(chǔ)空間。剩余用空格填充。

varchar(M) :

M字符個(gè)數(shù)妓盲,最大不超過(guò)65535

變長(zhǎng)的字符串類(lèi)型谷遂。會(huì)額外占用1-2字節(jié)存儲(chǔ)字符長(zhǎng)度。255字符之內(nèi)砍艾,額外1字節(jié)蒂教,255以上,額外2字節(jié)

例如: varchar(10),最多存10個(gè)字符,按需分配存儲(chǔ)空間脆荷。

abc 3? ? ? ? ? ? =4

asdasdadasd 1000? =1002

5.建表語(yǔ)句

CREATE TABLE `school`.`linux`(

`id` INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '學(xué)號(hào)',

`name` CHAR(10) NOT NULL COMMENT '姓名',

`age` TINYINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '年齡',

`ssex` ENUM('F','M','Y') NOT NULL DEFAULT 'Y' COMMENT '性別',

`address` VARCHAR(20) NOT NULL COMMENT '地址',

PRIMARY KEY (`id`) ) ENGINE=INNODB CHARSET=utf8mb4;

第2章 插入語(yǔ)句

第一種寫(xiě)法:

INSERT INTO `school`.`linux` (`id`, `name`, `age`, `ssex`, `address`)

VALUES ('1', '張亞', '29', 'M', '深圳南山區(qū)');

第二種寫(xiě)法:

INSERT INTO `school`.`linux`

VALUES ('1', '張亞', '29', 'M', '深圳南山區(qū)');

第三種寫(xiě)法:

INSERT INTO `school`.`linux` (`name`, `age`, `ssex`, `address`)

VALUES ('張亞', '29', 'M', '深圳南山區(qū)');

第3章 修改語(yǔ)句

1.修改表名-不要用

RENAME TABLE `school`.`linux` TO `school`.`linux7`;

2.修改列名-不要用

改列名:

ALTER TABLE `school`.`linux`

CHANGE `ssex` `sex`

ENUM('F','M','Y')

CHARSET utf8mb4

COLLATE utf8mb4_general_ci

DEFAULT 'Y'

NOT NULL

COMMENT '性別';

3.修改表數(shù)據(jù)-不要用

注意!!!修改表數(shù)據(jù)一定要加上限定條件!!!注意

UPDATE `school`.`linux7` SET `name` = '張亞男' WHERE `id` = '29';

4.增加字段

ALTER TABLE `school`.`linux7` ADD COLUMN `status`

ENUM('1','0') NOT NULL COMMENT '刪除狀態(tài)'

AFTER `address`;

第4章 刪除語(yǔ)句-不要用

1.刪數(shù)據(jù)

注意!!!刪除表數(shù)據(jù)一定要加上限定條件!!!注意

DELETE FROM `school`.`linux7` WHERE `id` = '29';

2.偽刪除

第一步: 增加一個(gè)狀態(tài)字段

ALTER TABLE `school`.`linux7` ADD COLUMN `status`

ENUM('1','0') NOT NULL COMMENT '刪除狀態(tài),0刪除,1存在'

AFTER `address`;

第二步: 改造業(yè)務(wù)的查詢(xún)語(yǔ)句

SELECT * FROM linux7 WHERE STATUS = '1';

第三步: 改造業(yè)務(wù)的刪除邏輯-將刪除替換為更新

UPDATE `school`.`linux7` SET `status` = '1' WHERE `id` = '1';

3.刪字段-不要會(huì)

ALTER TABLE `school`.`linux7` DROP COLUMN `status`;

4.刪表-不要會(huì)

DROP TABLE `school`.`linux7`;

5.刪庫(kù)-沒(méi)教過(guò)

DROP DATABASE `school`;

第5章 索引

1.什么叫索引

假如表是一本書(shū),索引就是這本書(shū)的目錄

數(shù)據(jù)庫(kù)索引的目的就是為了更快的找到我們要的數(shù)據(jù)

2.平衡樹(shù)

BTREE

B+TREE

B++TREE

3.前提

1)如果表中設(shè)置了主鍵(例如ID列)凝垛,自動(dòng)根據(jù)ID列生成索引樹(shù)懊悯。

2)如果沒(méi)有設(shè)置主鍵,自動(dòng)選擇第一個(gè)唯一鍵的列作為聚簇索引

3)自動(dòng)生成隱藏的聚簇索引梦皮。

4.構(gòu)建過(guò)程

1)葉子節(jié)點(diǎn): 存儲(chǔ)數(shù)據(jù)行時(shí)就是有序的炭分,直接將數(shù)據(jù)行的page作為葉子節(jié)點(diǎn)(相鄰的葉子結(jié)點(diǎn),有雙向指針)

2)枝節(jié)點(diǎn): 提取葉子節(jié)點(diǎn)ID的范圍+指針剑肯,構(gòu)建枝節(jié)點(diǎn)(相鄰枝節(jié)點(diǎn)捧毛,有雙向指針)

3)根節(jié)點(diǎn): 提取枝節(jié)點(diǎn)的ID的范圍+指針,構(gòu)建根節(jié)點(diǎn)

5.查詢(xún)語(yǔ)句

查詢(xún)的語(yǔ)句條件為id列這樣是最快的,因?yàn)檫@樣直接就可以根據(jù)索引很快查到數(shù)據(jù)存儲(chǔ)的位置

第6章 輔助索引

1.條件

需要人為創(chuàng)建輔助索引让网,將經(jīng)常作為查詢(xún)條件的列創(chuàng)建輔助索引呀忧,起到加速查詢(xún)的效果。

2.功能

按照輔助索引列溃睹,作為查詢(xún)條件時(shí)而账。

1.查找輔助索引樹(shù),得到ID值

2.拿著ID值回表(聚簇索引)查詢(xún)

3.輔助索引生成過(guò)程

1.葉子節(jié)點(diǎn):提取主鍵(ID)+輔助索引列因篇,按照輔助索引列進(jìn)行從小到大排序后泞辐,生成葉子節(jié)點(diǎn)。(相鄰的葉子結(jié)點(diǎn)竞滓,有雙向指針)

2.枝節(jié)點(diǎn)? :提取葉子節(jié)點(diǎn)輔助索引列的范圍+指針咐吼,構(gòu)建枝節(jié)點(diǎn)(相鄰枝節(jié)點(diǎn),有雙向指針)

3.根節(jié)點(diǎn)? :提取枝節(jié)點(diǎn)的輔助索引列的范圍+指針虽界,構(gòu)建根節(jié)點(diǎn)

第7章 索引應(yīng)用

1.壓測(cè)

mysql -uroot -padmin < t100w.sql

mysqlslap \

--defaults-file=/etc/my.cnf \

--concurrency=100 \

--iterations=1 \

--create-schema='test' \

--query="select * from test.t100w where k2='780P'" \

engine=innodb \

--number-of-queries=2000 \

-uroot -p123 \

-verbose -S /tmp/mysql_3306.sock

mysqlslap \

--defaults-file=/etc/my.cnf \

--concurrency=100 \

--iterations=1 \

--create-schema='test' \

--query="select * from test.t100w where id='780P'" \

engine=innodb \

--number-of-queries=200 \

-uroot -padmin \

-verbose -S /tmp/mysql_3306.sock

2.查看索引

desc t100w;?

show index from t100w;

3.創(chuàng)建輔助索引

select * from test.t100w where k2='780P'

alter table t100w add index idx_k2(k2);

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末汽烦,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子莉御,更是在濱河造成了極大的恐慌撇吞,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,590評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件礁叔,死亡現(xiàn)場(chǎng)離奇詭異牍颈,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)琅关,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,157評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén)煮岁,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人涣易,你說(shuō)我怎么就攤上這事画机。” “怎么了新症?”我有些...
    開(kāi)封第一講書(shū)人閱讀 169,301評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵步氏,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我徒爹,道長(zhǎng)荚醒,這世上最難降的妖魔是什么芋类? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 60,078評(píng)論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮界阁,結(jié)果婚禮上侯繁,老公的妹妹穿的比我還像新娘。我一直安慰自己泡躯,他們只是感情好贮竟,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,082評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著精续,像睡著了一般坝锰。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上重付,一...
    開(kāi)封第一講書(shū)人閱讀 52,682評(píng)論 1 312
  • 那天,我揣著相機(jī)與錄音凫乖,去河邊找鬼确垫。 笑死,一個(gè)胖子當(dāng)著我的面吹牛帽芽,可吹牛的內(nèi)容都是我干的删掀。 我是一名探鬼主播,決...
    沈念sama閱讀 41,155評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼导街,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼披泪!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起搬瑰,我...
    開(kāi)封第一講書(shū)人閱讀 40,098評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤款票,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后泽论,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體艾少,經(jīng)...
    沈念sama閱讀 46,638評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,701評(píng)論 3 342
  • 正文 我和宋清朗相戀三年翼悴,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了缚够。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,852評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡鹦赎,死狀恐怖谍椅,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情古话,我是刑警寧澤雏吭,帶...
    沈念sama閱讀 36,520評(píng)論 5 351
  • 正文 年R本政府宣布,位于F島的核電站煞额,受9級(jí)特大地震影響思恐,放射性物質(zhì)發(fā)生泄漏沾谜。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,181評(píng)論 3 335
  • 文/蒙蒙 一胀莹、第九天 我趴在偏房一處隱蔽的房頂上張望基跑。 院中可真熱鬧,春花似錦描焰、人聲如沸媳否。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,674評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)篱竭。三九已至,卻和暖如春步绸,著一層夾襖步出監(jiān)牢的瞬間掺逼,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,788評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工瓤介, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留吕喘,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,279評(píng)論 3 379
  • 正文 我出身青樓刑桑,卻偏偏與公主長(zhǎng)得像氯质,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子祠斧,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,851評(píng)論 2 361

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