DataBase 數(shù)據(jù)庫
數(shù)據(jù)庫就是一個存儲數(shù)據(jù)的倉庫恬口,本質(zhì)就是一個文件系統(tǒng)(文件集合)校读,數(shù)據(jù)庫按照特定的格式把數(shù)據(jù)存儲起來,用戶可以對存儲的數(shù)據(jù)進(jìn)行增祖能、刪歉秫、改、查等操作养铸。
數(shù)據(jù)庫分為兩類:
- 關(guān)系型數(shù)據(jù)庫(RDBMS):經(jīng)過集合代數(shù)等數(shù)學(xué)理論驗證雁芙,可以保存現(xiàn)實生活中的各種關(guān)系數(shù)據(jù),數(shù)據(jù)庫中存儲數(shù)據(jù)以表為單位钞螟。
- 非關(guān)系型數(shù)據(jù)庫:通常用來解決某些特定的需求兔甘,例如數(shù)據(jù)庫緩存、高并發(fā)訪問等鳞滨。存儲數(shù)據(jù)的形式有多種洞焙,如 Redis 數(shù)據(jù)庫,就通過鍵值對的形式存儲數(shù)據(jù)拯啦。
RelationalDataBaseManageSystem 關(guān)系數(shù)據(jù)庫管理系統(tǒng)
關(guān)系數(shù)據(jù)庫管理系統(tǒng)(軟件)是用來管理數(shù)據(jù)庫文件的軟件澡匪,用戶需要訪問RDBMS對數(shù)據(jù)庫進(jìn)行增、刪提岔、改、查等操作笋敞。常見的RDBMS有:MySQL碱蒙、Oracle、DB2、SQLite赛惩、SQLServer哀墓。
RDBMS 即關(guān)系數(shù)據(jù)庫管理系統(tǒng)(Relational Database Management System)的特點:
- 1、數(shù)據(jù)以表格的形式出現(xiàn)喷兼。
- 2篮绰、 每行為各種記錄名稱。
- 3季惯、每列為記錄名稱所對應(yīng)的數(shù)據(jù)域吠各。
- 4、許多的行和列組成一張表單勉抓。
- 5贾漏、 若干的表單組成database。
RDBMS 術(shù)語:
- 數(shù)據(jù)庫: 數(shù)據(jù)庫是一些關(guān)聯(lián)表的集合藕筋。
- 數(shù)據(jù)表: 表是數(shù)據(jù)的矩陣纵散。在一個數(shù)據(jù)庫中的表看起來像一個簡單的電子表格。
- 列: 一列(數(shù)據(jù)元素) 包含了相同類型的數(shù)據(jù)隐圾。
- 行:一行(元組伍掀,或記錄)是一組相關(guān)的數(shù)據(jù)。
- 冗余:存儲兩倍數(shù)據(jù)暇藏,冗余降低了性能蜜笤,但提高了數(shù)據(jù)的安全性。
- 主鍵:主鍵是唯一的叨咖,一個數(shù)據(jù)表中只能包含一個主鍵瘩例。可以使用主鍵來查詢數(shù)據(jù)甸各。
- 外鍵:外鍵用于關(guān)聯(lián)兩個表垛贤。
- 復(fù)合鍵:復(fù)合鍵(組合鍵)將多個列作為一個索引鍵,一般用于復(fù)合索引趣倾。
- 索引:使用索引可快速訪問數(shù)據(jù)庫表中的特定信息聘惦。索引是對數(shù)據(jù)庫表中一列或多列的值進(jìn)行排序的一種結(jié)構(gòu)。類似于書籍的目錄儒恋。
- 參照完整性:參照的完整性要求關(guān)系中不允許引用不存在的實體善绎。與實體完整性是關(guān)系模型必須滿足的完整性約束條件,目的是保證數(shù)據(jù)的一致性诫尽。
SQL 結(jié)構(gòu)化查詢語言
結(jié)構(gòu)化查詢語言(Structured Query Language)簡稱SQL禀酱,是一種特殊目的的編程語言,是一種數(shù)據(jù)庫查詢和程序設(shè)計語言牧嫉,用于存取數(shù)據(jù)以及查詢剂跟、更新和管理關(guān)系數(shù)據(jù)庫系統(tǒng)减途。
結(jié)構(gòu)化查詢語言是高級的非過程化編程語言,允許用戶在高層數(shù)據(jù)結(jié)構(gòu)上工作曹洽。它不要求用戶指定對數(shù)據(jù)的存放方法鳍置,也不需要用戶了解具體的數(shù)據(jù)存放方式,所以具有完全不同底層結(jié)構(gòu)的不同數(shù)據(jù)庫系統(tǒng)送淆,可以使用相同的結(jié)構(gòu)化查詢語言作為數(shù)據(jù)輸入與管理的接口税产。結(jié)構(gòu)化查詢語言語句可以嵌套,這使它具有極大的靈活性和強(qiáng)大的功能偷崩。
SQL 分類:
- DDL:Data Definition Languages辟拷,數(shù)據(jù)定義語句,這些語句定義了不同的數(shù)據(jù)段环凿、數(shù)據(jù)庫梧兼、表、列智听、索引等數(shù)據(jù)庫對象羽杰。不支持事務(wù)。主要的語句關(guān)鍵字包括 CREATE到推、ALTER考赛、DROP、TRUNCATE莉测。
- DML:Data Manipulation Language颜骤,數(shù)據(jù)操作語句,用于添加捣卤、刪除忍抽、更新和查詢數(shù)據(jù)庫記錄,并檢查數(shù)據(jù)完整性董朝。支持事務(wù)鸠项。主要的語句關(guān)鍵字包括 INSERT、DELETE子姜、UPDATE祟绊、SELECT 等。
- DQL:Data Query Language哥捕,數(shù)據(jù)查詢語句牧抽,用于從表中獲得數(shù)據(jù),確定數(shù)據(jù)怎樣在應(yīng)用程序給出遥赚。主要的語句關(guān)鍵字包括 SELECT扬舒,常用的保留關(guān)鍵字有WHERE、ORDER BY凫佛、GROUP BY讲坎、HAVING泽腮。這些DQL保留關(guān)鍵字常與其它類型的SQL語句一起使用。
- TCL:Transaction Control Language衣赶,事務(wù)控制語句,能確保被DML語句影響的表的所有行及時得以更新厚满。主要的語句關(guān)鍵字包括 COMMIT(提交)府瞄、SAVEPOINT(保存點)、ROLLBACK(回滾)碘箍。
- DCL:Data Control Language遵馆,數(shù)據(jù)控制語句,用于確定單個用戶和用戶組對數(shù)據(jù)庫對象的訪問權(quán)限丰榴。主要的語句關(guān)鍵字包括GRANT(授權(quán))货邓、REVOKE(回收權(quán)限)。
MySQL數(shù)據(jù)庫
MySQL 是一個關(guān)系型數(shù)據(jù)庫管理系統(tǒng)四濒,由瑞典 MySQL AB 公司開發(fā)换况,目前屬于 Oracle 公司。MySQL 是一種關(guān)聯(lián)數(shù)據(jù)庫管理系統(tǒng)盗蟆,關(guān)聯(lián)數(shù)據(jù)庫將數(shù)據(jù)保存在不同的表中戈二,而不是將所有數(shù)據(jù)放在一個大倉庫內(nèi),這樣就增加了速度并提高了靈活性喳资。
MySQL 的特點:
- MySQL 是開源的觉吭,目前隸屬于 Oracle 旗下產(chǎn)品。
- MySQL 支持大型的數(shù)據(jù)庫仆邓∠侍玻可以處理擁有上千萬條記錄的大型數(shù)據(jù)庫。
- MySQL 使用標(biāo)準(zhǔn)的 SQL 數(shù)據(jù)語言形式节值。
- MySQL 可以運行于多個系統(tǒng)上徙硅,并且支持多種語言。這些編程語言包括 C察署、C++闷游、Python、Java贴汪、Perl脐往、PHP、Eiffel扳埂、Ruby 和 Tcl 等业簿。
- MySQL 對 PHP 有很好的支持,PHP 是很適合用于 Web 程序開發(fā)阳懂。
- MySQL 支持大型數(shù)據(jù)庫梅尤,支持 5000 萬條記錄的數(shù)據(jù)倉庫柜思,32 位系統(tǒng)表文件最大可支持 4GB,64 位系統(tǒng)支持最大的表文件為8TB巷燥。
- MySQL 是可以定制的赡盘,采用了 GPL 協(xié)議,你可以修改源碼來開發(fā)自己的 MySQL 系統(tǒng)缰揪。
MySQL的表:MySQL 為關(guān)系型數(shù)據(jù)庫(Relational Database Management System)陨享,這種所謂的"關(guān)系型"可以理解為"表格"的概念, 一個關(guān)系型數(shù)據(jù)庫由一個或數(shù)個表格組成钝腺,如圖所示的一個表格:
- 表頭(header): 每一列的名稱;
- 列(col): 具有相同數(shù)據(jù)類型的數(shù)據(jù)的集合;
- 行(row): 每一行用來描述某條記錄的具體信息;
- 值(value): 行的具體信息, 每個值必須與該列的數(shù)據(jù)類型相同;
- 鍵(key): 鍵的值在當(dāng)前列中具有唯一性抛姑。