MYSQL典型的關(guān)系型數(shù)據(jù)庫(kù)基礎(chǔ)

1考榨、數(shù)據(jù)庫(kù)基本知識(shí)介紹

功能:存儲(chǔ)大量的數(shù)據(jù)刻蟹,查詢數(shù)據(jù)

數(shù)據(jù)庫(kù)排名:https://db-engines.com/en/ranking/relational+dbms

設(shè)計(jì)模型:E-R設(shè)計(jì)模型髓考,關(guān)系型數(shù)據(jù)庫(kù)使用的都是該模型,不同的是核心代碼的存儲(chǔ)方式和讀取方式。E指的是實(shí)體腻豌,R指的是關(guān)系

ER模型中的實(shí)體對(duì)應(yīng)數(shù)據(jù)庫(kù)中的一張表,而關(guān)系指的是兩個(gè)實(shí)體之間的關(guān)系:一對(duì)一嘱能、一對(duì)多吝梅、多對(duì)多。

三范式:簡(jiǎn)單來(lái)說(shuō)就是設(shè)計(jì)數(shù)據(jù)庫(kù)時(shí)候的一些規(guī)范

第一范式1NF:列不可拆分

第二范式2NF:唯一標(biāo)識(shí)

第三范式3NF:引用主鍵

數(shù)據(jù)完整性指的是數(shù)據(jù)的正確性惹骂,常用的是數(shù)據(jù)類型檢查和其他約束

數(shù)據(jù)類型

int 指的是整數(shù)

decimal(m,n)? #m指的是一共m位苏携,小數(shù)n位

test 適用于文本,字符串比較多的場(chǎng)景

char(m)? 固定長(zhǎng)度对粪,用于存儲(chǔ)手機(jī)號(hào)碼等固定長(zhǎng)度的數(shù)據(jù)右冻,指定m個(gè)字符装蓬,若不夠不全

varchar(m)? 可變長(zhǎng)度,用于存儲(chǔ)長(zhǎng)度不固定的數(shù)據(jù)

datetime? #指的是日期和時(shí)間

bit(m)? #8位? ? ?使用場(chǎng)景:存儲(chǔ)性別【兩種狀態(tài)】纱扭,內(nèi)存開(kāi)銷小牍帚。如0表示女,1表示男

【注】創(chuàng)建數(shù)據(jù)庫(kù)設(shè)置編碼格式

create? database wuwang? charset=utf8;

其他約束乳蛾,如下

主鍵決定物理存儲(chǔ)方式暗赶,唯一標(biāo)識(shí)。通過(guò)主鍵能快速找到一張表中的數(shù)據(jù)

唯一可以有很多肃叶,但是主鍵只有一個(gè)蹂随。

2、mysql圖形可視化界面操作

以mysql可視化工具Workbench為例被环,講這個(gè)的目的是要求在圖形化界面可以做一些基本的操作

當(dāng)mysql安裝成功后糙及,且mysql服務(wù)啟動(dòng)后,打開(kāi)可視化界面就連接數(shù)據(jù)庫(kù)

常用操作

創(chuàng)建數(shù)據(jù)庫(kù):


編碼選擇utf-8【CREATE SCHEMA `test02` DEFAULT CHARACTER SET utf8 ;】

創(chuàng)建表

選中tables筛欢,右鍵創(chuàng)建表

設(shè)計(jì)表:設(shè)置表的字段

給表中添加數(shù)據(jù)浸锨、修改數(shù)據(jù)

3、windows下打開(kāi)命令行操作mysql

首先要知道m(xù)ysql安裝路徑

然后shift+右鍵版姑,在此處打開(kāi)命令行


mysql -uroot -p密碼是安裝數(shù)據(jù)庫(kù)時(shí)候設(shè)置的密碼

也可以在windows開(kāi)始快速打開(kāi)

常用操作

查詢數(shù)據(jù)庫(kù)版本:

查看當(dāng)前時(shí)間

創(chuàng)建數(shù)據(jù)庫(kù)

刪除數(shù)據(jù)庫(kù)

切換數(shù)據(jù)庫(kù)

查詢當(dāng)前所有的數(shù)據(jù)庫(kù)

查看當(dāng)前所有表

查看當(dāng)前數(shù)據(jù)庫(kù)

創(chuàng)建表

查詢表的結(jié)構(gòu)

修改表

操作命令

add是增加柱搜,change是修改,drop是刪除

更改表名和查看表的創(chuàng)建語(yǔ)句

簡(jiǎn)單查詢表數(shù)據(jù)

插入一條數(shù)據(jù)

全列插入剥险,操作如下

缺省插入聪蘸,操作如下

其他

數(shù)據(jù)修改、更新操作

操作如下

刪除一條數(shù)據(jù)

【注】這里講一下邏輯刪除和物理刪除表制,物理刪除就是用delete語(yǔ)句刪除一行健爬,邏輯刪除就是設(shè)計(jì)表結(jié)構(gòu)的時(shí)候增加一個(gè)刪除標(biāo)記位isdelete,用戶刪除的時(shí)候使用update語(yǔ)句設(shè)置標(biāo)志位是0么介。查詢所有表數(shù)據(jù)的時(shí)候使用where條件語(yǔ)句

數(shù)據(jù)備份與恢復(fù)

linux下數(shù)據(jù)庫(kù)備份

數(shù)據(jù)恢復(fù)

首先要?jiǎng)?chuàng)建數(shù)據(jù)庫(kù)娜遵,然后執(zhí)行恢復(fù)操作

4、數(shù)據(jù)庫(kù)查詢語(yǔ)句詳解

查詢的基本用法

操作如下:

消除重復(fù)行壤短,distinct【比較的時(shí)候是看一行】

where后面增加條件

where后面的條件會(huì)對(duì)表中的每一行進(jìn)行過(guò)濾设拟,最后返回結(jié)果集

邏輯運(yùn)算符【與、或久脯、非】

模糊查詢

操作如下

范圍查詢

操作如下

【注】:有多個(gè)and的時(shí)候纳胧,從左到右進(jìn)行匹配,邏輯運(yùn)算符and優(yōu)先級(jí)低帘撰,所以先匹配between

空判斷

【注】null表示空跑慕,不占用內(nèi)存。判斷的時(shí)候不能用=判斷

where后面條件運(yùn)算符的優(yōu)先級(jí)骡和,這些運(yùn)算符包括條件運(yùn)算符相赁、邏輯運(yùn)算符相寇、范圍運(yùn)算符慰于、模糊運(yùn)算符钮科、判空運(yùn)算符

聚合

聚合的核心是為了統(tǒng)計(jì),對(duì)多行數(shù)據(jù)進(jìn)行統(tǒng)計(jì)婆赠,統(tǒng)計(jì)之后看不到原始的數(shù)據(jù)绵脯,得到的是一個(gè)聚合后的結(jié)果

常用的聚合函數(shù)如下

【注】求最大值max、最小值min休里、平均數(shù)avg蛆挫、求和sum要求計(jì)算的列一般是數(shù)字類型。

聚合函數(shù)是無(wú)法得到原始數(shù)據(jù)妙黍,但是我們可以通過(guò)其他手段獲取悴侵,如通過(guò)子查詢

分組

分組是為了聚合,怎么理解呢?分組將相同屬性的分到不同組拭嫁,然后對(duì)此做聚合操作可免,統(tǒng)計(jì)出不同組內(nèi)的數(shù)據(jù)

執(zhí)行順序:首先f(wàn)rom語(yǔ)句從后面的表名獲取原始數(shù)據(jù)集

然后執(zhí)行where后面的條件篩選做粤,返回經(jīng)過(guò)過(guò)濾處理的結(jié)果集

再進(jìn)行分組group by浇借,返回經(jīng)過(guò)分組處理的數(shù)據(jù)

在分組處理having,對(duì)分組后的結(jié)果進(jìn)行處理

最后顯示結(jié)果

排序


分頁(yè)

實(shí)例如下

結(jié)合排序order by怕品,先對(duì)原始數(shù)據(jù)進(jìn)行排序妇垢,然后再按照索引取數(shù)據(jù)

實(shí)際應(yīng)用

完整的select語(yǔ)句

5、高級(jí)內(nèi)容

主要內(nèi)容:關(guān)系肉康、連接查詢闯估、自關(guān)聯(lián)、視圖吼和、索引涨薪、事物

詳解關(guān)系

首先關(guān)系在上文中說(shuō)了是指的實(shí)體之間的關(guān)系,在項(xiàng)目中我們要設(shè)計(jì)表纹安,要明確表之間的關(guān)系尤辱。這里就需要提到上文說(shuō)到的E-R模型。比如下面的三張表

首先三個(gè)表(實(shí)體)之間的關(guān)系厢岂,成績(jī)表中用到學(xué)生和科目信息光督,學(xué)生和科目這兩列根據(jù)第三范式引用主鍵要求是引用的另外兩個(gè)表中的主鍵,而不是自己維護(hù)塔粒,這兩個(gè)列就是關(guān)系列【關(guān)系字段】结借。這兩個(gè)信息分別在學(xué)生表和科目表中維護(hù)。

關(guān)系分析

f學(xué)生表和成績(jī)表是關(guān)系是一對(duì)多

科目表和成績(jī)表是關(guān)系是一對(duì)多

【注】怎么看關(guān)系是不是一對(duì)多卒茬,分析A表中的一行對(duì)應(yīng)B表中多行船老。

存儲(chǔ)關(guān)系

若兩個(gè)表是一對(duì)一的關(guān)系咖熟,那么關(guān)系字段在兩個(gè)表都可以

若兩個(gè)表是一對(duì)多的關(guān)系,那么關(guān)系字段在多對(duì)應(yīng)的表中

若兩個(gè)表是對(duì)多對(duì)多的關(guān)系柳畔,需要另外建立一張表存儲(chǔ)關(guān)系字段

關(guān)系設(shè)計(jì)的注意不要設(shè)置成閉合馍管,這樣會(huì)導(dǎo)致存儲(chǔ)冗余

如上圖需要把關(guān)系打開(kāi),實(shí)際使用中實(shí)際考慮

關(guān)系字段

外鍵用來(lái)保證關(guān)系字段的正確和有效性

插入數(shù)據(jù)會(huì)檢查

外鍵的級(jí)聯(lián)操作

【注】設(shè)計(jì)過(guò)程中是先確定ER模型薪韩,然后設(shè)計(jì)表結(jié)構(gòu)確定關(guān)系列确沸,最后創(chuàng)建表添加外鍵

連接查詢join

當(dāng)對(duì)多個(gè)有關(guān)系的表進(jìn)行查詢的,既想要的結(jié)果來(lái)自于多個(gè)表考慮連接查詢

多表查詢

內(nèi)連接要求多個(gè)表的數(shù)據(jù)都出現(xiàn)才會(huì)顯示結(jié)果俘陷,這個(gè)時(shí)候是不分表的順序的

左連接罗捎,以左表中數(shù)據(jù)為準(zhǔn)

右連接,以右表為準(zhǔn)

確定實(shí)體間是否有關(guān)系

確定是幾對(duì)幾的關(guān)系

確定在哪個(gè)實(shí)體之間建立關(guān)系字段

連接查詢:首先連接有三種情況拉盾,內(nèi)連接桨菜、左連接、右連接捉偏,詳細(xì)上文已經(jīng)介紹過(guò)了倒得。返回的結(jié)果是多個(gè)表聯(lián)合查詢到的數(shù)據(jù)。但是實(shí)際情況下告私,我們不需要所有數(shù)據(jù)屎暇。所以一般會(huì)在這之上添加過(guò)濾條件,就是SQL查詢講到的內(nèi)容驻粟。進(jìn)行分組根悼、聚合、分頁(yè)等高級(jí)操作

練習(xí)

自查詢

這種場(chǎng)景下表1和2數(shù)據(jù)量很小蜀撑,但是建立一張表的開(kāi)銷是很大的挤巡,這個(gè)時(shí)候會(huì)造成性能浪費(fèi)

自關(guān)聯(lián)

自連接查詢

首先自連接是指的本表和本表進(jìn)行連接join。在物理上他們是一張表酷麦,但是邏輯上我們可以認(rèn)為它們是兩張表矿卑。如下,為了美觀和正確顯示沃饶,查詢的時(shí)候用了別名

視圖:怎么理解視圖呢母廷,簡(jiǎn)單來(lái)說(shuō)可以說(shuō)是生成一個(gè)新的表結(jié)構(gòu),這個(gè)表存放select語(yǔ)句生成的結(jié)果集糊肤。

對(duì)select語(yǔ)句進(jìn)行封裝

修改視圖alter

事物簡(jiǎn)單介紹

事物開(kāi)始與提交

事物開(kāi)始與回滾begin和rollback

beigin后面的修改操作【增加琴昆、刪除、更新】會(huì)修改內(nèi)存層面的數(shù)據(jù)馆揉,但是物理上不變

索引的簡(jiǎn)單介紹

選擇的數(shù)據(jù)類型

索引操作

性能檢測(cè)set? profiling=1

創(chuàng)建索引再執(zhí)行查找動(dòng)作

性能檢測(cè)工具查出來(lái)時(shí)間明顯減少

【注】主鍵和外鍵默認(rèn)就是索引

缺點(diǎn)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末业舍,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌舷暮,老刑警劉巖态罪,帶你破解...
    沈念sama閱讀 216,544評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異下面,居然都是意外死亡复颈,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,430評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門诸狭,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)券膀,“玉大人君纫,你說(shuō)我怎么就攤上這事驯遇。” “怎么了蓄髓?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,764評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵叉庐,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我会喝,道長(zhǎng)陡叠,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,193評(píng)論 1 292
  • 正文 為了忘掉前任肢执,我火速辦了婚禮枉阵,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘预茄。我一直安慰自己兴溜,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,216評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布耻陕。 她就那樣靜靜地躺著拙徽,像睡著了一般。 火紅的嫁衣襯著肌膚如雪诗宣。 梳的紋絲不亂的頭發(fā)上膘怕,一...
    開(kāi)封第一講書(shū)人閱讀 51,182評(píng)論 1 299
  • 那天,我揣著相機(jī)與錄音召庞,去河邊找鬼岛心。 笑死,一個(gè)胖子當(dāng)著我的面吹牛篮灼,可吹牛的內(nèi)容都是我干的忘古。 我是一名探鬼主播,決...
    沈念sama閱讀 40,063評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼穿稳,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼存皂!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 38,917評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤旦袋,失蹤者是張志新(化名)和其女友劉穎骤菠,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體疤孕,經(jīng)...
    沈念sama閱讀 45,329評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡商乎,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,543評(píng)論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了祭阀。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片鹉戚。...
    茶點(diǎn)故事閱讀 39,722評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖专控,靈堂內(nèi)的尸體忽然破棺而出抹凳,到底是詐尸還是另有隱情,我是刑警寧澤伦腐,帶...
    沈念sama閱讀 35,425評(píng)論 5 343
  • 正文 年R本政府宣布赢底,位于F島的核電站,受9級(jí)特大地震影響柏蘑,放射性物質(zhì)發(fā)生泄漏幸冻。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,019評(píng)論 3 326
  • 文/蒙蒙 一咳焚、第九天 我趴在偏房一處隱蔽的房頂上張望洽损。 院中可真熱鬧,春花似錦革半、人聲如沸碑定。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,671評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)不傅。三九已至,卻和暖如春赏胚,著一層夾襖步出監(jiān)牢的瞬間访娶,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,825評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工觉阅, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留崖疤,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,729評(píng)論 2 368
  • 正文 我出身青樓典勇,卻偏偏與公主長(zhǎng)得像劫哼,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子割笙,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,614評(píng)論 2 353