資料庫基礎知識
資料庫基本概念1. 數據 所謂數據(Data)是指對客觀事物進行描述並可以鑑別的符號,這些符號是可識別的、抽象的。它不僅僅指狹義上的數字,而是有多種表現形式:字母、文字、文本、圖形、音頻、視頻等。現在計算機存儲和處理的數據範圍十分廣泛,而描述這些數據的符號也變得越來越複雜了。
2. 資料庫 資料庫(Database,DB)指的是以一定格式存放、能夠實現多個用戶共享、與應用程式彼此獨立的數據集合。
3. 資料庫管理系統資料庫管理系統(Database Management System,DBMS)是用來定義和管理數據的軟體。如何科學的組織和存儲數據,如何高效的獲取和維護數據,如何保證數據的安全性和完整性,這些都需要靠資料庫管理系統完成。目前,比較流行的資料庫管理系統有:Oracle、MySQL、SQL Server、DB2等。
4. 資料庫應用程式 資料庫應用程式(Database Application System,DBAS)是在資料庫管理系統基礎上,使用資料庫管理系統的語法,開發的直接面對最終用戶的應用程式,如學生管理系統、人事管理系統、圖書管理系統等。
5. 資料庫管理員 資料庫管理員(Database Administrator,DBA)是指對資料庫管理系統進行操作的人員,其主要負責資料庫的運營和維護。
6. 最終用戶 最終用戶(User)指的是資料庫應用程式的使用者。用戶面向的是資料庫應用程式(通過應用程式操作數據),並不會直接與資料庫打交道。
7. 資料庫系統 資料庫系統(Database System,DBS)一般是由資料庫、資料庫管理系統、資料庫應用程式、資料庫管理員和最終用戶構成。其中DBMS是資料庫系統的基礎和核心。
資料庫類型 資料庫經過幾十年的發展,出現了多種類型。根據數據的組織結構不同,主要分為網狀資料庫、層次資料庫、關係型資料庫和非關係型資料庫四種。目前最常見的資料庫模型主要是:關係型資料庫和非關係型資料庫
1. 關係型資料庫 關係型資料庫模型是將複雜的數據結構用較為簡單的二元關係(二維表)來表示,如圖1-4所示。在該類型資料庫中,對數據的操作基本上都建立在一個或多個表格上,我們可以採用結構化查詢語言(SQL)對資料庫進行操作。關係型資料庫是目前主流的資料庫技術,其中具有代表性的資料庫管理系統有:Oracle、DB2、SQL Server、MySQL等。
2. 非關係型資料庫NOSQL NOSQL(Not Only SQL)泛指非關係型資料庫。關係型資料庫在超大規模和高並發的web2.0純動態網站已經顯得力不從心,暴露了很多難以克服的問題。NOSQL資料庫的產生就是為了解決大規模數據集合多重數據種類帶來的挑戰,尤其是大數據應用難題。常見的非關係型資料庫管理系統有Memcached、MongoDB等。
常見的關係型資料庫 雖然非關係型資料庫的優點很多,但是由於其並不提供SQL支持、學習和使用成本較高並且無事務處理,所以本書的重點是關係型資料庫。下面我們將介紹一下常用的關係型資料庫管理系統。
1. Oracle Oracle資料庫是由美國的甲骨文(Oracle)公司開發的世界上第一款支持SQL語言的關係型資料庫。經過多年的完善與發展,Oracle資料庫已經成為世界上最流行的資料庫,也是甲骨文公司的核心產品。
Oracle資料庫具有很好的開放性,能在所有的主流平臺上運行,並且性能高、安全性高、風險低;但是其對硬體的要求很高、管理維護和操作比較複雜而且價格昂貴,所以一般用在滿足對銀行、金融、保險等行業大型資料庫的需求上。
2. DB2 DB2是IBM公司著名的關係型資料庫產品。DB2無論穩定性,安全性,恢復性等等都無可挑剔,而且從小規模到大規模的應用都可以使用,但是用起來非常繁瑣,比較適合大型的分布式應用系統。
3. SQL Server SQL Server是由Microsoft開發和推廣的關係型資料庫,SQL Server的功能比較全面、效率高,可以作為中型企業或單位的資料庫平臺。SQL Server可以與Windows作業系統緊密繼承,無論是應用程式開發速度還是系統事務處理運行速度,都能得到大幅度提升。但是,SQL Server只能在Windows系統下運行,毫無開放性可言。
4. MySQL MySQL是一種開放原始碼的輕量級關係型資料庫,MySQL資料庫使用最常用的結構化查詢語言(SQL)對資料庫進行管理。由於MySQL是開放原始碼的,因此任何人都可以在General Public License的許可下下載並根據個人需要對其缺陷進行修改。
由於MySQL資料庫體積小、速度快、成本低、開放源碼等優點,現已被廣泛應用於網際網路上的中小型網站中,並且大型網站也開始使用MySQL資料庫,如網易、新浪等。
MySQL基礎知識
MySQL入門 MySQL資料庫最初是由瑞典MySQL AB公司開發,2008年1月16號被Sun公司收購。2009年,SUN又被Oracle收購。MySQL是目前IT行業最流行的開放原始碼的資料庫管理系統,同時它也是一個支持多線程高並發多用戶的關係型資料庫管理系統。MySQL之所以受到業界人士的青睞,主要是因為其具有以下幾方面優點:
1. 開放原始碼 MySQL最強大的優勢之一在於它是一個開放原始碼的資料庫管理系統。開源的特點是給予了用戶根據自己需要修改DBMS的自由。MySQL採用了General Public License,這意味著授予用戶閱讀、修改和優化原始碼的權利,這樣即使是免費版的MySQL的功能也足夠強大,這也是為什麼MySQL越來越受歡迎的主要原因。
2. 跨平臺 MySQL可以在不同的作業系統下運行,簡單地說,MySQL可以支持Windows系統、UNIX系統、Linux系統等多種作業系統平臺。這意味著在一個作業系統中實現的應用程式可以很方便地移植到其他的作業系統下。
3. 輕量級 MySQL的核心程序完全採用多線程編程,這些線程都是輕量級的進程,它在靈活地為用戶提供服務的同時,又不會佔用過多的系統資源。因此MySQL能夠更快速、高效的處理數據。
4. 成本低 MySQL分為社區版和企業版,社區版是完全免費的,而企業版是收費的。即使在開發中需要用到一些付費的附加功能,價格相對於昂貴的Oracle、DB2等也是有很大優勢的。其實免費的社區版也支持多種數據類型和正規的SQL查詢語言,能夠對數據進行各種查詢、增加、刪除、修改等操作,所以一般情況下社區版就可以滿足開發需求了,而對資料庫可靠性要求比較高的企業可以選擇企業版。
另外,PHP中提供了一整套的MySQL函數,對MySQL進行了全方位的強力支持。
總體來說,MySQL是一款開源的、免費的、輕量級的關係型資料庫,其具有體積小、速度快、成本低、開放源碼等優點,其發展前景是無可限量的。
MySQL安裝1. 安裝MySQL軟體 此種按照版本為MySQL8的Windows系統的安裝版,詳細安裝步驟請查看安裝的附件文檔。此處展示安裝過程中的關鍵步驟。
選擇Developer Default(開發默認)、Full(全部)或者Custom(自定義)
MySQL是基於C/S(Client/Server,客戶端—伺服器端)模式的,簡單的說如果要搭建MySQL環境,需要兩部分:伺服器端軟體和客戶端軟體。
伺服器端軟體為MySQL資料庫管理系統,它包括一組在伺服器主機上運行的程序和相關文件(數據文件、配置文件、日誌文件等),通過運行程序,啟動資料庫服務。
客戶端軟體則是連接資料庫伺服器,用來執行查詢、修改和管理資料庫中的數據的程序。
埠號:3306(Oracle是1521,SQL Server默認埠號為:1433)
此處輸入的是root用戶的密碼。root是MySQL的管理員帳號
2. 安裝圖形客戶端navicat 圖形客戶端有多個 還要SQLyog,MySQL workbench、navicat等。此處安裝navicat。詳細安裝步驟請查看安裝的附件文檔。此處展示安裝過程中的關鍵步驟。
3. MySQL配置文件my.ini 新版本下不在MySQL安裝目錄下,而在C盤的ProgramData文件夾。如果在C盤根目錄中並未找見ProgramData文件夾,則需要設置文件夾選項,選擇顯示隱藏的文件、文件夾和驅動器。
連接MySQL啟動MySQL服務 ★ net start (已經啟動的服務) ★ net start mysql 連接MySQL ★ mysql -h127.0.0.1 -uroot -p 退出MySQL ★ exit ★ quit 關閉MySQL服務 ★ net stop mysql
資料庫相關操作創建資料庫 ★ create database stumgr; 顯示所有資料庫 ★ show databases; 切換資料庫 ★ use stumgr;顯示資料庫下的資料庫表 ★ show tables;刪除資料庫 ★ drop database stumgr;
SQL語言入門
我們都知道,資料庫管理人員(DBA)通過資料庫管理系統(DBMS)可以對資料庫(DB)中的數據進行操作,但具體是如何操作的呢?這就涉及到我們本節要講的SQL語言。
SQL(Structured Query Language)是結構化查詢語言的簡稱,它是一種資料庫查詢和程序設計語言,同時也是目前使用最廣泛的關係型資料庫操作語言。在資料庫管理系統中,使用SQL語言來實現數據的存取、查詢、更新等功能。SQL是一種非過程化語言,只需提出「做什麼」,而不需要指明「怎麼做」。
SQL是由IBM公司在1974~1979年之間根據E.J.Codd發表的關係資料庫理論為基礎開發的,其前身是「SEQUEL」,後更名為SQL。由於SQL語言具有集數據查詢、數據操縱、數據定義和數據控制功能於一體,類似自然語言、簡單易用以及非過程化等特點,得到了快速的發展,並於1986年10月,被美國國家標準協會(American National Standards Institute,ANSI)採用為關係資料庫管理系統的標準語言,後為國際標準化組織(International Organization for Standardization,ISO)採納為國際標準。
SQL語言分為五個部分:
數據查詢語言(Data Query Language,DQL):DQL主要用於數據的查詢,其基本結構是使用SELECT子句,FROM子句和WHERE子句的組合來查詢一條或多條數據。數據操作語言(Data Manipulation Language,DML):DML主要用於對資料庫中的數據進行增加、修改和刪除的操作,其主要包括:INSERT:增加數據UPDATE:修改數據DELETE:刪除數據 數據定義語言(Data Definition Language,DDL):DDL主要用針對是資料庫對象(資料庫、表、索引、視圖、觸發器、存儲過程、函數)進行創建、修改和刪除操作。其主要包括:CREATE:創建資料庫對象ALTER:修改資料庫對象DROP:刪除資料庫對象 數據控制語言(Data Control Language,DCL):DCL用來授予或回收訪問資料庫的權限,其主要包括:GRANT:授予用戶某種權限REVOKE:回收授予的某種權限 事務控制語言(Transaction Control Language,TCL):TCL用於資料庫的事務管理。其主要包括:START TRANSACTION:開啟事務COMMIT:提交事務ROLLBACK:回滾事務SET TRANSACTION:設置事務的屬性