Mysql 數(shù)據(jù)庫

數(shù)據(jù)庫的主要操作包括:

數(shù)據(jù)庫的操作:創(chuàng)建、刪除

表的操作:創(chuàng)建、修改、刪除

數(shù)據(jù)的操作:增加、修改、刪除、查詢 (簡稱crud)

數(shù)據(jù)庫系統(tǒng)解決的問題:持久化儲存,優(yōu)化讀寫,保證數(shù)據(jù)的有效性。

當(dāng)前使用的數(shù)據(jù)庫主要分為兩類:

文檔型:

如sqlite? 就是一個文件,通過對文件的復(fù)制完成數(shù)據(jù)庫的復(fù)制

服務(wù)型:

如mysql、postgre,數(shù)據(jù)儲存在一個物理文件中,但是需要使用終端以tcp/ip協(xié)議連接,進(jìn)行數(shù)據(jù)庫的讀寫操作

E-R模型

當(dāng)前物理數(shù)據(jù)庫都是按照E-R模型設(shè)計(jì)的

E表示entry 實(shí)體; 一個實(shí)體轉(zhuǎn)化為數(shù)據(jù)庫中的一個表

R表示relationship 關(guān)系;關(guān)系描述兩個實(shí)體之間的對應(yīng)規(guī)則,包括 一對一、一對多、多對多;關(guān)系轉(zhuǎn)化為數(shù)據(jù)庫中的列(在關(guān)系數(shù)據(jù)庫中一行就是一個對象)

三范式

對于設(shè)計(jì)數(shù)據(jù)庫提出了一些規(guī)范,這些規(guī)范被稱為范式

第一范式:列不可拆分

第二范式:唯一標(biāo)識

第三范式:引用主鍵

(后一個范式都是在前一個基礎(chǔ)上建立的)

數(shù)據(jù)的完整性

一個數(shù)據(jù)庫就是一個完整的業(yè)務(wù)單元,可以包含多張表,數(shù)據(jù)被存儲在表中;

在表中為了更加準(zhǔn)確的存儲數(shù)據(jù),保證數(shù)據(jù)的正確有效,可以在創(chuàng)建表的時候,為表添加一些強(qiáng)制性的驗(yàn)證,包括數(shù)據(jù)字段的類型、約束

字段類型

在mysql中包含的數(shù)據(jù)類型很多,這里主要列出來常用的幾種

*數(shù)字:tinyint,int,decimal

類型名稱? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 說明? ? ? ? ? ? ? ? ? ? ? ? 存儲需求

TINYINT? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 很小的整數(shù)? ? ? ? ? ? ? ? ? ? ? 1個字節(jié)

INT(INTEGER)? ? ? ? ? ? ? ? ? ? 普通大小的整數(shù)? ? ? ? ? ? ? 4個字節(jié)

DECIMAL(M,D)? ? ? ? ? ? ? ? ? ? 壓縮的“嚴(yán)格”定點(diǎn)數(shù)? ? ? 如果M>D為M+2個字節(jié),否則為D+2

*字符串:char,varchar,text

類型名稱? ? ? ? ? ? ? ? ? ? ? ? ? ? 說明? ? ? ? ? ? ? ? ? ? 存儲需求

CHAR(M)? ? ? 固定長度非二進(jìn)制字符串? ? M字節(jié),1<=M<=255

VARCHAR(L)? ? 變長非二進(jìn)制字符串? ? ? ? L+1字節(jié)

TEXT? ? ? ? ? ? ? ? ? 小的非二進(jìn)制字符串? ? ? ? L+2字節(jié),在此L<2^16

(注意:VARCHAR(10)列能保存的最大長度為10個字符的一個字符串,例如對于字符’? abcd’,length是4而存儲要求是5個字節(jié)。

CHAR(M)為固定長度字符串,在定義時指定字符串列長,M表示指定長度,M的取值范圍是0~255個字符,CHAR(4)定義了一個固定長度的字符串列。其包含的字符串個數(shù)最大為4.當(dāng)檢索到CHAR值時,尾部的空格將被刪除掉。)

日期:datetime

布爾:bit? (Bit稱為位數(shù)據(jù)類型,其數(shù)據(jù)有兩種取值:0和1 ,長度為1位。在輸入0以外的其他值時,系統(tǒng)均把它們當(dāng)1看待。這種數(shù)據(jù)類型常作為邏輯變量使用,用來表示真、假或是、否等二值選擇。)

約束

主鍵primary key

主鍵約束要求主鍵列的數(shù)據(jù)唯一,并且不允許為空。主鍵能夠唯一地標(biāo)識表中的一條記錄,可以結(jié)合外鍵來定義不同數(shù)據(jù)表之間的關(guān)系,并且可以加快數(shù)據(jù)庫查詢的速度,鍵分為兩種類型:單字段主鍵和多字段聯(lián)合主鍵。

非空not null

非空約束指字段的值不能為空。對于使用了非空約束的字段,如果用戶在添加數(shù)據(jù)時沒有指定值,數(shù)據(jù)庫系統(tǒng)會報錯。

惟一unique

唯一性約束要求該列唯一,允許為空,但只能出現(xiàn)一個空值。唯一約束可以確保一列或者幾列不出現(xiàn)重復(fù)值。

默認(rèn)default

默認(rèn)約束指定某列的默認(rèn)值。如男性同學(xué)較多,性別就可以默認(rèn)為‘男’。如果插入一條新的記錄時沒有為這個字段賦值,那么系統(tǒng)會自動為這個字段賦值為‘男’

外鍵foreign key

如果表A的主關(guān)鍵字是表B中的字段,則該字段稱為表B的外鍵,表A稱為主表,表B稱為從表。外鍵是用來實(shí)現(xiàn)參照完整性的。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容