數(shù)據(jù)庫基礎(chǔ)知識(shí)

本文目錄:

  • 1.關(guān)系型數(shù)據(jù)庫
  • 2.什么是非關(guān)系型數(shù)據(jù)庫
  • 3.NoSQL常見場(chǎng)景
  • 4.MySQL常用命令

1.關(guān)系型數(shù)據(jù)庫

是指采用了關(guān)系模型來組織數(shù)據(jù)的數(shù)據(jù)庫
所謂關(guān)系模型就是“一對(duì)一懂拾、一對(duì)多著拭、多對(duì)多”等關(guān)系模型,關(guān)系模型就是指二維表格模型,因而一個(gè)關(guān)系型數(shù)據(jù)庫就是由二維表及其之間的聯(lián)系組成的一個(gè)數(shù)據(jù)組織尺铣。
關(guān)系型數(shù)據(jù)可以很好地存儲(chǔ)一些關(guān)系模型的數(shù)據(jù),比如一個(gè)老師對(duì)應(yīng)多個(gè)學(xué)生的數(shù)據(jù)(“多對(duì)多”),一本書對(duì)應(yīng)多個(gè)作者(“一對(duì)多”)牌废,一本書對(duì)應(yīng)一個(gè)出版日期(“一對(duì)一”)
常見的關(guān)系型數(shù)據(jù)庫:
Oracle廉侧、DB2页响、MySQL
關(guān)系型數(shù)據(jù)庫的特點(diǎn):
安全(因?yàn)榇鎯?chǔ)在磁盤中,不會(huì)說突然斷電數(shù)據(jù)就沒有了)段誊、
容易理解(建立在關(guān)系模型上)
但不節(jié)省空間(因?yàn)榻⒃陉P(guān)系模型上闰蚕,就要遵循某些規(guī)則,好比數(shù)據(jù)中某字段值即使為空仍要分配空間)

2.什么是非關(guān)系型數(shù)據(jù)庫

非關(guān)系型數(shù)據(jù)庫主要是基于“非關(guān)系模型”的數(shù)據(jù)庫(由于關(guān)系型太大连舍,所以一般用“非關(guān)系型”來表示其他類型的數(shù)據(jù)庫)
非關(guān)系型模型比如有:

  • 列模型:存儲(chǔ)的數(shù)據(jù)是一列列的没陡。關(guān)系型數(shù)據(jù)庫以一行作為一個(gè)記錄,列模型數(shù)據(jù)庫以一列為一個(gè)記錄索赏。(這種模型盼玄,數(shù)據(jù)即索引,IO很快潜腻,主要是一些分布式數(shù)據(jù)庫)
  • 鍵值對(duì)模型:存儲(chǔ)的數(shù)據(jù)是一個(gè)個(gè)“鍵值對(duì)”埃儿,比如name:liming,那么name這個(gè)鍵里面存的值就是liming
  • 文檔類模型:以一個(gè)個(gè)文檔來存儲(chǔ)數(shù)據(jù),有點(diǎn)類似“鍵值對(duì)”融涣。

NoSQL是對(duì)不同于傳統(tǒng)的關(guān)系數(shù)據(jù)庫的數(shù)據(jù)庫管理系統(tǒng)的統(tǒng)稱
常見非關(guān)系模型數(shù)據(jù)庫:
列模型:Hbase
鍵值對(duì)模型:redis,MemcacheDB
文檔類模型:mongoDB
非關(guān)系型數(shù)據(jù)庫的特點(diǎn):
效率高(因?yàn)榇鎯?chǔ)在內(nèi)存中)童番、
但不安全(斷電丟失數(shù)據(jù),但其中redis可以同步數(shù)據(jù)到磁盤中)暴心,現(xiàn)在很多非關(guān)系型數(shù)據(jù)庫都開始支持轉(zhuǎn)存到磁盤中妓盲。

3.NoSQL常見場(chǎng)景

1.內(nèi)嵌
內(nèi)嵌是指存在關(guān)聯(lián)關(guān)系的的文檔,放在同一文檔中专普,以數(shù)組的形式存放悯衬。

{
  "username": "brian",
  "gender": 0,
  "roles": ["admin", "user"],
  "address": [
    "address1",
    "address2"
  ]
}

內(nèi)嵌設(shè)計(jì),減少了關(guān)聯(lián)查詢檀夹,適合于單類需要描述的屬性和不經(jīng)常變化的屬性
2.父/子引用
父引用時(shí)指存在一對(duì)多的情況中筋粗,放在同一文檔中,以數(shù)組的形式存放

{
  "tid": "postID",
  "titile": "文章標(biāo)題",
  "catalog": "index",
  "created": "1436731249",
  "comments": [
    "commentID1",
    "commentID2"
  ]
}

子引用是指存在一對(duì)非常多的情況中炸渡,由于數(shù)據(jù)庫文檔存放限制娜亿,這個(gè)時(shí)候進(jìn)行反向引用

{
  "cid": "commentID",
  "tid": "postID",
  "comment": "這是回復(fù)的內(nèi)容,不錯(cuò)0龆隆买决!",
  "created": "1436731249",
  "isRead": 0,
  "isBest": 0,
  "status": 1,
}

一對(duì)非常多的時(shí)候沛婴,為什么要使用到子引用?無限增多的數(shù)據(jù)不能存放到數(shù)組中督赤。
3.反范式
范式是指按既定的用法嘁灯,范式就是一種公認(rèn)的模型或模式。反范式就是不走尋常套路的用法

{
  "tid": "postID",
  "titile": "文章標(biāo)題",
  "created": "1436731249",
  "users": [{
    "uid": "用戶ID",
    "name": "用戶昵稱",
    "isVip": "1"
  }]
}

設(shè)計(jì)原則小結(jié):
優(yōu)先考慮內(nèi)嵌躲舌,如果單獨(dú)訪問丑婿,則不適合
數(shù)組不應(yīng)該無限制的增長(zhǎng)
考慮讀寫比,考慮反范式没卸,考慮應(yīng)用場(chǎng)景

4.MySQL常用命令

MySQL官網(wǎng):https://www.mysql.com/
登陸和退出

mysql -uroot -p
exit 或者  \q

_查看數(shù)據(jù)庫

SHOW DATABASES;

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

CREATE DATABASE 數(shù)據(jù)庫名 charset utf8

選擇數(shù)據(jù)庫

USE 數(shù)據(jù)庫名

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

DROP DATABASE  [IF EXISTS] db_name

查看數(shù)據(jù)表

SHOW TABLES

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

CREATE TABLE [IF NOT EXISTS] table_name(
    column_name data_type,
)

實(shí)際操作數(shù)據(jù)庫會(huì)使用可視化工具羹奉,方便快捷,個(gè)人使用的是Navicat Premium约计。

常見的數(shù)據(jù)類型

數(shù)據(jù)類型有很多種诀拭,因?yàn)楹蛿?shù)據(jù)庫打交道不是很多,所以這里只列舉幾個(gè)最常用的類型病蛉,其它使用的時(shí)候再查閱文檔炫加。
1.(數(shù)字類型)INT 正常大小的整數(shù),可以有符號(hào)铺然,也可以沒有符號(hào)。如果是有符號(hào)整數(shù)酒甸,其允許的取值范圍是-2147483648~2147483647魄健;無符號(hào)整數(shù)的取值范圍是從0至4294967295。最高可指定11位數(shù)字插勤。
2.(數(shù)字類型)FLOAT(M,D) 不帶符號(hào)的浮點(diǎn)數(shù)沽瘦。M 代表顯示長(zhǎng)度,D 代表小數(shù)位數(shù)农尖。這兩個(gè)參數(shù)都不是必需參數(shù)析恋,它們默認(rèn)為10, 2,表示小數(shù)點(diǎn)后有2位數(shù)字盛卡,而整個(gè)數(shù)字的位數(shù)為10(包含小數(shù)位數(shù))助隧。FLOAT 類型的小數(shù)精度可以達(dá)到24位。
3.(時(shí)間類型)DATE YYYY-MM-DD (年-月-日)格式顯示的日期滑沧,取值范圍從1000-01-01 到 9999-12-31并村。比如1973年的12月30日就存為 1973-12-30。
4.(字符串類型)CHAR(M) 長(zhǎng)度固定的字符串滓技,長(zhǎng)度范圍從1~255個(gè)字符哩牍,比如CHAR(5)。在存儲(chǔ)時(shí)令漂,會(huì)向右用空格補(bǔ)齊指定長(zhǎng)度膝昆。長(zhǎng)度并非必須參數(shù)丸边,默認(rèn)長(zhǎng)度為1。
5.(字符串類型)VARCHAR(M) 長(zhǎng)度不定的字符串荚孵,長(zhǎng)度范圍從1~255個(gè)字符妹窖。比如:CHAR(25)。在創(chuàng)建VARCHAR字段時(shí)处窥,必須定義長(zhǎng)度嘱吗。

基本CURD

查詢數(shù)據(jù)
查詢一張表中的所有數(shù)據(jù)

SELECT * FROM 表名

查詢表中的某個(gè)字段

SELECT 列名 FROM 表名

查詢符合條件的數(shù)據(jù)

SELECT * FROM 表名 WHERE 列名 = 列值

插入數(shù)據(jù)(一個(gè)完整的行)

INSERT INTO 表名 VALUES (列值1, 列值2, 列值3, ...)

插入數(shù)據(jù)(插入多個(gè)完整的行)

INSERT INTO 表名 (列名1, 列名2, 列名3, ...) VALUES (列值1, 列值2, 列值3, ...), (列值1, 列值2, 列值3, ...), ...

修改一條數(shù)據(jù)

UPDATE 表名 SET 列名 = 新值 WHERE 列名=給定列值
UPDATE user SET name = 'zhangsan' WHERE id=2

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

DELETE FROM 表名 列名=給定列值
DELETE FROM user WHERE id=3
//使用DELETE語句需要特別注意,如果省略了WHERE子句滔驾,將刪除表中所有行
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末谒麦,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子哆致,更是在濱河造成了極大的恐慌绕德,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,277評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件摊阀,死亡現(xiàn)場(chǎng)離奇詭異耻蛇,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)胞此,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門臣咖,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人漱牵,你說我怎么就攤上這事夺蛇。” “怎么了酣胀?”我有些...
    開封第一講書人閱讀 163,624評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵刁赦,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我闻镶,道長(zhǎng)甚脉,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,356評(píng)論 1 293
  • 正文 為了忘掉前任铆农,我火速辦了婚禮牺氨,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘顿涣。我一直安慰自己波闹,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,402評(píng)論 6 392
  • 文/花漫 我一把揭開白布涛碑。 她就那樣靜靜地躺著精堕,像睡著了一般。 火紅的嫁衣襯著肌膚如雪蒲障。 梳的紋絲不亂的頭發(fā)上歹篓,一...
    開封第一講書人閱讀 51,292評(píng)論 1 301
  • 那天瘫证,我揣著相機(jī)與錄音,去河邊找鬼庄撮。 笑死背捌,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的洞斯。 我是一名探鬼主播毡庆,決...
    沈念sama閱讀 40,135評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼烙如!你這毒婦竟也來了么抗?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,992評(píng)論 0 275
  • 序言:老撾萬榮一對(duì)情侶失蹤亚铁,失蹤者是張志新(化名)和其女友劉穎蝇刀,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體徘溢,經(jīng)...
    沈念sama閱讀 45,429評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡吞琐,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,636評(píng)論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了然爆。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片站粟。...
    茶點(diǎn)故事閱讀 39,785評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡由缆,死狀恐怖对途,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情杯聚,我是刑警寧澤翻默,帶...
    沈念sama閱讀 35,492評(píng)論 5 345
  • 正文 年R本政府宣布,位于F島的核電站恰起,受9級(jí)特大地震影響修械,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜检盼,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,092評(píng)論 3 328
  • 文/蒙蒙 一肯污、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧吨枉,春花似錦蹦渣、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,723評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至圃庭,卻和暖如春锄奢,著一層夾襖步出監(jiān)牢的瞬間失晴,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,858評(píng)論 1 269
  • 我被黑心中介騙來泰國打工拘央, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留涂屁,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,891評(píng)論 2 370
  • 正文 我出身青樓灰伟,卻偏偏與公主長(zhǎng)得像拆又,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子栏账,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,713評(píng)論 2 354

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

  • ORA-00001: 違反唯一約束條件 (.) 錯(cuò)誤說明:當(dāng)在唯一索引所對(duì)應(yīng)的列上鍵入重復(fù)值時(shí)帖族,會(huì)觸發(fā)此異常。 O...
    我想起個(gè)好名字閱讀 5,311評(píng)論 0 9
  • 手動(dòng)不易发笔,轉(zhuǎn)發(fā)請(qǐng)注明出處 --Trance 數(shù)據(jù)庫系統(tǒng)命令: (1).查看存儲(chǔ)過程狀態(tài):show pro...
    Trance_b54c閱讀 1,661評(píng)論 0 8
  • 一盟萨、Python簡(jiǎn)介和環(huán)境搭建以及pip的安裝 4課時(shí)實(shí)驗(yàn)課主要內(nèi)容 【Python簡(jiǎn)介】: Python 是一個(gè)...
    _小老虎_閱讀 5,744評(píng)論 0 10
  • 1、MySQL 數(shù)據(jù)類型 MySQL中定義數(shù)據(jù)字段的類型對(duì)你數(shù)據(jù)庫的優(yōu)化是非常重要的了讨。 MySQL支持多種類型捻激,大...
    garvin閱讀 545評(píng)論 0 1
  • MySQL數(shù)據(jù)庫對(duì)象與應(yīng)用 2.1-MySQL數(shù)據(jù)類型 庫建立好之后基本不動(dòng),和我們接觸最頻繁的是表. 建表就是聲...
    極客圈閱讀 2,144評(píng)論 0 8