數(shù)據(jù)庫基礎(chǔ)知識
一诵闭、數(shù)據(jù)庫基本介紹
1.定義:高效的存儲和處理數(shù)據(jù)的介質(zhì)(主要為磁盤和內(nèi)存兩種)呕乎。
2.分類:
1)關(guān)系型數(shù)據(jù)庫(SQL)
大型數(shù)據(jù)庫:Oracle昔汉、DB2让网。
中型數(shù)據(jù)庫:SQL Server蛤签、MySQL辞友。
小型數(shù)據(jù)庫:Access。
優(yōu)點:安全,將數(shù)據(jù)存儲在磁盤之中称龙,基本不可能丟失數(shù)據(jù)留拾。
缺點:用二維表的形式存儲數(shù)據(jù),比較浪費空間茵瀑。
2)非關(guān)系型數(shù)據(jù)庫(NoSQL间驮,Not Only SQL)
MongoDB、Memcached马昨、Redis竞帽。
優(yōu)點:存儲數(shù)據(jù)的效率比較高。
缺點:不是特別安全鸿捧,突然斷電會導(dǎo)致數(shù)據(jù)丟失屹篓。
二、關(guān)系型數(shù)據(jù)庫
1.定義:是一種建立在關(guān)系模型(數(shù)學(xué)模型)上的數(shù)據(jù)庫匙奴。
至于關(guān)系模型堆巧,則是一種所謂建立在關(guān)系上的模型,包含三個方面:
1)數(shù)據(jù)結(jié)構(gòu):數(shù)據(jù)存儲的形式泼菌,二維表(行和列)谍肤;
2)操作指令集合:所有的SQL語句;
3)完整性約束:表內(nèi)數(shù)據(jù)約束(字段與字段)和表與表之間的約束(外鍵 foreign key)
2.設(shè)計
數(shù)據(jù)庫:從需要存儲的數(shù)據(jù)中分析哗伯,如果是一類數(shù)據(jù)(實體)荒揣,這應(yīng)該設(shè)計成二維表;
二維表:由表頭(字段名焊刹,用來規(guī)定數(shù)據(jù)的名稱)和數(shù)據(jù)(實際存儲的內(nèi)容)部分組成系任。(類似于Excel表格那樣的二維表)
3.關(guān)鍵字說明
DB:Database,數(shù)據(jù)庫;
DBMS:Database Management System虐块,數(shù)據(jù)庫管理系統(tǒng)俩滥;
DBS:Database System = DBMS + DB,數(shù)據(jù)庫系統(tǒng)贺奠;
DBA:Database Administrator霜旧,數(shù)據(jù)庫管理員。
row / record:行 / 記錄儡率,本質(zhì)都是指表中的一行(一條記錄)颁糟,行是從結(jié)構(gòu)角度出發(fā),記錄則是從數(shù)據(jù)角度出發(fā)喉悴。
column / field:列 / 字段棱貌,本質(zhì)都是指表中的一列(一個字段),列是從結(jié)構(gòu)角度出發(fā)箕肃,字段則是從數(shù)據(jù)角度出發(fā)婚脱。
4.SQL基本知識
SQL:Structured Query Language,結(jié)構(gòu)化查詢語言(數(shù)據(jù)以查詢?yōu)橹鳎?9% 都是在進(jìn)行查詢操作)。
SQL主要分為三種:
1)DDL:Data Definition Language障贸,數(shù)據(jù)定義語言错森,用來維護(hù)存儲數(shù)據(jù)的結(jié)構(gòu)(數(shù)據(jù)庫、表)篮洁,代表指令為:create涩维、drop、alter等袁波。
2)DML:Data Manipulation Language瓦阐,數(shù)據(jù)操作語言,用來對數(shù)據(jù)進(jìn)行操作(表中的內(nèi)容)篷牌,代表指令為:insert睡蟋、delete、update等枷颊,不過在DML內(nèi)部又單獨進(jìn)行了一個分類戳杀,即DQL(Data Query Language),數(shù)據(jù)查詢語言夭苗,代表指令為:select信卡。
3)DCL:Data Control Language,數(shù)據(jù)控制語言题造,主要是負(fù)責(zé)(用戶)權(quán)限管理傍菇,代表指令為:grant、revoke等晌梨。
三桥嗤、MySQL數(shù)據(jù)庫
1.定義:是一種c/s結(jié)構(gòu)的軟件须妻,即分為客戶端和服務(wù)端仔蝌。若想訪問服務(wù)器,則必須通過客戶端荒吏;服務(wù)器應(yīng)該一直運行敛惊,客戶端則在需要使用的時候運行。
2.交互方式
客戶端鏈接認(rèn)證绰更,即連接服務(wù)器瞧挤,認(rèn)證身份 mysql.exe -h localhost? -u root -p*(星號代表密碼,與-p之間無空格)儡湾。
-h 主機地址特恬,本地為localhost,遠(yuǎn)程為IP地址徐钠;
-p 端口號癌刽,用來找軟件;
-u 用戶名;
-p 密碼
發(fā)送SQL指令显拜;
服務(wù)器接收SQL指令衡奥,然后處理指令并返回操作結(jié)果;
客戶端接收結(jié)果并顯示結(jié)果远荠;
由于服務(wù)器并發(fā)限制矮固,需要斷開鏈接(三種指令:exit、quit譬淳、\q)釋放資源档址。(即超過并發(fā)限制數(shù)量的客戶端,鏈接不上服務(wù)器瘦赫,接收了的客戶端則會斷開辰晕,將資源讓給后續(xù)客戶端。)
4.服務(wù)器對象
1)DBMS确虱,數(shù)據(jù)管理系統(tǒng)
2)DB含友,數(shù)據(jù)庫
3)Table,表
4)Filed校辩,字段