數據庫常見數據類型和約束


常用數據類型

MYSQL數據庫支持多種類型,大致可以分為三個類型:數值型、時間/日期型和字符型

在這里就列舉一些我們常用的數據類型

1、數值型

表示整數型數據類型(tinyint、smallint、mediumint、int)  浮點型數據類型(float、double)

 

用法:

1)、整形   ( 學號)

區別為存儲大小不同,取值范圍不同

tinyint(m)  取值 【-128,127】

tinyint(m)  unsigned(可省略) zerofill   取值 【0,255】

m 定義為字段長度,與zerofill搭配時,數據精度不足時,自動用0補齊  例如:(001)

2)、浮點型    (身高)

float (m , z)    m : 字段總長度    z : 小數點后的位數

取值【-3.4*10-38,3.4*1038

缺點 : 丟失精度,相較於double精度更低

2、字符型

表示字符型數據類型(char、varchar)

char (m)  m 影響存儲長度  (姓名)

3、時間日期型

表示時間值的日期和時間類型(datetime、date、time和year)

Mysql中的約束

1、not null

not null 即為非空約束,指定某一行的值不能為null。

建立一個s表,將id設置為int型,not null約束

插入數據id為null就會報錯

備注:所有的類型的值都可以是null,包括int、float、dateTime等數據類型 空字符串(”)是不等於null,0也不等於null 。

2、unique

unique代表唯一約束。唯一約束是指定table的列或列組合不能重復,保證數據的唯一性。但是可以為多個null,同一個表可以有多個唯一約束,多個列組合的約束。

在創建唯一約束的時候,如果不給唯一約束名稱,就默認和列名相同。MySQL會給唯一約束的列上默認創建一個唯一索引;

 唯一約束是通過唯一索引實現的,換句話說,唯一索引是實現唯一約束的基礎。所以,建唯一約束,會自動建唯一索引,但建唯一索引,不會自動創建唯一約束。

 

建表給doc加上一個唯一約束

 

插入數據示例

插入成功。說明對於,當為null的時候,唯一索引是不進行判斷唯一性的

3、primary key

作用:用來保證數據完整性

特點:

1)、主鍵約束相當於唯一約束+非空約束的組合,主鍵約束列不允許重復,也不允許出現空值;

2)、每個表最多只允許一個主鍵,建立主鍵約束可以在列級別創建,也可以在表級別上創建;

3)、MySQL的主鍵名總是PRIMARY, 當創建主鍵約束時,系統默認會在所在的列和列組合上建立對應的唯一索引;

4、foreign key

作用:保證一個或兩個表之間的參照完整性,構建一個表的兩個字段或是兩個表的兩個字段之間的參照關系。

特點:

1)、從表的外鍵值必須在主表中能找到或者為空。

2)、當主表的記錄被從表參照時,主表的記錄將不允許刪除,如果要刪除數據,需要先刪除從表中依賴該記錄的數據, 然后才可以刪除主表的數據

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM