MySQL數(shù)據(jù)庫基礎(一):數(shù)據(jù)庫安裝和DataGrip安裝
學習目錄
數(shù)據(jù)庫介紹
MySQL數(shù)據(jù)庫安裝和使用
SQL語句
DDL之數(shù)據(jù)庫操作
DDL之表操作
DML數(shù)據(jù)庫操作語言
SQL約束
DQL操作
多表操作
學習目標
掌握DDL操作
了解mysql的約束
掌握DML操作
掌握DQL操作
掌握多表聯(lián)查
一、數(shù)據(jù)庫概述
1、數(shù)據(jù)庫介紹
數(shù)據(jù)庫就是存儲數(shù)據(jù)的倉庫,其本質是一個文件系統(tǒng),按照特定的格式將數(shù)據(jù)存儲起來,用戶可以對數(shù)據(jù)庫中的數(shù)據(jù)進行增加,修改,刪除及查詢操作。 隨著互聯(lián)網(wǎng)的高速發(fā)展,大量的數(shù)據(jù)在不斷的產(chǎn)生,伴隨而來的是如何高效安全的存儲數(shù)據(jù)和處理數(shù)據(jù),而這一問題成為了信息時代的一個非常大的問題,而使用數(shù)據(jù)庫可以高效的有條理的儲存數(shù)據(jù)。
可以結構化存儲大量的數(shù)據(jù);
可以有效的保持數(shù)據(jù)的一致性、完整性;
讀寫效率極高。
2、數(shù)據(jù)庫分類
數(shù)據(jù)庫又分為關系型數(shù)據(jù)庫和非關系型數(shù)據(jù)庫
☆ 關系型數(shù)據(jù)庫
關系型數(shù)據(jù)庫:指采用了關系模型來組織數(shù)據(jù)的數(shù)據(jù)庫。
關系模型指的就是二維表格模型,而一個關系型數(shù)據(jù)庫就是由二維表及其之間的聯(lián)系所組成的一個數(shù)據(jù)組織。 初學階段,我們可以先簡單的講關系型數(shù)據(jù)庫理解為一個Excel表格:

☆ 非關系型數(shù)據(jù)庫NoSQL
非關系型數(shù)據(jù)庫:又被稱為NoSQL(Not Only SQL ),意為不僅僅是SQL,對NoSQL 最普遍的定義是“非關聯(lián)型的”,強調 Key-Value 的方式存儲數(shù)據(jù)。
Key-Value結構存儲: Key-value數(shù)據(jù)庫是一種以鍵值對存儲數(shù)據(jù)的一種數(shù)據(jù)庫,類似Java中的map??梢詫⒄麄€數(shù)據(jù)庫理解為一個大的map,每個鍵都會對應一個唯一的值。

關系型和非關系型數(shù)據(jù)庫區(qū)別? 關系型數(shù)據(jù)庫(RDBMS):
1. 數(shù)據(jù)以表格的形式進行存儲,每個表格包含多個行和列,每行代表一個記錄,每列代表一個屬性。
2. 數(shù)據(jù)之間通過主鍵和外鍵建立關聯(lián)關系,可以通過SQL語言進行查詢和操作。
3. 數(shù)據(jù)結構嚴格,需要事先定義表的結構和關系,具有較高的數(shù)據(jù)一致性和完整性。
4. 適用于需要復雜查詢和事務處理的應用,如金融系統(tǒng)和企業(yè)管理系統(tǒng)。
非關系型數(shù)據(jù)庫(NoSQL):
1. 數(shù)據(jù)以鍵值對、文檔、列族等非表格形式進行存儲,沒有固定的結構,可以動態(tài)添加字段。
2. 數(shù)據(jù)之間沒有嚴格的關系,查詢方式通常是通過鍵或索引進行快速查找。
3. 數(shù)據(jù)結構靈活,可以存儲半結構化和非結構化數(shù)據(jù),適用于大規(guī)模數(shù)據(jù)的存儲和處理。
4. 適用于需要高可擴展性和高性能的應用,如大數(shù)據(jù)分析和實時數(shù)據(jù)處理。
3、常見數(shù)據(jù)庫介紹
☆ 關系型數(shù)據(jù)庫
數(shù)據(jù)庫
介紹
MySQL
開源免費的數(shù)據(jù)庫,中型的數(shù)據(jù)庫.已經(jīng)被Oracle收購了.MySQL6.x版本也開始收費。
Oracle
收費的大型數(shù)據(jù)庫,Oracle公司的產(chǎn)品。Oracle收購SUN公司,收購MYSQL。
DB2
IBM公司的數(shù)據(jù)庫產(chǎn)品,收費的。常應用在銀行系統(tǒng)中.
SQLserver
MicroSoft 公司收費的中型的數(shù)據(jù)庫。C#、.net等語言常使用。
SQLite
嵌入式的小型數(shù)據(jù)庫,應用在手機端。
☆ 非關系型數(shù)據(jù)庫
數(shù)據(jù)庫
介紹
Redis
是一個小而美的數(shù)據(jù)庫,主要用在key-value ?的內存緩存,讀寫性能極佳
HBase
HBase是列式數(shù)據(jù)庫,目標是高效存儲大量數(shù)據(jù)
MongoDB
MongoDB是文檔型數(shù)據(jù)庫,非常接近關系型數(shù)據(jù)庫的。
4、小結
① 數(shù)據(jù)庫就是存儲數(shù)據(jù)的倉庫,用戶可以對數(shù)據(jù)庫中的數(shù)據(jù)進行增刪改查操作
② 數(shù)據(jù)庫分為關系型數(shù)據(jù)庫和非關系型數(shù)據(jù)庫。
③ 常用的關系型數(shù)據(jù)庫有:MySQL,Oracle,DB2,SQLserver,sqlite
④ 常用的非關系型數(shù)據(jù)庫有:Redis,Hbase,MongoDB
二、MySQL數(shù)據(jù)庫
1、MySQL介紹
MySQL是一個關系型數(shù)據(jù)庫管理系統(tǒng),在 WEB 應用方面,MySQL是最好的 RDBMS (Relational Database Management System,關系數(shù)據(jù)庫管理系統(tǒng)) 應用軟件,它是由瑞典MySQL AB 公司開發(fā),目前屬于 Oracle 旗下產(chǎn)品,MySQL 是最流行的關系型數(shù)據(jù)庫管理系統(tǒng)中的一個。
2、MySQL的特點
MySQL是開源的,所以你不需要支付額外的費用。
MySQL支持大型的數(shù)據(jù)庫??梢蕴幚頁碛猩锨f條記錄的大型數(shù)據(jù)庫。
MySQL使用標準的SQL數(shù)據(jù)語言形式。
MySQL可以安裝在不同的操作系統(tǒng),并且提供多種編程語言的操作接口。這些編程語言包括C、C++、Python、Java、Ruby等等。
3、MySQL版本
MySQL Community Server:社區(qū)版本,開源免費,但不提供官方技術支持。
MySQL Enterprise Edition:企業(yè)版本,需付費,可以試用30天。
MySQL Cluster:集群版,開源免費??蓪讉€MySQL Server封裝成一個Server。
MySQL Cluster CGE:高級集群版,需付費。
MySQL Workbench(GUITOOL):一款專為MySQL設計的ER/數(shù)據(jù)庫建模工具。它是著名的數(shù)據(jù)庫設計工具DBDesigner4的繼任者。MySQL Workbench又分為兩個版本,分別是社區(qū)版(MySQL Workbench OSS)、商用版(MySQL WorkbenchSE)。
本次課程,我們使用MySQL8.0版本, MySQL Community Server進行學習。
4、MySQL數(shù)據(jù)庫下載與安裝
☆ 下載
MySQL是開源免費的,可以直接去官網(wǎng)下載最新版MySQL,下載地址如下:
下載地址:https://dev.mysql.com/downloads/mysql/,拉到下面,選擇 Windows 系統(tǒng)。
建議選擇安裝版進行安裝,點擊Go to Download Page進行安裝。
點擊 Download 后會跳轉到如下頁面,點擊左下角的 No thanks, just start my download. 開始下載。

☆ 安裝
下載完成后打開安裝包,稍等片刻后,選擇開發(fā)者默認的安裝方式,點擊下一步即可。
此后按照流程安裝即可,遇到Next(下一步),和Execute(執(zhí)行)直接點擊即可,點擊Execute后需要等待幾分鐘。
直至出現(xiàn)Account and Roles輸入數(shù)據(jù)庫密碼,此處輸入密碼務必記住,用于之后登陸數(shù)據(jù)庫。
繼續(xù)點擊Next,出現(xiàn)finish后點擊,完成安裝。

注意:MySQL軟件有一個默認管理員叫做root
5、添加環(huán)境變量(Windows)
cmd(DOS窗口)=> 輸入命令如mysql => 當前Windows的環(huán)境變量中去尋找
添加環(huán)境變量的目的:輸入終端命令時,可以搜索對應的可執(zhí)行文件。
首先找到mysql的安裝目錄,并且定位到mysql文件,將地址欄內容進行復制。
默認的安裝路徑: C:\Program Files\MySQL\MySQL Server 8.0\bin
找到此電腦右鍵點擊選擇屬性,彈出如下界面,選擇高級系統(tǒng)設置,不同版本系統(tǒng)位置可能不太一樣,耐心尋找一下。

進入高級系統(tǒng)設置之后,點擊環(huán)境變量按鈕,即可進入環(huán)境變量配置界面。
找到系統(tǒng)變量中的path變量,點擊編輯,進入編輯界面。
選擇新建,將剛才的賦值的mysql文件的地址粘貼到文本框中,點擊確定,完成環(huán)境變量配置。

6、檢測環(huán)境變量是否配置成功
在底部搜索欄輸入cmd,按Enter鍵喚出終端窗口。
輸入mysql -V(V要大寫),輸出如下內容則配置成功。

三、Linux系統(tǒng)下的MySQL安裝與使用
1、MySQL安裝與使用
課程提供的Linux系統(tǒng)中已經(jīng)安裝好了Mysql,可以無需安裝,直接使用即可
安裝文檔請查看:MySQL8.0安裝.docx
2、登陸MySQL數(shù)據(jù)庫
MySQL是一個需要賬戶名密碼登錄的數(shù)據(jù)庫,登陸后使用,它提供了一個默認的root賬號,使用安裝時設置的密碼即可登錄,目前有兩種登錄場景:
☆ 本地(針對本地MySQL)
案例演示:

說明: -u 后面是登錄的用戶名 -p 后面是登錄密碼, 如果不填寫, 回車之后會提示輸入密碼
☆ 遠程(針對遠程MySQL,MySQL服務器不再本地)
☆ 退出
① mysql> exit
② mysql> quit?
③ 快捷鍵Ctrl + d
3、小結
① MySQL的特點:免費,支持大型數(shù)據(jù)庫,標準的SQL語言形式,跨平臺。
② 課程使用的版本時MySQL8.0版本。
③ MySQL登錄的兩種方式:
方法一:本地 mysql -uroot -p123456
方法二:遠程mysql -h 192.168.88.100 -P 3306 -uroot -p123456
④ 從MySQL軟件中退出有3種方式
方法一:exit
方法二:quit
方法三:Ctrl + d
四、MySQL圖形化開發(fā)工具DataGrip
1、DataGrip介紹
DataGrip是JetBrains公司推出的管理數(shù)據(jù)庫的產(chǎn)品,功能非常強大,可以兼容各種數(shù)據(jù)庫,另外,JetBrains公司還有一款知名的IDE開發(fā)工具IDEA,用戶體驗非常不錯。
下載地址:https://www.jetbrains.com/datagrip/download/#section=windows

2、DataGrip安裝
下載完成后打開安裝程序,選擇安裝路徑,一直點擊Next即可安裝。 直到Finish點擊完成安裝,并打開應用。 選擇Evaluate for free 免費試用30天。

3、創(chuàng)建工程
點擊File->New->Project新建DataGrip工程 輸入項目名稱,點擊確定。 選擇新項目打開方式:This Windows(在本窗口中打開),New Windows(在新窗口中打開), Attach(附加模式)

4、連接數(shù)據(jù)庫
選擇Database下的?,點擊DataSource菜單下的MySQL。 填寫對應的參數(shù),連接數(shù)據(jù)庫:連接名,IP,用戶名,密碼等,點擊OK完成連接。 注意:如果第一次使用,需要下載mysql驅動文件。

設置數(shù)據(jù)庫時區(qū):
點擊Advanced按鈕;
在VM options后面寫入-Duser.timezone=Asia/Shanghai,就可以啦;

設置完成后,單擊Apply(應用),單擊OK,數(shù)據(jù)庫就連接成功了!
5、選擇要使用的數(shù)據(jù)庫
點擊連接名稱之后的按鈕可以選擇所要使用的數(shù)據(jù)庫:

6、DataGrip軟件設置
☆ 設置字體大小
設置文字大?。?File--->settings--->Editor---->Font

☆ 設置關鍵字大寫
設置關鍵字大寫: File--->settings--->Editor---->Code Style--->SQL--->MySql(需要設置的數(shù)據(jù)庫)--->Case

☆ 自動排版
自動排版布局: File--->settings--->Editor---->Code Style--->SQL--->MySql(需要設置的數(shù)據(jù)庫)--->Queries
自動排版快捷鍵:Ctrl+ Alt + L

五、SQL語句
1、連接數(shù)據(jù)庫
結構化查詢語言(Structured Query Language)簡稱SQL,是關系型數(shù)據(jù)庫管理系統(tǒng)都需要遵循的規(guī)范,是數(shù)據(jù)庫認識的語句。不同的數(shù)據(jù)庫生產(chǎn)廠商都支持SQL語句,但都有特有內容。?
舉例:?
普通話:各數(shù)據(jù)庫廠商都遵循的ISO標準。?
方言:數(shù)據(jù)庫特有的關鍵字。

2、SQL語句分類
☆ DDL
數(shù)據(jù)定義語言:簡稱DDL(Data Definition Language) 用來定義數(shù)據(jù)庫對象:數(shù)據(jù)庫,表,列等。 關鍵字:create,alter,drop等
☆ DML
數(shù)據(jù)操作語言:簡稱DML(Data Manipulation Language) 用來對數(shù)據(jù)庫中表的記錄進行更新。 關鍵字:insert,delete,update等
☆ DQL
數(shù)據(jù)查詢語言:簡稱DQL(Data Query Language) 用來查詢數(shù)據(jù)庫中表的記錄。 關鍵字:select,from,where等
☆ DCL
數(shù)據(jù)控制語言:簡稱DCL(Data Control Language) 用來定義數(shù)據(jù)庫的訪問權限和安全級別,及創(chuàng)建用戶。
3、SQL基本語法
① SQL語句可以單行或多行書寫,以分號結尾。
② 可使用空格和縮進來增強語句的可讀性
③ MySQL數(shù)據(jù)庫的SQL語句不區(qū)分大小寫,關鍵字建議使用大寫
④ 可以使用單行與多行注釋
4、小結
結構化查詢語言(SQL),是關系型數(shù)據(jù)庫管理系統(tǒng)都需要遵循的規(guī)范。不同的數(shù)據(jù)庫生產(chǎn)廠商都支持SQL語句,但都有特有內容。?
SQL語句分為:數(shù)據(jù)定義語言(DDL),數(shù)據(jù)操作語言(DML),數(shù)據(jù)查詢語言(DQL),數(shù)據(jù)控制語言(DCL)。?
SQL通用語法:結構靈活,使用分號結尾;不區(qū)分大小寫;可以使用/**/,#,--來進行注釋。