MySQL入門(一)

一.軟件安裝及服務器設置

詳見以下鏈接:
https://www.jianshu.com/p/dd65cab11e8a

二.下載並安裝使用圖形界面軟件 Navicat for SQL

自行搜索破解版…

三.數據庫基礎知識

1.數據庫定義

數據庫是 一個保存 有組織的數據 的容器(通常是一個文件或一組文件).

也就是數據庫是一個文件櫃.
注意:數據庫軟件不是數據庫.數據庫軟件 是 數據庫管理系統(DBMS).數據庫是通過 DBMS 創建和操縱的.

2.關係型數據庫

關係數據庫,是建立在關係模型基礎上的數據庫,藉助於集合代數等數學概念和方法來處理數據庫中的數據。
所謂關係模型就是“一對一、一對多、多對多”等關係模型,關係模型就是指二維表格模型,因而一個關係型數據庫就是由二維表及其之間的聯繫組成的一個數據組織。

3.二維表

在關係模型中,數據結構表示爲一個二維表,一個關係就是一個二維表(但不是任意一個二維表都能表示一個關係),二維表名就是關係名。表中的第一行通常稱爲屬性名,表中的每一個元組和屬性都是不可再分的,且元組的次序是無關緊要的。

二維表在生活中的應用廣泛,例如成績單、工資表、人員花名冊、價格表、物料清單等
excel就是一個二維表

4.行

行(row)
表中的一個記錄。

在這裏插入圖片描述
表中的數據是按行儲存的.每一行就是一條數據.

5.列

列(column)
表中的一個字段。所有表都是由一個或多個列組成的。

如圖:在這裏插入圖片描述
一列中存儲着相同類的信息, 並且使用相同的數據類型,比如上圖的這一列就是 存儲了國家名字的信息, 用都的是文本類型數據.

6.主鍵

主鍵(primary key)
一列(或一組列),其值能夠唯一標識表中每一行
在這裏插入圖片描述

這個ID列就是這張圖表的主鍵.我們推薦每一張表都定義主鍵.
作爲主鍵需要滿足以下條件:
1.任意兩行都不具有相同的主鍵值
2.每一行都必須具有一個主鍵值切不爲NULL值(空值).
3.主鍵列中的值不允許修改或更新
4.主鍵值不能重用(如果某行從表中刪除,他的主鍵不能賦給以後的新行).

需要注意的是,可以使用多個列一起作爲主鍵,但所有列值得組合必須是唯一的(單個列的值可以不唯一)

7.外鍵

如果公共關鍵字在一個關係中是主關鍵字,那麼這個公共關鍵字被稱爲另一個關係的外鍵。由此可見,外鍵表示了兩個關係之間的相關聯繫。以另一個關係的外鍵作主關鍵字的表被稱爲主表,具有此外鍵的表被稱爲主表的從表。外鍵又稱作外關鍵字。

在這裏插入圖片描述
外鍵用來關聯兩個表, 如上圖
A表(下)的 外鍵 (非主鍵)是 B表(上)的 主鍵

四.MySQL數據庫管理系統

以下操作基於 Navicat for SQL

1.新建一個數據庫

在我們打開Navicat for SQL 並連接上用戶後
在這裏插入圖片描述
在左邊列 點擊用戶名 將其激活爲藍色(即恰人陳), 之後在空白處 右鍵,點擊新建數據庫(這次我們新建一個叫初學sql的數據庫).
在這裏插入圖片描述

注意:在創建的時候如果沒有自己選者字符集,系統就會默認安裝時候的字符集(utf8),現在字符集一般都是選者utf8.

2.新建數據表數據表

新建完成數據庫後在這裏插入圖片描述
在這裏插入圖片描述

名就是我們要輸入的列名(也就是表頭),代表每個數據的特徵(屬性),然後我們需要爲每一列定義它的數據類型.這裏 文本數字我們採用varchar, 下面的是整數型數字int.
最後我們要定義主鍵,並且主鍵列不允許有空值,所以取消掉√.
這樣就生成了一張空白的表.

3.視圖

視圖是虛擬的表。與包含數據的表不一樣,視圖只包含使用時動態檢索
數據的查詢。

優點
一,視圖着重於特定數據。
視圖可以讓用戶或者程序開發人員只看到他們所需要的數據,而不需要把表中的所有信息與字段暴露出來,這樣增強了數據的安全性。
二,簡化數據的操作,易維護。
我們可以將經常用到的多表聯合查詢出來的數據,或特定的結果集定義爲視圖,這樣就起到了模塊化數據的作用。我們在使用這些數據時直接查詢該視圖就可以,而不用到處寫長長的SQL語句,這樣也起到易維護的作用。
三,視圖可以限定查詢數據。
比如:對於不同的用戶,我們只提供部分數據給他。這樣,我們就可以在視圖中限定結果集,然後返回該視圖給他。這樣,無論用戶怎麼對視圖定義查詢條件,他也不能查詢出我們不想提供給他的數據。
缺點
雖然視圖可以給我們帶來種種便利,但不意味着我們就可以濫用它。因爲視圖其實就是一段SQL語句,所以它的結果都是每次調用時動態生成的。如果不合理的定義視圖,必然帶來性能上的損耗。
下面是我們在創建視圖應該要注意的幾點:
一,操作視圖會比直接操作基礎表要慢,所以我們儘量避免在大型表上創建視圖。
二,儘量不要創建嵌套視圖,就是在視圖中使用視圖。 這樣在查詢時,會多次重複訪問基礎表,帶來性能損耗。
三,儘量在視圖只返回所需的信息,儘量不要在視圖使用不需要訪問的表。
四,在大型表或者複雜定義的視圖,可以使用存儲過程代替。
五,頻繁使用的視圖,可以使用索引視圖來代替。 [2]

4.存儲過程

存儲過程(Stored Procedure)是在大型數據庫系統中,一組爲了完成特定功能的SQL 語句集,存儲在數據庫中,經過第一次編譯後調用不需要再次編譯,用戶通過指定存儲過程的名字並給出參數(如果該存儲過程帶有參數)來執行它。存儲過程是數據庫中的一個重要對象。

普通模式下獲取數據,用戶需要輸入SQL命令與數據庫進行交互,而存儲過程是編寫好的SQL命令,存儲在數據庫中,用戶操作的時候只需要調用存儲過程,而不用重新輸入冗餘繁雜的SQL命令。因此:

1.存儲過程可以重複使用,大大減小開發人員的負擔;
2.對於網絡上的服務器,可以大大減小網絡流量,因爲只需要傳遞存儲過程的名稱即可;
3,可以防止對錶的直接訪問,只需要賦予用戶存儲過程的訪問權限。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章