数据库-数据类型及主键外键

数值类型:整型、浮点型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

相关文章
相关标签/搜索