數據庫-數據類型及主鍵外鍵

數值類型:整型、浮點型spa

字符串:rem

char(定長):插入數據或查詢數據都很快,由於char在磁盤上插入數據的時候的存儲空間是固定的,簡單粗暴,直接就是定長空間,那麼就不須要考慮數據的長度,因此咱們在進行數據查詢的時候,速度也快,由於在讀取數據的時候也不須要考慮數據長度,簡單粗暴的按照定長的空間來取數據,也致使如下空間的浪費。字符串

varchar(不定長):插入和查詢速度都相對較慢,由於它在內容存儲數據的時候,是按照數據的長度來進行存儲的,那麼每次存儲數據都須要計算一下數據的長度,按照長度來開闢存儲空間,那麼在數據的存儲空間前面還要開闢1-2個字節空間長度來存儲數據的長度,也就是說格式大概是長度+內容,也致使了在咱們讀取數據的時候,首先要先讀取數據的長度,而後根據長度再讀取後面的內容,致使速度較慢,可是多數狀況下能夠節省存儲空間io

日期類型:table

year、date、time、datetime、timestampdate

枚舉類型(enumeration(‘1’,‘2’),單選)im

集合類型:set('1','2','3') 多選數據

 

完整性約束:datetime

not null:不爲空查詢

default:

unique:惟一,不容許重複

primary key:主鍵,惟一非空 not null + unique

  必須有一個主鍵字段,且只能有一個

1.自動查看你全部的字段裏面是否有not null + unique,若是有默認就將這個字段設置爲主鍵字段

2.自動給你設置一個看不到的字段做爲主鍵

atuo_increment:自增,通常加在主鍵後面,從1開始每次+1,能夠設置步長,能夠設置起始值

foreign key:外鍵,創建表之間關係用的

  一對多:

    T1 一對多 t2

    T1裏面的一條數據,能夠對應t2表裏面的多條數據

    T2表裏面加一個字段,t1_id

  create table t2(

    id int primary key auto_increment,

    name char(10) not null,

    sex enum('男','女') default '男' not null,

    id_card char(18) not null unique

    t1_id int not null,

    constraint fk_t2_t1 foreign key(t1_id) refernces t1(id)

    一對一:

    create table t2(

    id int primary key auto_increment,

    name char(10) not null,

    sex enum('男','女') default '男' not null,

    id_card char(18) not null unique

    t1_id int not null unique,

    constraint fk_t2_t1 foreign key(t1_id) refernces t1(id)

  多對多:

    創建第三張表

    t3

      t3    id t1_id t2_id

相關文章
相關標籤/搜索