MySQL資料庫初級學習筆記---第一章-資料庫概述 郭家小雨 發表於2024-09-29
第一章-資料庫概述
聊聊資料庫
資料庫是一門獨立的學科,只要是做軟體開發的,資料庫都要學。
資料庫(電子化的檔案櫃)是“按照資料結構來組織、儲存和管理資料的倉庫”。是一個長期儲存在計算機內的、有組織的、可共享的、統一管理的大量資料的集合。
它的儲存空間很大,可以存放百萬條、千萬條、上億條資料。
資料庫並不是隨意地將資料進行存放,是有一定的規則的,否則查詢的效率會很低。
當今世界是一個充滿著資料的網際網路世界,充斥著大量的資料。即這個網際網路世界就是資料世界。資料的來源有很多,比如出行記錄、消費記錄、瀏覽的網頁、傳送的訊息等等。除了文字型別的資料,影像、音樂、聲音都是資料。
資料庫對應的英文單詞是DataBase,簡稱DB。
資料庫型別
關係型資料庫
關係型資料庫是依據關係模型來建立的資料庫。所謂關係模型就是“一對一、一對多、多對多”等關係模型,關係模型就是指二維表格模型,因而一個關係型資料庫就是由二維表及其之間的聯絡組成的一個資料組織。
關係型資料可以很好地儲存一些關係模型的資料,比如一個老師對應多個學生的資料(“多對多”),一本書對應多個作者(“一對多”),一本書對應一個出版日期(“一對一”)。
關係模型包括資料結構(資料儲存的問題,二維表)、操作指令集合(SQL語句)、完整性約束(表內資料約束、表與表之間的約束)。
非關係型資料庫(NoSQL)
NoSQL,泛指非關係型的資料庫。隨著網際網路web2.0網站的興起,傳統的關聯式資料庫在處理web2.0網站,特別是超大規模和高併發的SNS型別的web2.0純動態網站已經顯得力不從心,出現了很多難以克服的問題,而非關係型的資料庫則由於其本身的特點得到了非常迅速的發展。
NoSQL資料庫的產生就是為了解決大規模資料集合多重資料種類帶來的挑戰,特別是大資料應用難題。NoSQL最常見的解釋是“non-relational”, “Not Only SQL”也被很多人接受。
NoSQL僅僅是一個概念,泛指非關係型的資料庫,區別於關聯式資料庫,它們不保證關係資料的ACID特性。NoSQL是一項全新的資料庫革命性運動,其擁護者們提倡運用非關係型的資料儲存,相對於鋪天蓋地的關係型資料庫運用,這一概念無疑是一種全新的思維的注入。
NoSQL有如下優點:易擴充套件,NoSQL資料庫種類繁多,但是一個共同的特點都是去掉關聯式資料庫的關係型特性。資料之間無關係,這樣就非常容易擴充套件。無形之間也在架構的層面上帶來了可擴充套件的能力。大資料量,高效能,NoSQL資料庫都具有非常高的讀寫效能,尤其在大資料量下,同樣表現優秀。這得益於它的無關係性,資料庫的結構簡單。
資料庫管理系統
資料庫管理系統(Database Management System,簡稱DBMS)是為管理資料庫而設計的電腦軟體系統,一般具有儲存、擷取、安全保障、備份等基礎功能。
資料庫管理系統是資料庫系統的核心組成部分,主要完成對資料庫的操作與管理功能,實現資料庫物件的建立、資料庫儲存資料的查詢、新增、修改與刪除操作和資料庫的使用者管理、許可權管理等。
常見的資料庫管理系統有:MySQL、Oracle、DB2、MS SQL Server、SQLite、PostgreSQL、Sybase等。
什麼是SQL
結構化查詢語言(Structured Query Language)簡稱SQL,是一種特殊目的的程式語言,是一種資料庫查詢和程式設計語言,用於存取資料以及查詢、更新和管理關聯式資料庫系統。
結構化查詢語言是高階的非過程化程式語言,允許使用者在高層資料結構上工作。它不要求使用者指定對資料的存放方法,也不需要使用者瞭解具體的資料存放方式,所以具有完全不同底層結構的不同資料庫系統, 可以使用相同的結構化查詢語言作為資料輸入與管理的介面。結構化查詢語言語句可以巢狀,這使它具有極大的靈活性和強大的功能。
SQL的分類
DQL
資料查詢語言(Data Query Language, DQL)是SQL語言中,負責進行資料查詢而不會對資料本身進行修改的語句,這是最基本的SQL語句。保留字SELECT是DQL(也是所有SQL)用得最多的動詞!!,其他DQL常用的保留字有FROM,WHERE,GROUP BY,HAVING和ORDER BY。這些DQL保留字常與其他型別的SQL語句一起使用。
DDL
資料定義語言 (Data Definition Language, DDL) 是SQL語言集中,負責資料結構定義與資料庫物件定義的語言,由CREATE、ALTER與DROP三個語法所組成,最早是由 Codasyl (Conference on Data Systems Languages) 資料模型開始,現在被納入 SQL 指令中作為其中一個子集。
DML
資料操縱語言(Data Manipulation Language, DML)是SQL語言中,負責對資料庫物件執行資料訪問工作的指令集,以INSERT、UPDATE、DELETE三種指令為核心,分別代表插入、更新與刪除。
DCL
資料控制語言 (Data Control Language) 在SQL語言中,是一種可對資料訪問權進行控制的指令,它可以控制特定使用者賬戶對資料表、檢視錶、預存程式、使用者自定義函式等資料庫物件的控制權。由 GRANT 和 REVOKE 兩個指令組成。DCL以控制使用者的訪問許可權為主,GRANT為授權語句,對應的REVOKE是撤銷授權語句。
TPL
資料事務管理語言(Transaction Processing Language)它的語句能確保被DML語句影響的表的所有行及時得以更新。TPL語句包括BEGIN TRANSACTION,COMMIT和ROLLBACK。
CCL
指標控制語言(Cursor Control Language),它的語句,像DECLARE CURSOR,FETCH INTO和UPDATE WHERE CURRENT用於對一個或多個表單獨行的操作。
DBMS、SQL、DB之間的關係