数据表设计与mysql入门(二)

版权声明:转载请注明出处^_^ https://blog.csdn.net/zhou307/article/details/81211525

前言

  数据表设计与mysql入门(一) 中主要说的是数据库的认识和数据表的逻辑设计,本文主要针对实际进行讲述。
  下面描述的都是基于公司目前的实际项目开发中,我觉得是重点需要了解的,目前用不到的还要大家自己去拓展。
  数据表逻辑设计熟悉了以后,那么实际设计数据表就只需要补充两个方面即可:

  • 表中字段(列名)类型选择
  • 其他注意事项
      这样,实际设计数据表就没什么问题了。那么接着学习一下mysql的实际操作语句,去和你设计好的数据表进行交互。
      以上,就是这篇文章的目的。

前置条件:下面都假设你阅读过(一)中推荐的材料,所以一些基本的概念不会再重复强调

表中字段类型讲解

  如果你了解过一点编程语言,那么字段类型对你来说就很好理解了,可理解成强类型语言的程序中定义变量时需要确定该变量的数据类型,比如int m 就是确定m是个整型变量。
前置说明
  通过上文的学习我们知道,表中每列存储的数据都不一样,有的存储字符串,有的存储整数,有的存储小数,这些就是字段的类型。所以我们就要面临一个选择,即设计表的时候需要确定每个字段的存储类型。就好比设计厕所,总要男女分开吧。

字符串

  该类型我们主要又分为两种:charvarchar

char

  char是定长存储,字段类型如果选择char(n),则代表该字段存储n个字符(1个汉字也算1个字符),不论是否有n个字符,都会占用n个字符的存储空间。
适用场景
  比如用户ID是由我们的程序生成的,每个ID都是24个字符,那么这时候就可以设置userId这个字段类型是char(24) 。总之,长度固定不变的字段就可以选择。

varchar

  varchar是变长存储,比如varchar(n) 就表示该字段最多存储n个字符,数据实际是几个字符就占用几个字符的存储空间,最大不超过n个字符。
适用场景
  当然是数据长度会变得字段,比如用户名,一般都会设置最长比如20个字符,那么就可将name字段类型设置成varcahr(20)

小数

  小数目前我们使用decimal 进行存储,具体格式为 decimal(m, n) :表示整数部分加小数部分最长总共m个数字,小数部分最长n个数字。

时间

  我们程序中一般时间格式为:YYYY-MM-DD HH:MM:SS。数据表中字段设置为时间类型的话,我们一般选用datatime 这种类型即可。

整数

  这部分我们了解四个即可:

类型 占用空间
TINYINT 1字节
SMALLINT 2字节
MEDIUMINT 3字节
INT 4字节

  但是,实际设计的时候类型后面会加(m)这种长度,比如TINTINT(m) 那么该字段存储的最大数值和m没关系,仍然是1字节能表示的,那么无符号数就是255。那么括号中的m作用呢?
  就是该字段选择为0填充时,当所存数据位数不够m时,就在前面以0填充来进行显示,比如m=3,插入的数据是1,那么查询出来的显示就是001,所以m和实际存储占用空间无关。并且只有当该字段选择了用0进行填充这个选项后m才有效果。
  那么,整数存储具体选哪个大家根据所存数据的最大值来选择即可。

其他注意事项

关于主键是否递增

  这一块需要大家多看看网上的文章了,褒贬不一。并且主键用数值还是字符存储也是褒贬不一。这里只说一下我们目前的规则:
  对于一张表,如果他本身有能够唯一标识一行的字段,那么就用该字段来当作主键(时间不算);
  如果本身没有能够标识一张表的字段,那么可以用自增ID作为主键。

关于外键

  我们的原则是禁止。外键是一种物理约束,我们仅仅通过“逻辑外键”进行关联,建立好逻辑约束即可。
   其实就是相当于理解成没有外键这个东西,仍然按照文章(一)中说的来设计即可。

数据库建表工具Navicat

  实际的建表工作我们用可视化的工具Navicat premium来建表。navicat使用很简单,这里简要说明一下大致步骤:

  • 连接到某一个mysql软件
  • 打开对应的数据库
  • 进行新建表操作
  • 建立各字段名字,类型等等
  • 保存表即可

  具体使用请自行搜索或者摸索,不再赘述。

SQL

  不论你是命令行登录进mysql去执行增删改查操作,还是利用其他编程语言来间接执行增删改查操作,其本质都是通过SQL 这种语言去和mysql交互的。Mysql接收到SQL语句后进行解析,解析完就知道你的目的是什么,它就可以去相应的执行动作了。
  对于SQL,目前要求掌握的大致有:

  • 基本的增删改查操作
  • 关联查询:left join、right join、inner join等join的区别

  在学习了逻辑设计数据表以及实际建立数据表以后,我们就可以在实际项目中动手对建好的表进行操作了。所以接下来的文章主要将如何在实际的后台项目中进行数据库的操作。

推荐阅读

猜你喜欢

转载自blog.csdn.net/zhou307/article/details/81211525