數據庫---MYSQL基礎

MYSQL相關

數據庫的一種;目前屬於Oracle甲骨文公司;

稱爲關係型數據庫,微軟的SQL server;

MySQL數據是一種C/S模型即客戶端服務端模型;

客戶端通過賬號,密碼連接服務器,連接成功後纔可以進行數據庫操作(CRUD增刪改查);

MYSQL的服務端採用IO複用 + 可伸縮的線程池,實現了網絡高併發的經典模型;

  • MYSQL 的優勢:

(1)開放源碼的數據庫;

(2)跨平臺性;

(3)價格優勢;

(4)功能強大且使用方便;

  • MYSQL的SQL語句類別劃分
  1. DDL (Data Definition Language):數據庫定義語言

定義了不同的數據庫,數據庫表、列、索引等數據庫對象(視圖、觸發器)的定義。

常用的SQL:create(創建)、drop(刪除)、alter(更新)。

create:創建數據庫、創建表、創建視圖等;

alter:修改表的定義、修改視圖的定義等;

drop:刪除數據庫、刪除表、刪除視圖;

  1. DML(Data Manipulation Language):數據操控語言

用於添加、刪除、變更和查詢數據庫記錄;

常用的SQL:insert(添加)、delete(刪除)、update(更新)、select(查詢)

  1. DCL(Data Control Language):數據控制語言

控制不同的數據庫段直接訪問和訪問級別的語句。

常用SQl:grant(用戶增加權限)、revoke(收回用戶權限);

  • 數據庫基本術語:

1.實體:現實世界中客觀存在並可以被區別的事物。比如“一個學生”、“一本書”、“一門課”等等。值得強調的是這裏所說的“事物”不僅僅是看得見摸得着的“東西”,它也可以是虛擬的,不如說“老師與學校的關係”。
2.屬性:教科書上解釋爲:“實體所具有的某一特性”,由此可見,屬性一開始是個邏輯概念,比如說,“性別”是“人”的一個屬性。在關係數據庫中,屬性又是個物理概念,屬性可以看作是“表的一列”。
3.元組:表中的一行就是一個元組。
4.分量:元組的某個屬性值。在一個關係數據庫中,它是一個操作原子,即關係數據庫在做任何操作的時候,屬性是“不可分的”。否則就不是關係數據庫了。
5.碼(鍵):表中可以唯一確定一個元組的某個屬性(或者屬性組),如果這樣的碼有不止一個,那麼大家都叫 候選碼(候選鍵),我們從候選碼中挑一個出來做老大,它就叫主碼(主鍵)。
6.全碼:如果一個碼包含了所有的屬性,這個碼就是全碼。
7.主屬性:一個屬性只要在任何一個候選碼中出現過,這個屬性就是主屬性。
8.非主屬性:與上面相反,沒有在任何候選碼中出現過,這個屬性就是非主屬性。
9.外碼:一個屬性(或屬性組),它不是碼,但是它別的表的碼,它就是外碼。

數據庫的範式

數據庫範式的作用是進行數據庫設計時字段、庫表劃分的依據,數據庫泛型就是數據庫應該遵循的規則,也稱泛型,關係型數據庫常用的4種範式分別是第一範式(1NF),第二範式(2NF),第三範式(3NF),BCN範式(BCNF);

  1. 第一範式(1NF):每一列必須保持原子特徵;

    列是基本數據項,不能有重複字段,且不能再進行拆分,否則設計成一對多的關係;不滿足第一範式不能稱之爲關係型數據庫。

    在設計數據庫時,數據庫需要滿足的最低要求是第一範式;

  2. 第二範式(2NF):屬性完全依賴於主鍵;(針對聯合主鍵-----》消除部分依賴)

1NF的基礎上,非主屬性完全依賴於主鍵,如果不依賴主鍵,應該拆分成新的主體,拆分成一對多的關係;

  1. 第三範式(3NF):2NF的基礎上,屬性不依賴於其他非主屬性(拆分表----》消除依賴傳遞);
  • BCNF、4NF、5NF。。。。。
  • 範式越高,表越多,表越多帶來問題:

(1)查詢時需要連接多個表,增加了查詢的複雜性;

(2)查詢時需要連接多個表,降低了數據庫查詢性能;

範式並不是越多越好,一般滿足3NF即可;

  • 應用數據庫的範式可以帶來很多好處,最主要的歸納爲三點:

1)減少數據冗餘(最主要的好處、其他好處因此而附帶)

2)消除異常(插入異常、更新異常、刪除異常)

3)讓數據組織的更加和諧。

數據庫的啓動與命令:

客戶端MYSQL:連接前服務端必須要啓動;

mysql -u XXX -p XXX

mysql:代表客戶端命令

-u 用戶名 -p 密碼

exit;退出時用戶端登錄

mysql -uroot -p 123456

數據庫是存儲數據的地方,數據庫管理系統是用來定義數據、管理和維護數據的軟件。

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