資料庫基礎

2022-06-09 10:57:08 字數 3574 閱讀 9077

安裝mysql花了好幾個小時,真的太爛了www。會寫了最簡單的增刪改查,看看廖神的帖子,在這水一篇blog。

先貼上廖神鏈結為敬。

基本操作:

1,開啟資料庫服務:(a)計算機管理-->服務-->mysql80-->啟動(設定啟動型別為手動)(b)另:管理員開啟cmd,net start mysql80;net stop mysql80。

2,登入資料庫(已開啟資料庫服務):(a)cmd:mysql -uroot -p123456(預設登入名為root,密碼為空) (b)mysql自帶命令列 mysql commandline client  (c)登出:exit;

資料庫是一種專門管理資料的軟體。應用程式不需要自己管理資料,而是通過資料庫軟體提供的介面來讀寫資料。至於資料本身如何儲存到檔案,那是資料庫軟體的事情,應用程式自身並不關心。因此編寫程式時,資料讀寫的功能就大大簡化。

資料庫系統(database system,dbs)由硬體和軟體共同構成。硬體主要用於儲存資料庫中的資料,包括計算機、儲存裝置等。軟體部分主要包括資料庫管理系統、支援資料庫管理系統執行的作業系統,以及支援多種語言進行應用開發的訪問技術等。

乙個完整的資料庫系統一般由資料庫、資料庫管理系統、應用開發工具、應用系統、資料庫管理員和使用者組成。(資料庫和資料庫管理系統由資料庫管理員訪問)

資料庫(db):提供了乙個儲存空間來儲存各種資料,可以將資料庫視為乙個儲存資料的容器。乙個資料庫可能包含許多檔案,乙個資料庫系統中通常包含許多資料庫

資料庫管理系統(dbms):是使用者建立、管理和維護資料庫時所使用的軟體,位於使用者和作業系統之間,對資料庫進行統一管理。dbms 能定義資料儲存結構,提供資料的操作機制,維護資料庫的安全性、完整性和可靠性。

資料庫應用程式:可以滿足對資料管理的更高要求,還可以使資料管理過程更加直觀和友好。資料庫應用程式負責與 dbms 進行通訊、訪問和管理 dbms 中儲存的資料,允許使用者插入、修改、刪除資料庫中的資料。

資料庫按照資料結構來組織,儲存,管理資料,有三種模型:層次模型,網狀,關係。

層次模型就是以「上下級」的層次關係來組織資料的一種方式,層次模型的資料結構看起來就像一顆樹。

網狀模型把每個資料節點和其他很多節點都連線起來,它的資料結構看起來就像很多城市之間的路網。

關係模型把資料看作是乙個二維**,任何資料都可以通過行號+列號來唯一確定,它的資料模型看起來就是乙個excel表。

前兩者往往依靠資料結構的關係把物件聯絡起來,而關係型依靠欄位的分類與物件構成簡單易懂的二維陣列。

資料型別:

對於乙個關係表,除了定義每一列的名稱外,還需要定義每一列的資料型別。關聯式資料庫支援的標準資料型別

包括數值、字串、時間等:

名稱型別

說明int

整型4位元組整數型別,範圍約+/-21億

bigint

長整型8位元組整數型別,範圍約+/-922億億

real

浮點型4位元組浮點數,範圍約+/-1038

double

浮點型8位元組浮點數,範圍約+/-10308

decimal(m,n)

高精度小數

由使用者指定精度的小數,例如,decimal(20,10)表示一共20位,其中小數10位,通常用於財務計算

char(n)

定長字串

儲存指定長度的字串,例如,char(100)總是儲存100個字元的字串

varchar(n)

變長字串

儲存可變長度的字串,例如,varchar(100)可以儲存0~100個字元的字串

boolean

布林型別

儲存true或者false

date

日期型別

儲存日期,例如,2018-06-22

time

時間型別

儲存時間,例如,12:20:59

datetime

日期和時間型別

儲存日期+時間,例如,2018-06-22 12:20:59

什麼是sql?sql是結構化查詢語言的縮寫,用來訪問和運算元據庫系統。sql語句既可以查詢資料庫中的資料,也可以新增、更新和刪除資料庫中的資料,還可以對資料庫進行管理和維護操作。不同的資料庫,都支援sql,這樣,我們通過學習sql這一種語言,就可以操作各種不同的資料庫。

ddl:data definition language

ddl允許使用者定義資料,也就是建立表、刪除表、修改表結構這些操作。通常,ddl由資料庫管理員執行。

dml:data manipulation language

dml為使用者提供新增、刪除、更新資料的能力,這些是應用程式對資料庫的日常操作。

dql:data query language

dql允許使用者查詢資料,這也是通常最頻繁的資料庫日常操作。

sql語言關鍵字不區分大小寫!!!但是,針對不同的資料庫,對於表名和列名,有的資料庫區分大小寫,有的資料庫不區分大小寫。同乙個資料庫,有的在linux上區分大小寫,有的在windows上不區分大小寫。

主鍵:

在關聯式資料庫中,一張表中的每一行資料被稱為一條記錄。一條記錄就是由多個字段組成的。每一條記錄都包含若干定義好的字段。同乙個表的所有記錄都有相同的字段定義。

對於關係表,有個很重要的約束,就是任意兩條記錄不能重複。不能重複不是指兩條記錄不完全相同,而是指能夠通過某個字段唯一區分出不同的記錄,這個欄位被稱為主鍵。

對主鍵的要求,最關鍵的一點是:記錄一旦插入到表中,主鍵最好不要再修改,因為主鍵是用來唯一定位記錄的,修改了主鍵,會造成一系列的影響。

由於主鍵的作用十分重要,如何選取主鍵會對業務開發產生重要影響。如果我們以學生的身份證號作為主鍵,似乎能唯一定位記錄。然而,身份證號也是一種業務場景,如果身份證號公升位了,或者需要變更,作為主鍵,不得不修改的時候,就會對業務產生嚴重影響。所以,選取主鍵的乙個基本原則是:不使用任何業務相關的字段作為主鍵。因此,身份證號、手機號、郵箱位址這些看上去可以唯一的字段,均不可用作主鍵。

作為主鍵最好是完全業務無關的字段,我們一般把這個字段命名為id。常見的可作為id欄位的型別有:

自增整數型別:資料庫會在插入資料時自動為每一條記錄分配乙個自增整數,這樣我們就完全不用擔心主鍵重複,也不用自己預先生成主鍵;

全域性唯一guid型別:使用一種全域性唯一的字串作為主鍵,類似8f55d96b-8acc-4636-8cb8-76bf8abc2f57。guid演算法通過網絡卡mac位址、時間戳和隨機數保證任意計算機在任意時間生成的字串都是不同的,大部分程式語言都內建了guid演算法,可以自己預算出主鍵。

聯合主鍵:

關聯式資料庫實際上還允許通過多個字段唯一標識記錄,即兩個或更多的字段都設定為主鍵,這種主鍵被稱為聯合主鍵。

對於聯合主鍵,允許一列有重複,只要不是所有主鍵列都重複即可.沒有必要的情況下,我們盡量不使用聯合主鍵,因為它給關係表帶來了複雜度的上公升。聯合主鍵任意字段不能為空。

資料庫 資料庫基礎

什麼是sql 結構化查詢語言 structtured query language sql的作用 啟動mysql.exe,連線伺服器後,就可以使用sql來操作伺服器了。類似php中操作mysql的語句就是sql語句 sql標準 由國際標準化組織 iso 制定的,對dbms 資料庫管理系統 的統一操作...

資料庫基礎 資料庫設計

一 資料庫生命週期 1.週期 需求分析,概念結構設計,邏輯設計,物理設計,系統實施,系統執行和維護。2.響應的文件 二 正規化 一般資料庫要求規範化到第三正規化,視具體需求重新調整。第一正規化 1nf 強調列的原子性,即列不能分為多列。第二正規化 2nf 關係屬於第一正規化,且每乙個非主屬性完全函式...

資料庫基礎

一.資料庫事物特徵 1.atomic 原子性 不可分割 2.consistency 一致性 參照完整 3.isolation 隔離性 防止併發 4.durability 永續性 永久儲存資料 二.事物和併發 1.併發問題 第一類丟失,髒讀,虛讀,不可重複讀,第二類丟失更新 不可重複讀的特例 2.鎖的...