数值类型:整型、浮点型

字符串:

char(定长):插入数据或查询数据都很快,因为char在磁盘上插入数据的时候的存储空间是固定的,简单粗暴,直接就是定长空间,那么就不需要考虑数据的长度,所以我们在进行数据查询的时候,速度也快,因为在读取数据的时候也不需要考虑数据长度,简单粗暴的按照定长的空间来取数据,也导致以下空间的浪费。

varchar(不定长):插入和查询速度都相对较慢,因为它在内容存储数据的时候,是按照数据的长度来进行存储的,那么每次存储数据都需要计算一下数据的长度,按照长度来开辟存储空间,那么在数据的存储空间前面还要开辟1-2个字节空间长度来存储数据的长度,也就是说格式大概是长度+内容,也导致了在我们读取数据的时候,首先要先读取数据的长度,然后根据长度再读取后面的内容,导致速度较慢,但是多数情况下可以节省存储空间

日期类型:

year、date、time、datetime、timestamp

枚举类型(enumeration(‘1’,‘2’),单选)

集合类型:set('1','2','3') 多选

完整性约束:

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

转载于:https://www.cnblogs.com/wangzhilong/p/10297130.html

数据库-数据类型及主键外键相关推荐

  1. [数据库03]-约束(唯一性-主键-外键/存储引擎/事务/索引/视图/DBA命令/数据库设计三范式

    [数据库03]-约束(唯一性-主键-外键)/存储引擎/事务/索引/视图/DBA命令/数据库设计三范式 一.约束 1.1 唯一性约束(unique) 1.2 主键约束 1.3 外键约束 二.存储引擎 2 ...

  2. 数据库 主键 外键 唯一键区别

    下面我通过一个小栗子来说明我们应该如何选择主键,外键和唯一键.  现在我们想建立学生表,用来存储,一个系统的登陆信息.建表如下: create table student4 (   stu_id in ...

  3. MySql数据库主键外键与数据库设计

    MySql数据库主键外键与数据库设计 首先要指出的: 列.字段.属性是一个概念 行.记录.元组是一个概念 MySQL数据库CONSTRAINT约束:非空约束,唯一约束,主键约束,外键约束 show c ...

  4. Python攻城师————MySQL数据库(自增、外键、关键字)

    今日学习目标 正式学习MySQL数据库语句. 文章目录 今日学习目标 学习内容 一.自增特性 二.约束条件之外键 外键的定义 外键约束创建 三.查询关键字 查询关键字之select与from 查询关键 ...

  5. mysql 主键外键sql_SQL外键VS主键说明了MySQL语法示例

    mysql 主键外键sql A Foreign Key is a key used to link two tables. The table with the Foreign Key Constra ...

  6. 主键主键外键和索引_主键和外键的目的/用途是什么?

    主键主键外键和索引 Primary and foreign keys are a way in which to constrain related data together to ensure d ...

  7. mysql中表的约束,主键外键唯一键

    mysql2 表的约束 空属性(NULL) 默认值 列描述 zerofill 主键 主键属性 复合主键 追加主键 删除主键 自增长 唯一键 外键 表的约束 空属性(NULL) 此时 name 的 Nu ...

  8. MySQL数据库(25):外键 foreing key

    外键 foreing key 外键表示了两个实体之间的联系 外键 foreing key: A表中的一个字段的值指向另B表的主键 B: 主表 A: 从表 主表:主键(主关键字) = 从表:外键(外关键 ...

  9. SQL-主键外键的定义

    primary key 主键 需设置为不为空不重复&自增列 not null auto_increment primary key 一个表仅允许一个主键,但主键可由多列组成 create ta ...

最新文章

  1. 机器学习常用术语词汇表
  2. iOS下Html页面中input获取焦点弹出键盘时挡住input解决方案
  3. Geany编辑器怎么使中文不报错?
  4. IdeaVim插件使用技巧
  5. docker之数据卷管理
  6. 【译】Consortium Chain Development
  7. 【机器视觉】 assign_at算子
  8. BZOJ3262: 陌上花开(cdq分治)
  9. Linux 命令之 chown -- 用来变更文件或目录的拥有者或所属群组
  10. java应用开发_开发简单的Java应用
  11. 远程桌面服务器无法复制粘贴了怎么解决
  12. 电脑开机时光驱咔咔响_电脑机箱噪音大?看懂这篇内容,让你四步就能解决问题...
  13. json在线解析工具
  14. MFC下实现的简单随机点名器
  15. 没有基础怎么自学渗透测试工程师?
  16. Google好用插件推荐(一)
  17. java弹跳小球程序_用java实现跳动的小球示例代码
  18. 【Unity3D】Android 打包 ① ( Android 编译选项 | 安装 Android Build Support 模块 )
  19. NVIDIA GeForce GTX 1050 Ti性能如何
  20. 多款国外虚拟主机简单比较

热门文章

  1. 数据结构:关于AVL树的平衡旋转详解
  2. Eclipse安装插件时报No repository found containing...解决办法
  3. aix服务重启mysql_mysqld进程几分钟重启一次,如何解决?
  4. ttf_openfont可以多次调用吗_西门子OB块、FC块、FB块、DB块之间有什么关系?如何调用?...
  5. 教师资格证考试计算机知识题库,教师资格证考试题库
  6. 阿里巴巴研究员叔同:云原生是企业数字创新的最短路径
  7. Spring Cloud Alibaba IDE 工具重大升级
  8. 数控程序中r及q代表什么_你想学会数控宏程序编程,推荐你套数控编程教程
  9. Python单元测试之unittest
  10. 大学不挂科c语言题库及答案,C语言期末总复习,保你不挂科!